From e8f1321e0c4beb707197405a7782bc628dca6dcd Mon Sep 17 00:00:00 2001 From: Jacky Date: Thu, 24 Apr 2025 22:47:27 +0800 Subject: [PATCH] enhance: translations --- api/certificate/issue.go | 55 +- api/certificate/revoke.go | 36 +- api/nginx_log/nginx_log.go | 38 +- api/nginx_log/websocket.go | 10 +- app/.eslint-auto-import.mjs | 1 + app/auto-imports.d.ts | 2 + app/src/constants/errors/self_check.ts | 1 + app/src/language/ar/app.po | 273 ++- app/src/language/container.ts | 11 + app/src/language/de_DE/app.po | 274 ++- app/src/language/en/app.po | 1791 +++++++---------- app/src/language/es/app.po | 275 ++- app/src/language/fr_FR/app.po | 260 ++- app/src/language/generate.ts | 30 + app/src/language/index.ts | 1 + app/src/language/ja_JP/app.po | 267 ++- app/src/language/ko_KR/app.po | 275 ++- app/src/language/messages.pot | 178 +- app/src/language/pt_PT/app.po | 269 ++- app/src/language/ru_RU/app.po | 269 ++- app/src/language/tr_TR/app.po | 272 ++- app/src/language/uk_UA/app.po | 342 +++- app/src/language/vi_VN/app.po | 278 ++- app/src/language/zh_CN/app.po | 335 ++- app/src/language/zh_TW/app.po | 217 +- app/src/routes/modules/certificates.ts | 4 +- .../{components => }/CertificateEditor.vue | 38 +- app/src/views/certificate/DNSCredential.vue | 2 +- .../{ => components}/DNSChallenge.vue | 0 app/src/views/nginx_log/NginxLog.vue | 3 +- .../components/Cert/ObtainCertLive.vue | 36 +- app/vite.config.ts | 3 + cmd/translation/gettext.go | 196 ++ internal/cert/auto_cert.go | 19 +- internal/cert/issue.go | 41 +- internal/cert/logger.go | 77 +- internal/cert/obtain.go | 6 +- internal/cert/payload.go | 8 +- internal/cert/renew.go | 6 +- internal/cert/revoke.go | 24 +- internal/self_check/self_check.go | 54 - internal/self_check/tasks.go | 61 + internal/self_check/websocket.go | 1 - internal/translation/container.go | 40 + internal/translation/translation.go | 5 +- 45 files changed, 4009 insertions(+), 2375 deletions(-) create mode 100644 app/src/language/container.ts create mode 100644 app/src/language/generate.ts create mode 100644 app/src/language/index.ts rename app/src/views/certificate/{components => }/CertificateEditor.vue (90%) rename app/src/views/certificate/{ => components}/DNSChallenge.vue (100%) create mode 100644 cmd/translation/gettext.go create mode 100644 internal/self_check/tasks.go delete mode 100644 internal/self_check/websocket.go create mode 100644 internal/translation/container.go diff --git a/api/certificate/issue.go b/api/certificate/issue.go index 9d24526c..4a1e09fa 100644 --- a/api/certificate/issue.go +++ b/api/certificate/issue.go @@ -4,6 +4,8 @@ import ( "net/http" "github.com/0xJacky/Nginx-UI/internal/cert" + "github.com/0xJacky/Nginx-UI/internal/helper" + "github.com/0xJacky/Nginx-UI/internal/translation" "github.com/0xJacky/Nginx-UI/model" "github.com/0xJacky/Nginx-UI/query" "github.com/gin-gonic/gin" @@ -27,27 +29,6 @@ type IssueCertResponse struct { KeyType certcrypto.KeyType `json:"key_type"` } -func handleIssueCertLogChan(conn *websocket.Conn, log *cert.Logger, logChan chan string) { - defer func() { - if err := recover(); err != nil { - logger.Error(err) - } - }() - - for logString := range logChan { - log.Info(logString) - - err := conn.WriteJSON(IssueCertResponse{ - Status: Info, - Message: logString, - }) - if err != nil { - logger.Error(err) - return - } - } -} - func IssueCert(c *gin.Context) { name := c.Param("name") var upGrader = websocket.Upgrader{ @@ -63,9 +44,7 @@ func IssueCert(c *gin.Context) { return } - defer func(ws *websocket.Conn) { - _ = ws.Close() - }(ws) + defer ws.Close() // read payload := &cert.ConfigPayload{} @@ -92,30 +71,28 @@ func IssueCert(c *gin.Context) { } } - logChan := make(chan string, 1) errChan := make(chan error, 1) - log := &cert.Logger{} + log := cert.NewLogger() log.SetCertModel(&certModel) + log.SetWebSocket(ws) + defer log.Close() - go cert.IssueCert(payload, logChan, errChan) - - go handleIssueCertLogChan(ws, log, logChan) + go cert.IssueCert(payload, log, errChan) // block, until errChan closes - for err = range errChan { + if err := <-errChan; err != nil { log.Error(err) - // Save logs to db - log.Exit() err = ws.WriteJSON(IssueCertResponse{ Status: Error, Message: err.Error(), }) if err != nil { - logger.Error(err) + if helper.IsUnexpectedWebsocketError(err) { + logger.Error(err) + } return } - return } cert := query.Cert @@ -142,19 +119,17 @@ func IssueCert(c *gin.Context) { }) return } - - // Save logs to db - log.Exit() - err = ws.WriteJSON(IssueCertResponse{ Status: Success, - Message: "Issued certificate successfully", + Message: translation.C("[Nginx UI] Issued certificate successfully").ToString(), SSLCertificate: payload.GetCertificatePath(), SSLCertificateKey: payload.GetCertificateKeyPath(), KeyType: payload.GetKeyType(), }) if err != nil { - logger.Error(err) + if helper.IsUnexpectedWebsocketError(err) { + logger.Error(err) + } return } } diff --git a/api/certificate/revoke.go b/api/certificate/revoke.go index 296e94f8..d4cdaf8b 100644 --- a/api/certificate/revoke.go +++ b/api/certificate/revoke.go @@ -4,6 +4,7 @@ import ( "net/http" "github.com/0xJacky/Nginx-UI/internal/cert" + "github.com/0xJacky/Nginx-UI/internal/translation" "github.com/0xJacky/Nginx-UI/query" "github.com/gin-gonic/gin" "github.com/gorilla/websocket" @@ -12,8 +13,8 @@ import ( ) type RevokeCertResponse struct { - Status string `json:"status"` - Message string `json:"message"` + Status string `json:"status"` + *translation.Container } func handleRevokeCertLogChan(conn *websocket.Conn, logChan chan string) { @@ -25,8 +26,8 @@ func handleRevokeCertLogChan(conn *websocket.Conn, logChan chan string) { for logString := range logChan { err := conn.WriteJSON(RevokeCertResponse{ - Status: Info, - Message: logString, + Status: Info, + Container: translation.C(logString), }) if err != nil { logger.Error(err) @@ -62,8 +63,10 @@ func RevokeCert(c *gin.Context) { if err != nil { logger.Error(err) _ = ws.WriteJSON(RevokeCertResponse{ - Status: Error, - Message: "Certificate not found: " + err.Error(), + Status: Error, + Container: translation.C("Certificate not found: %{error}", map[string]any{ + "error": err.Error(), + }), }) return } @@ -82,7 +85,10 @@ func RevokeCert(c *gin.Context) { logChan := make(chan string, 1) errChan := make(chan error, 1) - go cert.RevokeCert(payload, logChan, errChan) + certLogger := &cert.Logger{} + certLogger.SetWebSocket(ws) + + go cert.RevokeCert(payload, certLogger, logChan, errChan) go handleRevokeCertLogChan(ws, logChan) @@ -90,8 +96,10 @@ func RevokeCert(c *gin.Context) { for err = range errChan { logger.Error(err) err = ws.WriteJSON(RevokeCertResponse{ - Status: Error, - Message: err.Error(), + Status: Error, + Container: translation.C("Failed to revoke certificate: %{error}", map[string]any{ + "error": err.Error(), + }), }) if err != nil { logger.Error(err) @@ -105,15 +113,17 @@ func RevokeCert(c *gin.Context) { if err != nil { logger.Error(err) _ = ws.WriteJSON(RevokeCertResponse{ - Status: Error, - Message: "Failed to delete certificate from database: " + err.Error(), + Status: Error, + Container: translation.C("Failed to delete certificate from database: %{error}", map[string]any{ + "error": err.Error(), + }), }) return } err = ws.WriteJSON(RevokeCertResponse{ - Status: Success, - Message: "Certificate revoked successfully", + Status: Success, + Container: translation.C("Certificate revoked successfully"), }) if err != nil { logger.Error(err) diff --git a/api/nginx_log/nginx_log.go b/api/nginx_log/nginx_log.go index 0fbdfa60..6ba90dfc 100644 --- a/api/nginx_log/nginx_log.go +++ b/api/nginx_log/nginx_log.go @@ -7,6 +7,7 @@ import ( "strings" "github.com/0xJacky/Nginx-UI/internal/nginx_log" + "github.com/0xJacky/Nginx-UI/internal/translation" "github.com/gin-gonic/gin" "github.com/pkg/errors" "github.com/spf13/cast" @@ -27,9 +28,9 @@ type controlStruct struct { // nginxLogPageResp represents the response format for log content type nginxLogPageResp struct { - Content string `json:"content"` // Log content - Page int64 `json:"page"` // Current page number - Error string `json:"error,omitempty"` // Error message if any + Content string `json:"content"` // Log content + Page int64 `json:"page"` // Current page number + Error *translation.Container `json:"error,omitempty"` // Error message if any } // GetNginxLogPage handles retrieving a page of log content from a log file @@ -47,7 +48,7 @@ func GetNginxLogPage(c *gin.Context) { logPath, err := getLogPath(&control) if err != nil { c.JSON(http.StatusInternalServerError, nginxLogPageResp{ - Error: err.Error(), + Error: translation.C(err.Error()), }) logger.Error(err) return @@ -56,7 +57,7 @@ func GetNginxLogPage(c *gin.Context) { logFileStat, err := os.Stat(logPath) if err != nil { c.JSON(http.StatusInternalServerError, nginxLogPageResp{ - Error: err.Error(), + Error: translation.C(err.Error()), }) logger.Error(err) return @@ -64,9 +65,14 @@ func GetNginxLogPage(c *gin.Context) { if !logFileStat.Mode().IsRegular() { c.JSON(http.StatusInternalServerError, nginxLogPageResp{ - Error: "log file is not regular file", + Error: translation.C("Log file %{log_path} is not a regular file. "+ + "If you are using nginx-ui in docker container, please refer to "+ + "https://nginxui.com/zh_CN/guide/config-nginx-log.html for more information.", + map[string]any{ + "log_path": logPath, + }), }) - logger.Errorf("log file is not regular file: %s", logPath) + logger.Errorf("log file is not a regular file: %s", logPath) return } @@ -82,7 +88,7 @@ func GetNginxLogPage(c *gin.Context) { f, err := os.Open(logPath) if err != nil { c.JSON(http.StatusInternalServerError, nginxLogPageResp{ - Error: err.Error(), + Error: translation.C(err.Error()), }) logger.Error(err) return @@ -108,7 +114,7 @@ func GetNginxLogPage(c *gin.Context) { _, err = f.Seek(offset, io.SeekStart) if err != nil && err != io.EOF { c.JSON(http.StatusInternalServerError, nginxLogPageResp{ - Error: err.Error(), + Error: translation.C(err.Error()), }) logger.Error(err) return @@ -117,7 +123,7 @@ func GetNginxLogPage(c *gin.Context) { n, err := f.Read(buf) if err != nil && !errors.Is(err, io.EOF) { c.JSON(http.StatusInternalServerError, nginxLogPageResp{ - Error: err.Error(), + Error: translation.C(err.Error()), }) logger.Error(err) return @@ -133,21 +139,21 @@ func GetNginxLogPage(c *gin.Context) { func GetLogList(c *gin.Context) { filters := []func(*nginx_log.NginxLogCache) bool{} - if c.Query("type") != "" { + if logType := c.Query("type"); logType != "" { filters = append(filters, func(entry *nginx_log.NginxLogCache) bool { - return entry.Type == c.Query("type") + return entry.Type == logType }) } - if c.Query("name") != "" { + if name := c.Query("name"); name != "" { filters = append(filters, func(entry *nginx_log.NginxLogCache) bool { - return strings.Contains(entry.Name, c.Query("name")) + return strings.Contains(entry.Name, name) }) } - if c.Query("path") != "" { + if path := c.Query("path"); path != "" { filters = append(filters, func(entry *nginx_log.NginxLogCache) bool { - return strings.Contains(entry.Path, c.Query("path")) + return strings.Contains(entry.Path, path) }) } diff --git a/api/nginx_log/websocket.go b/api/nginx_log/websocket.go index a3d0d475..003d3cd1 100644 --- a/api/nginx_log/websocket.go +++ b/api/nginx_log/websocket.go @@ -5,6 +5,7 @@ import ( "io" "net/http" "os" + "runtime" "github.com/0xJacky/Nginx-UI/internal/helper" "github.com/0xJacky/Nginx-UI/internal/nginx" @@ -64,6 +65,8 @@ func getLogPath(control *controlStruct) (logPath string, err error) { func tailNginxLog(ws *websocket.Conn, controlChan chan controlStruct, errChan chan error) { defer func() { if err := recover(); err != nil { + buf := make([]byte, 1024) + runtime.Stack(buf, false) logger.Error(err) return } @@ -91,16 +94,13 @@ func tailNginxLog(ws *websocket.Conn, controlChan chan controlStruct, errChan ch } if !stat.Mode().IsRegular() { - errChan <- errors.New("[error] " + logPath + " is not a regular file. " + - "If you are using nginx-ui in docker container, please refer to " + - "https://nginxui.com/zh_CN/guide/config-nginx-log.html for more information.") + errChan <- errors.Errorf("[error] %s is not a regular file. If you are using nginx-ui in docker container, please refer to https://nginxui.com/zh_CN/guide/config-nginx-log.html for more information.", logPath) return } // Create a tail t, err := tail.TailFile(logPath, tail.Config{Follow: true, ReOpen: true, Location: &seek}) - if err != nil { errChan <- errors.Wrap(err, "error tailing log") return @@ -137,6 +137,8 @@ func tailNginxLog(ws *websocket.Conn, controlChan chan controlStruct, errChan ch func handleLogControl(ws *websocket.Conn, controlChan chan controlStruct, errChan chan error) { defer func() { if err := recover(); err != nil { + buf := make([]byte, 1024) + runtime.Stack(buf, false) logger.Error(err) return } diff --git a/app/.eslint-auto-import.mjs b/app/.eslint-auto-import.mjs index d24eb3ac..d8638c47 100644 --- a/app/.eslint-auto-import.mjs +++ b/app/.eslint-auto-import.mjs @@ -19,6 +19,7 @@ export default { "Ref": true, "Slot": true, "Slots": true, + "T": true, "VNode": true, "WritableComputedRef": true, "acceptHMRUpdate": true, diff --git a/app/auto-imports.d.ts b/app/auto-imports.d.ts index 981d9872..a4acfbe3 100644 --- a/app/auto-imports.d.ts +++ b/app/auto-imports.d.ts @@ -11,6 +11,7 @@ declare global { const $npgettext: typeof import('@/gettext')['$npgettext'] const $pgettext: typeof import('@/gettext')['$pgettext'] const EffectScope: typeof import('vue')['EffectScope'] + const T: typeof import('@/language')['T'] const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] const computed: typeof import('vue')['computed'] const createApp: typeof import('vue')['createApp'] @@ -101,6 +102,7 @@ declare module 'vue' { readonly $npgettext: UnwrapRef readonly $pgettext: UnwrapRef readonly EffectScope: UnwrapRef + readonly T: UnwrapRef readonly acceptHMRUpdate: UnwrapRef readonly computed: UnwrapRef readonly createApp: UnwrapRef diff --git a/app/src/constants/errors/self_check.ts b/app/src/constants/errors/self_check.ts index 00f6b969..ad7b996d 100644 --- a/app/src/constants/errors/self_check.ts +++ b/app/src/constants/errors/self_check.ts @@ -12,4 +12,5 @@ export default { 4048: () => $gettext('Streams-available directory not exist'), 4049: () => $gettext('Streams-enabled directory not exist'), 4050: () => $gettext('Nginx conf not include conf.d directory'), + 4051: () => $gettext('Docker socket not exist'), } diff --git a/app/src/language/ar/app.po b/app/src/language/ar/app.po index 89d49b6e..a3d61ccc 100644 --- a/app/src/language/ar/app.po +++ b/app/src/language/ar/app.po @@ -13,6 +13,98 @@ msgstr "" "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "X-Generator: Weblate 5.6.2\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "" +"[Nginx UI] مستخدم ACME: %{name}، البريد الإلكتروني: %{email}، دليل CA: " +"%{caDir}" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "[Nginx UI] يتم إنشاء نسخة احتياطية من الشهادة الحالية لإلغائها لاحقًا" + +#: src/language/generate.ts:28 +#, fuzzy +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "تم المسح بنجاح" + +#: src/language/generate.ts:8 +#, fuzzy +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "تم إعادة تشغيل Nginx بنجاح" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "[Nginx UI] تم استخدام الشهادة للخادم، إعادة تحميل شهادة TLS للخادم" + +#: src/language/generate.ts:24 +#, fuzzy +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "يؤدي إنشاء العميل إلى تسهيل الاتصال بخادم CA" + +#: src/language/generate.ts:12 +#, fuzzy +msgid "[Nginx UI] Environment variables cleaned" +msgstr "تم تنظيف متغيرات البيئة" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "[Nginx UI] تم الانتهاء" + +#: src/language/generate.ts:4 +#, fuzzy +msgid "[Nginx UI] Issued certificate successfully" +msgstr "تم إصدار الشهادة بنجاح" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "[Nginx UI] الحصول على الشهادة" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "[Nginx UI] التحضير لإلغاء الشهادة" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "[Nginx UI] إعداد تكوينات ليغو" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "[Nginx UI] إعادة تحميل nginx" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "[Nginx UI] اكتمال الإلغاء" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "[Nginx UI] إلغاء الشهادة" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "[Nginx UI] إبطال الشهادة القديمة" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "[Nginx UI] تعيين موفر تحدي DNS01" + +#: src/language/generate.ts:6 +#, fuzzy +msgid "[Nginx UI] Setting environment variables" +msgstr "تعيين متغيرات البيئة" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "[Nginx UI] تعيين موفر تحدي HTTP01" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "[Nginx UI] كتابة مفتاح الشهادة الخاص إلى القرص" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "[Nginx UI] كتابة الشهادة على القرص" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "المصادقة الثنائية" @@ -105,7 +197,7 @@ msgstr "أضف Stream" msgid "Added successfully" msgstr "تمت الإضافة بنجاح" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 msgid "Additional" msgstr "إضافي" @@ -132,7 +224,7 @@ msgstr "تم استخدام جميع رموز الاسترداد" msgid "API Base Url" msgstr "عنوان URL الأساسي لAPI" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" msgstr "ملف API" @@ -280,7 +372,7 @@ msgstr "آلي" msgid "auto = CPU cores" msgstr "Auto = CPU Cores" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "التحديث التلقائي" @@ -300,11 +392,9 @@ msgstr "\"إعادة التشغيل التلقائي\"" msgid "Automatically indexed from site and stream configurations." msgstr "\"تمت الفهرسة تلقائيًا من تكوينات الموقع والدفق.\"" -#: src/views/certificate/components/CertificateEditor.vue:259 -#: src/views/config/ConfigEditor.vue:266 -#: src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 -#: src/views/nginx_log/NginxLog.vue:173 +#: src/views/certificate/CertificateEditor.vue:259 +#: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -511,42 +601,40 @@ msgid "Certificate %{name} will expire in 1 day" msgstr "ستنتهي صلاحية الشهادة %{name} خلال يوم واحد" #: src/constants/errors/cert.ts:4 -#, fuzzy msgid "Certificate decode error" -msgstr "خطأ في مزامنة الشهادة" +msgstr "خطأ في فك تشفير الشهادة" #: src/components/Notification/notifications.ts:29 -#, fuzzy msgid "Certificate Expiration Notice" -msgstr "نماذج التكوين" +msgstr "إشعار انتهاء صلاحية الشهادة" #: src/components/Notification/notifications.ts:25 -#, fuzzy msgid "Certificate Expired" -msgstr "قائمة الشهادات" +msgstr "انتهت صلاحية الشهادة" #: src/components/Notification/notifications.ts:33 #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 -#, fuzzy msgid "Certificate Expiring Soon" -msgstr "خطأ في مزامنة الشهادة" +msgstr "شهادة على وشك الانتهاء" + +#: src/language/generate.ts:5 +#, fuzzy +msgid "Certificate not found: %{error}" +msgstr "خطأ في فك تشفير الشهادة" #: src/constants/errors/cert.ts:5 -#, fuzzy msgid "Certificate parse error" -msgstr "خطأ في مزامنة الشهادة" +msgstr "خطأ في تحليل الشهادة" #: src/constants/errors/cert.ts:8 -#, fuzzy msgid "Certificate path is empty" -msgstr "نماذج التكوين" +msgstr "مسار الشهادة فارغ" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 -#, fuzzy msgid "Certificate removed successfully" -msgstr "تم المسح بنجاح" +msgstr "تمت إزالة الشهادة بنجاح" #: src/views/preference/tabs/CertSettings.vue:27 msgid "Certificate Renewal Interval" @@ -557,7 +645,12 @@ msgstr "الفاصل الزمني لتجديد الشهادة" msgid "Certificate renewed successfully" msgstr "تم المسح بنجاح" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +#, fuzzy +msgid "Certificate revoked successfully" +msgstr "تمت إزالة الشهادة بنجاح" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 msgid "Certificate Status" msgid_plural "Certificates Status" @@ -603,12 +696,12 @@ msgstr "المسار المتغير" #: src/views/environments/list/BatchUpgrader.vue:159 #: src/views/system/Upgrade.vue:188 msgid "Channel" -msgstr "قناة" +msgstr "القناة" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:40 #: src/views/stream/components/RightPanel/RightPanel.vue:22 msgid "Chat" -msgstr "" +msgstr "محادثة" #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40 #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64 @@ -626,40 +719,49 @@ msgid "" "Docker Image, please make sure the docker socket is mounted like this: `-v " "/var/run/docker.sock:/var/run/docker.sock`." msgstr "" +"تحقق مما إذا كان /var/run/docker.sock موجودًا. إذا كنت تستخدم صورة Docker " +"الرسمية لـ Nginx UI، يرجى التأكد من أن مقبس Docker مثبت بهذه الطريقة: `-v " +"/var/run/docker.sock:/var/run/docker.sock`." #: src/components/SelfCheck/tasks/frontend/https-check.ts:11 msgid "" "Check if HTTPS is enabled. Using HTTP outside localhost is insecure and " "prevents using Passkeys and clipboard features." msgstr "" +"تحقق مما إذا كان HTTPS ممكّنًا. استخدام HTTP خارج localhost غير آمن ويمنع " +"استخدام ميزات Passkeys والحافظة." #: src/components/SelfCheck/tasks/backend/index.ts:26 msgid "Check if the nginx.conf includes the conf.d directory." -msgstr "" +msgstr "تحقق مما إذا كان ملف nginx.conf يتضمن دليل conf.d." #: src/components/SelfCheck/tasks/backend/index.ts:16 msgid "Check if the nginx.conf includes the sites-enabled directory." -msgstr "" +msgstr "تحقق مما إذا كان ملف nginx.conf يتضمن دليل sites-enabled." #: src/components/SelfCheck/tasks/backend/index.ts:21 msgid "Check if the nginx.conf includes the streams-enabled directory." -msgstr "" +msgstr "تحقق مما إذا كان ملف nginx.conf يتضمن دليل streams-enabled." #: src/components/SelfCheck/tasks/backend/index.ts:6 msgid "" "Check if the sites-available and sites-enabled directories are under the " "nginx configuration directory." msgstr "" +"تحقق مما إذا كانت الدلائل sites-available و sites-enabled موجودة ضمن دليل " +"تكوين nginx." #: src/components/SelfCheck/tasks/backend/index.ts:11 msgid "" "Check if the streams-available and streams-enabled directories are under " "the nginx configuration directory." msgstr "" +"تحقق مما إذا كانت الدلائل streams-available و streams-enabled موجودة ضمن " +"دليل تكوين nginx." #: src/constants/errors/crypto.ts:3 msgid "Cipher text is too short" -msgstr "" +msgstr "النص المشفر قصير جدًا" #: src/language/constants.ts:13 msgid "Cleaning environment variables" @@ -679,44 +781,43 @@ msgstr "تم المسح بنجاح" #: src/components/SystemRestore/SystemRestoreContent.vue:194 #: src/components/SystemRestore/SystemRestoreContent.vue:271 msgid "Click or drag backup file to this area to upload" -msgstr "" +msgstr "انقر فوق أو اسحب ملف النسخ الاحتياطي إلى هذه المنطقة للتحميل" #: src/views/preference/components/AuthSettings/TOTP.vue:110 msgid "Click to copy" -msgstr "" +msgstr "انقر لنسخ" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:120 msgid "Client Body Buffer Size" -msgstr "" +msgstr "حجم العميل العازلة للعميل" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:113 msgid "Client Header Buffer Size" -msgstr "" +msgstr "حجم مخزن رأس العميل" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:99 msgid "Client Max Body Size" -msgstr "" +msgstr "الحد الأقصى لحجم جسم العميل" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:121 msgid "Client request body buffer size" -msgstr "" +msgstr "حجم مخزن طلب جسم العميل" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:114 msgid "Client request header buffer size" -msgstr "" +msgstr "حجم مخزن رأس طلب العميل" #: src/components/ConfigHistory/ConfigHistory.vue:169 msgid "Close" -msgstr "" +msgstr "إغلاق" #: src/constants/errors/llm.ts:2 -#, fuzzy msgid "Code completion is not enabled" -msgstr "TOTP معطل للحساب الحالي." +msgstr "إكمال الكود غير مفعّل" #: src/views/preference/tabs/OpenAISettings.vue:86 msgid "Code Completion Model" -msgstr "" +msgstr "نموذج إكمال التعليمات البرمجية" #: src/views/preference/tabs/LogrotateSettings.vue:23 msgid "Command" @@ -724,7 +825,7 @@ msgstr "أمر" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" -msgstr "" +msgstr "انتهت الأمر برمز خروج غير متوقع: {0}، خطأ: {1}" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:115 #: src/components/NgxConfigEditor/LocationEditor.vue:104 @@ -735,7 +836,7 @@ msgstr "تعليقات" #: src/components/ConfigHistory/ConfigHistory.vue:127 msgid "Compare" -msgstr "" +msgstr "يقارن" #: src/components/ConfigHistory/DiffViewer.vue:388 #, fuzzy @@ -744,15 +845,15 @@ msgstr "التكوينات" #: src/components/ConfigHistory/ConfigHistory.vue:130 msgid "Compare Selected" -msgstr "" +msgstr "قارن المحدد" #: src/components/ConfigHistory/ConfigHistory.vue:129 msgid "Compare with Current" -msgstr "" +msgstr "قارن مع التيار" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:88 msgid "Compression level, 1 is lowest, 9 is highest" -msgstr "" +msgstr "مستوى الضغط ، 1 هو أدنى ، 9 هو الأعلى" #: src/constants/errors/backup.ts:14 #, fuzzy @@ -796,7 +897,7 @@ msgstr "متصل" #: src/views/dashboard/NginxDashBoard.vue:85 msgid "Connection error, trying to reconnect..." -msgstr "" +msgstr "خطأ في الاتصال، جاري محاولة إعادة الاتصال..." #: src/views/terminal/Terminal.vue:142 msgid "Connection lost, please refresh the page." @@ -804,11 +905,11 @@ msgstr "تم فقدان الاتصال، يرجى تحديث الصفحة." #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:61 msgid "Connection timeout period" -msgstr "" +msgstr "فترة مهلة الاتصال" #: src/constants/errors/docker.ts:7 msgid "Container status unknown" -msgstr "" +msgstr "حالة الحاوية غير معروفة" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:120 #: src/components/NgxConfigEditor/LocationEditor.vue:116 @@ -904,7 +1005,7 @@ msgstr "يؤدي إنشاء العميل إلى تسهيل الاتصال بخا msgid "Credential" msgstr "بيان الاعتماد" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "بيانات الاعتماد" @@ -1199,7 +1300,7 @@ msgid "DNS Credentials" msgstr "بيانات اعتماد DNS" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "مزود DNS" @@ -1249,6 +1350,10 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 #, fuzzy @@ -1265,7 +1370,7 @@ msgstr[5] "ملف API" msgid "Domain" msgstr "نطاق" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "قائمة النطاقات فارغة، حاول إعادة فتح Auto Cert لـ %{config}" @@ -1526,7 +1631,7 @@ msgstr "" msgid "External Notify" msgstr "" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 msgid "Fail to obtain certificate" msgstr "فشل في الحصول على الشهادة" @@ -1680,6 +1785,11 @@ msgstr "" msgid "Failed to delete certificate" msgstr "فشل في الحصول على الشهادة" +#: src/language/generate.ts:9 +#, fuzzy +msgid "Failed to delete certificate from database: %{error}" +msgstr "فشل في الحصول على الشهادة" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1847,6 +1957,11 @@ msgstr "" msgid "Failed to revoke certificate" msgstr "فشل في الحصول على الشهادة" +#: src/language/generate.ts:17 +#, fuzzy +msgid "Failed to revoke certificate: %{error}" +msgstr "فشل في الحصول على الشهادة" + #: src/views/dashboard/components/ParamsOptimization.vue:90 #, fuzzy msgid "Failed to save Nginx performance settings" @@ -1886,7 +2001,7 @@ msgstr "لم يتم العثور على الملف" msgid "Filename is empty" msgstr "" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "تصفيه" @@ -2077,7 +2192,7 @@ msgid "Import" msgstr "استيراد" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Import Certificate" msgstr "استيراد شهادة" @@ -2306,8 +2421,8 @@ msgstr "اتركه فارغًا إذا كنت لا تريد التعديل" msgid "Leave blank if you don't need this." msgstr "اتركه فارغًا إذا لم تكن بحاجة إلى ذلك." -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 msgid "Leave blank will not change anything" msgstr "تركه فارغًا لن يغير شيئًا" @@ -2380,10 +2495,14 @@ msgstr "مكان" msgid "Locations" msgstr "أماكن" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 msgid "Log" msgstr "سجل" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 #, fuzzy msgid "Log List" @@ -2587,7 +2706,7 @@ msgid "Modify" msgstr "تعديل" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Modify Certificate" msgstr "تعديل الشهادة" @@ -2605,8 +2724,8 @@ msgstr "توجيه متعدد الأسطر" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 @@ -2769,7 +2888,7 @@ msgstr "Nginx لا يعمل" msgid "Nginx is running" msgstr "Nginx لا يعمل" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "سجل Nginx" @@ -3775,7 +3894,7 @@ msgstr "يعمل" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -3838,7 +3957,7 @@ msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 msgid "Save successfully" msgstr "تم الحفظ بنجاح" @@ -3853,7 +3972,7 @@ msgstr "تم الحفظ بنجاح" msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "امسح رمز الاستجابة السريعة بهاتفك المحمول لإضافة الحساب إلى التطبيق." -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "حزمة تطوير البرمجيات SDK" @@ -4036,7 +4155,7 @@ msgstr "" msgid "Sleep time between cache manager iterations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 msgid "SSL Certificate Content" msgstr "محتوى شهادة SSL" @@ -4049,15 +4168,15 @@ msgstr "" msgid "SSL certificate file not found" msgstr "محتوى مفتاح شهادة SSL" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 msgid "SSL Certificate Key Content" msgstr "محتوى مفتاح شهادة SSL" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 msgid "SSL Certificate Key Path" msgstr "مسار مفتاح شهادة SSL" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 msgid "SSL Certificate Path" msgstr "مسار شهادة SSL" @@ -4230,7 +4349,7 @@ msgstr "مزامنة العقد" msgid "Sync strategy" msgstr "استراتيجية المزامنة" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 msgid "Sync to" msgstr "مزامنة إلى" @@ -4308,11 +4427,11 @@ msgstr "" "يجب أن يحتوي اسم العقدة على حروف وأحرف يونيكود وأرقام وشرطات وعلامات وصل " "ونقاط فقط." -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 msgid "The input is not a SSL Certificate" msgstr "الإدخال ليس شهادة SSL" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 msgid "The input is not a SSL Certificate Key" msgstr "المدخل ليس مفتاح شهادة SSL" @@ -4348,11 +4467,11 @@ msgstr "" msgid "The parameter of server_name is required" msgstr "عامل server_name مطلوب" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 msgid "The path exists, but the file is not a certificate" msgstr "المسار موجود، لكن الملف ليس شهادة" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 msgid "The path exists, but the file is not a private key" msgstr "المسار موجود، لكن الملف ليس مفتاحًا خاصًا" @@ -4411,17 +4530,17 @@ msgid "" "lose access to your account." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 msgid "This Auto Cert item is invalid, please remove it." msgstr "هذا العنصر في الشهادة التلقائية غير صالح، يرجى إزالته." -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "يتم إدارة هذه الشهادة بواسطة Nginx UI" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "هذا الحقل مطلوب" diff --git a/app/src/language/container.ts b/app/src/language/container.ts new file mode 100644 index 00000000..d4ac248e --- /dev/null +++ b/app/src/language/container.ts @@ -0,0 +1,11 @@ +export interface Container { + message: string + // eslint-disable-next-line ts/no-explicit-any + args: Record +} + +function T(container: Container): string { + return $gettext(container.message, container.args) +} + +export default T diff --git a/app/src/language/de_DE/app.po b/app/src/language/de_DE/app.po index 9412326c..37806209 100644 --- a/app/src/language/de_DE/app.po +++ b/app/src/language/de_DE/app.po @@ -9,6 +9,100 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "" +"[Nginx UI] ACME-Benutzer: %{name}, E-Mail: %{email}, CA-Verzeichnis: " +"%{caDir}" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "[Nginx UI] Aktuelles Zertifikat wird für spätere Widerrufung gesichert" + +#: src/language/generate.ts:28 +#, fuzzy +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "Erfolgreich deaktiviert" + +#: src/language/generate.ts:8 +#, fuzzy +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "Speichern erfolgreich" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "" +"[Nginx UI] Zertifikat wurde für den Server verwendet, Server-TLS-Zertifikat " +"wird neu geladen" + +#: src/language/generate.ts:24 +#, fuzzy +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "Er" + +#: src/language/generate.ts:12 +#, fuzzy +msgid "[Nginx UI] Environment variables cleaned" +msgstr "Umgebungsvariablen gesäubert" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "[Nginx UI] Abgeschlossen" + +#: src/language/generate.ts:4 +#, fuzzy +msgid "[Nginx UI] Issued certificate successfully" +msgstr "Aktivieren erfolgreich" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "[Nginx UI] Zertifikat wird abgerufen" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "[Nginx UI] Vorbereitung auf den Widerruf des Zertifikats" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "[Nginx UI] Vorbereiten der Lego-Konfigurationen" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "[Nginx UI] Nginx wird neu geladen" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "[Nginx UI] Widerruf abgeschlossen" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "[Nginx UI] Zertifikat wird widerrufen" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "[Nginx UI] Altes Zertifikat wird widerrufen" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "[Nginx UI] DNS01-Herausforderungsanbieter wird eingerichtet" + +#: src/language/generate.ts:6 +#, fuzzy +msgid "[Nginx UI] Setting environment variables" +msgstr "Setze Umgebungsvariablen" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "[Nginx UI] HTTP01-Herausforderungsanbieter wird eingerichtet" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "[Nginx UI] Schreibe privaten Zertifikatsschlüssel auf die Festplatte" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "[Nginx UI] Zertifikat wird auf die Festplatte geschrieben" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "2FA" @@ -105,7 +199,7 @@ msgstr "Seite hinzufügen" msgid "Added successfully" msgstr "Speichern erfolgreich" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 #, fuzzy msgid "Additional" msgstr "Ort hinzufügen" @@ -135,7 +229,7 @@ msgstr "Alle Wiederherstellungscodes wurden verwendet" msgid "API Base Url" msgstr "API-Basis-URL" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" msgstr "API-Dokument" @@ -293,7 +387,7 @@ msgstr "Auto" msgid "auto = CPU cores" msgstr "Auto = CPU -Kerne" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "Automatische Aktualisierung" @@ -313,11 +407,9 @@ msgstr "\"Automatischer Neustart\"" msgid "Automatically indexed from site and stream configurations." msgstr "\"Automatisch aus Site- und Stream-Konfigurationen indiziert.\"" -#: src/views/certificate/components/CertificateEditor.vue:259 -#: src/views/config/ConfigEditor.vue:266 -#: src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 -#: src/views/nginx_log/NginxLog.vue:173 +#: src/views/certificate/CertificateEditor.vue:259 +#: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -531,42 +623,40 @@ msgid "Certificate %{name} will expire in 1 day" msgstr "Das Zertifikat %{name} läuft in 1 Tag ab" #: src/constants/errors/cert.ts:4 -#, fuzzy msgid "Certificate decode error" -msgstr "Zertifikat ist gültig" +msgstr "Fehler beim Dekodieren des Zertifikats" #: src/components/Notification/notifications.ts:29 -#, fuzzy msgid "Certificate Expiration Notice" -msgstr "Konfigurationen" +msgstr "Hinweis zum Zertifikatsablauf" #: src/components/Notification/notifications.ts:25 -#, fuzzy msgid "Certificate Expired" -msgstr "Zertifikat ist gültig" +msgstr "Zertifikat abgelaufen" #: src/components/Notification/notifications.ts:33 #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 -#, fuzzy msgid "Certificate Expiring Soon" -msgstr "Certificate has expired" +msgstr "Zertifikat läuft bald ab" + +#: src/language/generate.ts:5 +#, fuzzy +msgid "Certificate not found: %{error}" +msgstr "Fehler beim Dekodieren des Zertifikats" #: src/constants/errors/cert.ts:5 -#, fuzzy msgid "Certificate parse error" -msgstr "Certificate has expired" +msgstr "Fehler beim Parsen des Zertifikats" #: src/constants/errors/cert.ts:8 -#, fuzzy msgid "Certificate path is empty" -msgstr "Konfigurationen" +msgstr "Der Zertifikatspfad ist leer" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 -#, fuzzy msgid "Certificate removed successfully" -msgstr "Erfolgreich deaktiviert" +msgstr "Zertifikat erfolgreich entfernt" #: src/views/preference/tabs/CertSettings.vue:27 #, fuzzy @@ -578,7 +668,12 @@ msgstr "Zeitifikat ist gültig" msgid "Certificate renewed successfully" msgstr "Erfolgreich deaktiviert" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +#, fuzzy +msgid "Certificate revoked successfully" +msgstr "Zertifikat erfolgreich entfernt" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 #, fuzzy msgid "Certificate Status" @@ -627,7 +722,7 @@ msgstr "Kanal" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:40 #: src/views/stream/components/RightPanel/RightPanel.vue:22 msgid "Chat" -msgstr "" +msgstr "Chat" #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40 #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64 @@ -645,40 +740,50 @@ msgid "" "Docker Image, please make sure the docker socket is mounted like this: `-v " "/var/run/docker.sock:/var/run/docker.sock`." msgstr "" +"Überprüfen Sie, ob /var/run/docker.sock existiert. Wenn Sie das offizielle " +"Nginx UI Docker-Image verwenden, stellen Sie sicher, dass der Docker-Socket " +"wie folgt eingehängt ist: `-v /var/run/docker.sock:/var/run/docker.sock`." #: src/components/SelfCheck/tasks/frontend/https-check.ts:11 msgid "" "Check if HTTPS is enabled. Using HTTP outside localhost is insecure and " "prevents using Passkeys and clipboard features." msgstr "" +"Überprüfen Sie, ob HTTPS aktiviert ist. Die Verwendung von HTTP außerhalb " +"von localhost ist unsicher und verhindert die Nutzung von Passkeys und " +"Zwischenablage-Funktionen." #: src/components/SelfCheck/tasks/backend/index.ts:26 msgid "Check if the nginx.conf includes the conf.d directory." -msgstr "" +msgstr "Überprüfen Sie, ob die nginx.conf das conf.d-Verzeichnis enthält." #: src/components/SelfCheck/tasks/backend/index.ts:16 msgid "Check if the nginx.conf includes the sites-enabled directory." -msgstr "" +msgstr "Überprüfen Sie, ob die nginx.conf das Verzeichnis sites-enabled enthält." #: src/components/SelfCheck/tasks/backend/index.ts:21 msgid "Check if the nginx.conf includes the streams-enabled directory." -msgstr "" +msgstr "Überprüfen Sie, ob die nginx.conf das Verzeichnis streams-enabled enthält." #: src/components/SelfCheck/tasks/backend/index.ts:6 msgid "" "Check if the sites-available and sites-enabled directories are under the " "nginx configuration directory." msgstr "" +"Überprüfen Sie, ob die Verzeichnisse sites-available und sites-enabled im " +"nginx-Konfigurationsverzeichnis enthalten sind." #: src/components/SelfCheck/tasks/backend/index.ts:11 msgid "" "Check if the streams-available and streams-enabled directories are under " "the nginx configuration directory." msgstr "" +"Überprüfen Sie, ob die Verzeichnisse streams-available und streams-enabled " +"im nginx-Konfigurationsverzeichnis enthalten sind." #: src/constants/errors/crypto.ts:3 msgid "Cipher text is too short" -msgstr "" +msgstr "Der verschlüsselte Text ist zu kurz" #: src/language/constants.ts:13 msgid "Cleaning environment variables" @@ -700,43 +805,44 @@ msgstr "Erfolgreich deaktiviert" #: src/components/SystemRestore/SystemRestoreContent.vue:271 msgid "Click or drag backup file to this area to upload" msgstr "" +"Klicken Sie auf oder ziehen Sie die Sicherungsdatei in diesen Bereich, um " +"hochzuladen" #: src/views/preference/components/AuthSettings/TOTP.vue:110 msgid "Click to copy" -msgstr "" +msgstr "Klicken Sie hier, um zu kopieren" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:120 msgid "Client Body Buffer Size" -msgstr "" +msgstr "Client Body Puffer Größe" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:113 msgid "Client Header Buffer Size" -msgstr "" +msgstr "Client-Header-Puffergröße" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:99 msgid "Client Max Body Size" -msgstr "" +msgstr "Maximale Client-Körpergröße" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:121 msgid "Client request body buffer size" -msgstr "" +msgstr "Puffergröße für den Anforderungskörper des Clients" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:114 msgid "Client request header buffer size" -msgstr "" +msgstr "Größe des Puffers für Client-Anfrageheader" #: src/components/ConfigHistory/ConfigHistory.vue:169 msgid "Close" -msgstr "" +msgstr "Schließen" #: src/constants/errors/llm.ts:2 -#, fuzzy msgid "Code completion is not enabled" -msgstr "Aktuelles Konto ist nicht TOTP aktiviert." +msgstr "Code-Vervollständigung ist nicht aktiviert" #: src/views/preference/tabs/OpenAISettings.vue:86 msgid "Code Completion Model" -msgstr "" +msgstr "Code-Vervollständigungsmodell" #: src/views/preference/tabs/LogrotateSettings.vue:23 #, fuzzy @@ -745,7 +851,7 @@ msgstr "Kommando" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" -msgstr "" +msgstr "Befehl wurde mit unerwartetem Exit-Code beendet: {0}, Fehler: {1}" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:115 #: src/components/NgxConfigEditor/LocationEditor.vue:104 @@ -756,7 +862,7 @@ msgstr "Kom" #: src/components/ConfigHistory/ConfigHistory.vue:127 msgid "Compare" -msgstr "" +msgstr "Vergleichen" #: src/components/ConfigHistory/DiffViewer.vue:388 #, fuzzy @@ -765,15 +871,15 @@ msgstr "Konfigurationen" #: src/components/ConfigHistory/ConfigHistory.vue:130 msgid "Compare Selected" -msgstr "" +msgstr "Vergleiche ausgewählt" #: src/components/ConfigHistory/ConfigHistory.vue:129 msgid "Compare with Current" -msgstr "" +msgstr "Vergleiche mit Strom" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:88 msgid "Compression level, 1 is lowest, 9 is highest" -msgstr "" +msgstr "Kompressionsniveau, 1 ist am niedrigsten, 9 ist am höchsten" #: src/constants/errors/backup.ts:14 #, fuzzy @@ -817,7 +923,7 @@ msgstr "Verbunden" #: src/views/dashboard/NginxDashBoard.vue:85 msgid "Connection error, trying to reconnect..." -msgstr "" +msgstr "Verbindungsfehler, versuche erneut zu verbinden..." #: src/views/terminal/Terminal.vue:142 msgid "Connection lost, please refresh the page." @@ -825,11 +931,11 @@ msgstr "Ver" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:61 msgid "Connection timeout period" -msgstr "" +msgstr "Verbindungs-Timeout-Zeitraum" #: src/constants/errors/docker.ts:7 msgid "Container status unknown" -msgstr "" +msgstr "Container-Status unbekannt" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:120 #: src/components/NgxConfigEditor/LocationEditor.vue:116 @@ -929,7 +1035,7 @@ msgstr "Er" msgid "Credential" msgstr "Zugangsdaten" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "Zugangsdaten" @@ -1230,7 +1336,7 @@ msgid "DNS Credentials" msgstr "DNS-Zugangsdaten" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "DNS-Anbieter" @@ -1287,6 +1393,10 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 #, fuzzy @@ -1299,7 +1409,7 @@ msgstr[1] "API-Dokument" msgid "Domain" msgstr "Domain" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "" "Domänenliste ist leer, versuche Auto-Zertifikat für %{config} erneut zu " @@ -1573,7 +1683,7 @@ msgstr "" msgid "External Notify" msgstr "" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 #, fuzzy msgid "Fail to obtain certificate" msgstr "Zertifikat ist gültig" @@ -1727,6 +1837,11 @@ msgstr "" msgid "Failed to delete certificate" msgstr "Zertifikat ist gültig" +#: src/language/generate.ts:9 +#, fuzzy +msgid "Failed to delete certificate from database: %{error}" +msgstr "Zertifikat ist gültig" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1890,6 +2005,11 @@ msgstr "" msgid "Failed to revoke certificate" msgstr "Zertifikat ist gültig" +#: src/language/generate.ts:17 +#, fuzzy +msgid "Failed to revoke certificate: %{error}" +msgstr "Zertifikat ist gültig" + #: src/views/dashboard/components/ParamsOptimization.vue:90 #, fuzzy msgid "Failed to save Nginx performance settings" @@ -1929,7 +2049,7 @@ msgstr "FDatei nicht gefunden" msgid "Filename is empty" msgstr "" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "Filter" @@ -2125,7 +2245,7 @@ msgid "Import" msgstr "Import" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 #, fuzzy msgid "Import Certificate" msgstr "Zertifikatsstatus" @@ -2361,8 +2481,8 @@ msgstr "Leer lassen für keine Änderung" msgid "Leave blank if you don't need this." msgstr "Leeer lassen, wenn du dies nicht benötigst." -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 #, fuzzy msgid "Leave blank will not change anything" msgstr "Leeer lassen, wenn du dies nicht benötigst." @@ -2440,11 +2560,15 @@ msgstr "Ort" msgid "Locations" msgstr "Orte" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 #, fuzzy msgid "Log" msgstr "Login" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 #, fuzzy msgid "Log List" @@ -2654,7 +2778,7 @@ msgid "Modify" msgstr "Konfiguration bearbeiten" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 #, fuzzy msgid "Modify Certificate" msgstr "Zertifikatsstatus" @@ -2675,8 +2799,8 @@ msgstr "Einzelne Anweisung" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 @@ -2843,7 +2967,7 @@ msgstr "Nginx läuft nicht" msgid "Nginx is running" msgstr "Nginx läuft nicht" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "Nginx-Log" @@ -3892,7 +4016,7 @@ msgstr "Arbeite" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -3957,7 +4081,7 @@ msgstr "Speichern erfolgreich" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 #, fuzzy msgid "Save successfully" @@ -3973,7 +4097,7 @@ msgstr "Speichern erfolgreich" msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "Scanne den QR-Code mit deinem Handy, um das Konto zur App hinzuzufügen." -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "SDK" @@ -4155,7 +4279,7 @@ msgstr "" msgid "Sleep time between cache manager iterations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 #, fuzzy msgid "SSL Certificate Content" msgstr "Zertifikatsstatus" @@ -4169,17 +4293,17 @@ msgstr "" msgid "SSL certificate file not found" msgstr "Zertifikatsstatus" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 #, fuzzy msgid "SSL Certificate Key Content" msgstr "Zertifikatsstatus" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 #, fuzzy msgid "SSL Certificate Key Path" msgstr "Zertifikatsstatus" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 #, fuzzy msgid "SSL Certificate Path" @@ -4360,7 +4484,7 @@ msgstr "Synchrone Knoten" msgid "Sync strategy" msgstr "Zertifikat ist gültig" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 msgid "Sync to" msgstr "Synchronisieren mit" @@ -4438,11 +4562,11 @@ msgstr "" "Die ICP-Nummer sollte nur Buchstaben, Unicode, Zahlen, Bindestriche, " "Doppelpunkte und Punkte enthalten." -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 msgid "The input is not a SSL Certificate" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 #, fuzzy msgid "The input is not a SSL Certificate Key" msgstr "Zertifikatsstatus" @@ -4479,12 +4603,12 @@ msgstr "" msgid "The parameter of server_name is required" msgstr "server_name-Parameter ist erforderlich" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 #, fuzzy msgid "The path exists, but the file is not a certificate" msgstr "Zertifikatsstatus" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 msgid "The path exists, but the file is not a private key" msgstr "Der Pfad existiert, aber die Datei ist kein privater Schlüssel" @@ -4544,17 +4668,17 @@ msgid "" "lose access to your account." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 msgid "This Auto Cert item is invalid, please remove it." msgstr "Dieses Auto-Zertifikatselement ist ungültig, bitte entferne es." -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "Dieses Zertifikat wird von Nginx UI verwaltet" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "Dieses Feld ist erforderlich" diff --git a/app/src/language/en/app.po b/app/src/language/en/app.po index 8ee3aa03..f77ccb1c 100644 --- a/app/src/language/en/app.po +++ b/app/src/language/en/app.po @@ -1,13 +1,87 @@ -msgid "" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "" + +#: src/language/generate.ts:28 +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "" + +#: src/language/generate.ts:8 +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "" + +#: src/language/generate.ts:29 +msgid "" +"[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "" + +#: src/language/generate.ts:24 +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "" + +#: src/language/generate.ts:12 +msgid "[Nginx UI] Environment variables cleaned" +msgstr "" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "" + +#: src/language/generate.ts:4 +msgid "[Nginx UI] Issued certificate successfully" +msgstr "" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "" + +#: src/language/generate.ts:6 +msgid "[Nginx UI] Setting environment variables" +msgstr "" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: en\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/views/user/userColumns.tsx:32 msgid "2FA" @@ -19,24 +93,21 @@ msgstr "" #: src/routes/modules/system.ts:45 msgid "About" -msgstr "About" +msgstr "" #: src/views/nginx_log/NginxLogList.vue:26 -#, fuzzy msgid "Access Log" -msgstr "Sites List" +msgstr "" #: src/components/NgxConfigEditor/LogEntry.vue:90 #: src/routes/modules/nginx_log.ts:17 -#, fuzzy msgid "Access Logs" -msgstr "Sites List" +msgstr "" #: src/routes/modules/certificates.ts:20 src/views/certificate/ACMEUser.vue:113 #: src/views/certificate/components/ACMEUserSelector.vue:85 -#, fuzzy msgid "ACME User" -msgstr "Username" +msgstr "" #: src/views/certificate/ACMEUser.vue:95 #: src/views/certificate/CertificateList/certColumns.tsx:94 @@ -51,7 +122,7 @@ msgstr "Username" #: src/views/site/site_list/columns.tsx:120 src/views/stream/StreamList.vue:76 #: src/views/user/userColumns.tsx:60 msgid "Action" -msgstr "Action" +msgstr "" #: src/composables/usePerformanceMetrics.ts:84 #: src/views/dashboard/components/PerformanceTablesCard.vue:43 @@ -60,7 +131,7 @@ msgstr "" #: src/views/dashboard/components/ProcessDistributionCard.vue:48 msgid "Actual worker to configured ratio" -msgstr "Actual worker to configured ratio" +msgstr "" #: src/components/NgxConfigEditor/NgxServer.vue:112 #: src/components/NgxConfigEditor/NgxUpstream.vue:155 @@ -75,69 +146,64 @@ msgstr "" #: src/views/preference/components/AuthSettings/AddPasskey.vue:45 #: src/views/preference/components/AuthSettings/AddPasskey.vue:49 msgid "Add a passkey" -msgstr "Add a passkey" +msgstr "" #: src/routes/modules/config.ts:20 src/views/config/ConfigEditor.vue:171 #: src/views/config/ConfigEditor.vue:244 -#, fuzzy msgid "Add Configuration" -msgstr "Edit Configuration" +msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:102 msgid "Add Directive Below" -msgstr "Add Directive Below" +msgstr "" #: src/components/NgxConfigEditor/LocationEditor.vue:131 #: src/components/NgxConfigEditor/LocationEditor.vue:158 msgid "Add Location" -msgstr "Add Location" +msgstr "" #: src/routes/modules/sites.ts:26 src/views/site/site_add/SiteAdd.vue:73 msgid "Add Site" -msgstr "Add Site" +msgstr "" #: src/views/stream/StreamList.vue:255 -#, fuzzy msgid "Add Stream" -msgstr "Add Site" +msgstr "" #: src/views/stream/StreamList.vue:160 -#, fuzzy msgid "Added successfully" -msgstr "Saved successfully" +msgstr "" -#: src/views/certificate/DNSChallenge.vue:110 -#, fuzzy +#: src/views/certificate/components/DNSChallenge.vue:110 msgid "Additional" -msgstr "Add Location" +msgstr "" #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:94 #: src/views/stream/components/StreamEditor.vue:55 msgid "Advance Mode" -msgstr "Advance Mode" +msgstr "" #: src/views/preference/components/AuthSettings/AddPasskey.vue:99 msgid "Afterwards, refresh this page and click add passkey again." -msgstr "Afterwards, refresh this page and click add passkey again." +msgstr "" #: src/components/EnvGroupTabs/EnvGroupTabs.vue:118 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:419 msgid "All" -msgstr "All" +msgstr "" #: src/components/Notification/notifications.ts:165 #: src/language/constants.ts:58 msgid "All Recovery Codes Have Been Used" -msgstr "All Recovery Codes Have Been Used" +msgstr "" #: src/views/preference/tabs/OpenAISettings.vue:32 msgid "API Base Url" msgstr "" -#: src/views/certificate/DNSChallenge.vue:83 -#, fuzzy +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" -msgstr "Comments" +msgstr "" #: src/views/preference/tabs/OpenAISettings.vue:46 msgid "API Proxy" @@ -145,7 +211,7 @@ msgstr "" #: src/views/preference/tabs/OpenAISettings.vue:58 msgid "API Token" -msgstr "API Token" +msgstr "" #: src/views/preference/tabs/OpenAISettings.vue:67 msgid "API Type" @@ -153,101 +219,85 @@ msgstr "" #: src/views/preference/Preference.vue:52 msgid "App" -msgstr "App" +msgstr "" #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103 msgid "Apply" -msgstr "Apply" +msgstr "" #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:67 -#, fuzzy msgid "Apply bulk action successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/system/Upgrade.vue:176 msgid "Arch" -msgstr "\"Arch\"" +msgstr "" #: src/views/preference/tabs/AuthSettings.vue:162 -#, fuzzy msgid "Are you sure to delete this banned IP immediately?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/views/preference/components/AuthSettings/Passkey.vue:113 -#, fuzzy msgid "Are you sure to delete this passkey immediately?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:154 -#, fuzzy msgid "Are you sure to generate new recovery codes?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/views/preference/components/AuthSettings/TOTP.vue:85 -#, fuzzy msgid "Are you sure to reset 2FA?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:96 -#, fuzzy msgid "Are you sure you want to apply to all selected?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/components/Notification/Notification.vue:135 #: src/views/notification/Notification.vue:39 -#, fuzzy msgid "Are you sure you want to clear all notifications?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/components/ChatGPT/ChatGPT.vue:376 -#, fuzzy msgid "Are you sure you want to clear the record of chat?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:540 -#, fuzzy msgid "Are you sure you want to delete this item permanently?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:512 -#, fuzzy msgid "Are you sure you want to delete this item?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/views/site/site_list/SiteList.vue:122 #: src/views/stream/StreamList.vue:239 -#, fuzzy msgid "Are you sure you want to delete?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:526 -#, fuzzy msgid "Are you sure you want to recover this item?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/components/EnvGroupTabs/EnvGroupTabs.vue:132 -#, fuzzy msgid "Are you sure you want to reload Nginx on the following sync nodes?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:97 msgid "Are you sure you want to remove this directive?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/views/preference/tabs/CertSettings.vue:71 -#, fuzzy msgid "Are you sure you want to remove this item?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/components/NgxConfigEditor/LocationEditor.vue:87 -#, fuzzy msgid "Are you sure you want to remove this location?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/components/EnvGroupTabs/EnvGroupTabs.vue:144 -#, fuzzy msgid "Are you sure you want to restart Nginx on the following sync nodes?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/components/ChatGPT/ChatGPT.vue:318 msgid "Ask ChatGPT for Help" @@ -291,61 +341,57 @@ msgstr "" msgid "auto = CPU cores" msgstr "" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "" #: src/views/site/site_edit/components/Cert/ObtainCert.vue:78 msgid "Auto-renewal disabled for %{name}" -msgstr "Auto-renewal disabled for %{name}" +msgstr "" #: src/views/site/site_edit/components/Cert/ObtainCert.vue:71 msgid "Auto-renewal enabled for %{name}" -msgstr "Auto-renewal enabled for %{name}" +msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:332 msgid "Automatic Restart" -msgstr "\"Automatic Restart\"" +msgstr "" #: src/views/nginx_log/NginxLogList.vue:79 msgid "Automatically indexed from site and stream configurations." -msgstr "\"Automatically indexed from site and stream configurations.\"" +msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:259 +#: src/views/certificate/CertificateEditor.vue:259 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:173 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" -msgstr "Back" +msgstr "" #: src/views/other/Error.vue:22 -#, fuzzy msgid "Back Home" -msgstr "Back" +msgstr "" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:206 msgid "Back to list" msgstr "" #: src/routes/modules/system.ts:26 -#, fuzzy msgid "Backup" -msgstr "Back" +msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:155 msgid "Backup file integrity check failed, it may have been tampered with" msgstr "" #: src/constants/errors/backup.ts:41 -#, fuzzy msgid "Backup file not found: {0}" -msgstr "File Not Found" +msgstr "" #: src/views/system/Backup/BackupCreator.vue:42 -#, fuzzy msgid "Backup has been downloaded successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/preference/tabs/AuthSettings.vue:129 msgid "Ban Threshold Minutes" @@ -365,34 +411,31 @@ msgstr "" #: src/views/site/site_add/SiteAdd.vue:79 msgid "Base information" -msgstr "Base information" +msgstr "" #: src/views/config/ConfigEditor.vue:294 #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:30 #: src/views/stream/components/RightPanel/RightPanel.vue:19 -#, fuzzy msgid "Basic" -msgstr "Basic Mode" +msgstr "" #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:97 #: src/views/stream/components/StreamEditor.vue:58 msgid "Basic Mode" -msgstr "Basic Mode" +msgstr "" #: src/views/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:119 msgid "Basic Settings" msgstr "" #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:83 -#, fuzzy msgid "Batch Actions" -msgstr "Action" +msgstr "" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:62 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:448 -#, fuzzy msgid "Batch Modify" -msgstr "Modify Config" +msgstr "" #: src/views/environments/list/BatchUpgrader.vue:152 msgid "Batch Upgrade" @@ -408,7 +451,7 @@ msgstr "" #: src/views/system/About.vue:55 msgid "Build with" -msgstr "Build with" +msgstr "" #: src/views/certificate/ACMEUser.vue:37 msgid "CA Dir" @@ -440,9 +483,8 @@ msgid "Cache Manager Settings" msgstr "" #: src/views/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:124 -#, fuzzy msgid "Cache Path" -msgstr "Certificate is valid" +msgstr "" #: src/composables/usePerformanceMetrics.ts:57 #: src/views/dashboard/components/ProcessDistributionCard.vue:14 @@ -477,7 +519,7 @@ msgstr "" #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:21 #: src/views/stream/components/RightPanel/Basic.vue:47 msgid "Cancel" -msgstr "Cancel" +msgstr "" #: src/constants/errors/user.ts:11 msgid "Cannot change initial user password in demo mode" @@ -505,9 +547,8 @@ msgid "Cert path is not under the nginx conf dir" msgstr "" #: src/components/Notification/notifications.ts:26 -#, fuzzy msgid "Certificate %{name} has expired" -msgstr "Configurations" +msgstr "" #: src/components/Notification/notifications.ts:30 #: src/components/Notification/notifications.ts:34 @@ -520,71 +561,67 @@ msgid "Certificate %{name} will expire in 1 day" msgstr "" #: src/constants/errors/cert.ts:4 -#, fuzzy msgid "Certificate decode error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:29 -#, fuzzy msgid "Certificate Expiration Notice" -msgstr "Configurations" +msgstr "" #: src/components/Notification/notifications.ts:25 -#, fuzzy msgid "Certificate Expired" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:33 #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 -#, fuzzy msgid "Certificate Expiring Soon" -msgstr "Certificate has expired" +msgstr "" + +#: src/language/generate.ts:5 +msgid "Certificate not found: %{error}" +msgstr "" #: src/constants/errors/cert.ts:5 -#, fuzzy msgid "Certificate parse error" -msgstr "Certificate has expired" +msgstr "" #: src/constants/errors/cert.ts:8 -#, fuzzy msgid "Certificate path is empty" -msgstr "Configurations" +msgstr "" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 -#, fuzzy msgid "Certificate removed successfully" -msgstr "Disabled successfully" +msgstr "" #: src/views/preference/tabs/CertSettings.vue:27 -#, fuzzy msgid "Certificate Renewal Interval" -msgstr "Certificate is valid" +msgstr "" #: src/language/constants.ts:21 -#, fuzzy msgid "Certificate renewed successfully" -msgstr "Disabled successfully" +msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +msgid "Certificate revoked successfully" +msgstr "" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 -#, fuzzy msgid "Certificate Status" msgid_plural "Certificates Status" -msgstr[0] "Certificate Status" -msgstr[1] "Certificate Status" +msgstr[0] "" +msgstr[1] "" #: src/routes/modules/certificates.ts:11 #: src/views/certificate/CertificateList/Certificate.vue:14 -#, fuzzy msgid "Certificates" -msgstr "Certificate Status" +msgstr "" #: src/routes/modules/certificates.ts:28 -#, fuzzy msgid "Certificates List" -msgstr "Certificate is valid" +msgstr "" #: src/components/AutoCertForm/AutoCertForm.vue:65 msgid "Challenge Method" @@ -592,21 +629,18 @@ msgstr "" #: src/views/site/site_edit/components/Cert/ChangeCert.vue:49 #: src/views/site/site_edit/components/Cert/ChangeCert.vue:53 -#, fuzzy msgid "Change Certificate" -msgstr "Certificate is valid" +msgstr "" #: src/views/site/site_edit/components/Cert/Cert.vue:77 -#, fuzzy msgid "Changed Certificate" msgid_plural "Changed Certificates" -msgstr[0] "Certificate is valid" -msgstr[1] "Certificate is valid" +msgstr[0] "" +msgstr[1] "" #: src/views/config/ConfigEditor.vue:322 -#, fuzzy msgid "Changed Path" -msgstr "Certificate is valid" +msgstr "" #: src/views/environments/list/BatchUpgrader.vue:159 #: src/views/system/Upgrade.vue:188 @@ -630,8 +664,8 @@ msgstr "" #: src/components/SelfCheck/tasks/backend/index.ts:31 msgid "" "Check if /var/run/docker.sock exists. If you are using Nginx UI Official " -"Docker Image, please make sure the docker socket is mounted like this: `-v " -"/var/run/docker.sock:/var/run/docker.sock`." +"Docker Image, please make sure the docker socket is mounted like this: `-v /" +"var/run/docker.sock:/var/run/docker.sock`." msgstr "" #: src/components/SelfCheck/tasks/frontend/https-check.ts:11 @@ -660,8 +694,8 @@ msgstr "" #: src/components/SelfCheck/tasks/backend/index.ts:11 msgid "" -"Check if the streams-available and streams-enabled directories are under " -"the nginx configuration directory." +"Check if the streams-available and streams-enabled directories are under the " +"nginx configuration directory." msgstr "" #: src/constants/errors/crypto.ts:3 @@ -680,9 +714,8 @@ msgstr "" #: src/components/Notification/Notification.vue:93 #: src/views/notification/Notification.vue:13 -#, fuzzy msgid "Cleared successfully" -msgstr "Disabled successfully" +msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:194 #: src/components/SystemRestore/SystemRestoreContent.vue:271 @@ -726,9 +759,8 @@ msgid "Code Completion Model" msgstr "" #: src/views/preference/tabs/LogrotateSettings.vue:23 -#, fuzzy msgid "Command" -msgstr "Comments" +msgstr "" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" @@ -739,16 +771,15 @@ msgstr "" #: src/components/NgxConfigEditor/LocationEditor.vue:135 #: src/components/NgxConfigEditor/NgxServer.vue:91 msgid "Comments" -msgstr "Comments" +msgstr "" #: src/components/ConfigHistory/ConfigHistory.vue:127 msgid "Compare" msgstr "" #: src/components/ConfigHistory/DiffViewer.vue:388 -#, fuzzy msgid "Compare Configurations" -msgstr "Configurations" +msgstr "" #: src/components/ConfigHistory/ConfigHistory.vue:130 msgid "Compare Selected" @@ -763,40 +794,36 @@ msgid "Compression level, 1 is lowest, 9 is highest" msgstr "" #: src/constants/errors/backup.ts:14 -#, fuzzy msgid "Config path is empty" -msgstr "Configurations" +msgstr "" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:36 -#, fuzzy msgid "Config Template" -msgstr "Configurations" +msgstr "" #: src/views/config/InspectConfig.vue:27 msgid "Configuration file is test successful" msgstr "" #: src/components/ConfigHistory/ConfigHistory.vue:138 -#, fuzzy msgid "Configuration History" -msgstr "Configurations" +msgstr "" #: src/views/dashboard/components/PerformanceTablesCard.vue:167 -#, fuzzy msgid "Configuration information" -msgstr "Configurations" +msgstr "" #: src/views/site/site_add/SiteAdd.vue:85 msgid "Configuration Name" -msgstr "Configuration Name" +msgstr "" #: src/views/config/ConfigList.vue:104 msgid "Configurations" -msgstr "Configurations" +msgstr "" #: src/views/site/site_add/SiteAdd.vue:80 msgid "Configure SSL" -msgstr "Configure SSL" +msgstr "" #: src/views/dashboard/Environments.vue:141 msgid "Connected" @@ -822,7 +849,7 @@ msgstr "" #: src/components/NgxConfigEditor/LocationEditor.vue:116 #: src/components/NgxConfigEditor/LocationEditor.vue:144 msgid "Content" -msgstr "Content" +msgstr "" #: src/components/SensitiveString/SensitiveString.vue:37 #: src/components/StdDesign/StdDataDisplay/StdTableTransformer.tsx:150 @@ -849,7 +876,7 @@ msgstr "" #: src/views/dashboard/ServerAnalytic.vue:301 msgid "CPU Status" -msgstr "CPU Status" +msgstr "" #: src/views/dashboard/components/ResourceUsageCard.vue:27 msgid "CPU Usage" @@ -861,31 +888,27 @@ msgstr "" #: src/views/dashboard/ServerAnalytic.vue:195 msgid "CPU:" -msgstr "CPU:" +msgstr "" #: src/components/NgxConfigEditor/NgxUpstream.vue:166 -#, fuzzy msgid "Create" -msgstr "Created at" +msgstr "" #: src/views/site/site_add/SiteAdd.vue:139 msgid "Create Another" -msgstr "Create Another" +msgstr "" #: src/views/system/Backup/BackupCreator.vue:86 -#, fuzzy msgid "Create Backup" -msgstr "Created at" +msgstr "" #: src/views/config/ConfigList.vue:122 -#, fuzzy msgid "Create File" -msgstr "Created at" +msgstr "" #: src/views/config/components/Mkdir.vue:47 src/views/config/ConfigList.vue:129 -#, fuzzy msgid "Create Folder" -msgstr "Create Another" +msgstr "" #: src/views/system/Backup/BackupCreator.vue:75 msgid "" @@ -899,12 +922,11 @@ msgstr "" #: src/views/preference/components/ExternalNotify/columns.ts:41 #: src/views/user/userColumns.tsx:48 msgid "Created at" -msgstr "Created at" +msgstr "" #: src/views/config/components/Mkdir.vue:35 -#, fuzzy msgid "Created successfully" -msgstr "Disabled successfully" +msgstr "" #: src/language/constants.ts:9 msgid "Creating client facilitates communication with the CA server" @@ -914,7 +936,7 @@ msgstr "" msgid "Credential" msgstr "" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "" @@ -931,14 +953,12 @@ msgid "Current active connections" msgstr "" #: src/components/ConfigHistory/DiffViewer.vue:72 -#, fuzzy msgid "Current Content" -msgstr "Content" +msgstr "" #: src/views/dashboard/components/PerformanceStatisticsCard.vue:65 -#, fuzzy msgid "Current usage" -msgstr "Content" +msgstr "" #: src/views/system/Upgrade.vue:165 msgid "Current Version" @@ -958,20 +978,19 @@ msgstr "" #: src/routes/modules/dashboard.ts:10 src/views/config/ConfigEditor.vue:110 #: src/views/config/ConfigEditor.vue:161 src/views/config/ConfigList.vue:67 msgid "Dashboard" -msgstr "Dashboard" +msgstr "" #: src/views/install/components/InstallForm.vue:109 msgid "Database (Optional, default: database)" -msgstr "Database (Optional, default: database)" +msgstr "" #: src/views/preference/tabs/CertSettings.vue:32 msgid "Days" msgstr "" #: src/constants/errors/middleware.ts:3 -#, fuzzy msgid "Decryption failed" -msgstr "Enable failed" +msgstr "" #: src/views/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:150 msgid "Define shared memory zone name and size, e.g. proxy_cache:10m" @@ -988,9 +1007,8 @@ msgid "Delete" msgstr "" #: src/views/certificate/components/RemoveCert.vue:92 -#, fuzzy msgid "Delete Certificate" -msgstr "Certificate is valid" +msgstr "" #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:35 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:547 @@ -998,57 +1016,48 @@ msgid "Delete Permanently" msgstr "" #: src/components/Notification/notifications.ts:69 src/language/constants.ts:50 -#, fuzzy msgid "Delete Remote Site Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:73 src/language/constants.ts:49 -#, fuzzy msgid "Delete Remote Site Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:125 -#, fuzzy msgid "Delete Remote Stream Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:129 -#, fuzzy msgid "Delete Remote Stream Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:70 -#, fuzzy msgid "Delete site %{name} from %{node} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:74 -#, fuzzy msgid "Delete site %{name} from %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/site/site_list/SiteList.vue:53 msgid "Delete site: %{site_name}" msgstr "" #: src/components/Notification/notifications.ts:126 -#, fuzzy msgid "Delete stream %{name} from %{node} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:130 -#, fuzzy msgid "Delete stream %{name} from %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/stream/StreamList.vue:109 msgid "Delete stream: %{stream_name}" msgstr "" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:183 -#, fuzzy msgid "Deleted successfully" -msgstr "Disabled successfully" +msgstr "" #: src/views/preference/tabs/NodeSettings.vue:28 msgid "Demo" @@ -1077,7 +1086,7 @@ msgstr "" #: src/views/system/About.vue:28 msgid "Development Mode" -msgstr "Development Mode" +msgstr "" #: src/views/preference/components/ExternalNotify/dingtalk.ts:5 msgid "DingTalk" @@ -1085,7 +1094,7 @@ msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:72 msgid "Directive" -msgstr "Directive" +msgstr "" #: src/constants/errors/nginx_log.ts:6 msgid "Directive params is empty" @@ -1101,90 +1110,75 @@ msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveEditor.vue:38 msgid "Directives" -msgstr "Directives" +msgstr "" #: src/views/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:135 -#, fuzzy msgid "Directory Levels" -msgstr "Directives" +msgstr "" #: src/views/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:127 msgid "Directory path to store cache files" msgstr "" #: src/views/site/components/SiteStatusSegmented.vue:88 -#, fuzzy msgid "disable" -msgstr "Disabled" +msgstr "" #: src/views/stream/StreamList.vue:219 -#, fuzzy msgid "Disable" -msgstr "Disabled" +msgstr "" #: src/views/site/site_edit/components/Cert/ObtainCert.vue:80 msgid "Disable auto-renewal failed for %{name}" -msgstr "Disable auto-renewal failed for %{name}" +msgstr "" #: src/components/Notification/notifications.ts:77 src/language/constants.ts:52 -#, fuzzy msgid "Disable Remote Site Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:101 -#, fuzzy msgid "Disable Remote Site Maintenance Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:105 -#, fuzzy msgid "Disable Remote Site Maintenance Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:81 src/language/constants.ts:51 -#, fuzzy msgid "Disable Remote Site Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:133 -#, fuzzy msgid "Disable Remote Stream Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:137 -#, fuzzy msgid "Disable Remote Stream Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:78 -#, fuzzy msgid "Disable site %{name} from %{node} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:82 -#, fuzzy msgid "Disable site %{name} from %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:102 -#, fuzzy msgid "Disable site %{name} maintenance on %{node} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:106 -#, fuzzy msgid "Disable site %{name} maintenance on %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:134 -#, fuzzy msgid "Disable stream %{name} from %{node} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:138 -#, fuzzy msgid "Disable stream %{name} from %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/environments/list/envColumns.tsx:61 #: src/views/environments/list/envColumns.tsx:79 @@ -1197,17 +1191,17 @@ msgstr "Saved successfully" #: src/views/stream/components/StreamEditor.vue:30 #: src/views/stream/StreamList.vue:60 src/views/user/userColumns.tsx:41 msgid "Disabled" -msgstr "Disabled" +msgstr "" #: src/views/site/components/SiteStatusSegmented.vue:40 #: src/views/stream/components/RightPanel/Basic.vue:34 #: src/views/stream/StreamList.vue:98 msgid "Disabled successfully" -msgstr "Disabled successfully" +msgstr "" #: src/views/dashboard/ServerAnalytic.vue:366 msgid "Disk IO" -msgstr "Disk IO" +msgstr "" #: src/routes/modules/certificates.ts:56 #: src/views/certificate/DNSCredential.vue:40 @@ -1215,7 +1209,7 @@ msgid "DNS Credentials" msgstr "" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "" @@ -1228,40 +1222,33 @@ msgid "Do not enable this option unless you are sure that you need it." msgstr "" #: src/views/site/components/SiteStatusSegmented.vue:93 -#, fuzzy msgid "Do you want to %{action} this site?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/views/site/site_edit/components/Cert/ObtainCert.vue:139 -#, fuzzy msgid "Do you want to disable auto-cert renewal?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/views/stream/components/RightPanel/Basic.vue:43 -#, fuzzy msgid "Do you want to disable this stream?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/views/stream/components/RightPanel/Basic.vue:43 -#, fuzzy msgid "Do you want to enable this stream?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/views/site/site_edit/components/Cert/IssueCert.vue:32 #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:14 -#, fuzzy msgid "Do you want to enable TLS?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/components/NgxConfigEditor/NgxServer.vue:50 -#, fuzzy msgid "Do you want to remove this server?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/components/NgxConfigEditor/NgxUpstream.vue:33 -#, fuzzy msgid "Do you want to remove this upstream?" -msgstr "Are you sure you want to remove this directive?" +msgstr "" #: src/constants/errors/docker.ts:2 msgid "Docker client not initialized" @@ -1271,19 +1258,22 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 -#, fuzzy msgid "Document" msgid_plural "Documents" -msgstr[0] "Comments" -msgstr[1] "Comments" +msgstr[0] "" +msgstr[1] "" #: src/views/certificate/components/WildcardCertificate.vue:66 msgid "Domain" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "" @@ -1310,67 +1300,59 @@ msgstr "" #: src/views/site/site_list/SiteList.vue:117 #: src/views/stream/components/StreamDuplicate.vue:64 #: src/views/stream/StreamList.vue:234 -#, fuzzy msgid "Duplicate" -msgstr "Enable failed" +msgstr "" #: src/views/site/site_list/SiteDuplicate.vue:48 #: src/views/stream/components/StreamDuplicate.vue:40 -#, fuzzy msgid "Duplicate to local successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/StdDesign/StdDetail/StdDetail.vue:110 -#, fuzzy msgid "Edit" -msgstr "Edit %{n}" +msgstr "" #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:51 #: src/views/stream/components/StreamEditor.vue:19 msgid "Edit %{n}" -msgstr "Edit %{n}" +msgstr "" #: src/routes/modules/config.ts:30 src/views/config/ConfigEditor.vue:244 msgid "Edit Configuration" -msgstr "Edit Configuration" +msgstr "" #: src/routes/modules/sites.ts:34 msgid "Edit Site" -msgstr "Edit Site" +msgstr "" #: src/routes/modules/streams.ts:19 -#, fuzzy msgid "Edit Stream" -msgstr "Edit Site" +msgstr "" #: src/views/certificate/ACMEUser.vue:25 #: src/views/preference/tabs/CertSettings.vue:12 -#, fuzzy msgid "Email" -msgstr "Email (*)" +msgstr "" #: src/views/install/components/InstallForm.vue:78 msgid "Email (*)" -msgstr "Email (*)" +msgstr "" #: src/views/site/components/SiteStatusSegmented.vue:87 -#, fuzzy msgid "enable" -msgstr "Enabled" +msgstr "" #: src/views/stream/StreamList.vue:227 -#, fuzzy msgid "Enable" -msgstr "Enabled" +msgstr "" #: src/views/preference/components/AuthSettings/TOTP.vue:45 -#, fuzzy msgid "Enable 2FA successfully" -msgstr "Enabled successfully" +msgstr "" #: src/views/site/site_edit/components/Cert/ObtainCert.vue:73 msgid "Enable auto-renewal failed for %{name}" -msgstr "Enable auto-renewal failed for %{name}" +msgstr "" #: src/views/preference/tabs/OpenAISettings.vue:80 msgid "Enable Code Completion" @@ -1382,76 +1364,63 @@ msgstr "" #: src/views/site/site_add/SiteAdd.vue:35 msgid "Enable failed" -msgstr "Enable failed" +msgstr "" #: src/views/preference/tabs/ServerSettings.vue:30 -#, fuzzy msgid "Enable HTTPS" -msgstr "Enable TLS" +msgstr "" #: src/views/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:114 msgid "Enable Proxy Cache" msgstr "" #: src/components/Notification/notifications.ts:85 src/language/constants.ts:54 -#, fuzzy msgid "Enable Remote Site Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:93 -#, fuzzy msgid "Enable Remote Site Maintenance Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:97 -#, fuzzy msgid "Enable Remote Site Maintenance Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:89 src/language/constants.ts:53 -#, fuzzy msgid "Enable Remote Site Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:141 -#, fuzzy msgid "Enable Remote Stream Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:145 -#, fuzzy msgid "Enable Remote Stream Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:94 -#, fuzzy msgid "Enable site %{name} maintenance on %{node} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:98 -#, fuzzy msgid "Enable site %{name} maintenance on %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:86 -#, fuzzy msgid "Enable site %{name} on %{node} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:90 -#, fuzzy msgid "Enable site %{name} on %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:142 -#, fuzzy msgid "Enable stream %{name} on %{node} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:146 -#, fuzzy msgid "Enable stream %{name} on %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/dashboard/NginxDashBoard.vue:150 msgid "Enable stub_status module" @@ -1459,12 +1428,11 @@ msgstr "" #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:115 msgid "Enable TLS" -msgstr "Enable TLS" +msgstr "" #: src/views/preference/components/AuthSettings/TOTP.vue:81 -#, fuzzy msgid "Enable TOTP" -msgstr "Enable TLS" +msgstr "" #: src/views/environments/list/envColumns.tsx:70 #: src/views/environments/list/envColumns.tsx:76 @@ -1479,18 +1447,18 @@ msgstr "Enable TLS" #: src/views/stream/components/StreamEditor.vue:24 #: src/views/stream/StreamList.vue:56 src/views/user/userColumns.tsx:38 msgid "Enabled" -msgstr "Enabled" +msgstr "" #: src/views/site/components/SiteStatusSegmented.vue:27 #: src/views/site/site_add/SiteAdd.vue:32 #: src/views/stream/components/RightPanel/Basic.vue:25 #: src/views/stream/StreamList.vue:88 msgid "Enabled successfully" -msgstr "Enabled successfully" +msgstr "" #: src/views/site/site_edit/components/Cert/IssueCert.vue:72 msgid "Encrypt website with Let's Encrypt" -msgstr "Encrypt website with Let's Encrypt" +msgstr "" #: src/language/constants.ts:22 msgid "Environment variables cleaned" @@ -1499,9 +1467,8 @@ msgstr "" #: src/routes/modules/environments.ts:11 #: src/views/dashboard/Environments.vue:83 #: src/views/environments/list/Environment.vue:74 -#, fuzzy msgid "Environments" -msgstr "Comments" +msgstr "" #: src/constants/index.ts:22 src/views/config/InspectConfig.vue:44 #: src/views/notification/notificationColumns.tsx:15 @@ -1535,9 +1502,8 @@ msgid "Expired" msgstr "" #: src/components/CertInfo/CertInfo.vue:38 -#, fuzzy msgid "Expired At: %{date}" -msgstr "Expiration Date: %{date}" +msgstr "" #: src/components/StdDesign/StdDataDisplay/methods/exportCsv.ts:64 msgid "Export" @@ -1552,29 +1518,25 @@ msgstr "" msgid "External Notify" msgstr "" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 -#, fuzzy +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 msgid "Fail to obtain certificate" -msgstr "Certificate is valid" +msgstr "" #: src/constants/errors/docker.ts:4 -#, fuzzy msgid "Failed to attach to exec instance: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:5 -#, fuzzy msgid "Failed to backup Nginx config files: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:4 msgid "Failed to backup Nginx UI files: {0}" msgstr "" #: src/constants/errors/backup.ts:18 -#, fuzzy msgid "Failed to calculate hash: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:58 msgid "Failed to calculate Nginx hash: {0}" @@ -1585,9 +1547,8 @@ msgid "Failed to calculate Nginx UI hash: {0}" msgstr "" #: src/constants/errors/backup.ts:13 -#, fuzzy msgid "Failed to cleanup temporary directory: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:15 msgid "Failed to copy config file: {0}" @@ -1598,9 +1559,8 @@ msgid "Failed to copy database directory: {0}" msgstr "" #: src/constants/errors/backup.ts:17 -#, fuzzy msgid "Failed to copy database file: {0}" -msgstr "Failed to disable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:32 msgid "Failed to copy file content: {0}" @@ -1611,88 +1571,72 @@ msgid "Failed to copy Nginx config directory: {0}" msgstr "" #: src/constants/errors/self_check.ts:9 -#, fuzzy msgid "Failed to create backup" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:12 -#, fuzzy msgid "Failed to create backup file: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:46 -#, fuzzy msgid "Failed to create directory: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:48 -#, fuzzy msgid "Failed to create file: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:6 -#, fuzzy msgid "Failed to create hash info file: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:47 -#, fuzzy msgid "Failed to create parent directory: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:34 msgid "Failed to create restore directory: {0}" msgstr "" #: src/constants/errors/backup.ts:50 -#, fuzzy msgid "Failed to create symbolic link: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/docker.ts:13 -#, fuzzy msgid "Failed to create temp container: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:2 -#, fuzzy msgid "Failed to create temporary directory" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:3 -#, fuzzy msgid "Failed to create temporary subdirectory" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:9 -#, fuzzy msgid "Failed to create zip archive: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:29 -#, fuzzy msgid "Failed to create zip entry: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:28 -#, fuzzy msgid "Failed to create zip file: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:31 -#, fuzzy msgid "Failed to create zip header: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:26 -#, fuzzy msgid "Failed to decrypt data: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:54 -#, fuzzy msgid "Failed to decrypt file: {0}" -msgstr "Failed to disable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:37 msgid "Failed to decrypt Nginx directory: {0}" @@ -1703,41 +1647,40 @@ msgid "Failed to decrypt Nginx UI directory: {0}" msgstr "" #: src/views/certificate/components/RemoveCert.vue:66 -#, fuzzy msgid "Failed to delete certificate" -msgstr "Certificate is valid" +msgstr "" + +#: src/language/generate.ts:9 +msgid "Failed to delete certificate from database: %{error}" +msgstr "" #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 msgid "Failed to disable %{msg}" -msgstr "Failed to disable %{msg}" +msgstr "" #: src/views/site/components/SiteStatusSegmented.vue:72 -#, fuzzy msgid "Failed to disable maintenance mode %{msg}" -msgstr "Failed to disable %{msg}" +msgstr "" #: src/views/site/components/SiteStatusSegmented.vue:33 #: src/views/stream/components/RightPanel/Basic.vue:28 #: src/views/stream/StreamList.vue:92 msgid "Failed to enable %{msg}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/views/site/components/SiteStatusSegmented.vue:59 -#, fuzzy msgid "Failed to enable maintenance mode %{msg}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:25 -#, fuzzy msgid "Failed to encrypt data: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:23 -#, fuzzy msgid "Failed to encrypt file: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:8 msgid "Failed to encrypt Nginx directory: {0}" @@ -1748,147 +1691,124 @@ msgid "Failed to encrypt Nginx UI directory: {0}" msgstr "" #: src/constants/errors/backup.ts:52 -#, fuzzy msgid "Failed to evaluate symbolic links: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/docker.ts:3 -#, fuzzy msgid "Failed to exec command: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:35 -#, fuzzy msgid "Failed to extract archive: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:10 -#, fuzzy msgid "Failed to generate AES key: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:11 -#, fuzzy msgid "Failed to generate initialization vector: {0}" -msgstr "Certificate is valid" +msgstr "" #: src/language/constants.ts:5 -#, fuzzy msgid "Failed to get certificate information" -msgstr "Certificate is valid" +msgstr "" #: src/constants/errors/docker.ts:10 -#, fuzzy msgid "Failed to get hostname: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/views/dashboard/components/ParamsOptimization.vue:61 -#, fuzzy msgid "Failed to get Nginx performance settings" -msgstr "Certificate is valid" +msgstr "" #: src/composables/useNginxPerformance.ts:49 -#, fuzzy msgid "Failed to get performance data" -msgstr "Certificate is valid" +msgstr "" #: src/constants/errors/docker.ts:8 -#, fuzzy msgid "Failed to inspect container: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/docker.ts:12 -#, fuzzy msgid "Failed to inspect current container: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/components/ConfigHistory/ConfigHistory.vue:77 -#, fuzzy msgid "Failed to load history records" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:30 -#, fuzzy msgid "Failed to open source file: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:49 -#, fuzzy msgid "Failed to open zip entry: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:45 -#, fuzzy msgid "Failed to open zip file: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/self_check.ts:4 msgid "Failed to parse nginx.conf" msgstr "" #: src/constants/errors/docker.ts:11 -#, fuzzy msgid "Failed to pull image: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:53 -#, fuzzy msgid "Failed to read encrypted file: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:22 -#, fuzzy msgid "Failed to read file: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:56 -#, fuzzy msgid "Failed to read hash info file: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/self_check.ts:3 -#, fuzzy msgid "Failed to read nginx.conf" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/docker.ts:5 -#, fuzzy msgid "Failed to read output: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:21 -#, fuzzy msgid "Failed to read symlink: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:39 -#, fuzzy msgid "Failed to restore Nginx configs: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:40 msgid "Failed to restore Nginx UI files: {0}" msgstr "" #: src/views/certificate/components/RemoveCert.vue:48 -#, fuzzy msgid "Failed to revoke certificate" -msgstr "Certificate is valid" +msgstr "" + +#: src/language/generate.ts:17 +msgid "Failed to revoke certificate: %{error}" +msgstr "" #: src/views/dashboard/components/ParamsOptimization.vue:90 -#, fuzzy msgid "Failed to save Nginx performance settings" -msgstr "Certificate is valid" +msgstr "" #: src/constants/errors/docker.ts:14 -#, fuzzy msgid "Failed to start temp container: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:38 -#, fuzzy msgid "Failed to verify hashes: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/constants/errors/backup.ts:55 msgid "Failed to write decrypted file: {0}" @@ -1908,19 +1828,19 @@ msgstr "" #: src/views/other/Error.vue:8 msgid "File Not Found" -msgstr "File Not Found" +msgstr "" #: src/constants/errors/cert.ts:2 msgid "Filename is empty" msgstr "" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "" #: src/language/constants.ts:19 src/views/site/site_add/SiteAdd.vue:81 msgid "Finished" -msgstr "Finished" +msgstr "" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:70 msgid "First View" @@ -1942,23 +1862,20 @@ msgid "For Chinese user: https://mirror.ghproxy.com/" msgstr "" #: src/constants/errors/middleware.ts:4 -#, fuzzy msgid "Form parse failed" -msgstr "Enable failed" +msgstr "" #: src/views/config/ConfigEditor.vue:269 msgid "Format Code" msgstr "" #: src/views/config/ConfigEditor.vue:216 -#, fuzzy msgid "Format successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/certificate/CertificateList/certColumns.tsx:32 -#, fuzzy msgid "General Certificate" -msgstr "Certificate is valid" +msgstr "" #: src/components/StdDesign/StdDataEntry/components/StdPassword.vue:55 msgid "Generate" @@ -1970,33 +1887,29 @@ msgid "Generate New Recovery Codes" msgstr "" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:161 -#, fuzzy msgid "Generate Recovery Codes" -msgstr "Invalid E-mail!" +msgstr "" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:32 -#, fuzzy msgid "Generate recovery codes successfully" -msgstr "Saved successfully" +msgstr "" #: src/language/constants.ts:7 msgid "Generating private key for registering account" msgstr "" #: src/views/dashboard/NginxDashBoard.vue:141 -#, fuzzy msgid "Get data failed" -msgstr "Enable failed" +msgstr "" #: src/views/environments/list/BatchUpgrader.vue:177 #: src/views/system/Upgrade.vue:169 -#, fuzzy msgid "Get release information error" -msgstr "Base information" +msgstr "" #: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:46 msgid "Getting the certificate, please wait..." -msgstr "Getting the certificate, please wait..." +msgstr "" #: src/views/preference/tabs/HTTPSettings.vue:11 msgid "Github Proxy" @@ -2029,13 +1942,12 @@ msgstr "" #: src/views/config/ConfigEditor.vue:254 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:81 #: src/views/stream/components/StreamEditor.vue:43 -#, fuzzy msgid "History" -msgstr "Directive" +msgstr "" #: src/routes/index.ts:47 msgid "Home" -msgstr "Home" +msgstr "" #: src/views/preference/tabs/ServerSettings.vue:19 msgid "Host" @@ -2067,8 +1979,8 @@ msgstr "" #: src/views/nginx_log/NginxLogList.vue:81 msgid "" -"If logs are not indexed, please check if the log file is under the " -"directory in Nginx.LogDirWhiteList." +"If logs are not indexed, please check if the log file is under the directory " +"in Nginx.LogDirWhiteList." msgstr "" #: src/views/preference/tabs/AuthSettings.vue:145 @@ -2098,10 +2010,9 @@ msgid "Import" msgstr "" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 -#, fuzzy +#: src/views/certificate/CertificateEditor.vue:85 msgid "Import Certificate" -msgstr "Certificate Status" +msgstr "" #: src/views/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:176 msgid "Inactive Time" @@ -2156,17 +2067,15 @@ msgstr "" #: src/views/install/components/InstallForm.vue:124 #: src/views/install/components/InstallHeader.vue:9 msgid "Install" -msgstr "Install" +msgstr "" #: src/views/install/components/InstallForm.vue:60 -#, fuzzy msgid "Install successfully" -msgstr "Enabled successfully" +msgstr "" #: src/views/install/components/InstallView.vue:63 -#, fuzzy msgid "Installation" -msgstr "Install" +msgstr "" #: src/constants/errors/system.ts:3 msgid "Installation is not allowed after 10 minutes of system startup" @@ -2183,50 +2092,41 @@ msgid "Interval" msgstr "" #: src/views/certificate/ACMEUser.vue:129 -#, fuzzy msgid "Invalid" -msgstr "Invalid E-mail!" +msgstr "" #: src/constants/errors/backup.ts:44 -#, fuzzy msgid "Invalid AES IV format: {0}" -msgstr "Invalid E-mail!" +msgstr "" #: src/constants/errors/backup.ts:43 -#, fuzzy msgid "Invalid AES key format: {0}" -msgstr "Invalid E-mail!" +msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:121 -#, fuzzy msgid "Invalid file object" -msgstr "Invalid E-mail!" +msgstr "" #: src/constants/errors/backup.ts:51 -#, fuzzy msgid "Invalid file path: {0}" -msgstr "Invalid E-mail!" +msgstr "" #: src/views/config/components/Rename.vue:66 #: src/views/config/ConfigEditor.vue:303 -#, fuzzy msgid "Invalid filename" -msgstr "Invalid E-mail!" +msgstr "" #: src/views/config/components/Mkdir.vue:57 -#, fuzzy msgid "Invalid folder name" -msgstr "Invalid E-mail!" +msgstr "" #: src/constants/errors/notification.ts:3 -#, fuzzy msgid "Invalid notifier config" -msgstr "Invalid E-mail!" +msgstr "" #: src/constants/errors/user.ts:4 -#, fuzzy msgid "Invalid otp code" -msgstr "Invalid E-mail!" +msgstr "" #: src/constants/errors/backup.ts:27 msgid "Invalid padding in decrypted data" @@ -2237,38 +2137,32 @@ msgid "Invalid passcode or recovery code" msgstr "" #: src/constants/errors/user.ts:5 -#, fuzzy msgid "Invalid recovery code" -msgstr "Invalid E-mail!" +msgstr "" #: src/constants/errors/middleware.ts:2 -#, fuzzy msgid "Invalid request format" -msgstr "Invalid E-mail!" +msgstr "" #: src/constants/errors/backup.ts:42 -#, fuzzy msgid "Invalid security token format" -msgstr "Invalid E-mail!" +msgstr "" #: src/views/preference/tabs/AuthSettings.vue:18 msgid "IP" msgstr "" #: src/views/certificate/CertificateList/Certificate.vue:31 -#, fuzzy msgid "Issue wildcard certificate" -msgstr "Certificate is valid" +msgstr "" #: src/views/certificate/components/WildcardCertificate.vue:57 -#, fuzzy msgid "Issue Wildcard Certificate" -msgstr "Certificate Status" +msgstr "" #: src/language/constants.ts:20 -#, fuzzy msgid "Issued certificate successfully" -msgstr "Enabled successfully" +msgstr "" #: src/components/CertInfo/CertInfo.vue:35 msgid "Issuer: %{issuer}" @@ -2306,43 +2200,37 @@ msgid "Lark Custom" msgstr "" #: src/views/system/Upgrade.vue:179 -#, fuzzy msgid "Last checked at" -msgstr "Created at" +msgstr "" #: src/views/dashboard/NginxDashBoard.vue:116 -#, fuzzy msgid "Last update" -msgstr "Created at" +msgstr "" #: src/views/preference/components/AuthSettings/Passkey.vue:96 -#, fuzzy msgid "Last used at" -msgstr "Created at" +msgstr "" #: src/views/user/userColumns.tsx:25 msgid "Leave blank for no change" -msgstr "Leave blank for no change" +msgstr "" #: src/views/preference/tabs/OpenAISettings.vue:41 msgid "Leave blank for the default: https://api.openai.com/" msgstr "" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:79 -#, fuzzy msgid "Leave blank if do not want to modify" -msgstr "Leave blank for no change" +msgstr "" #: src/views/certificate/ACMEUser.vue:59 -#, fuzzy msgid "Leave blank if you don't need this." -msgstr "Leave blank for no change" +msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 -#, fuzzy +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 msgid "Leave blank will not change anything" -msgstr "Leave blank for no change" +msgstr "" #: src/constants/errors/user.ts:6 msgid "Legacy recovery code not allowed since totp is not enabled" @@ -2353,9 +2241,8 @@ msgid "Lego disable CNAME Support" msgstr "" #: src/views/system/About.vue:63 -#, fuzzy msgid "License" -msgstr "License" +msgstr "" #: src/views/dashboard/Environments.vue:141 #: src/views/dashboard/Environments.vue:156 @@ -2367,23 +2254,20 @@ msgid "List" msgstr "" #: src/views/dashboard/ServerAnalytic.vue:183 -#, fuzzy msgid "Load Average:" -msgstr "Load Averages:" +msgstr "" #: src/views/environments/list/Environment.vue:80 msgid "Load from settings" msgstr "" #: src/views/environments/list/Environment.vue:20 -#, fuzzy msgid "Load successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:313 -#, fuzzy msgid "Loader Files" -msgstr "Created at" +msgstr "" #: src/views/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:308 msgid "Loader Settings" @@ -2404,22 +2288,24 @@ msgstr "" #: src/components/EnvIndicator/EnvIndicator.vue:39 #: src/components/NodeSelector/NodeSelector.vue:86 #: src/views/preference/tabs/NginxSettings.vue:55 -#, fuzzy msgid "Local" -msgstr "Location" +msgstr "" #: src/components/NgxConfigEditor/LocationEditor.vue:69 msgid "Location" -msgstr "Location" +msgstr "" #: src/components/NgxConfigEditor/LocationEditor.vue:51 msgid "Locations" -msgstr "Locations" +msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:247 -#, fuzzy +#: src/views/certificate/CertificateEditor.vue:247 msgid "Log" -msgstr "Login" +msgstr "" + +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 msgid "Log List" @@ -2427,15 +2313,15 @@ msgstr "" #: src/routes/modules/auth.ts:14 src/views/other/Login.vue:222 msgid "Login" -msgstr "Login" +msgstr "" #: src/views/other/Login.vue:114 src/views/other/Login.vue:65 msgid "Login successful" -msgstr "Login successful" +msgstr "" #: src/layouts/HeaderLayout.vue:21 msgid "Logout successful" -msgstr "Logout successful" +msgstr "" #: src/views/preference/Preference.vue:106 msgid "Logrotate" @@ -2443,12 +2329,12 @@ msgstr "" #: src/views/preference/tabs/LogrotateSettings.vue:13 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." +"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/components/SiteStatusSegmented.vue:138 @@ -2458,61 +2344,51 @@ msgid "Maintenance" msgstr "" #: src/views/site/components/SiteStatusSegmented.vue:66 -#, fuzzy msgid "Maintenance mode disabled successfully" -msgstr "Disabled successfully" +msgstr "" #: src/views/site/components/SiteStatusSegmented.vue:53 -#, fuzzy msgid "Maintenance mode enabled successfully" -msgstr "Enabled successfully" +msgstr "" #: src/components/AutoCertForm/AutoCertForm.vue:52 -#, fuzzy msgid "" "Make sure you have configured a reverse proxy for .well-known directory to " "HTTPChallengePort before obtaining the certificate." msgstr "" -"Make sure you have configured a reverse proxy for .well-known directory to " -"HTTPChallengePort (default: 9180) before getting the certificate." #: src/routes/modules/config.ts:10 src/views/config/ConfigEditor.vue:115 #: src/views/config/ConfigEditor.vue:166 src/views/config/ConfigList.vue:72 msgid "Manage Configs" -msgstr "Manage Configs" +msgstr "" #: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:80 msgid "Manage Sites" -msgstr "Manage Sites" +msgstr "" #: src/routes/modules/streams.ts:10 src/views/stream/StreamList.vue:179 -#, fuzzy msgid "Manage Streams" -msgstr "Manage Sites" +msgstr "" #: src/routes/modules/user.ts:10 src/views/user/User.vue:10 msgid "Manage Users" -msgstr "Manage Users" +msgstr "" #: src/views/certificate/CertificateList/certColumns.tsx:31 -#, fuzzy msgid "Managed Certificate" -msgstr "Certificate is valid" +msgstr "" #: src/views/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:251 -#, fuzzy msgid "Manager Files" -msgstr "Manage Sites" +msgstr "" #: src/views/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:261 -#, fuzzy msgid "Manager Sleep" -msgstr "Manage Sites" +msgstr "" #: src/views/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:286 -#, fuzzy msgid "Manager Threshold" -msgstr "Manage Sites" +msgstr "" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:32 msgid "Manual" @@ -2541,9 +2417,8 @@ msgid "Max Attempts" msgstr "" #: src/views/dashboard/components/PerformanceStatisticsCard.vue:56 -#, fuzzy msgid "Max Concurrent Connections" -msgstr "Content" +msgstr "" #: src/views/dashboard/components/PerformanceStatisticsCard.vue:42 msgid "Max Requests Per Second" @@ -2558,9 +2433,8 @@ msgid "Maximum client request body size" msgstr "" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:49 -#, fuzzy msgid "Maximum number of concurrent connections" -msgstr "Content" +msgstr "" #: src/composables/usePerformanceMetrics.ts:174 #: src/views/dashboard/components/PerformanceTablesCard.vue:125 @@ -2578,11 +2452,11 @@ msgstr "" #: src/views/dashboard/ServerAnalytic.vue:222 #: src/views/dashboard/ServerAnalytic.vue:223 msgid "Memory" -msgstr "Memory" +msgstr "" #: src/views/dashboard/ServerAnalytic.vue:212 msgid "Memory and Storage" -msgstr "Memory and Storage" +msgstr "" #: src/views/dashboard/components/ResourceUsageCard.vue:51 msgid "Memory Usage (RSS)" @@ -2605,9 +2479,8 @@ msgid "Minutes" msgstr "" #: src/views/preference/tabs/OpenAISettings.vue:20 -#, fuzzy msgid "Model" -msgstr "Advance Mode" +msgstr "" #: src/components/ConfigHistory/ConfigHistory.vue:55 msgid "Modified At" @@ -2617,34 +2490,30 @@ msgstr "" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:498 #: src/views/config/ConfigList.vue:174 -#, fuzzy msgid "Modify" -msgstr "Modify Config" +msgstr "" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 -#, fuzzy +#: src/views/certificate/CertificateEditor.vue:85 msgid "Modify Certificate" -msgstr "Certificate Status" +msgstr "" #: src/views/site/site_add/SiteAdd.vue:136 msgid "Modify Config" -msgstr "Modify Config" +msgstr "" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:262 -#, fuzzy msgid "Modify Mode" -msgstr "Modify Config" +msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:51 -#, fuzzy msgid "Multi-line Directive" -msgstr "Single Directive" +msgstr "" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 @@ -2659,7 +2528,7 @@ msgstr "Single Directive" #: src/views/stream/components/StreamDuplicate.vue:71 #: src/views/stream/StreamList.vue:22 src/views/stream/StreamList.vue:260 msgid "Name" -msgstr "Name" +msgstr "" #: src/views/dashboard/NginxDashBoard.vue:173 msgid "Need to enable the stub_status module" @@ -2667,34 +2536,31 @@ msgstr "" #: src/views/dashboard/ServerAnalytic.vue:327 msgid "Network" -msgstr "Network" +msgstr "" #: src/views/dashboard/ServerAnalytic.vue:269 msgid "Network Statistics" -msgstr "Network Statistics" +msgstr "" #: src/views/dashboard/ServerAnalytic.vue:276 msgid "Network Total Receive" -msgstr "Network Total Receive" +msgstr "" #: src/views/dashboard/ServerAnalytic.vue:282 msgid "Network Total Send" -msgstr "Network Total Send" +msgstr "" #: src/views/install/components/InstallView.vue:107 -#, fuzzy msgid "New Installation" -msgstr "Install" +msgstr "" #: src/views/config/components/Rename.vue:74 -#, fuzzy msgid "New name" -msgstr "Username" +msgstr "" #: src/views/config/ConfigEditor.vue:322 -#, fuzzy msgid "New Path" -msgstr "Path" +msgstr "" #: src/views/system/Upgrade.vue:208 msgid "New version released" @@ -2705,7 +2571,7 @@ msgstr "" #: src/views/site/site_add/SiteAdd.vue:123 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214 msgid "Next" -msgstr "Next" +msgstr "" #: src/routes/modules/dashboard.ts:27 src/views/preference/Preference.vue:94 msgid "Nginx" @@ -2736,9 +2602,8 @@ msgid "Nginx conf no stream block" msgstr "" #: src/constants/errors/self_check.ts:14 -#, fuzzy msgid "Nginx conf not include conf.d directory" -msgstr "Configuration Name" +msgstr "" #: src/constants/errors/self_check.ts:6 msgid "Nginx conf not include sites-enabled" @@ -2749,30 +2614,25 @@ msgid "Nginx conf not include stream-enabled" msgstr "" #: src/constants/errors/backup.ts:19 -#, fuzzy msgid "Nginx config directory is not set" -msgstr "Configuration Name" +msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:138 -#, fuzzy msgid "Nginx configuration has been restored" -msgstr "Configuration Name" +msgstr "" #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:113 #: src/views/stream/components/StreamEditor.vue:74 -#, fuzzy msgid "Nginx Configuration Parse Error" -msgstr "Configuration Name" +msgstr "" #: src/views/preference/tabs/NginxSettings.vue:22 -#, fuzzy msgid "Nginx Configuration Path" -msgstr "Configuration Name" +msgstr "" #: src/views/preference/tabs/NginxSettings.vue:19 -#, fuzzy msgid "Nginx Configurations Directory" -msgstr "Configuration Name" +msgstr "" #: src/components/NginxControl/NginxControl.vue:64 msgid "Nginx Control" @@ -2807,14 +2667,13 @@ msgstr "" msgid "Nginx is running" msgstr "" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "" #: src/views/preference/tabs/NginxSettings.vue:25 -#, fuzzy msgid "Nginx Log Directory Whitelist" -msgstr "Configuration Name" +msgstr "" #: src/composables/usePerformanceMetrics.ts:154 #: src/views/dashboard/components/PerformanceTablesCard.vue:109 @@ -2831,18 +2690,16 @@ msgstr "" #: src/constants/errors/config.ts:5 src/constants/errors/site.ts:7 #: src/constants/errors/stream.ts:6 -#, fuzzy msgid "Nginx reload failed: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/views/environments/list/Environment.vue:41 msgid "Nginx reload operations have been dispatched to remote nodes" msgstr "" #: src/components/NginxControl/NginxControl.vue:26 -#, fuzzy msgid "Nginx reloaded successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/preference/tabs/NginxSettings.vue:43 msgid "Nginx Restart Command" @@ -2853,9 +2710,8 @@ msgid "Nginx restart operations have been dispatched to remote nodes" msgstr "" #: src/components/NginxControl/NginxControl.vue:40 -#, fuzzy msgid "Nginx restarted successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/preference/tabs/NginxSettings.vue:37 msgid "Nginx Test Config Command" @@ -2863,9 +2719,8 @@ msgstr "" #: src/constants/errors/config.ts:4 src/constants/errors/site.ts:6 #: src/constants/errors/stream.ts:5 -#, fuzzy msgid "Nginx test failed: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/views/dashboard/components/PerformanceTablesCard.vue:180 msgid "Nginx theoretical maximum performance" @@ -2876,16 +2731,14 @@ msgid "Nginx UI already installed" msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:142 -#, fuzzy msgid "Nginx UI configuration has been restored" -msgstr "Configuration Name" +msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:336 -#, fuzzy msgid "" -"Nginx UI configuration has been restored and will restart automatically in " -"a few seconds." -msgstr "Configuration Name" +"Nginx UI configuration has been restored and will restart automatically in a " +"few seconds." +msgstr "" #: src/components/ChatGPT/ChatGPT.vue:374 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:134 @@ -2904,13 +2757,12 @@ msgstr "Configuration Name" #: src/views/site/site_list/SiteList.vue:120 #: src/views/stream/StreamList.vue:237 msgid "No" -msgstr "No" +msgstr "" #: src/views/environments/group/columns.ts:21 #: src/views/environments/group/EnvGroup.vue:34 -#, fuzzy msgid "No Action" -msgstr "Action" +msgstr "" #: src/views/dashboard/NginxDashBoard.vue:180 msgid "No data" @@ -2921,38 +2773,32 @@ msgid "No records selected" msgstr "" #: src/views/preference/Preference.vue:64 -#, fuzzy msgid "Node" -msgstr "Username" +msgstr "" #: src/views/site/site_edit/components/RightPanel/Basic.vue:41 #: src/views/site/site_list/columns.tsx:66 #: src/views/stream/components/RightPanel/Basic.vue:77 #: src/views/stream/StreamList.vue:32 -#, fuzzy msgid "Node Group" -msgstr "Comments" +msgstr "" #: src/routes/modules/environments.ts:33 #: src/views/environments/group/EnvGroup.vue:10 -#, fuzzy msgid "Node Groups" -msgstr "Comments" +msgstr "" #: src/views/preference/tabs/NodeSettings.vue:15 -#, fuzzy msgid "Node name" -msgstr "Username" +msgstr "" #: src/views/preference/tabs/NodeSettings.vue:11 -#, fuzzy msgid "Node Secret" -msgstr "Username" +msgstr "" #: src/routes/modules/environments.ts:25 -#, fuzzy msgid "Nodes" -msgstr "Username" +msgstr "" #: src/views/certificate/CertificateList/certColumns.tsx:88 msgid "Not After" @@ -2960,11 +2806,11 @@ msgstr "" #: src/routes/modules/error.ts:8 msgid "Not Found" -msgstr "Not Found" +msgstr "" #: src/components/CertInfo/CertInfo.vue:41 msgid "Not Valid Before: %{date}" -msgstr "Not Valid Before: %{date}" +msgstr "" #: src/components/AutoCertForm/AutoCertForm.vue:38 #: src/views/certificate/DNSCredential.vue:49 @@ -2979,20 +2825,17 @@ msgid "" msgstr "" #: src/views/notification/Notification.vue:28 -#, fuzzy msgid "Notification" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/Notification.vue:131 #: src/routes/modules/notifications.ts:10 -#, fuzzy msgid "Notifications" -msgstr "Certificate is valid" +msgstr "" #: src/constants/errors/notification.ts:2 -#, fuzzy msgid "Notifier not found" -msgstr "File Not Found" +msgstr "" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:26 msgid "Number of concurrent worker processes, auto sets to CPU core count" @@ -3014,14 +2857,12 @@ msgid "Number of worker processes" msgstr "" #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185 -#, fuzzy msgid "Obtain certificate" -msgstr "Certificate is valid" +msgstr "" #: src/language/constants.ts:15 -#, fuzzy msgid "Obtaining certificate" -msgstr "Certificate is valid" +msgstr "" #: src/components/AutoCertForm/AutoCertForm.vue:94 msgid "OCSP Must Staple" @@ -3108,13 +2949,12 @@ msgid "Original name" msgstr "" #: src/views/system/Upgrade.vue:175 -#, fuzzy msgid "OS" -msgstr "OS:" +msgstr "" #: src/views/dashboard/ServerAnalytic.vue:189 msgid "OS:" -msgstr "OS:" +msgstr "" #: src/composables/usePerformanceMetrics.ts:144 #: src/views/dashboard/components/PerformanceTablesCard.vue:99 @@ -3143,13 +2983,12 @@ msgid "Overwrite exist file" msgstr "" #: src/views/preference/tabs/AppSettings.vue:14 -#, fuzzy msgid "Page Size" -msgstr "Manage Sites" +msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:77 msgid "Params" -msgstr "Params" +msgstr "" #: src/views/dashboard/components/ParamsOptimization.vue:109 #: src/views/dashboard/components/ParamsOptimization.vue:115 @@ -3169,16 +3008,15 @@ msgstr "" #: src/views/other/Login.vue:183 src/views/user/userColumns.tsx:18 msgid "Password" -msgstr "Password" +msgstr "" #: src/views/install/components/InstallForm.vue:98 msgid "Password (*)" -msgstr "Password (*)" +msgstr "" #: src/constants/errors/user.ts:2 -#, fuzzy msgid "Password incorrect" -msgstr "Password" +msgstr "" #: src/views/install/components/InstallForm.vue:42 msgid "Password length cannot exceed 20 characters" @@ -3189,7 +3027,7 @@ msgstr "" #: src/views/config/ConfigEditor.vue:316 #: src/views/nginx_log/NginxLogList.vue:41 msgid "Path" -msgstr "Path" +msgstr "" #: src/constants/errors/cert.ts:7 src/constants/errors/config.ts:2 msgid "Path: {0} is not under the nginx conf dir: {1}" @@ -3204,9 +3042,8 @@ msgid "Perform" msgstr "" #: src/language/constants.ts:29 -#, fuzzy msgid "Perform core upgrade error" -msgstr "Certificate has expired" +msgstr "" #: src/views/dashboard/components/ParamsOptimization.vue:121 msgid "Performance" @@ -3217,9 +3054,8 @@ msgid "Performance Metrics" msgstr "" #: src/views/dashboard/components/ParamsOptimization.vue:86 -#, fuzzy msgid "Performance settings saved successfully" -msgstr "Disabled successfully" +msgstr "" #: src/language/constants.ts:28 msgid "Performing core upgrade" @@ -3273,20 +3109,18 @@ msgstr "" #: src/components/Notification/notifications.ts:166 #: src/language/constants.ts:59 msgid "" -"Please generate new recovery codes in the preferences immediately to " -"prevent lockout." +"Please generate new recovery codes in the preferences immediately to prevent " +"lockout." msgstr "" #: src/views/config/components/Rename.vue:65 #: src/views/config/ConfigEditor.vue:302 -#, fuzzy msgid "Please input a filename" -msgstr "Please input your username!" +msgstr "" #: src/views/config/components/Mkdir.vue:56 -#, fuzzy msgid "Please input a folder name" -msgstr "Please input your username!" +msgstr "" #: src/views/stream/components/StreamDuplicate.vue:25 msgid "" @@ -3302,15 +3136,15 @@ msgstr "" #: src/views/install/components/InstallForm.vue:26 msgid "Please input your E-mail!" -msgstr "Please input your E-mail!" +msgstr "" #: src/views/install/components/InstallForm.vue:38 src/views/other/Login.vue:47 msgid "Please input your password!" -msgstr "Please input your password!" +msgstr "" #: src/views/install/components/InstallForm.vue:32 src/views/other/Login.vue:41 msgid "Please input your username!" -msgstr "Please input your username!" +msgstr "" #: src/views/install/components/InstallView.vue:48 #: src/views/system/Backup/SystemRestore.vue:10 @@ -3318,7 +3152,8 @@ msgid "Please log in." msgstr "" #: src/views/certificate/DNSCredential.vue:62 -msgid "Please note that the unit of time configurations below are all in seconds." +msgid "" +"Please note that the unit of time configurations below are all in seconds." msgstr "" #: src/views/install/components/InstallView.vue:100 @@ -3330,9 +3165,8 @@ msgid "Please save this security token, you will need it for restoration:" msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:107 -#, fuzzy msgid "Please select a backup file" -msgstr "Please input your username!" +msgstr "" #: src/views/environments/list/Environment.vue:112 #: src/views/environments/list/Environment.vue:35 @@ -3358,9 +3192,8 @@ msgstr "" #: src/views/environments/group/columns.ts:17 #: src/views/environments/group/EnvGroup.vue:26 -#, fuzzy msgid "Post-sync Action" -msgstr "Action" +msgstr "" #: src/views/environments/list/BatchUpgrader.vue:167 #: src/views/environments/list/BatchUpgrader.vue:220 @@ -3373,18 +3206,16 @@ msgid "Preference" msgstr "" #: src/language/constants.ts:8 -#, fuzzy msgid "Preparing lego configurations" -msgstr "Configurations" +msgstr "" #: src/views/dashboard/components/ProcessDistributionCard.vue:26 msgid "Process Distribution" msgstr "" #: src/views/dashboard/components/PerformanceTablesCard.vue:154 -#, fuzzy msgid "Process information" -msgstr "Base information" +msgstr "" #: src/language/constants.ts:3 msgid "Prohibit changing root password in demo" @@ -3396,7 +3227,7 @@ msgstr "" #: src/views/system/About.vue:51 msgid "Project Team" -msgstr "Project Team" +msgstr "" #: src/views/certificate/DNSCredential.vue:19 msgid "Provider" @@ -3418,12 +3249,12 @@ msgstr "" #: src/views/dashboard/ServerAnalytic.vue:37 #: src/views/dashboard/ServerAnalytic.vue:383 msgid "Reads" -msgstr "Reads" +msgstr "" #: src/views/dashboard/ServerAnalytic.vue:334 #: src/views/dashboard/ServerAnalytic.vue:35 msgid "Receive" -msgstr "Receive" +msgstr "" #: src/components/SelfCheck/SelfCheck.vue:24 msgid "Recheck" @@ -3435,18 +3266,16 @@ msgid "Recover" msgstr "" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:189 -#, fuzzy msgid "Recovered Successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/TwoFA/Authorization.vue:79 msgid "Recovery" msgstr "" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:68 -#, fuzzy msgid "Recovery Codes" -msgstr "Invalid E-mail!" +msgstr "" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:73 msgid "" @@ -3463,9 +3292,8 @@ msgid "Regenerate response" msgstr "" #: src/views/certificate/ACMEUser.vue:137 -#, fuzzy msgid "Register" -msgstr "Enable failed" +msgstr "" #: src/views/certificate/ACMEUser.vue:56 msgid "" @@ -3474,37 +3302,32 @@ msgid "" msgstr "" #: src/views/certificate/ACMEUser.vue:106 -#, fuzzy msgid "Register failed" -msgstr "Enable failed" +msgstr "" #: src/views/certificate/ACMEUser.vue:77 msgid "Register On Startup" msgstr "" #: src/views/preference/components/AuthSettings/AddPasskey.vue:25 -#, fuzzy msgid "Register passkey successfully" -msgstr "Enabled successfully" +msgstr "" #: src/views/certificate/ACMEUser.vue:104 -#, fuzzy msgid "Register successfully" -msgstr "Enabled successfully" +msgstr "" #: src/language/constants.ts:14 -#, fuzzy msgid "Registering user" -msgstr "Enable failed" +msgstr "" #: src/views/certificate/ACMEUser.vue:120 msgid "Registration Status" msgstr "" #: src/views/system/Upgrade.vue:226 -#, fuzzy msgid "Reinstall" -msgstr "Install" +msgstr "" #: src/views/system/Upgrade.vue:249 msgid "Release Note" @@ -3524,29 +3347,24 @@ msgid "Reload Nginx" msgstr "" #: src/constants/errors/nginx.ts:3 -#, fuzzy msgid "Reload nginx failed: {0}" -msgstr "Failed to enable %{msg}" +msgstr "" #: src/components/Notification/notifications.ts:10 -#, fuzzy msgid "Reload Nginx on %{node} failed, response: %{resp}" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:14 -#, fuzzy msgid "Reload Nginx on %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:9 -#, fuzzy msgid "Reload Remote Nginx Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:13 -#, fuzzy msgid "Reload Remote Nginx Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/EnvGroupTabs/EnvGroupTabs.vue:87 msgid "Reload request failed, please check your network connection" @@ -3566,14 +3384,12 @@ msgstr "" #: src/views/preference/components/AuthSettings/Passkey.vue:46 #: src/views/preference/tabs/AuthSettings.vue:51 -#, fuzzy msgid "Remove successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/Notification.vue:102 -#, fuzzy msgid "Removed successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/NgxConfigEditor/NgxUpstream.vue:126 #: src/views/config/components/ConfigName.vue:51 @@ -3581,110 +3397,90 @@ msgstr "Saved successfully" #: src/views/config/ConfigList.vue:181 #: src/views/site/site_edit/components/ConfigName/ConfigName.vue:44 #: src/views/stream/components/ConfigName.vue:44 -#, fuzzy msgid "Rename" -msgstr "Username" +msgstr "" #: src/components/Notification/notifications.ts:62 -#, fuzzy msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:66 -#, fuzzy msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:61 src/language/constants.ts:42 -#, fuzzy msgid "Rename Remote Config Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:65 src/language/constants.ts:41 -#, fuzzy msgid "Rename Remote Config Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:109 #: src/language/constants.ts:56 -#, fuzzy msgid "Rename Remote Site Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:113 #: src/language/constants.ts:55 -#, fuzzy msgid "Rename Remote Site Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:149 -#, fuzzy msgid "Rename Remote Stream Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:153 -#, fuzzy msgid "Rename Remote Stream Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:110 -#, fuzzy msgid "Rename site %{name} to %{new_name} on %{node} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:114 -#, fuzzy msgid "Rename site %{name} to %{new_name} on %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:150 -#, fuzzy msgid "Rename stream %{name} to %{new_name} on %{node} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:154 -#, fuzzy msgid "Rename stream %{name} to %{new_name} on %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/config/components/Rename.vue:43 -#, fuzzy msgid "Rename successfully" -msgstr "Enabled successfully" +msgstr "" #: src/views/config/components/ConfigName.vue:30 #: src/views/site/site_edit/components/ConfigName/ConfigName.vue:27 #: src/views/stream/components/ConfigName.vue:27 -#, fuzzy msgid "Renamed successfully" -msgstr "Enabled successfully" +msgstr "" #: src/views/certificate/components/RenewCert.vue:41 #: src/views/certificate/components/RenewCert.vue:45 -#, fuzzy msgid "Renew Certificate" -msgstr "Certificate is valid" +msgstr "" #: src/language/constants.ts:36 -#, fuzzy msgid "Renew Certificate Error" -msgstr "Certificate is valid" +msgstr "" #: src/language/constants.ts:35 -#, fuzzy msgid "Renew Certificate Success" -msgstr "Certificate is valid" +msgstr "" #: src/views/certificate/components/RenewCert.vue:27 #: src/views/certificate/components/WildcardCertificate.vue:46 -#, fuzzy msgid "Renew successfully" -msgstr "Enabled successfully" +msgstr "" #: src/views/dashboard/components/PerformanceTablesCard.vue:141 -#, fuzzy msgid "Request statistics" -msgstr "Network Statistics" +msgstr "" #: src/constants/errors/crypto.ts:4 msgid "Request timeout" @@ -3729,24 +3525,20 @@ msgid "Restart Nginx" msgstr "" #: src/components/Notification/notifications.ts:18 -#, fuzzy msgid "Restart Nginx on %{node} failed, response: %{resp}" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:22 -#, fuzzy msgid "Restart Nginx on %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:17 -#, fuzzy msgid "Restart Remote Nginx Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:21 -#, fuzzy msgid "Restart Remote Nginx Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/EnvGroupTabs/EnvGroupTabs.vue:107 msgid "Restart request failed, please check your network connection" @@ -3757,26 +3549,22 @@ msgid "Restarting" msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:135 -#, fuzzy msgid "Restore completed successfully" -msgstr "Disabled successfully" +msgstr "" #: src/views/install/components/InstallView.vue:110 -#, fuzzy msgid "Restore from Backup" -msgstr "Created at" +msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:223 #: src/components/SystemRestore/SystemRestoreContent.vue:300 -#, fuzzy msgid "Restore Nginx Configuration" -msgstr "Configuration Name" +msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:234 #: src/components/SystemRestore/SystemRestoreContent.vue:311 -#, fuzzy msgid "Restore Nginx UI Configuration" -msgstr "Configuration Name" +msgstr "" #: src/components/ConfigHistory/DiffViewer.vue:412 #: src/components/ConfigHistory/DiffViewer.vue:425 @@ -3789,14 +3577,12 @@ msgid "Revoke" msgstr "" #: src/components/AutoCertForm/AutoCertForm.vue:113 -#, fuzzy msgid "Revoke Old Certificate" -msgstr "Certificate is valid" +msgstr "" #: src/views/certificate/components/RemoveCert.vue:109 -#, fuzzy msgid "Revoke this certificate" -msgstr "Certificate is valid" +msgstr "" #: src/views/certificate/components/RemoveCert.vue:117 msgid "" @@ -3817,9 +3603,8 @@ msgid "RPID" msgstr "" #: src/views/preference/tabs/ServerSettings.vue:25 -#, fuzzy msgid "Run Mode" -msgstr "Advance Mode" +msgstr "" #: src/components/NginxControl/NginxControl.vue:68 msgid "Running" @@ -3829,7 +3614,7 @@ msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -3839,78 +3624,69 @@ msgstr "" #: src/views/stream/components/ConfigName.vue:52 #: src/views/stream/components/StreamEditor.vue:113 msgid "Save" -msgstr "Save" +msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:112 msgid "Save Directive" -msgstr "Save Directive" +msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:45 #: src/views/site/site_add/SiteAdd.vue:38 msgid "Save error %{msg}" -msgstr "Save error %{msg}" +msgstr "" #: src/components/Notification/notifications.ts:117 #: src/language/constants.ts:48 -#, fuzzy msgid "Save Remote Site Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:121 #: src/language/constants.ts:47 -#, fuzzy msgid "Save Remote Site Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:157 -#, fuzzy msgid "Save Remote Stream Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:161 -#, fuzzy msgid "Save Remote Stream Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:118 -#, fuzzy msgid "Save site %{name} to %{node} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:122 -#, fuzzy msgid "Save site %{name} to %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:158 -#, fuzzy msgid "Save stream %{name} to %{node} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:162 -#, fuzzy msgid "Save stream %{name} to %{node} successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 -#, fuzzy msgid "Save successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:43 #: src/views/config/ConfigEditor.vue:194 src/views/site/site_add/SiteAdd.vue:29 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:40 msgid "Saved successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/preference/components/AuthSettings/TOTP.vue:69 msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "" -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "" @@ -3924,18 +3700,16 @@ msgid "Security Token" msgstr "" #: src/views/system/Backup/BackupCreator.vue:94 -#, fuzzy msgid "Security Token Information" -msgstr "Invalid E-mail!" +msgstr "" #: src/views/environments/group/EnvGroup.vue:29 msgid "Select an action after sync" msgstr "" #: src/components/StdDesign/StdDataEntry/components/StdSelector.vue:189 -#, fuzzy msgid "Selector" -msgstr "Directive" +msgstr "" #: src/components/SelfCheck/SelfCheck.vue:16 src/routes/modules/system.ts:19 msgid "Self Check" @@ -3949,16 +3723,15 @@ msgstr "" #: src/views/dashboard/ServerAnalytic.vue:344 #: src/views/dashboard/ServerAnalytic.vue:35 msgid "Send" -msgstr "Send" +msgstr "" #: src/routes/modules/dashboard.ts:19 src/views/preference/Preference.vue:46 -#, fuzzy msgid "Server" -msgstr "Server Info" +msgstr "" #: src/views/dashboard/ServerAnalytic.vue:175 msgid "Server Info" -msgstr "Server Info" +msgstr "" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:106 msgid "Server Names Hash Bucket Size" @@ -3970,16 +3743,15 @@ msgstr "" #: src/views/site/site_edit/components/Cert/ObtainCert.vue:105 msgid "server_name not found in directives" -msgstr "server_name not found in directives" +msgstr "" #: src/constants/errors/nginx_log.ts:3 msgid "ServerIdx out of range" msgstr "" #: src/constants/errors/user.ts:12 -#, fuzzy msgid "Session not found" -msgstr "File Not Found" +msgstr "" #: src/views/preference/tabs/CertSettings.vue:36 msgid "" @@ -3988,9 +3760,8 @@ msgid "" msgstr "" #: src/views/site/components/SiteStatusSegmented.vue:89 -#, fuzzy msgid "set to maintenance mode" -msgstr "Certificate is valid" +msgstr "" #: src/language/constants.ts:11 msgid "Setting DNS01 challenge provider" @@ -4006,14 +3777,14 @@ msgstr "" #: src/constants/errors/nginx_log.ts:8 msgid "" -"Settings.NginxLogSettings.AccessLogPath is empty, refer to " -"https://nginxui.com/guide/config-nginx.html for more information" +"Settings.NginxLogSettings.AccessLogPath is empty, refer to https://nginxui." +"com/guide/config-nginx.html for more information" msgstr "" #: src/constants/errors/nginx_log.ts:7 msgid "" -"Settings.NginxLogSettings.ErrorLogPath is empty, refer to " -"https://nginxui.com/guide/config-nginx.html for more information" +"Settings.NginxLogSettings.ErrorLogPath is empty, refer to https://nginxui." +"com/guide/config-nginx.html for more information" msgstr "" #: src/views/install/components/InstallView.vue:64 @@ -4034,56 +3805,47 @@ msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:48 msgid "Single Directive" -msgstr "Single Directive" +msgstr "" #: src/views/site/site_add/SiteAdd.vue:129 -#, fuzzy msgid "Site Config Created Successfully" -msgstr "Domain Config Created Successfully" +msgstr "" #: src/constants/errors/site.ts:4 -#, fuzzy msgid "Site is enabled" -msgstr "Disabled" +msgstr "" #: src/constants/errors/site.ts:5 -#, fuzzy msgid "Site is in maintenance mode" -msgstr "Disabled" +msgstr "" #: src/routes/modules/nginx_log.ts:31 -#, fuzzy msgid "Site Logs" -msgstr "Sites List" +msgstr "" #: src/constants/errors/site.ts:2 -#, fuzzy msgid "Site not found" -msgstr "File Not Found" +msgstr "" #: src/components/SelfCheck/tasks/backend/index.ts:5 -#, fuzzy msgid "Sites Directory" -msgstr "Directive" +msgstr "" #: src/routes/modules/sites.ts:19 msgid "Sites List" -msgstr "Sites List" +msgstr "" #: src/constants/errors/self_check.ts:10 -#, fuzzy msgid "Sites-available directory not exist" -msgstr "Directive" +msgstr "" #: src/constants/errors/self_check.ts:11 -#, fuzzy msgid "Sites-enabled directory not exist" -msgstr "Directive" +msgstr "" #: src/views/preference/tabs/NodeSettings.vue:23 -#, fuzzy msgid "Skip Installation" -msgstr "Install" +msgstr "" #: src/views/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:325 msgid "Sleep time between cache loader iterations" @@ -4093,35 +3855,30 @@ msgstr "" msgid "Sleep time between cache manager iterations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:213 -#, fuzzy +#: src/views/certificate/CertificateEditor.vue:213 msgid "SSL Certificate Content" -msgstr "Certificate Status" +msgstr "" #: src/constants/errors/system.ts:8 msgid "SSL certificate file must be under Nginx configuration directory: {0}" msgstr "" #: src/constants/errors/system.ts:6 -#, fuzzy msgid "SSL certificate file not found" -msgstr "Certificate Status" +msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:227 -#, fuzzy +#: src/views/certificate/CertificateEditor.vue:227 msgid "SSL Certificate Key Content" -msgstr "Certificate Status" +msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:192 -#, fuzzy +#: src/views/certificate/CertificateEditor.vue:192 msgid "SSL Certificate Key Path" -msgstr "Certificate Status" +msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 -#, fuzzy msgid "SSL Certificate Path" -msgstr "Certificate Status" +msgstr "" #: src/constants/errors/system.ts:4 msgid "SSL certificate path is required when HTTPS is enabled" @@ -4132,30 +3889,26 @@ msgid "SSL key file must be under Nginx configuration directory: {0}" msgstr "" #: src/constants/errors/system.ts:7 -#, fuzzy msgid "SSL key file not found" -msgstr "File Not Found" +msgstr "" #: src/views/preference/tabs/ServerSettings.vue:41 -#, fuzzy msgid "SSL Key Path" -msgstr "Certificate Status" +msgstr "" #: src/constants/errors/system.ts:5 msgid "SSL key path is required when HTTPS is enabled" msgstr "" #: src/views/other/Login.vue:197 -#, fuzzy msgid "SSO Login" -msgstr "Login" +msgstr "" #: src/views/environments/list/BatchUpgrader.vue:164 #: src/views/environments/list/BatchUpgrader.vue:214 #: src/views/system/Upgrade.vue:191 src/views/system/Upgrade.vue:239 -#, fuzzy msgid "Stable" -msgstr "Enabled" +msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:246 #: src/components/SystemRestore/SystemRestoreContent.vue:323 @@ -4168,7 +3921,7 @@ msgstr "" #: src/views/site/site_edit/components/RightPanel/Basic.vue:28 #: src/views/site/site_list/columns.tsx:90 src/views/stream/StreamList.vue:49 msgid "Status" -msgstr "Status" +msgstr "" #: src/components/NginxControl/NginxControl.vue:83 msgid "Stopped" @@ -4177,32 +3930,27 @@ msgstr "" #: src/views/dashboard/ServerAnalytic.vue:250 #: src/views/dashboard/ServerAnalytic.vue:251 msgid "Storage" -msgstr "Storage" +msgstr "" #: src/constants/errors/stream.ts:4 -#, fuzzy msgid "Stream is enabled" -msgstr "Disabled" +msgstr "" #: src/constants/errors/stream.ts:2 -#, fuzzy msgid "Stream not found" -msgstr "File Not Found" +msgstr "" #: src/components/SelfCheck/tasks/backend/index.ts:10 -#, fuzzy msgid "Streams Directory" -msgstr "Directive" +msgstr "" #: src/constants/errors/self_check.ts:12 -#, fuzzy msgid "Streams-available directory not exist" -msgstr "Directive" +msgstr "" #: src/constants/errors/self_check.ts:13 -#, fuzzy msgid "Streams-enabled directory not exist" -msgstr "Directive" +msgstr "" #: src/views/preference/tabs/NginxSettings.vue:10 msgid "Stub Status Port" @@ -4215,9 +3963,9 @@ msgstr "" #: src/components/SelfCheck/tasks/frontend/websocket.ts:6 msgid "" "Support communication with the backend through the WebSocket protocol. If " -"your Nginx UI is being used via an Nginx reverse proxy, please refer to " -"this link to write the corresponding configuration file: " -"https://nginxui.com/guide/nginx-proxy-example.html" +"your Nginx UI is being used via an Nginx reverse proxy, please refer to this " +"link to write the corresponding configuration file: https://nginxui.com/" +"guide/nginx-proxy-example.html" msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:197 @@ -4228,7 +3976,7 @@ msgstr "" #: src/views/dashboard/ServerAnalytic.vue:236 #: src/views/dashboard/ServerAnalytic.vue:237 msgid "Swap" -msgstr "Swap" +msgstr "" #: src/components/SwitchAppearance/SwitchAppearance.vue:13 msgid "Switch to dark theme" @@ -4243,49 +3991,40 @@ msgid "Sync" msgstr "" #: src/views/certificate/CertificateList/certColumns.tsx:30 -#, fuzzy msgid "Sync Certificate" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:46 -#, fuzzy msgid "Sync Certificate %{cert_name} to %{env_name} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:50 -#, fuzzy msgid "Sync Certificate %{cert_name} to %{env_name} successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:45 src/language/constants.ts:39 -#, fuzzy msgid "Sync Certificate Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:49 src/language/constants.ts:38 -#, fuzzy msgid "Sync Certificate Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:54 -#, fuzzy msgid "Sync config %{config_name} to %{env_name} failed" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:58 -#, fuzzy msgid "Sync config %{config_name} to %{env_name} successfully" -msgstr "Saved successfully" +msgstr "" #: src/components/Notification/notifications.ts:53 src/language/constants.ts:45 -#, fuzzy msgid "Sync Config Error" -msgstr "Certificate is valid" +msgstr "" #: src/components/Notification/notifications.ts:57 src/language/constants.ts:44 -#, fuzzy msgid "Sync Config Success" -msgstr "Certificate is valid" +msgstr "" #: src/components/EnvGroupTabs/EnvGroupTabs.vue:125 #: src/views/environments/group/EnvGroup.vue:18 @@ -4296,14 +4035,12 @@ msgstr "" #: src/views/site/site_edit/components/RightPanel/Basic.vue:71 #: src/views/stream/components/RightPanel/Basic.vue:105 #: src/views/stream/components/RightPanel/Basic.vue:92 -#, fuzzy msgid "Sync strategy" -msgstr "Certificate is valid" +msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:206 -#, fuzzy +#: src/views/certificate/CertificateEditor.vue:206 msgid "Sync to" -msgstr "Certificate is valid" +msgstr "" #: src/views/site/site_edit/components/RightPanel/Basic.vue:56 #: src/views/stream/components/RightPanel/Basic.vue:90 @@ -4332,14 +4069,12 @@ msgstr "" #: src/views/install/components/InstallView.vue:44 #: src/views/system/Backup/SystemRestore.vue:6 -#, fuzzy msgid "System restored successfully." -msgstr "Saved successfully" +msgstr "" #: src/constants/errors/self_check.ts:2 -#, fuzzy msgid "Task not found" -msgstr "File Not Found" +msgstr "" #: src/views/preference/components/ExternalNotify/telegram.ts:5 msgid "Telegram" @@ -4348,25 +4083,22 @@ msgstr "" #: src/routes/modules/terminal.ts:10 src/views/preference/Preference.vue:76 #: src/views/terminal/Terminal.vue:129 msgid "Terminal" -msgstr "Terminal" +msgstr "" #: src/views/preference/tabs/TerminalSettings.vue:10 msgid "Terminal Start Command" msgstr "" #: src/components/AutoCertForm/AutoCertForm.vue:48 -#, fuzzy 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 "" -"The certificate for the domain will be checked every hour, and will be " -"renewed if it has been more than 1 month since it was last issued." #: src/views/install/components/InstallForm.vue:48 msgid "The filename cannot contain the following characters: %{c}" -msgstr "The filename cannot contain the following characters: %{c}" +msgstr "" #: src/views/preference/tabs/NodeSettings.vue:37 msgid "" @@ -4374,20 +4106,17 @@ msgid "" "dashes, colons, and dots." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:216 -#, fuzzy +#: src/views/certificate/CertificateEditor.vue:216 msgid "The input is not a SSL Certificate" -msgstr "Certificate Status" +msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:230 -#, fuzzy +#: src/views/certificate/CertificateEditor.vue:230 msgid "The input is not a SSL Certificate Key" -msgstr "Certificate Status" +msgstr "" #: src/constants/errors/nginx_log.ts:2 msgid "" -"The log path is not under the paths in " -"settings.NginxSettings.LogDirWhiteList" +"The log path is not under the paths in settings.NginxSettings.LogDirWhiteList" msgstr "" #: src/views/preference/tabs/OpenAISettings.vue:23 @@ -4398,7 +4127,8 @@ msgid "" msgstr "" #: src/views/preference/tabs/OpenAISettings.vue:90 -msgid "The model used for code completion, if not set, the chat model will be used." +msgid "" +"The model used for code completion, if not set, the chat model will be used." msgstr "" #: src/views/preference/tabs/NodeSettings.vue:18 @@ -4408,19 +4138,16 @@ msgid "" msgstr "" #: src/views/site/site_add/SiteAdd.vue:95 -#, fuzzy msgid "The parameter of server_name is required" -msgstr "server_name parameter is required" +msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:181 -#, fuzzy +#: src/views/certificate/CertificateEditor.vue:181 msgid "The path exists, but the file is not a certificate" -msgstr "Certificate Status" +msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:196 -#, fuzzy +#: src/views/certificate/CertificateEditor.vue:196 msgid "The path exists, but the file is not a private key" -msgstr "Certificate Status" +msgstr "" #: src/views/preference/tabs/NodeSettings.vue:49 msgid "" @@ -4436,13 +4163,10 @@ msgid "" msgstr "" #: src/components/AutoCertForm/AutoCertForm.vue:43 -#, fuzzy msgid "" "The server_name in the current configuration must be the domain name you " "need to get the certificate, supportmultiple domains." msgstr "" -"Note: The server_name in the current configuration must be the domain name " -"you need to get the certificate." #: src/views/preference/tabs/CertSettings.vue:22 #: src/views/preference/tabs/HTTPSettings.vue:14 @@ -4455,9 +4179,8 @@ msgid "The url is invalid." msgstr "" #: src/language/constants.ts:2 -#, fuzzy msgid "The username or password is incorrect" -msgstr "Password" +msgstr "" #: src/views/dashboard/components/PerformanceTablesCard.vue:184 msgid "Theoretical maximum concurrent connections:" @@ -4474,17 +4197,17 @@ msgid "" "lose access to your account." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 msgid "This Auto Cert item is invalid, please remove it." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "" @@ -4502,7 +4225,8 @@ msgid "This field should not be empty" msgstr "" #: src/constants/form_errors.ts:6 -msgid "This field should only contain letters, unicode characters, numbers, and -_." +msgid "" +"This field should only contain letters, unicode characters, numbers, and -_." msgstr "" #: src/views/dashboard/NginxDashBoard.vue:153 @@ -4542,9 +4266,9 @@ msgid "" msgstr "" #: src/views/environments/list/BatchUpgrader.vue:182 -#, fuzzy -msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}." -msgstr "Saved successfully" +msgid "" +"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}." +msgstr "" #: src/views/preference/tabs/AuthSettings.vue:124 msgid "Throttle" @@ -4587,8 +4311,8 @@ msgstr "" #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:15 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 " +"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 "" @@ -4600,9 +4324,8 @@ msgid "" msgstr "" #: src/views/dashboard/NginxDashBoard.vue:57 -#, fuzzy msgid "Toggle failed" -msgstr "Enable failed" +msgstr "" #: src/views/preference/tabs/OpenAISettings.vue:61 msgid "Token is not valid" @@ -4675,9 +4398,8 @@ msgid "Unknown issue" msgstr "" #: src/views/preference/components/AuthSettings/Passkey.vue:39 -#, fuzzy msgid "Update successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/certificate/ACMEUser.vue:88 #: src/views/certificate/DNSCredential.vue:27 @@ -4689,12 +4411,11 @@ msgstr "Saved successfully" #: src/views/stream/components/RightPanel/Basic.vue:73 #: src/views/stream/StreamList.vue:69 src/views/user/userColumns.tsx:54 msgid "Updated at" -msgstr "Updated at" +msgstr "" #: src/components/StdDesign/StdDataDisplay/methods/sortable.ts:121 -#, fuzzy msgid "Updated successfully" -msgstr "Saved successfully" +msgstr "" #: src/routes/modules/system.ts:33 #: src/views/environments/list/Environment.vue:107 @@ -4704,14 +4425,12 @@ msgid "Upgrade" msgstr "" #: src/views/environments/list/BatchUpgrader.vue:137 -#, fuzzy -msgid "Upgraded Nginx UI on %{node} successfully 🎉" -msgstr "Saved successfully" +msgid "Upgraded Nginx UI on %{node} successfully " +msgstr "" #: src/language/constants.ts:30 -#, fuzzy msgid "Upgraded successfully" -msgstr "Saved successfully" +msgstr "" #: src/views/environments/list/BatchUpgrader.vue:88 #: src/views/system/Upgrade.vue:77 @@ -4724,7 +4443,7 @@ msgstr "" #: src/views/dashboard/ServerAnalytic.vue:179 msgid "Uptime:" -msgstr "Uptime:" +msgstr "" #: src/views/environments/list/envColumns.tsx:19 msgid "URL" @@ -4743,14 +4462,12 @@ msgid "Use Temporary Path" msgstr "" #: src/components/ChatGPT/ChatGPT.vue:333 -#, fuzzy msgid "User" -msgstr "Username" +msgstr "" #: src/constants/errors/user.ts:3 -#, fuzzy msgid "User banned" -msgstr "Username" +msgstr "" #: src/constants/errors/user.ts:8 msgid "User not enabled otp as 2fa" @@ -4758,18 +4475,17 @@ msgstr "" #: src/views/other/Login.vue:173 src/views/user/userColumns.tsx:9 msgid "Username" -msgstr "Username" +msgstr "" #: src/views/install/components/InstallForm.vue:88 msgid "Username (*)" -msgstr "Username (*)" +msgstr "" #: src/components/CertInfo/CertInfo.vue:24 #: src/views/certificate/ACMEUser.vue:124 #: src/views/certificate/CertificateList/certColumns.tsx:78 -#, fuzzy msgid "Valid" -msgstr "Invalid E-mail!" +msgstr "" #: src/views/dashboard/components/PerformanceTablesCard.vue:21 msgid "Value" @@ -4791,33 +4507,28 @@ msgstr "" #: src/components/StdDesign/StdDataDisplay/StdTable.vue:488 #: src/views/nginx_log/NginxLogList.vue:97 #: src/views/site/site_edit/components/ConfigTemplate/ConfigTemplate.vue:83 -#, fuzzy msgid "View" -msgstr "Basic Mode" +msgstr "" #: src/components/Notification/Notification.vue:203 -#, fuzzy msgid "View all notifications" -msgstr "Certificate is valid" +msgstr "" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151 msgid "View Details" msgstr "" #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:262 -#, fuzzy msgid "View Mode" -msgstr "Basic Mode" +msgstr "" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:134 -#, fuzzy msgid "View Recovery Codes" -msgstr "Invalid E-mail!" +msgstr "" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:70 -#, fuzzy msgid "Viewed" -msgstr "Basic Mode" +msgstr "" #: src/composables/usePerformanceMetrics.ts:114 #: src/views/dashboard/components/PerformanceTablesCard.vue:73 @@ -4829,7 +4540,7 @@ msgstr "" #: src/views/preference/components/AuthSettings/AddPasskey.vue:82 #: src/views/system/Backup/BackupCreator.vue:138 msgid "Warning" -msgstr "Warning" +msgstr "" #: src/components/SystemRestore/SystemRestoreContent.vue:178 #: src/components/SystemRestore/SystemRestoreContent.vue:255 @@ -4847,8 +4558,8 @@ msgstr "" #: src/views/site/site_edit/components/Cert/ObtainCert.vue:140 msgid "" -"We will remove the HTTPChallenge configuration from this file and reload " -"the Nginx. Are you sure you want to continue?" +"We will remove the HTTPChallenge configuration from this file and reload the " +"Nginx. Are you sure you want to continue?" msgstr "" #: src/views/preference/tabs/AuthSettings.vue:97 @@ -4888,9 +4599,8 @@ msgid "Whether to use a temporary path when writing temporary files" msgstr "" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:48 -#, fuzzy msgid "Worker Connections" -msgstr "Content" +msgstr "" #: src/composables/usePerformanceMetrics.ts:55 #: src/views/dashboard/components/ConnectionMetricsCard.vue:48 @@ -4911,16 +4621,15 @@ msgstr "" #: src/views/dashboard/ServerAnalytic.vue:37 #: src/views/dashboard/ServerAnalytic.vue:373 msgid "Writes" -msgstr "Writes" +msgstr "" #: src/language/constants.ts:17 msgid "Writing certificate private key to disk" msgstr "" #: src/language/constants.ts:16 -#, fuzzy msgid "Writing certificate to disk" -msgstr "Certificate is valid" +msgstr "" #: src/components/EnvGroupTabs/EnvGroupTabs.vue:133 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:145 @@ -4929,12 +4638,12 @@ msgstr "Certificate is valid" #: src/views/preference/tabs/AuthSettings.vue:163 #: src/views/preference/tabs/CertSettings.vue:72 msgid "Yes" -msgstr "Yes" +msgstr "" #: src/views/terminal/Terminal.vue:135 msgid "" -"You are accessing this terminal over an insecure HTTP connection on a " -"non-localhost domain. This may expose sensitive information." +"You are accessing this terminal over an insecure HTTP connection on a non-" +"localhost domain. This may expose sensitive information." msgstr "" #: src/views/system/Upgrade.vue:202 @@ -4960,7 +4669,8 @@ msgid "" msgstr "" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:81 -msgid "You have not enabled 2FA yet. Please enable 2FA to generate recovery codes." +msgid "" +"You have not enabled 2FA yet. Please enable 2FA to generate recovery codes." msgstr "" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:94 @@ -4981,140 +4691,3 @@ msgstr "" #: src/views/preference/components/AuthSettings/Passkey.vue:75 msgid "Your passkeys" msgstr "" - -#, fuzzy -#~ msgid "Format error %{msg}" -#~ msgstr "Save error %{msg}" - -#, fuzzy -#~ msgid "Access Token" -#~ msgstr "Sites List" - -#, fuzzy -#~ msgid "Server URL" -#~ msgstr "Server Info" - -#, fuzzy -#~ msgid "Do you want to disable this site?" -#~ msgstr "Are you sure you want to remove this directive?" - -#, fuzzy -#~ msgid "Created At" -#~ msgstr "Created at" - -#, fuzzy -#~ msgid "Deploy %{conf_name} to %{node_name} successfully" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ msgid "Deploy successfully" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ msgid "Disable site %{site} on %{node} error, response: %{resp}" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ 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] "Are you sure you want to remove this directive?" -#~ msgstr[1] "Are you sure you want to remove this directive?" - -#, fuzzy -#~ msgid "Duplicate %{conf_name} to %{node_name} successfully" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ msgid "Duplicate successfully" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ msgid "Enable %{conf_name} in %{node_name} successfully" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ msgid "Enable successfully" -#~ msgstr "Enabled successfully" - -#, fuzzy -#~ msgid "Please upgrade the remote Nginx UI to the latest version" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ msgid "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ msgid "Save site %{site} to %{node} error, response: %{resp}" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ msgid "" -#~ "Sync Certificate %{cert_name} to %{env_name} failed, please upgrade the " -#~ "remote Nginx UI to the latest version" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ msgid "Sync config %{config_name} to %{env_name} failed, response: %{resp}" -#~ msgstr "Saved successfully" - -#~ msgid "Server error" -#~ msgstr "Server error" - -#, fuzzy -#~ msgid "" -#~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, please upgrade " -#~ "the remote Nginx UI to the latest version" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ msgid "Server Name" -#~ msgstr "Server Info" - -#, fuzzy -#~ msgid "Enable 2FA" -#~ msgstr "Enabled" - -#, fuzzy -#~ msgid "Rename " -#~ msgstr "Username" - -#~ msgid "Certificate is valid" -#~ msgstr "Certificate is valid" - -#~ msgid "Intermediate Certification Authorities: %{issuer}" -#~ msgstr "Intermediate Certification Authorities: %{issuer}" - -#, fuzzy -#~ msgid "Subject Name: %{subject}" -#~ msgstr "Subject Name: %{name}" - -#, fuzzy -#~ msgid "Save Successfully" -#~ msgstr "Saved successfully" - -#, fuzzy -#~ msgid "Table" -#~ msgstr "Enabled" - -#, fuzzy -#~ msgid "Config Name" -#~ msgstr "Configuration Name" - -#, fuzzy -#~ msgid "Inspect Configurations" -#~ msgstr "Edit Configuration" - -#~ msgid "server_name parameters more than one" -#~ msgstr "server_name parameters more than one" - -#~ msgid "404 Not Found" -#~ msgstr "404 Not Found" diff --git a/app/src/language/es/app.po b/app/src/language/es/app.po index cb749160..d07faadd 100644 --- a/app/src/language/es/app.po +++ b/app/src/language/es/app.po @@ -16,6 +16,102 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.6.2\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "" +"[Nginx UI] Usuario ACME: %{name}, Correo electrónico: %{email}, Directorio " +"CA: %{caDir}" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "" +"[Nginx UI] Haciendo copia de seguridad del certificado actual para su " +"posterior revocación" + +#: src/language/generate.ts:28 +#, fuzzy +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "Limpiado exitoso" + +#: src/language/generate.ts:8 +#, fuzzy +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "Nginx reiniciado con éxito" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "" +"[Nginx UI] El certificado se utilizó para el servidor, recargando el " +"certificado TLS del servidor" + +#: src/language/generate.ts:24 +#, fuzzy +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "La creación de un cliente facilita la comunicación con el servidor CA" + +#: src/language/generate.ts:12 +#, fuzzy +msgid "[Nginx UI] Environment variables cleaned" +msgstr "Variables de entorno limpiadas" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "[Nginx UI] Finalizado" + +#: src/language/generate.ts:4 +#, fuzzy +msgid "[Nginx UI] Issued certificate successfully" +msgstr "Certificado emitido con éxito" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "[Nginx UI] Obteniendo certificado" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "[Nginx UI] Preparándose para la revocación del certificado" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "[Nginx UI] Preparando configuraciones de lego" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "[Nginx UI] Recargando nginx" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "[Nginx UI] Revocación completada" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "[Nginx UI] Revocando certificado" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "[Nginx UI] Revocando certificado antiguo" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "[Nginx UI] Configurando el proveedor de desafío DNS01" + +#: src/language/generate.ts:6 +#, fuzzy +msgid "[Nginx UI] Setting environment variables" +msgstr "Configuración de variables de entorno" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "[Nginx UI] Configurando el proveedor de desafío HTTP01" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "[Nginx UI] Escribiendo la clave privada del certificado en el disco" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "[Nginx UI] Escribiendo certificado en el disco" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "2FA" @@ -108,7 +204,7 @@ msgstr "Agregar Stream" msgid "Added successfully" msgstr "Agregado exitoso" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 msgid "Additional" msgstr "Adicional" @@ -137,7 +233,7 @@ msgstr "Todos los códigos de recuperación han sido utilizados" msgid "API Base Url" msgstr "URL Base de la API" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" msgstr "Documento de la API" @@ -285,7 +381,7 @@ msgstr "Automático" msgid "auto = CPU cores" msgstr "auto = núcleos de CPU" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "Actualización automática" @@ -305,11 +401,9 @@ msgstr "\"Reinicio Automático\"" msgid "Automatically indexed from site and stream configurations." msgstr "\"Indexado automáticamente desde configuraciones de sitio y transmisión.\"" -#: src/views/certificate/components/CertificateEditor.vue:259 -#: src/views/config/ConfigEditor.vue:266 -#: src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 -#: src/views/nginx_log/NginxLog.vue:173 +#: src/views/certificate/CertificateEditor.vue:259 +#: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -524,42 +618,40 @@ msgid "Certificate %{name} will expire in 1 day" msgstr "El certificado %{name} expirará en 1 día" #: src/constants/errors/cert.ts:4 -#, fuzzy msgid "Certificate decode error" -msgstr "Error de Certificado de Sincronización" +msgstr "Error de decodificación del certificado" #: src/components/Notification/notifications.ts:29 -#, fuzzy msgid "Certificate Expiration Notice" -msgstr "Plantillas de configuración" +msgstr "Aviso de caducidad del certificado" #: src/components/Notification/notifications.ts:25 -#, fuzzy msgid "Certificate Expired" -msgstr "Lista de Certificados" +msgstr "Certificado caducado" #: src/components/Notification/notifications.ts:33 #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 -#, fuzzy msgid "Certificate Expiring Soon" -msgstr "El certificado expiró" +msgstr "Certificado a punto de expirar" + +#: src/language/generate.ts:5 +#, fuzzy +msgid "Certificate not found: %{error}" +msgstr "Error de decodificación del certificado" #: src/constants/errors/cert.ts:5 -#, fuzzy msgid "Certificate parse error" -msgstr "El certificado expiró" +msgstr "Error al analizar el certificado" #: src/constants/errors/cert.ts:8 -#, fuzzy msgid "Certificate path is empty" -msgstr "Plantillas de configuración" +msgstr "La ruta del certificado está vacía" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 -#, fuzzy msgid "Certificate removed successfully" -msgstr "Limpiado exitoso" +msgstr "Certificado eliminado correctamente" #: src/views/preference/tabs/CertSettings.vue:27 msgid "Certificate Renewal Interval" @@ -570,7 +662,12 @@ msgstr "Intervalo de renovación del Certificado" msgid "Certificate renewed successfully" msgstr "Limpiado exitoso" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +#, fuzzy +msgid "Certificate revoked successfully" +msgstr "Certificado eliminado correctamente" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 msgid "Certificate Status" msgid_plural "Certificates Status" @@ -613,7 +710,7 @@ msgstr "Canal" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:40 #: src/views/stream/components/RightPanel/RightPanel.vue:22 msgid "Chat" -msgstr "" +msgstr "Chat" #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40 #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64 @@ -631,40 +728,49 @@ msgid "" "Docker Image, please make sure the docker socket is mounted like this: `-v " "/var/run/docker.sock:/var/run/docker.sock`." msgstr "" +"Verifique si /var/run/docker.sock existe. Si está utilizando la imagen " +"oficial de Docker de Nginx UI, asegúrese de que el socket de Docker esté " +"montado de esta manera: `-v /var/run/docker.sock:/var/run/docker.sock`." #: src/components/SelfCheck/tasks/frontend/https-check.ts:11 msgid "" "Check if HTTPS is enabled. Using HTTP outside localhost is insecure and " "prevents using Passkeys and clipboard features." msgstr "" +"Verifica si HTTPS está habilitado. Usar HTTP fuera de localhost es inseguro " +"e impide el uso de Passkeys y funciones del portapapeles." #: src/components/SelfCheck/tasks/backend/index.ts:26 msgid "Check if the nginx.conf includes the conf.d directory." -msgstr "" +msgstr "Verifique si el archivo nginx.conf incluye el directorio conf.d." #: src/components/SelfCheck/tasks/backend/index.ts:16 msgid "Check if the nginx.conf includes the sites-enabled directory." -msgstr "" +msgstr "Verifica si el archivo nginx.conf incluye el directorio sites-enabled." #: src/components/SelfCheck/tasks/backend/index.ts:21 msgid "Check if the nginx.conf includes the streams-enabled directory." -msgstr "" +msgstr "Verifique si el archivo nginx.conf incluye el directorio streams-enabled." #: src/components/SelfCheck/tasks/backend/index.ts:6 msgid "" "Check if the sites-available and sites-enabled directories are under the " "nginx configuration directory." msgstr "" +"Verifique si los directorios sites-available y sites-enabled están dentro " +"del directorio de configuración de nginx." #: src/components/SelfCheck/tasks/backend/index.ts:11 msgid "" "Check if the streams-available and streams-enabled directories are under " "the nginx configuration directory." msgstr "" +"Verifique si los directorios streams-available y streams-enabled están " +"dentro del directorio de configuración de nginx." #: src/constants/errors/crypto.ts:3 msgid "Cipher text is too short" -msgstr "" +msgstr "El texto cifrado es demasiado corto" #: src/language/constants.ts:13 msgid "Cleaning environment variables" @@ -685,43 +791,44 @@ msgstr "Limpiado exitoso" #: src/components/SystemRestore/SystemRestoreContent.vue:271 msgid "Click or drag backup file to this area to upload" msgstr "" +"Haga clic o arrastre el archivo de copia de seguridad a esta área para " +"cargar" #: src/views/preference/components/AuthSettings/TOTP.vue:110 msgid "Click to copy" -msgstr "" +msgstr "Haga clic para copiar" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:120 msgid "Client Body Buffer Size" -msgstr "" +msgstr "Tamaño del búfer del cuerpo del cliente" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:113 msgid "Client Header Buffer Size" -msgstr "" +msgstr "Tamaño del búfer de cabecera del cliente" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:99 msgid "Client Max Body Size" -msgstr "" +msgstr "Tamaño máximo del cuerpo del cliente" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:121 msgid "Client request body buffer size" -msgstr "" +msgstr "Tamaño del búfer del cuerpo de la solicitud del cliente" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:114 msgid "Client request header buffer size" -msgstr "" +msgstr "Tamaño del búfer de cabecera de solicitud del cliente" #: src/components/ConfigHistory/ConfigHistory.vue:169 msgid "Close" -msgstr "" +msgstr "Cerrar" #: src/constants/errors/llm.ts:2 -#, fuzzy msgid "Code completion is not enabled" -msgstr "La cuenta actual no tiene habilitada TOTP." +msgstr "La finalización de código no está habilitada" #: src/views/preference/tabs/OpenAISettings.vue:86 msgid "Code Completion Model" -msgstr "" +msgstr "Modelo de finalización de código" #: src/views/preference/tabs/LogrotateSettings.vue:23 msgid "Command" @@ -729,7 +836,7 @@ msgstr "Comando" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" -msgstr "" +msgstr "El comando terminó con un código de salida inesperado: {0}, error: {1}" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:115 #: src/components/NgxConfigEditor/LocationEditor.vue:104 @@ -740,7 +847,7 @@ msgstr "Comentarios" #: src/components/ConfigHistory/ConfigHistory.vue:127 msgid "Compare" -msgstr "" +msgstr "Comparar" #: src/components/ConfigHistory/DiffViewer.vue:388 #, fuzzy @@ -749,15 +856,15 @@ msgstr "Configuraciones" #: src/components/ConfigHistory/ConfigHistory.vue:130 msgid "Compare Selected" -msgstr "" +msgstr "Comparar seleccionado" #: src/components/ConfigHistory/ConfigHistory.vue:129 msgid "Compare with Current" -msgstr "" +msgstr "Comparar con la corriente" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:88 msgid "Compression level, 1 is lowest, 9 is highest" -msgstr "" +msgstr "Nivel de compresión, 1 es más bajo, 9 es más alto" #: src/constants/errors/backup.ts:14 #, fuzzy @@ -801,7 +908,7 @@ msgstr "Conectado" #: src/views/dashboard/NginxDashBoard.vue:85 msgid "Connection error, trying to reconnect..." -msgstr "" +msgstr "Error de conexión, intentando reconectar..." #: src/views/terminal/Terminal.vue:142 msgid "Connection lost, please refresh the page." @@ -809,11 +916,11 @@ msgstr "Conexión perdida, por favor actualice la página." #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:61 msgid "Connection timeout period" -msgstr "" +msgstr "Período de tiempo de espera de conexión" #: src/constants/errors/docker.ts:7 msgid "Container status unknown" -msgstr "" +msgstr "Estado del contenedor desconocido" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:120 #: src/components/NgxConfigEditor/LocationEditor.vue:116 @@ -909,7 +1016,7 @@ msgstr "La creación de un cliente facilita la comunicación con el servidor CA" msgid "Credential" msgstr "Credencial" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "Credenciales" @@ -1206,7 +1313,7 @@ msgid "DNS Credentials" msgstr "Credenciales de DNS" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "Proveedor DNS" @@ -1256,6 +1363,10 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 #, fuzzy @@ -1268,7 +1379,7 @@ msgstr[1] "Documento de la API" msgid "Domain" msgstr "Dominio" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "" "La lista de dominios está vacía, intente reabrir la certificación " @@ -1535,7 +1646,7 @@ msgstr "" msgid "External Notify" msgstr "" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 msgid "Fail to obtain certificate" msgstr "Falla al obtener el certificado" @@ -1688,6 +1799,11 @@ msgstr "" msgid "Failed to delete certificate" msgstr "Falla al obtener el certificado" +#: src/language/generate.ts:9 +#, fuzzy +msgid "Failed to delete certificate from database: %{error}" +msgstr "Falla al obtener el certificado" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1851,6 +1967,11 @@ msgstr "" msgid "Failed to revoke certificate" msgstr "Falla al obtener el certificado" +#: src/language/generate.ts:17 +#, fuzzy +msgid "Failed to revoke certificate: %{error}" +msgstr "Falla al obtener el certificado" + #: src/views/dashboard/components/ParamsOptimization.vue:90 #, fuzzy msgid "Failed to save Nginx performance settings" @@ -1890,7 +2011,7 @@ msgstr "Archivo no encontrado" msgid "Filename is empty" msgstr "" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "Filtro" @@ -2084,7 +2205,7 @@ msgid "Import" msgstr "Importar" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Import Certificate" msgstr "Importar Certificado" @@ -2312,8 +2433,8 @@ msgstr "Para no modificar dejar en blanco" msgid "Leave blank if you don't need this." msgstr "Déjelo en blanco si no lo necesita." -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 msgid "Leave blank will not change anything" msgstr "Dejarlo en blanco no cambiará nada" @@ -2386,10 +2507,14 @@ msgstr "Ubicación" msgid "Locations" msgstr "Ubicaciones" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 msgid "Log" msgstr "Registro" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 #, fuzzy msgid "Log List" @@ -2594,7 +2719,7 @@ msgid "Modify" msgstr "Modificar" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Modify Certificate" msgstr "Modificar Certificado" @@ -2612,8 +2737,8 @@ msgstr "Directiva multilínea" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 @@ -2777,7 +2902,7 @@ msgstr "Nginx no se está ejecutando" msgid "Nginx is running" msgstr "Nginx no se está ejecutando" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "Registro Nginx" @@ -3808,7 +3933,7 @@ msgstr "Corriendo" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -3873,7 +3998,7 @@ msgstr "Duplicado con éxito de %{conf_name} a %{node_name}" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 msgid "Save successfully" msgstr "Guardado con éxito" @@ -3890,7 +4015,7 @@ msgstr "" "Escanee el código QR con su teléfono móvil para agregar la cuenta a la " "aplicación." -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "SDK" @@ -4071,7 +4196,7 @@ msgstr "" msgid "Sleep time between cache manager iterations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 msgid "SSL Certificate Content" msgstr "Contenido de certificado SSL" @@ -4084,15 +4209,15 @@ msgstr "" msgid "SSL certificate file not found" msgstr "Contenido de la llave del certificado SSL" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 msgid "SSL Certificate Key Content" msgstr "Contenido de la llave del certificado SSL" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 msgid "SSL Certificate Key Path" msgstr "Ruta de la llave del certificado SSL" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 msgid "SSL Certificate Path" msgstr "Ruta del certificado SSL" @@ -4266,7 +4391,7 @@ msgstr "Sincronizar con" msgid "Sync strategy" msgstr "Sincronizar Certificado" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 msgid "Sync to" msgstr "Sincronizar con" @@ -4345,11 +4470,11 @@ msgstr "" "El nombre del modelo solo debe contener letras, unicode, números, guiones, " "rayas y puntos." -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 msgid "The input is not a SSL Certificate" msgstr "La entrada no es un Certificado SSL" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 msgid "The input is not a SSL Certificate Key" msgstr "La entrada no es una clave de certificado SSL" @@ -4387,11 +4512,11 @@ msgstr "" msgid "The parameter of server_name is required" msgstr "Se requiere el parámetro server_name" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 msgid "The path exists, but the file is not a certificate" msgstr "La ruta existe, pero el archivo no es un certificado" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 msgid "The path exists, but the file is not a private key" msgstr "La ruta existe, pero el archivo no es una clave privada" @@ -4451,17 +4576,17 @@ msgid "" "lose access to your account." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 msgid "This Auto Cert item is invalid, please remove it." msgstr "Este elemento de Auto Cert es inválido, elimínelo por favor." -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "Este certificado es administrado por Nginx UI" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "Este campo es obligatorio" diff --git a/app/src/language/fr_FR/app.po b/app/src/language/fr_FR/app.po index 49a33edf..5c013b1f 100644 --- a/app/src/language/fr_FR/app.po +++ b/app/src/language/fr_FR/app.po @@ -14,6 +14,100 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.9.2\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "" +"[Nginx UI] Utilisateur ACME : %{name}, Email : %{email}, Répertoire CA : " +"%{caDir}" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "[Nginx UI] Sauvegarde du certificat actuel pour une révocation ultérieure" + +#: src/language/generate.ts:28 +#, fuzzy +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "Désactivé avec succès" + +#: src/language/generate.ts:8 +#, fuzzy +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "Nginx a redémarré avec succès" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "" +"[Nginx UI] Le certificat a été utilisé pour le serveur, rechargement du " +"certificat TLS du serveur" + +#: src/language/generate.ts:24 +#, fuzzy +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "La création du client facilite la communication avec le serveur CA" + +#: src/language/generate.ts:12 +#, fuzzy +msgid "[Nginx UI] Environment variables cleaned" +msgstr "Définition des variables d'environnement" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "[Nginx UI] Terminé" + +#: src/language/generate.ts:4 +#, fuzzy +msgid "[Nginx UI] Issued certificate successfully" +msgstr "Certificat délivré avec succès" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "[Nginx UI] Obtention du certificat" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "[Nginx UI] Préparation de la révocation du certificat" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "[Nginx UI] Préparation des configurations lego" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "[Nginx UI] Rechargement de nginx" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "[Nginx UI] Révocation terminée" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "[Nginx UI] Révoquer le certificat" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "[Nginx UI] Révoquer l'ancien certificat" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "[Nginx UI] Configuration du fournisseur de défi DNS01" + +#: src/language/generate.ts:6 +#, fuzzy +msgid "[Nginx UI] Setting environment variables" +msgstr "Définition des variables d'environnement" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "[Nginx UI] Configuration du fournisseur de défi HTTP01" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "[Nginx UI] Écriture de la clé privée du certificat sur le disque" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "[Nginx UI] Écriture du certificat sur le disque" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "2fa" @@ -110,7 +204,7 @@ msgstr "Ajouter un site" msgid "Added successfully" msgstr "Mis à jour avec succés" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 #, fuzzy msgid "Additional" msgstr "Supplémentaire" @@ -140,7 +234,7 @@ msgstr "Tous les codes de récupération ont été utilisés" msgid "API Base Url" msgstr "URL de base de l'API" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 #, fuzzy msgid "API Document" msgstr "Jeton d'API" @@ -297,7 +391,7 @@ msgstr "Auto" msgid "auto = CPU cores" msgstr "auto = cœurs CPU" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "Actualisation automatique" @@ -317,11 +411,9 @@ msgstr "\"Redémarrage Automatique\"" msgid "Automatically indexed from site and stream configurations." msgstr "\"Indexé automatiquement à partir des configurations de site et de flux.\"" -#: src/views/certificate/components/CertificateEditor.vue:259 -#: src/views/config/ConfigEditor.vue:266 -#: src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 -#: src/views/nginx_log/NginxLog.vue:173 +#: src/views/certificate/CertificateEditor.vue:259 +#: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -533,42 +625,40 @@ msgid "Certificate %{name} will expire in 1 day" msgstr "Le certificat %{name} expirera dans 1 jour" #: src/constants/errors/cert.ts:4 -#, fuzzy msgid "Certificate decode error" -msgstr "Changer de certificat" +msgstr "Erreur de décodage du certificat" #: src/components/Notification/notifications.ts:29 -#, fuzzy msgid "Certificate Expiration Notice" -msgstr "Modèles de configuration" +msgstr "Avis d'expiration du certificat" #: src/components/Notification/notifications.ts:25 -#, fuzzy msgid "Certificate Expired" -msgstr "Liste des certifications" +msgstr "Certificat expiré" #: src/components/Notification/notifications.ts:33 #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 -#, fuzzy msgid "Certificate Expiring Soon" -msgstr "Le certificat a expiré" +msgstr "Certificat expirant bientôt" + +#: src/language/generate.ts:5 +#, fuzzy +msgid "Certificate not found: %{error}" +msgstr "Erreur de décodage du certificat" #: src/constants/errors/cert.ts:5 -#, fuzzy msgid "Certificate parse error" -msgstr "Le certificat a expiré" +msgstr "Erreur d'analyse du certificat" #: src/constants/errors/cert.ts:8 -#, fuzzy msgid "Certificate path is empty" -msgstr "Modèles de configuration" +msgstr "Le chemin du certificat est vide" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 -#, fuzzy msgid "Certificate removed successfully" -msgstr "Désactivé avec succès" +msgstr "Certificat supprimé avec succès" #: src/views/preference/tabs/CertSettings.vue:27 #, fuzzy @@ -580,7 +670,12 @@ msgstr "Le certificat est valide" msgid "Certificate renewed successfully" msgstr "Désactivé avec succès" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +#, fuzzy +msgid "Certificate revoked successfully" +msgstr "Certificat supprimé avec succès" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 #, fuzzy msgid "Certificate Status" @@ -628,7 +723,7 @@ msgstr "Canal" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:40 #: src/views/stream/components/RightPanel/RightPanel.vue:22 msgid "Chat" -msgstr "" +msgstr "Chat" #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40 #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64 @@ -646,12 +741,18 @@ msgid "" "Docker Image, please make sure the docker socket is mounted like this: `-v " "/var/run/docker.sock:/var/run/docker.sock`." msgstr "" +"Vérifiez si /var/run/docker.sock existe. Si vous utilisez l'image Docker " +"officielle de Nginx UI, assurez-vous que le socket Docker est monté comme " +"ceci : `-v /var/run/docker.sock:/var/run/docker.sock`." #: src/components/SelfCheck/tasks/frontend/https-check.ts:11 msgid "" "Check if HTTPS is enabled. Using HTTP outside localhost is insecure and " "prevents using Passkeys and clipboard features." msgstr "" +"Vérifiez si HTTPS est activé. L'utilisation de HTTP en dehors de localhost " +"est non sécurisée et empêche l'utilisation des fonctionnalités Passkeys et " +"presse-papiers." #: src/components/SelfCheck/tasks/backend/index.ts:26 #, fuzzy @@ -706,6 +807,8 @@ msgstr "Désactivé avec succès" #: src/components/SystemRestore/SystemRestoreContent.vue:271 msgid "Click or drag backup file to this area to upload" msgstr "" +"Cliquez sur ou faites glisser le fichier de sauvegarde vers cette zone pour " +"télécharger" #: src/views/preference/components/AuthSettings/TOTP.vue:110 msgid "Click to copy" @@ -713,36 +816,35 @@ msgstr "Clique pour copier" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:120 msgid "Client Body Buffer Size" -msgstr "" +msgstr "Taille du tampon du corps client" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:113 msgid "Client Header Buffer Size" -msgstr "" +msgstr "Taille du tampon d'en-tête client" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:99 msgid "Client Max Body Size" -msgstr "" +msgstr "Taille maximale du corps du client" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:121 msgid "Client request body buffer size" -msgstr "" +msgstr "Taille du tampon du corps de la requête client" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:114 msgid "Client request header buffer size" -msgstr "" +msgstr "Taille du tampon d'en-tête de requête client" #: src/components/ConfigHistory/ConfigHistory.vue:169 msgid "Close" -msgstr "" +msgstr "Fermer" #: src/constants/errors/llm.ts:2 -#, fuzzy msgid "Code completion is not enabled" -msgstr "Le compte actuel n'a pas le TOTP d'activé." +msgstr "La complétion de code n'est pas activée" #: src/views/preference/tabs/OpenAISettings.vue:86 msgid "Code Completion Model" -msgstr "" +msgstr "Modèle de complétion de code" #: src/views/preference/tabs/LogrotateSettings.vue:23 #, fuzzy @@ -752,6 +854,8 @@ msgstr "Commentaires" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" msgstr "" +"La commande s'est terminée avec un code de sortie inattendu : {0}, erreur : " +"{1}" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:115 #: src/components/NgxConfigEditor/LocationEditor.vue:104 @@ -762,7 +866,7 @@ msgstr "Commentaires" #: src/components/ConfigHistory/ConfigHistory.vue:127 msgid "Compare" -msgstr "" +msgstr "Comparer" #: src/components/ConfigHistory/DiffViewer.vue:388 #, fuzzy @@ -771,15 +875,15 @@ msgstr "Configurations" #: src/components/ConfigHistory/ConfigHistory.vue:130 msgid "Compare Selected" -msgstr "" +msgstr "Comparez sélectionné" #: src/components/ConfigHistory/ConfigHistory.vue:129 msgid "Compare with Current" -msgstr "" +msgstr "Comparez avec le courant" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:88 msgid "Compression level, 1 is lowest, 9 is highest" -msgstr "" +msgstr "Le niveau de compression, 1 est le plus bas, 9 est le plus élevé" #: src/constants/errors/backup.ts:14 #, fuzzy @@ -823,7 +927,7 @@ msgstr "Connecté" #: src/views/dashboard/NginxDashBoard.vue:85 msgid "Connection error, trying to reconnect..." -msgstr "" +msgstr "Erreur de connexion, tentative de reconnexion..." #: src/views/terminal/Terminal.vue:142 msgid "Connection lost, please refresh the page." @@ -831,11 +935,11 @@ msgstr "Connexion perdue, merci de recharger la page." #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:61 msgid "Connection timeout period" -msgstr "" +msgstr "Période de délai de connexion" #: src/constants/errors/docker.ts:7 msgid "Container status unknown" -msgstr "" +msgstr "Statut du conteneur inconnu" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:120 #: src/components/NgxConfigEditor/LocationEditor.vue:116 @@ -934,7 +1038,7 @@ msgstr "La création du client facilite la communication avec le serveur CA" msgid "Credential" msgstr "Identifiant" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "Identifiants" @@ -1239,7 +1343,7 @@ msgid "DNS Credentials" msgstr "Identifiants DNS" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "Fournisseur DNS" @@ -1292,6 +1396,10 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 #, fuzzy @@ -1304,7 +1412,7 @@ msgstr[1] "Jeton d'API" msgid "Domain" msgstr "Domaine" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 #, fuzzy msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "" @@ -1581,7 +1689,7 @@ msgstr "" msgid "External Notify" msgstr "" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 #, fuzzy msgid "Fail to obtain certificate" msgstr "Obtenir un certificat" @@ -1736,6 +1844,11 @@ msgstr "" msgid "Failed to delete certificate" msgstr "Obtenir un certificat" +#: src/language/generate.ts:9 +#, fuzzy +msgid "Failed to delete certificate from database: %{error}" +msgstr "Obtenir un certificat" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1905,6 +2018,11 @@ msgstr "Erreur lecture nginx.conf" msgid "Failed to revoke certificate" msgstr "Obtenir un certificat" +#: src/language/generate.ts:17 +#, fuzzy +msgid "Failed to revoke certificate: %{error}" +msgstr "Obtenir un certificat" + #: src/views/dashboard/components/ParamsOptimization.vue:90 #, fuzzy msgid "Failed to save Nginx performance settings" @@ -1944,7 +2062,7 @@ msgstr "Fichier introuvable" msgid "Filename is empty" msgstr "Nom du fichier vide" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "Filtrer" @@ -2144,7 +2262,7 @@ msgid "Import" msgstr "Exporter" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 #, fuzzy msgid "Import Certificate" msgstr "État du certificat" @@ -2380,8 +2498,8 @@ msgstr "Laisser vide pour aucun changement" msgid "Leave blank if you don't need this." msgstr "Laisser vide pour aucun changement" -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 #, fuzzy msgid "Leave blank will not change anything" msgstr "Laisser vide pour aucun changement" @@ -2461,11 +2579,15 @@ msgstr "Localisation" msgid "Locations" msgstr "Localisations" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 #, fuzzy msgid "Log" msgstr "Connexion" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 #, fuzzy msgid "Log List" @@ -2667,7 +2789,7 @@ msgid "Modify" msgstr "Modifier" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 #, fuzzy msgid "Modify Certificate" msgstr "État du certificat" @@ -2687,8 +2809,8 @@ msgstr "Directive multiligne" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 @@ -2853,7 +2975,7 @@ msgstr "" msgid "Nginx is running" msgstr "" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "Journal Nginx" @@ -3885,7 +4007,7 @@ msgstr "En cours d'éxécution" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -3950,7 +4072,7 @@ msgstr "Dupliqué avec succès" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 msgid "Save successfully" msgstr "Sauvegarde réussie" @@ -3965,7 +4087,7 @@ msgstr "Enregistré avec succès" msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "" -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "" @@ -4148,7 +4270,7 @@ msgstr "" msgid "Sleep time between cache manager iterations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 #, fuzzy msgid "SSL Certificate Content" msgstr "Contenu de la certification SSL" @@ -4162,16 +4284,16 @@ msgstr "" msgid "SSL certificate file not found" msgstr "Contenu de la clé de certification SSL" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 #, fuzzy msgid "SSL Certificate Key Content" msgstr "Contenu de la clé de certification SSL" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 msgid "SSL Certificate Key Path" msgstr "Chemin de la clé du certificat SSL" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 msgid "SSL Certificate Path" msgstr "Chemin du certificat SSL" @@ -4354,7 +4476,7 @@ msgstr "" msgid "Sync strategy" msgstr "Changer de certificat" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 #, fuzzy msgid "Sync to" msgstr "Changer de certificat" @@ -4431,12 +4553,12 @@ msgid "" "dashes, colons, and dots." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 #, fuzzy msgid "The input is not a SSL Certificate" msgstr "Chemin de la clé du certificat SSL" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 #, fuzzy msgid "The input is not a SSL Certificate Key" msgstr "Chemin de la clé du certificat SSL" @@ -4469,12 +4591,12 @@ msgstr "" msgid "The parameter of server_name is required" msgstr "Le paramètre server_name est obligatoire" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 #, fuzzy msgid "The path exists, but the file is not a certificate" msgstr "Chemin de la clé du certificat SSL" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 #, fuzzy msgid "The path exists, but the file is not a private key" msgstr "Chemin de la clé du certificat SSL" @@ -4531,20 +4653,20 @@ msgid "" "lose access to your account." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 #, fuzzy msgid "This Auto Cert item is invalid, please remove it." msgstr "" "Cet élément de certification automatique n'est pas valide, veuillez le " "supprimer." -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "" diff --git a/app/src/language/generate.ts b/app/src/language/generate.ts new file mode 100644 index 00000000..5c980c0e --- /dev/null +++ b/app/src/language/generate.ts @@ -0,0 +1,30 @@ +// This file is auto-generated. DO NOT EDIT MANUALLY. + +export const msg = [ + $gettext('[Nginx UI] Issued certificate successfully'), + $gettext('Certificate not found: %{error}'), + $gettext('[Nginx UI] Setting environment variables'), + $gettext('[Nginx UI] Revoking certificate'), + $gettext('[Nginx UI] Certificate successfully revoked'), + $gettext('Failed to delete certificate from database: %{error}'), + $gettext('Certificate revoked successfully'), + $gettext('[Nginx UI] Setting HTTP01 challenge provider'), + $gettext('[Nginx UI] Environment variables cleaned'), + $gettext('[Nginx UI] Backing up current certificate for later revocation'), + $gettext('[Nginx UI] Obtaining certificate'), + $gettext('[Nginx UI] Writing certificate private key to disk'), + $gettext('[Nginx UI] Revocation completed'), + $gettext('Failed to revoke certificate: %{error}'), + $gettext('[Nginx UI] Preparing lego configurations'), + $gettext('[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}'), + $gettext('[Nginx UI] Setting DNS01 challenge provider'), + $gettext('[Nginx UI] Finished'), + $gettext('[Nginx UI] Preparing for certificate revocation'), + $gettext('Log file %{log_path} is not a regular file. '), + $gettext('[Nginx UI] Creating client facilitates communication with the CA server'), + $gettext('[Nginx UI] Reloading nginx'), + $gettext('[Nginx UI] Revoking old certificate'), + $gettext('[Nginx UI] Writing certificate to disk'), + $gettext('[Nginx UI] Certificate renewed successfully'), + $gettext('[Nginx UI] Certificate was used for server, reloading server TLS certificate'), +] diff --git a/app/src/language/index.ts b/app/src/language/index.ts new file mode 100644 index 00000000..25c7701b --- /dev/null +++ b/app/src/language/index.ts @@ -0,0 +1 @@ +export { default as T } from './container' diff --git a/app/src/language/ja_JP/app.po b/app/src/language/ja_JP/app.po index 46819447..4bb2bcdf 100644 --- a/app/src/language/ja_JP/app.po +++ b/app/src/language/ja_JP/app.po @@ -13,6 +13,95 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6.2\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "[Nginx UI] ACME ユーザー: %{name}、メール: %{email}、CA ディレクトリ: %{caDir}" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "[Nginx UI] 現在の証明書を後で失効させるためにバックアップ中" + +#: src/language/generate.ts:28 +#, fuzzy +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "正常に削除しました" + +#: src/language/generate.ts:8 +#, fuzzy +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "証明書の削除に成功しました" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "[Nginx UI] サーバーで証明書が使用されました、サーバーのTLS証明書を再読み込み中" + +#: src/language/generate.ts:24 +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "[Nginx UI] CA サーバーとの通信を容易にするクライアントを作成中" + +#: src/language/generate.ts:12 +#, fuzzy +msgid "[Nginx UI] Environment variables cleaned" +msgstr "環境変数を削除する" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "[Nginx UI] 完了しました" + +#: src/language/generate.ts:4 +#, fuzzy +msgid "[Nginx UI] Issued certificate successfully" +msgstr "証明書の削除に成功しました" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "[Nginx UI] 証明書を取得中" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "[Nginx UI] 証明書の失効準備中" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "[Nginx UI] Lego 設定の準備中" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "[Nginx UI] Nginx を再読み込み中" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "[Nginx UI] 失効が完了しました" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "[Nginx UI] 証明書を失効中" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "[Nginx UI] 古い証明書を失効中" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "[Nginx UI] DNS01 チャレンジプロバイダーを設定中" + +#: src/language/generate.ts:6 +#, fuzzy +msgid "[Nginx UI] Setting environment variables" +msgstr "環境変数を削除する" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "[Nginx UI] HTTP01 チャレンジプロバイダーの設定" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "[Nginx UI] 証明書の秘密鍵をディスクに書き込んでいます" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "[Nginx UI] 証明書をディスクに書き込み中" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "二要素認証" @@ -105,7 +194,7 @@ msgstr "Streamを追加" msgid "Added successfully" msgstr "正常に追加されました" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 msgid "Additional" msgstr "追加設定" @@ -132,7 +221,7 @@ msgstr "すべてのリカバリーコードが使用済みです" msgid "API Base Url" msgstr "APIベースURL" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" msgstr "APIドキュメント" @@ -281,7 +370,7 @@ msgstr "自動" msgid "auto = CPU cores" msgstr "自動 = CPUコア数" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "自動更新" @@ -301,9 +390,9 @@ msgstr "自動再起動" msgid "Automatically indexed from site and stream configurations." msgstr "「サイトおよびストリーム設定から自動的にインデックス化されました。」" -#: src/views/certificate/components/CertificateEditor.vue:259 +#: src/views/certificate/CertificateEditor.vue:259 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:173 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -507,42 +596,40 @@ msgid "Certificate %{name} will expire in 1 day" msgstr "証明書 %{name} は1日で期限切れになります" #: src/constants/errors/cert.ts:4 -#, fuzzy msgid "Certificate decode error" -msgstr "証明書更新間隔" +msgstr "証明書のデコードエラー" #: src/components/Notification/notifications.ts:29 -#, fuzzy msgid "Certificate Expiration Notice" -msgstr "証明書リスト" +msgstr "証明書有効期限のお知らせ" #: src/components/Notification/notifications.ts:25 -#, fuzzy msgid "Certificate Expired" -msgstr "証明書リスト" +msgstr "証明書の有効期限が切れました" #: src/components/Notification/notifications.ts:33 #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 -#, fuzzy msgid "Certificate Expiring Soon" -msgstr "証明書リスト" +msgstr "証明書の有効期限が近づいています" + +#: src/language/generate.ts:5 +#, fuzzy +msgid "Certificate not found: %{error}" +msgstr "証明書のデコードエラー" #: src/constants/errors/cert.ts:5 -#, fuzzy msgid "Certificate parse error" -msgstr "証明書" +msgstr "証明書の解析エラー" #: src/constants/errors/cert.ts:8 -#, fuzzy msgid "Certificate path is empty" -msgstr "証明書リスト" +msgstr "証明書のパスが空です" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 -#, fuzzy msgid "Certificate removed successfully" -msgstr "正常に削除しました" +msgstr "証明書の削除に成功しました" #: src/views/preference/tabs/CertSettings.vue:27 msgid "Certificate Renewal Interval" @@ -553,7 +640,12 @@ msgstr "証明書更新間隔" msgid "Certificate renewed successfully" msgstr "正常に削除しました" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +#, fuzzy +msgid "Certificate revoked successfully" +msgstr "証明書の削除に成功しました" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 msgid "Certificate Status" msgid_plural "Certificates Status" @@ -594,7 +686,7 @@ msgstr "チャンネル" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:40 #: src/views/stream/components/RightPanel/RightPanel.vue:22 msgid "Chat" -msgstr "" +msgstr "チャット" #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40 #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64 @@ -612,40 +704,45 @@ msgid "" "Docker Image, please make sure the docker socket is mounted like this: `-v " "/var/run/docker.sock:/var/run/docker.sock`." msgstr "" +"/var/run/docker.sock が存在するか確認してください。Nginx UI 公式 Docker " +"イメージを使用している場合は、Docker ソケットが次のようにマウントされていることを確認してください: `-v " +"/var/run/docker.sock:/var/run/docker.sock`." #: src/components/SelfCheck/tasks/frontend/https-check.ts:11 msgid "" "Check if HTTPS is enabled. Using HTTP outside localhost is insecure and " "prevents using Passkeys and clipboard features." msgstr "" +"HTTPS が有効かどうかを確認します。localhost 以外で HTTP を使用すると安全ではなく、Passkeys " +"やクリップボード機能の使用が妨げられます。" #: src/components/SelfCheck/tasks/backend/index.ts:26 msgid "Check if the nginx.conf includes the conf.d directory." -msgstr "" +msgstr "nginx.conf に conf.d ディレクトリが含まれているか確認します。" #: src/components/SelfCheck/tasks/backend/index.ts:16 msgid "Check if the nginx.conf includes the sites-enabled directory." -msgstr "" +msgstr "nginx.conf に sites-enabled ディレクトリが含まれているか確認します。" #: src/components/SelfCheck/tasks/backend/index.ts:21 msgid "Check if the nginx.conf includes the streams-enabled directory." -msgstr "" +msgstr "nginx.conf に streams-enabled ディレクトリが含まれているか確認します。" #: src/components/SelfCheck/tasks/backend/index.ts:6 msgid "" "Check if the sites-available and sites-enabled directories are under the " "nginx configuration directory." -msgstr "" +msgstr "sites-available と sites-enabled ディレクトリが nginx の設定ディレクトリ配下にあるか確認します。" #: src/components/SelfCheck/tasks/backend/index.ts:11 msgid "" "Check if the streams-available and streams-enabled directories are under " "the nginx configuration directory." -msgstr "" +msgstr "streams-available と streams-enabled ディレクトリが nginx の設定ディレクトリ配下にあるか確認します。" #: src/constants/errors/crypto.ts:3 msgid "Cipher text is too short" -msgstr "" +msgstr "暗号文が短すぎます" #: src/language/constants.ts:13 msgid "Cleaning environment variables" @@ -665,43 +762,43 @@ msgstr "正常に削除しました" #: src/components/SystemRestore/SystemRestoreContent.vue:194 #: src/components/SystemRestore/SystemRestoreContent.vue:271 msgid "Click or drag backup file to this area to upload" -msgstr "" +msgstr "この領域にバックアップファイルをクリックまたはドラッグしてアップロードします" #: src/views/preference/components/AuthSettings/TOTP.vue:110 msgid "Click to copy" -msgstr "" +msgstr "クリックしてコピーします" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:120 msgid "Client Body Buffer Size" -msgstr "" +msgstr "クライアントボディバッファサイズ" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:113 msgid "Client Header Buffer Size" -msgstr "" +msgstr "クライアントヘッダーバッファサイズ" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:99 msgid "Client Max Body Size" -msgstr "" +msgstr "クライアント最大ボディサイズ" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:121 msgid "Client request body buffer size" -msgstr "" +msgstr "クライアントリクエストボディのバッファサイズ" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:114 msgid "Client request header buffer size" -msgstr "" +msgstr "クライアントリクエストヘッダーバッファサイズ" #: src/components/ConfigHistory/ConfigHistory.vue:169 msgid "Close" -msgstr "" +msgstr "閉じる" #: src/constants/errors/llm.ts:2 msgid "Code completion is not enabled" -msgstr "" +msgstr "コード補完が有効になっていません" #: src/views/preference/tabs/OpenAISettings.vue:86 msgid "Code Completion Model" -msgstr "" +msgstr "コード補完モデル" #: src/views/preference/tabs/LogrotateSettings.vue:23 msgid "Command" @@ -709,7 +806,7 @@ msgstr "コマンド" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" -msgstr "" +msgstr "コマンドが予期しない終了コードで終了しました: {0}、エラー: {1}" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:115 #: src/components/NgxConfigEditor/LocationEditor.vue:104 @@ -720,7 +817,7 @@ msgstr "コメント" #: src/components/ConfigHistory/ConfigHistory.vue:127 msgid "Compare" -msgstr "" +msgstr "比較する" #: src/components/ConfigHistory/DiffViewer.vue:388 #, fuzzy @@ -729,15 +826,15 @@ msgstr "設定" #: src/components/ConfigHistory/ConfigHistory.vue:130 msgid "Compare Selected" -msgstr "" +msgstr "選択したものを比較します" #: src/components/ConfigHistory/ConfigHistory.vue:129 msgid "Compare with Current" -msgstr "" +msgstr "電流と比較してください" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:88 msgid "Compression level, 1 is lowest, 9 is highest" -msgstr "" +msgstr "圧縮レベル、1は最も低く、9は最高です" #: src/constants/errors/backup.ts:14 #, fuzzy @@ -781,7 +878,7 @@ msgstr "接続済み" #: src/views/dashboard/NginxDashBoard.vue:85 msgid "Connection error, trying to reconnect..." -msgstr "" +msgstr "接続エラー、再接続を試みています..." #: src/views/terminal/Terminal.vue:142 msgid "Connection lost, please refresh the page." @@ -789,11 +886,11 @@ msgstr "接続が失われました。ページを再読み込みしてくださ #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:61 msgid "Connection timeout period" -msgstr "" +msgstr "接続タイムアウト期間" #: src/constants/errors/docker.ts:7 msgid "Container status unknown" -msgstr "" +msgstr "コンテナの状態が不明です" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:120 #: src/components/NgxConfigEditor/LocationEditor.vue:116 @@ -819,7 +916,7 @@ msgstr "コピー" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:121 msgid "Copy Codes" -msgstr "" +msgstr "コードをコピー" #: src/views/system/Upgrade.vue:146 msgid "Core Upgrade" @@ -888,7 +985,7 @@ msgstr "" msgid "Credential" msgstr "認証情報" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "認証情報" @@ -1165,7 +1262,7 @@ msgid "DNS Credentials" msgstr "" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "" @@ -1215,6 +1312,10 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 #, fuzzy @@ -1226,7 +1327,7 @@ msgstr[0] "APIドキュメント" msgid "Domain" msgstr "ドメイン" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "" @@ -1471,7 +1572,7 @@ msgstr "" msgid "External Notify" msgstr "" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 msgid "Fail to obtain certificate" msgstr "" @@ -1603,6 +1704,10 @@ msgstr "" msgid "Failed to delete certificate" msgstr "" +#: src/language/generate.ts:9 +msgid "Failed to delete certificate from database: %{error}" +msgstr "" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1743,6 +1848,10 @@ msgstr "" msgid "Failed to revoke certificate" msgstr "" +#: src/language/generate.ts:17 +msgid "Failed to revoke certificate: %{error}" +msgstr "" + #: src/views/dashboard/components/ParamsOptimization.vue:90 msgid "Failed to save Nginx performance settings" msgstr "" @@ -1779,7 +1888,7 @@ msgstr "" msgid "Filename is empty" msgstr "" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "" @@ -1957,7 +2066,7 @@ msgid "Import" msgstr "" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Import Certificate" msgstr "" @@ -2176,8 +2285,8 @@ msgstr "" msgid "Leave blank if you don't need this." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 msgid "Leave blank will not change anything" msgstr "" @@ -2250,10 +2359,14 @@ msgstr "" msgid "Locations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 msgid "Log" msgstr "" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 msgid "Log List" msgstr "" @@ -2445,7 +2558,7 @@ msgid "Modify" msgstr "" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Modify Certificate" msgstr "" @@ -2463,8 +2576,8 @@ msgstr "" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 @@ -2620,7 +2733,7 @@ msgstr "" msgid "Nginx is running" msgstr "" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "" @@ -3435,7 +3548,7 @@ msgstr "" #: src/views/certificate/components/RenewCert.vue:27 #: src/views/certificate/components/WildcardCertificate.vue:46 msgid "Renew successfully" -msgstr "" +msgstr "証明書の更新に成功しました" #: src/views/dashboard/components/PerformanceTablesCard.vue:141 msgid "Request statistics" @@ -3576,7 +3689,7 @@ msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -3633,7 +3746,7 @@ msgstr "" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 msgid "Save successfully" msgstr "" @@ -3648,7 +3761,7 @@ msgstr "" msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "" -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "" @@ -3819,7 +3932,7 @@ msgstr "" msgid "Sleep time between cache manager iterations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 msgid "SSL Certificate Content" msgstr "" @@ -3831,15 +3944,15 @@ msgstr "" msgid "SSL certificate file not found" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 msgid "SSL Certificate Key Content" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 msgid "SSL Certificate Key Path" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 msgid "SSL Certificate Path" msgstr "" @@ -4003,7 +4116,7 @@ msgstr "" msgid "Sync strategy" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 msgid "Sync to" msgstr "" @@ -4075,11 +4188,11 @@ msgid "" "dashes, colons, and dots." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 msgid "The input is not a SSL Certificate" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 msgid "The input is not a SSL Certificate Key" msgstr "" @@ -4110,11 +4223,11 @@ msgstr "" msgid "The parameter of server_name is required" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 msgid "The path exists, but the file is not a certificate" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 msgid "The path exists, but the file is not a private key" msgstr "" @@ -4166,17 +4279,17 @@ msgid "" "lose access to your account." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 msgid "This Auto Cert item is invalid, please remove it." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "" @@ -4606,7 +4719,7 @@ msgstr "" #: src/views/preference/tabs/AuthSettings.vue:163 #: src/views/preference/tabs/CertSettings.vue:72 msgid "Yes" -msgstr "" +msgstr "はい" #: src/views/terminal/Terminal.vue:135 msgid "" diff --git a/app/src/language/ko_KR/app.po b/app/src/language/ko_KR/app.po index 7208a34a..a13052ce 100644 --- a/app/src/language/ko_KR/app.po +++ b/app/src/language/ko_KR/app.po @@ -14,6 +14,96 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Weblate 5.10.4\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "[Nginx UI] ACME 사용자: %{name}, 이메일: %{email}, CA 디렉터리: %{caDir}" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "[Nginx UI] 현재 인증서를 나중에 취소하기 위해 백업 중" + +#: src/language/generate.ts:28 +#, fuzzy +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "성공적으로 제거됨" + +#: src/language/generate.ts:8 +#, fuzzy +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "Nginx가 성공적으로 재시작됨" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "[Nginx UI] 서버에 인증서가 사용되었습니다, 서버 TLS 인증서 다시 불러오는 중" + +#: src/language/generate.ts:24 +#, fuzzy +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "클라이언트 생성은 CA 서버와의 통신을 용이하게 합니다" + +#: src/language/generate.ts:12 +#, fuzzy +msgid "[Nginx UI] Environment variables cleaned" +msgstr "환경 변수 설정" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "[Nginx UI] 완료됨" + +#: src/language/generate.ts:4 +#, fuzzy +msgid "[Nginx UI] Issued certificate successfully" +msgstr "성공적으로 활성화됨" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "[Nginx UI] 인증서 획득 중" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "[Nginx UI] 인증서 해지 준비 중" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "[Nginx UI] 레고 구성 준비 중" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "[Nginx UI] Nginx 다시 로드 중" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "[Nginx UI] 해지 완료" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "[Nginx UI] 인증서 취소 중" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "[Nginx UI] 이전 인증서 취소 중" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "[Nginx UI] DNS01 챌린지 공급자 설정 중" + +#: src/language/generate.ts:6 +#, fuzzy +msgid "[Nginx UI] Setting environment variables" +msgstr "환경 변수 설정" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "[Nginx UI] HTTP01 챌린지 공급자 설정 중" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "[Nginx UI] 인증서 개인 키를 디스크에 기록 중" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "[Nginx UI] 인증서를 디스크에 작성 중" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "2FA" @@ -106,7 +196,7 @@ msgstr "스트림 추가" msgid "Added successfully" msgstr "성공적으로 추가됨" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 msgid "Additional" msgstr "추가적인" @@ -133,7 +223,7 @@ msgstr "모든 복구 코드가 사용되었습니다" msgid "API Base Url" msgstr "API 기본 URL" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" msgstr "API 문서" @@ -275,7 +365,7 @@ msgstr "자동" msgid "auto = CPU cores" msgstr "자동 = CPU 코어" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "자동 새로고침" @@ -295,11 +385,9 @@ msgstr "\"자동 재시작\"" msgid "Automatically indexed from site and stream configurations." msgstr "\"사이트 및 스트림 구성에서 자동으로 인덱싱되었습니다.\"" -#: src/views/certificate/components/CertificateEditor.vue:259 -#: src/views/config/ConfigEditor.vue:266 -#: src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 -#: src/views/nginx_log/NginxLog.vue:173 +#: src/views/certificate/CertificateEditor.vue:259 +#: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -506,42 +594,40 @@ msgid "Certificate %{name} will expire in 1 day" msgstr "인증서 %{name}의 유효 기간이 1일 남았습니다" #: src/constants/errors/cert.ts:4 -#, fuzzy msgid "Certificate decode error" -msgstr "인증서 갱신 오류" +msgstr "인증서 디코드 오류" #: src/components/Notification/notifications.ts:29 -#, fuzzy msgid "Certificate Expiration Notice" -msgstr "구성 템플릿" +msgstr "인증서 만료 알림" #: src/components/Notification/notifications.ts:25 -#, fuzzy msgid "Certificate Expired" -msgstr "인증서 목록" +msgstr "인증서 만료됨" #: src/components/Notification/notifications.ts:33 #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 -#, fuzzy msgid "Certificate Expiring Soon" -msgstr "인증서가 만료되었습니다" +msgstr "인증서 만료 임박" + +#: src/language/generate.ts:5 +#, fuzzy +msgid "Certificate not found: %{error}" +msgstr "인증서 디코드 오류" #: src/constants/errors/cert.ts:5 -#, fuzzy msgid "Certificate parse error" -msgstr "인증서가 만료되었습니다" +msgstr "인증서 파싱 오류" #: src/constants/errors/cert.ts:8 -#, fuzzy msgid "Certificate path is empty" -msgstr "구성 템플릿" +msgstr "인증서 경로가 비어 있습니다" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 -#, fuzzy msgid "Certificate removed successfully" -msgstr "성공적으로 제거됨" +msgstr "인증서가 성공적으로 제거되었습니다" #: src/views/preference/tabs/CertSettings.vue:27 msgid "Certificate Renewal Interval" @@ -552,7 +638,12 @@ msgstr "인증서 갱신 간격" msgid "Certificate renewed successfully" msgstr "성공적으로 제거됨" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +#, fuzzy +msgid "Certificate revoked successfully" +msgstr "인증서가 성공적으로 제거되었습니다" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 msgid "Certificate Status" msgid_plural "Certificates Status" @@ -597,7 +688,7 @@ msgstr "채널" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:40 #: src/views/stream/components/RightPanel/RightPanel.vue:22 msgid "Chat" -msgstr "" +msgstr "채팅" #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40 #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64 @@ -615,40 +706,44 @@ msgid "" "Docker Image, please make sure the docker socket is mounted like this: `-v " "/var/run/docker.sock:/var/run/docker.sock`." msgstr "" +"/var/run/docker.sock이 존재하는지 확인하세요. Nginx UI 공식 Docker 이미지를 사용 중이라면 Docker " +"소켓이 다음과 같이 마운트되었는지 확인하세요: `-v /var/run/docker.sock:/var/run/docker.sock`." #: src/components/SelfCheck/tasks/frontend/https-check.ts:11 msgid "" "Check if HTTPS is enabled. Using HTTP outside localhost is insecure and " "prevents using Passkeys and clipboard features." msgstr "" +"HTTPS가 활성화되었는지 확인하세요. localhost 외부에서 HTTP를 사용하는 것은 안전하지 않으며 Passkeys 및 클립보드 " +"기능 사용을 방해요." #: src/components/SelfCheck/tasks/backend/index.ts:26 msgid "Check if the nginx.conf includes the conf.d directory." -msgstr "" +msgstr "nginx.conf에 conf.d 디렉터리가 포함되어 있는지 확인하세요." #: src/components/SelfCheck/tasks/backend/index.ts:16 msgid "Check if the nginx.conf includes the sites-enabled directory." -msgstr "" +msgstr "nginx.conf에 sites-enabled 디렉터리가 포함되어 있는지 확인하세요." #: src/components/SelfCheck/tasks/backend/index.ts:21 msgid "Check if the nginx.conf includes the streams-enabled directory." -msgstr "" +msgstr "nginx.conf에 streams-enabled 디렉터리가 포함되어 있는지 확인하세요." #: src/components/SelfCheck/tasks/backend/index.ts:6 msgid "" "Check if the sites-available and sites-enabled directories are under the " "nginx configuration directory." -msgstr "" +msgstr "sites-available 및 sites-enabled 디렉터리가 nginx 구성 디렉터리 아래에 있는지 확인합니다." #: src/components/SelfCheck/tasks/backend/index.ts:11 msgid "" "Check if the streams-available and streams-enabled directories are under " "the nginx configuration directory." -msgstr "" +msgstr "streams-available 및 streams-enabled 디렉터리가 nginx 구성 디렉터리 아래에 있는지 확인합니다." #: src/constants/errors/crypto.ts:3 msgid "Cipher text is too short" -msgstr "" +msgstr "암호문이 너무 짧습니다" #: src/language/constants.ts:13 msgid "Cleaning environment variables" @@ -668,43 +763,43 @@ msgstr "성공적으로 제거됨" #: src/components/SystemRestore/SystemRestoreContent.vue:194 #: src/components/SystemRestore/SystemRestoreContent.vue:271 msgid "Click or drag backup file to this area to upload" -msgstr "" +msgstr "이 영역으로 백업 파일을 클릭하거나 드래그하여 업로드하십시오." #: src/views/preference/components/AuthSettings/TOTP.vue:110 msgid "Click to copy" -msgstr "" +msgstr "복사하려면 클릭하십시오" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:120 msgid "Client Body Buffer Size" -msgstr "" +msgstr "클라이언트 신체 버퍼 크기" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:113 msgid "Client Header Buffer Size" -msgstr "" +msgstr "클라이언트 헤더 버퍼 크기" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:99 msgid "Client Max Body Size" -msgstr "" +msgstr "클라이언트 최대 본문 크기" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:121 msgid "Client request body buffer size" -msgstr "" +msgstr "클라이언트 요청 본문 버퍼 크기" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:114 msgid "Client request header buffer size" -msgstr "" +msgstr "클라이언트 요청 헤더 버퍼 크기" #: src/components/ConfigHistory/ConfigHistory.vue:169 msgid "Close" -msgstr "" +msgstr "닫기" #: src/constants/errors/llm.ts:2 msgid "Code completion is not enabled" -msgstr "" +msgstr "코드 완성이 활성화되지 않았습니다" #: src/views/preference/tabs/OpenAISettings.vue:86 msgid "Code Completion Model" -msgstr "" +msgstr "코드 완성 모델" #: src/views/preference/tabs/LogrotateSettings.vue:23 msgid "Command" @@ -712,7 +807,7 @@ msgstr "명령어" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" -msgstr "" +msgstr "명령이 예상치 못한 종료 코드로 종료되었습니다: {0}, 오류: {1}" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:115 #: src/components/NgxConfigEditor/LocationEditor.vue:104 @@ -723,7 +818,7 @@ msgstr "댓글" #: src/components/ConfigHistory/ConfigHistory.vue:127 msgid "Compare" -msgstr "" +msgstr "비교하다" #: src/components/ConfigHistory/DiffViewer.vue:388 #, fuzzy @@ -732,15 +827,15 @@ msgstr "구성들" #: src/components/ConfigHistory/ConfigHistory.vue:130 msgid "Compare Selected" -msgstr "" +msgstr "선택된 비교" #: src/components/ConfigHistory/ConfigHistory.vue:129 msgid "Compare with Current" -msgstr "" +msgstr "현재와 ​​비교하십시오" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:88 msgid "Compression level, 1 is lowest, 9 is highest" -msgstr "" +msgstr "압축 수준, 1은 가장 낮고 9는 가장 높습니다" #: src/constants/errors/backup.ts:14 #, fuzzy @@ -784,7 +879,7 @@ msgstr "연결됨" #: src/views/dashboard/NginxDashBoard.vue:85 msgid "Connection error, trying to reconnect..." -msgstr "" +msgstr "연결 오류, 다시 연결 시도 중..." #: src/views/terminal/Terminal.vue:142 msgid "Connection lost, please refresh the page." @@ -792,11 +887,11 @@ msgstr "연결이 끊어졌습니다. 페이지를 새로 고침하세요." #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:61 msgid "Connection timeout period" -msgstr "" +msgstr "연결 시간 초과 기간" #: src/constants/errors/docker.ts:7 msgid "Container status unknown" -msgstr "" +msgstr "컨테이너 상태를 알 수 없음" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:120 #: src/components/NgxConfigEditor/LocationEditor.vue:116 @@ -808,20 +903,20 @@ msgstr "내용" #: src/components/StdDesign/StdDataDisplay/StdTableTransformer.tsx:150 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:121 msgid "Copied" -msgstr "" +msgstr "복사됨" #: src/views/system/Backup/BackupCreator.vue:128 msgid "Copied!" -msgstr "" +msgstr "복사 완료!" #: src/components/SensitiveString/SensitiveString.vue:37 #: src/views/system/Backup/BackupCreator.vue:128 msgid "Copy" -msgstr "" +msgstr "복사" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:121 msgid "Copy Codes" -msgstr "" +msgstr "코드 복사" #: src/views/system/Upgrade.vue:146 msgid "Core Upgrade" @@ -893,7 +988,7 @@ msgstr "클라이언트 생성은 CA 서버와의 통신을 용이하게 합니 msgid "Credential" msgstr "인증 정보" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "인증 정보들" @@ -1192,7 +1287,7 @@ msgid "DNS Credentials" msgstr "DNS 인증 정보" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "DNS 제공자" @@ -1242,6 +1337,10 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 #, fuzzy @@ -1254,7 +1353,7 @@ msgstr[1] "API 문서" msgid "Domain" msgstr "도메인" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "도메인 목록이 비어 있습니다. %{config}에 대한 자동 인증서를 다시 열어보세요" @@ -1520,7 +1619,7 @@ msgstr "" msgid "External Notify" msgstr "" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 #, fuzzy msgid "Fail to obtain certificate" msgstr "인증서 획득 실패" @@ -1674,6 +1773,11 @@ msgstr "" msgid "Failed to delete certificate" msgstr "인증서 획득 실패" +#: src/language/generate.ts:9 +#, fuzzy +msgid "Failed to delete certificate from database: %{error}" +msgstr "인증서 획득 실패" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1837,6 +1941,11 @@ msgstr "" msgid "Failed to revoke certificate" msgstr "인증서 획득 실패" +#: src/language/generate.ts:17 +#, fuzzy +msgid "Failed to revoke certificate: %{error}" +msgstr "인증서 획득 실패" + #: src/views/dashboard/components/ParamsOptimization.vue:90 #, fuzzy msgid "Failed to save Nginx performance settings" @@ -1876,7 +1985,7 @@ msgstr "파일을 찾을 수 없음" msgid "Filename is empty" msgstr "" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "필터" @@ -2061,7 +2170,7 @@ msgid "Import" msgstr "가져오기" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 #, fuzzy msgid "Import Certificate" msgstr "인증서 상태" @@ -2295,8 +2404,8 @@ msgstr "Leave blank for no change" msgid "Leave blank if you don't need this." msgstr "Leave blank for no change" -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 #, fuzzy msgid "Leave blank will not change anything" msgstr "변경사항이 없으면 비워두세요" @@ -2374,11 +2483,15 @@ msgstr "위치" msgid "Locations" msgstr "위치들" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 #, fuzzy msgid "Log" msgstr "로그인" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 msgid "Log List" msgstr "" @@ -2583,7 +2696,7 @@ msgid "Modify" msgstr "설정 수정" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 #, fuzzy msgid "Modify Certificate" msgstr "인증서 상태" @@ -2604,8 +2717,8 @@ msgstr "단일 지시문" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 @@ -2770,7 +2883,7 @@ msgstr "" msgid "Nginx is running" msgstr "" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "Nginx 로그" @@ -3801,7 +3914,7 @@ msgstr "실행 중" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -3866,7 +3979,7 @@ msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 #, fuzzy msgid "Save successfully" @@ -3882,7 +3995,7 @@ msgstr "성공적으로 저장됨" msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "" -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "" @@ -4061,7 +4174,7 @@ msgstr "" msgid "Sleep time between cache manager iterations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 #, fuzzy msgid "SSL Certificate Content" msgstr "인증서 상태" @@ -4075,16 +4188,16 @@ msgstr "" msgid "SSL certificate file not found" msgstr "SSL 인증서키 콘텐츠" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 msgid "SSL Certificate Key Content" msgstr "SSL 인증서키 콘텐츠" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 #, fuzzy msgid "SSL Certificate Key Path" msgstr "SSL 인증서 키 경로" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 #, fuzzy msgid "SSL Certificate Path" @@ -4266,7 +4379,7 @@ msgstr "" msgid "Sync strategy" msgstr "인증서 갱신" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 msgid "Sync to" msgstr "" @@ -4340,11 +4453,11 @@ msgid "" "dashes, colons, and dots." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 msgid "The input is not a SSL Certificate" msgstr "입력이 SSL 인증서가 아닙니다" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 #, fuzzy msgid "The input is not a SSL Certificate Key" msgstr "Certificate Status" @@ -4377,12 +4490,12 @@ msgstr "" msgid "The parameter of server_name is required" msgstr "server_name 매개변수가 필요합니다" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 #, fuzzy msgid "The path exists, but the file is not a certificate" msgstr "Certificate Status" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 msgid "The path exists, but the file is not a private key" msgstr "경로는 존재하지만 파일은 개인 키가 아닙니다" @@ -4439,17 +4552,17 @@ msgid "" "lose access to your account." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 msgid "This Auto Cert item is invalid, please remove it." msgstr "이 자동 인증 항목이 유효하지 않습니다. 제거해주세요." -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "이 인증서는 Nginx UI에서 관리됩니다" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "이 필드는 필수입니다" diff --git a/app/src/language/messages.pot b/app/src/language/messages.pot index 8c0d5f1b..618dad64 100644 --- a/app/src/language/messages.pot +++ b/app/src/language/messages.pot @@ -2,6 +2,90 @@ msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "" + +#: src/language/generate.ts:28 +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "" + +#: src/language/generate.ts:8 +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "" + +#: src/language/generate.ts:24 +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "" + +#: src/language/generate.ts:12 +msgid "[Nginx UI] Environment variables cleaned" +msgstr "" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "" + +#: src/language/generate.ts:4 +msgid "[Nginx UI] Issued certificate successfully" +msgstr "" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "" + +#: src/language/generate.ts:6 +msgid "[Nginx UI] Setting environment variables" +msgstr "" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "" @@ -97,7 +181,7 @@ msgstr "" msgid "Added successfully" msgstr "" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 msgid "Additional" msgstr "" @@ -124,7 +208,7 @@ msgstr "" msgid "API Base Url" msgstr "" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" msgstr "" @@ -264,7 +348,7 @@ msgstr "" msgid "auto = CPU cores" msgstr "" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "" @@ -284,11 +368,11 @@ msgstr "" msgid "Automatically indexed from site and stream configurations." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:259 +#: src/views/certificate/CertificateEditor.vue:259 #: src/views/config/ConfigEditor.vue:266 #: src/views/config/ConfigList.vue:112 #: src/views/config/ConfigList.vue:195 -#: src/views/nginx_log/NginxLog.vue:173 +#: src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -501,6 +585,10 @@ msgstr "" msgid "Certificate Expiring Soon" msgstr "" +#: src/language/generate.ts:5 +msgid "Certificate not found: %{error}" +msgstr "" + #: src/constants/errors/cert.ts:5 msgid "Certificate parse error" msgstr "" @@ -522,7 +610,11 @@ msgstr "" msgid "Certificate renewed successfully" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +msgid "Certificate revoked successfully" +msgstr "" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 msgid "Certificate Status" msgid_plural "Certificates Status" @@ -841,7 +933,7 @@ msgstr "" msgid "Credential" msgstr "" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "" @@ -1120,7 +1212,7 @@ msgid "DNS Credentials" msgstr "" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "" @@ -1169,6 +1261,10 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 msgid "Document" @@ -1180,7 +1276,7 @@ msgstr[1] "" msgid "Domain" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "" @@ -1428,7 +1524,7 @@ msgstr "" msgid "External Notify" msgstr "" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 msgid "Fail to obtain certificate" msgstr "" @@ -1560,6 +1656,10 @@ msgstr "" msgid "Failed to delete certificate" msgstr "" +#: src/language/generate.ts:9 +msgid "Failed to delete certificate from database: %{error}" +msgstr "" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1700,6 +1800,10 @@ msgstr "" msgid "Failed to revoke certificate" msgstr "" +#: src/language/generate.ts:17 +msgid "Failed to revoke certificate: %{error}" +msgstr "" + #: src/views/dashboard/components/ParamsOptimization.vue:90 msgid "Failed to save Nginx performance settings" msgstr "" @@ -1736,7 +1840,7 @@ msgstr "" msgid "Filename is empty" msgstr "" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "" @@ -1903,7 +2007,7 @@ msgid "Import" msgstr "" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Import Certificate" msgstr "" @@ -2117,8 +2221,8 @@ msgstr "" msgid "Leave blank if you don't need this." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 msgid "Leave blank will not change anything" msgstr "" @@ -2189,10 +2293,14 @@ msgstr "" msgid "Locations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 msgid "Log" msgstr "" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 #: src/views/nginx_log/NginxLogList.vue:67 msgid "Log List" @@ -2380,7 +2488,7 @@ msgid "Modify" msgstr "" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Modify Certificate" msgstr "" @@ -2398,8 +2506,8 @@ msgstr "" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 @@ -2557,7 +2665,7 @@ msgid "Nginx is running" msgstr "" #: src/routes/modules/nginx_log.ts:9 -#: src/views/nginx_log/NginxLog.vue:143 +#: src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "" @@ -3482,7 +3590,7 @@ msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -3539,7 +3647,7 @@ msgstr "" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 msgid "Save successfully" msgstr "" @@ -3555,7 +3663,7 @@ msgstr "" msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "" -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "" @@ -3720,7 +3828,7 @@ msgstr "" msgid "Sleep time between cache manager iterations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 msgid "SSL Certificate Content" msgstr "" @@ -3732,15 +3840,15 @@ msgstr "" msgid "SSL certificate file not found" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 msgid "SSL Certificate Key Content" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 msgid "SSL Certificate Key Path" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 msgid "SSL Certificate Path" msgstr "" @@ -3906,7 +4014,7 @@ msgstr "" msgid "Sync strategy" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 msgid "Sync to" msgstr "" @@ -3970,11 +4078,11 @@ msgstr "" msgid "The ICP Number should only contain letters, unicode, numbers, hyphens, dashes, colons, and dots." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 msgid "The input is not a SSL Certificate" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 msgid "The input is not a SSL Certificate Key" msgstr "" @@ -3999,11 +4107,11 @@ msgstr "" msgid "The parameter of server_name is required" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 msgid "The path exists, but the file is not a certificate" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 msgid "The path exists, but the file is not a private key" msgstr "" @@ -4045,17 +4153,17 @@ msgstr "" msgid "These codes are the last resort for accessing your account in case you lose your password and second factors. If you cannot find these codes, you will lose access to your account." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 msgid "This Auto Cert item is invalid, please remove it." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "" diff --git a/app/src/language/pt_PT/app.po b/app/src/language/pt_PT/app.po index f9066128..8107434a 100644 --- a/app/src/language/pt_PT/app.po +++ b/app/src/language/pt_PT/app.po @@ -12,6 +12,100 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.6.2\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "[Nginx UI] Utilizador ACME: %{name}, Email: %{email}, Diretório CA: %{caDir}" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "" +"[Nginx UI] A fazer cópia de segurança do certificado atual para posterior " +"revogação" + +#: src/language/generate.ts:28 +#, fuzzy +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "Limpo com sucesso" + +#: src/language/generate.ts:8 +#, fuzzy +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "Nginx reiniciado com sucesso" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "" +"[Nginx UI] O certificado foi usado para o servidor, a recarregar o " +"certificado TLS do servidor" + +#: src/language/generate.ts:24 +#, fuzzy +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "Criar cliente facilita comunicação com o servidor CA" + +#: src/language/generate.ts:12 +#, fuzzy +msgid "[Nginx UI] Environment variables cleaned" +msgstr "Variáveis de ambiente limpas" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "[Nginx UI] Concluído" + +#: src/language/generate.ts:4 +#, fuzzy +msgid "[Nginx UI] Issued certificate successfully" +msgstr "Certificado emitido com sucesso" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "[Nginx UI] A obter certificado" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "[Nginx UI] Preparando para a revogação do certificado" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "[Nginx UI] A preparar configurações do lego" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "[Nginx UI] A recarregar o nginx" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "[Nginx UI] Revogação concluída" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "[Nginx UI] Revogar certificado" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "[Nginx UI] Revogar certificado antigo" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "[Nginx UI] A configurar o fornecedor de desafio DNS01" + +#: src/language/generate.ts:6 +#, fuzzy +msgid "[Nginx UI] Setting environment variables" +msgstr "Definindo variáveis de ambiente" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "[Nginx UI] A configurar o fornecedor de desafio HTTP01" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "[Nginx UI] A gravar a chave privada do certificado no disco" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "[Nginx UI] A escrever o certificado no disco" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "2FA" @@ -104,7 +198,7 @@ msgstr "Adicionar Stream" msgid "Added successfully" msgstr "Adicionado com sucesso" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 msgid "Additional" msgstr "Adicional" @@ -133,7 +227,7 @@ msgstr "Todos os Códigos de Recuperação Foram Utilizados" msgid "API Base Url" msgstr "Url Base da API" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" msgstr "Documento da API" @@ -282,7 +376,7 @@ msgstr "Automático" msgid "auto = CPU cores" msgstr "auto = núcleos da CPU" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "Actualizar Automaticamente" @@ -302,9 +396,9 @@ msgstr "Reinício Automático" msgid "Automatically indexed from site and stream configurations." msgstr "Indexado automaticamente a partir das configurações de site e stream." -#: src/views/certificate/components/CertificateEditor.vue:259 +#: src/views/certificate/CertificateEditor.vue:259 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:173 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -516,42 +610,40 @@ msgid "Certificate %{name} will expire in 1 day" msgstr "O certificado %{name} irá expirar em 1 dia" #: src/constants/errors/cert.ts:4 -#, fuzzy msgid "Certificate decode error" -msgstr "Erro ao Sincronizar Certificado" +msgstr "Erro de descodificação do certificado" #: src/components/Notification/notifications.ts:29 -#, fuzzy msgid "Certificate Expiration Notice" -msgstr "Conteúdo do Certificado SSL" +msgstr "Aviso de Expiração do Certificado" #: src/components/Notification/notifications.ts:25 -#, fuzzy msgid "Certificate Expired" -msgstr "Lista de Certificados" +msgstr "Certificado expirado" #: src/components/Notification/notifications.ts:33 #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 -#, fuzzy msgid "Certificate Expiring Soon" -msgstr "Erro ao Sincronizar Certificado" +msgstr "Certificado a expirar em breve" + +#: src/language/generate.ts:5 +#, fuzzy +msgid "Certificate not found: %{error}" +msgstr "Erro de descodificação do certificado" #: src/constants/errors/cert.ts:5 -#, fuzzy msgid "Certificate parse error" -msgstr "Erro ao Sincronizar Certificado" +msgstr "Erro de análise do certificado" #: src/constants/errors/cert.ts:8 -#, fuzzy msgid "Certificate path is empty" -msgstr "Lista de Certificados" +msgstr "O caminho do certificado está vazio" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 -#, fuzzy msgid "Certificate removed successfully" -msgstr "Removido com sucesso" +msgstr "Certificado removido com sucesso" #: src/views/preference/tabs/CertSettings.vue:27 msgid "Certificate Renewal Interval" @@ -562,7 +654,12 @@ msgstr "Intervalo de Renovação do Certificado" msgid "Certificate renewed successfully" msgstr "Limpo com sucesso" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +#, fuzzy +msgid "Certificate revoked successfully" +msgstr "Certificado removido com sucesso" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 msgid "Certificate Status" msgid_plural "Certificates Status" @@ -605,7 +702,7 @@ msgstr "Canal" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:40 #: src/views/stream/components/RightPanel/RightPanel.vue:22 msgid "Chat" -msgstr "" +msgstr "Chat" #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40 #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64 @@ -623,40 +720,49 @@ msgid "" "Docker Image, please make sure the docker socket is mounted like this: `-v " "/var/run/docker.sock:/var/run/docker.sock`." msgstr "" +"Verifique se /var/run/docker.sock existe. Se estiver a utilizar a imagem " +"Docker oficial do Nginx UI, certifique-se de que o socket Docker está " +"montado da seguinte forma: `-v /var/run/docker.sock:/var/run/docker.sock`." #: src/components/SelfCheck/tasks/frontend/https-check.ts:11 msgid "" "Check if HTTPS is enabled. Using HTTP outside localhost is insecure and " "prevents using Passkeys and clipboard features." msgstr "" +"Verifique se o HTTPS está ativado. Usar HTTP fora do localhost é inseguro e " +"impede a utilização de Passkeys e funcionalidades da área de transferência." #: src/components/SelfCheck/tasks/backend/index.ts:26 msgid "Check if the nginx.conf includes the conf.d directory." -msgstr "" +msgstr "Verifique se o nginx.conf inclui o diretório conf.d." #: src/components/SelfCheck/tasks/backend/index.ts:16 msgid "Check if the nginx.conf includes the sites-enabled directory." -msgstr "" +msgstr "Verifique se o nginx.conf inclui o diretório sites-enabled." #: src/components/SelfCheck/tasks/backend/index.ts:21 msgid "Check if the nginx.conf includes the streams-enabled directory." -msgstr "" +msgstr "Verifique se o nginx.conf inclui o diretório streams-enabled." #: src/components/SelfCheck/tasks/backend/index.ts:6 msgid "" "Check if the sites-available and sites-enabled directories are under the " "nginx configuration directory." msgstr "" +"Verifique se os diretórios sites-available e sites-enabled estão no " +"diretório de configuração do nginx." #: src/components/SelfCheck/tasks/backend/index.ts:11 msgid "" "Check if the streams-available and streams-enabled directories are under " "the nginx configuration directory." msgstr "" +"Verifique se os diretórios streams-available e streams-enabled estão no " +"diretório de configuração do nginx." #: src/constants/errors/crypto.ts:3 msgid "Cipher text is too short" -msgstr "" +msgstr "O texto cifrado é demasiado curto" #: src/language/constants.ts:13 msgid "Cleaning environment variables" @@ -676,44 +782,43 @@ msgstr "Limpo com sucesso" #: src/components/SystemRestore/SystemRestoreContent.vue:194 #: src/components/SystemRestore/SystemRestoreContent.vue:271 msgid "Click or drag backup file to this area to upload" -msgstr "" +msgstr "Clique ou arraste o arquivo de backup para esta área para fazer o upload" #: src/views/preference/components/AuthSettings/TOTP.vue:110 msgid "Click to copy" -msgstr "" +msgstr "Clique para copiar" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:120 msgid "Client Body Buffer Size" -msgstr "" +msgstr "Tamanho do buffer do corpo do cliente" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:113 msgid "Client Header Buffer Size" -msgstr "" +msgstr "Tamanho do buffer de cabeçalho do cliente" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:99 msgid "Client Max Body Size" -msgstr "" +msgstr "Tamanho máximo do corpo do cliente" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:121 msgid "Client request body buffer size" -msgstr "" +msgstr "Tamanho do buffer do corpo da solicitação do cliente" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:114 msgid "Client request header buffer size" -msgstr "" +msgstr "Tamanho do buffer de cabeçalho de pedido do cliente" #: src/components/ConfigHistory/ConfigHistory.vue:169 msgid "Close" -msgstr "" +msgstr "Fechar" #: src/constants/errors/llm.ts:2 -#, fuzzy msgid "Code completion is not enabled" -msgstr "2FA não habilitado para conta actual." +msgstr "A conclusão de código não está ativada" #: src/views/preference/tabs/OpenAISettings.vue:86 msgid "Code Completion Model" -msgstr "" +msgstr "Modelo de conclusão de código" #: src/views/preference/tabs/LogrotateSettings.vue:23 msgid "Command" @@ -721,7 +826,7 @@ msgstr "Comando" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" -msgstr "" +msgstr "O comando terminou com um código de saída inesperado: {0}, erro: {1}" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:115 #: src/components/NgxConfigEditor/LocationEditor.vue:104 @@ -732,7 +837,7 @@ msgstr "Comentários" #: src/components/ConfigHistory/ConfigHistory.vue:127 msgid "Compare" -msgstr "" +msgstr "Comparar" #: src/components/ConfigHistory/DiffViewer.vue:388 #, fuzzy @@ -741,15 +846,15 @@ msgstr "Configurações" #: src/components/ConfigHistory/ConfigHistory.vue:130 msgid "Compare Selected" -msgstr "" +msgstr "Compare selecionado" #: src/components/ConfigHistory/ConfigHistory.vue:129 msgid "Compare with Current" -msgstr "" +msgstr "Compare com a corrente" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:88 msgid "Compression level, 1 is lowest, 9 is highest" -msgstr "" +msgstr "O nível de compressão, 1 é mais baixo, 9 é mais alto" #: src/constants/errors/backup.ts:14 #, fuzzy @@ -793,7 +898,7 @@ msgstr "Conectado" #: src/views/dashboard/NginxDashBoard.vue:85 msgid "Connection error, trying to reconnect..." -msgstr "" +msgstr "Erro de conexão, tentando reconectar..." #: src/views/terminal/Terminal.vue:142 msgid "Connection lost, please refresh the page." @@ -801,11 +906,11 @@ msgstr "Ligação perdida, por favor actualize a página." #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:61 msgid "Connection timeout period" -msgstr "" +msgstr "Período de tempo limite de conexão" #: src/constants/errors/docker.ts:7 msgid "Container status unknown" -msgstr "" +msgstr "Estado do contentor desconhecido" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:120 #: src/components/NgxConfigEditor/LocationEditor.vue:116 @@ -901,7 +1006,7 @@ msgstr "Criar cliente facilita comunicação com o servidor CA" msgid "Credential" msgstr "Credencial" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "Credenciais" @@ -1203,7 +1308,7 @@ msgid "DNS Credentials" msgstr "Credenciais DNS" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "Provedor DNS" @@ -1253,6 +1358,10 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 #, fuzzy @@ -1265,7 +1374,7 @@ msgstr[1] "Documento da API" msgid "Domain" msgstr "Domínio" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "A lista de domínios está vazia, tente reabrir o Auto Cert para %{config}" @@ -1526,7 +1635,7 @@ msgstr "" msgid "External Notify" msgstr "" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 msgid "Fail to obtain certificate" msgstr "Obtenção de Certificado Falhou" @@ -1667,6 +1776,11 @@ msgstr "" msgid "Failed to delete certificate" msgstr "Obtenção de Certificado Falhou" +#: src/language/generate.ts:9 +#, fuzzy +msgid "Failed to delete certificate from database: %{error}" +msgstr "Obtenção de Certificado Falhou" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1827,6 +1941,11 @@ msgstr "" msgid "Failed to revoke certificate" msgstr "Obtenção de Certificado Falhou" +#: src/language/generate.ts:17 +#, fuzzy +msgid "Failed to revoke certificate: %{error}" +msgstr "Obtenção de Certificado Falhou" + #: src/views/dashboard/components/ParamsOptimization.vue:90 msgid "Failed to save Nginx performance settings" msgstr "" @@ -1864,7 +1983,7 @@ msgstr "Ficheiro Não Encontrado" msgid "Filename is empty" msgstr "" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "Filtro" @@ -2057,7 +2176,7 @@ msgid "Import" msgstr "Importar" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Import Certificate" msgstr "Importar Certificados" @@ -2285,8 +2404,8 @@ msgstr "Deixe em branco para não alterar" msgid "Leave blank if you don't need this." msgstr "Deixar em branco não vai mudar nada" -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 msgid "Leave blank will not change anything" msgstr "Deixar em branco não vai mudar nada" @@ -2359,10 +2478,14 @@ msgstr "Localização" msgid "Locations" msgstr "Localizações" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 msgid "Log" msgstr "Log" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 #, fuzzy msgid "Log List" @@ -2564,7 +2687,7 @@ msgid "Modify" msgstr "Modificar" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Modify Certificate" msgstr "Modificar Certificado" @@ -2582,8 +2705,8 @@ msgstr "Diretiva Multilinha" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 @@ -2742,7 +2865,7 @@ msgstr "" msgid "Nginx is running" msgstr "" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "Logs do Nginx" @@ -3762,7 +3885,7 @@ msgstr "Executando" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -3827,7 +3950,7 @@ msgstr "%{conf_name} duplicado para %{node_name} com sucesso" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 msgid "Save successfully" msgstr "Salvo com sucesso" @@ -3844,7 +3967,7 @@ msgstr "" "Digitalize o código QR com o seu telemóvel para adicionar a conta à " "aplicação." -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "SDK" @@ -4021,7 +4144,7 @@ msgstr "" msgid "Sleep time between cache manager iterations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 msgid "SSL Certificate Content" msgstr "Conteúdo do Certificado SSL" @@ -4034,15 +4157,15 @@ msgstr "" msgid "SSL certificate file not found" msgstr "Conteúdo da Chave do Certificado SSL" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 msgid "SSL Certificate Key Content" msgstr "Conteúdo da Chave do Certificado SSL" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 msgid "SSL Certificate Key Path" msgstr "Caminho para a Chave do Certificado SSL" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 msgid "SSL Certificate Path" msgstr "Caminho para o Certificado SSL" @@ -4218,7 +4341,7 @@ msgstr "Sincronizar para" msgid "Sync strategy" msgstr "Sincronizar Certificado" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 msgid "Sync to" msgstr "Sincronizar para" @@ -4297,11 +4420,11 @@ msgstr "" "O nome do modelo deve conter apenas letras, unicode, números, hífens, " "travessões e pontos." -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 msgid "The input is not a SSL Certificate" msgstr "A valor introduzido não é um certificado SSL" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 msgid "The input is not a SSL Certificate Key" msgstr "O valor introduzido não é uma Chave de Certificado SSL" @@ -4339,11 +4462,11 @@ msgstr "" msgid "The parameter of server_name is required" msgstr "Parâmetro server_name é obrigatório" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 msgid "The path exists, but the file is not a certificate" msgstr "O caminho existe, mas o ficheiro não é um certificado" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 msgid "The path exists, but the file is not a private key" msgstr "O caminho existe, mas o ficheiro não é uma chave privada" @@ -4403,17 +4526,17 @@ msgid "" "lose access to your account." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 msgid "This Auto Cert item is invalid, please remove it." msgstr "Este item Auto Cert é inválido, por favor remova-o." -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "Este certificado é gerido pelo Nginx UI" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "Este campo é mantatório" diff --git a/app/src/language/ru_RU/app.po b/app/src/language/ru_RU/app.po index e20310fb..36874479 100644 --- a/app/src/language/ru_RU/app.po +++ b/app/src/language/ru_RU/app.po @@ -16,6 +16,100 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.5\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "[Nginx UI] Пользователь ACME: %{name}, Email: %{email}, Каталог CA: %{caDir}" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "" +"[Nginx UI] Резервное копирование текущего сертификата для последующего " +"отзыва" + +#: src/language/generate.ts:28 +#, fuzzy +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "Сертификат успешно продлен" + +#: src/language/generate.ts:8 +#, fuzzy +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "Nginx успешно перезапущен" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "" +"[Nginx UI] Сертификат использовался для сервера, перезагрузка " +"TLS-сертификата сервера" + +#: src/language/generate.ts:24 +#, fuzzy +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "Создание клиента облегчает связь с сервером CA" + +#: src/language/generate.ts:12 +#, fuzzy +msgid "[Nginx UI] Environment variables cleaned" +msgstr "Переменные окружения очищены" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "[Nginx UI] Завершено" + +#: src/language/generate.ts:4 +#, fuzzy +msgid "[Nginx UI] Issued certificate successfully" +msgstr "Сертификат успешно выдан" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "[Nginx UI] Получение сертификата" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "[Nginx UI] Подготовка к отзыву сертификата" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "[Nginx UI] Подготовка конфигураций lego" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "[Nginx UI] Перезагрузка nginx" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "[Nginx UI] Отзыв завершен" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "[Nginx UI] Отзыв сертификата" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "[Nginx UI] Отзыв старого сертификата" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "[Nginx UI] Настройка провайдера проверки DNS01" + +#: src/language/generate.ts:6 +#, fuzzy +msgid "[Nginx UI] Setting environment variables" +msgstr "Настройка переменных сред" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "[Nginx UI] Настройка провайдера HTTP01-проверки" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "[Nginx UI] Запись закрытого ключа сертификата на диск" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "[Nginx UI] Запись сертификата на диск" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "2FA" @@ -108,7 +202,7 @@ msgstr "Добавить поток" msgid "Added successfully" msgstr "Добавлено успешно" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 msgid "Additional" msgstr "Дополнительно" @@ -135,7 +229,7 @@ msgstr "Все коды восстановления были использов msgid "API Base Url" msgstr "Базовый URL API" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" msgstr "API Документ" @@ -278,7 +372,7 @@ msgstr "Авто" msgid "auto = CPU cores" msgstr "Auto = ядра процессора" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "Автообновление" @@ -298,11 +392,9 @@ msgstr "\"Автоматическая перезагрузка\"" msgid "Automatically indexed from site and stream configurations." msgstr "\"Автоматически проиндексировано из конфигураций сайта и потока.\"" -#: src/views/certificate/components/CertificateEditor.vue:259 -#: src/views/config/ConfigEditor.vue:266 -#: src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 -#: src/views/nginx_log/NginxLog.vue:173 +#: src/views/certificate/CertificateEditor.vue:259 +#: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -516,36 +608,36 @@ msgid "Certificate decode error" msgstr "Ошибка декодирования сертификата" #: src/components/Notification/notifications.ts:29 -#, fuzzy msgid "Certificate Expiration Notice" -msgstr "Шаблоны конфигурации" +msgstr "Уведомление об истечении срока действия сертификата" #: src/components/Notification/notifications.ts:25 -#, fuzzy msgid "Certificate Expired" -msgstr "Список сертификатов" +msgstr "Сертификат истёк" #: src/components/Notification/notifications.ts:33 #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 -#, fuzzy msgid "Certificate Expiring Soon" -msgstr "Ошибка анализа сертификата" +msgstr "Сертификат скоро истекает" + +#: src/language/generate.ts:5 +#, fuzzy +msgid "Certificate not found: %{error}" +msgstr "Ошибка декодирования сертификата" #: src/constants/errors/cert.ts:5 msgid "Certificate parse error" -msgstr "Ошибка анализа сертификата" +msgstr "Ошибка разбора сертификата" #: src/constants/errors/cert.ts:8 -#, fuzzy msgid "Certificate path is empty" -msgstr "Шаблоны конфигурации" +msgstr "Путь к сертификату пуст" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 -#, fuzzy msgid "Certificate removed successfully" -msgstr "Сертификат успешно продлен" +msgstr "Сертификат успешно удален" #: src/views/preference/tabs/CertSettings.vue:27 msgid "Certificate Renewal Interval" @@ -555,7 +647,12 @@ msgstr "Интервал обновления сертификата" msgid "Certificate renewed successfully" msgstr "Сертификат успешно продлен" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +#, fuzzy +msgid "Certificate revoked successfully" +msgstr "Сертификат успешно удален" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 msgid "Certificate Status" msgid_plural "Certificates Status" @@ -598,7 +695,7 @@ msgstr "Канал" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:40 #: src/views/stream/components/RightPanel/RightPanel.vue:22 msgid "Chat" -msgstr "" +msgstr "Чат" #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40 #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64 @@ -616,40 +713,49 @@ msgid "" "Docker Image, please make sure the docker socket is mounted like this: `-v " "/var/run/docker.sock:/var/run/docker.sock`." msgstr "" +"Проверьте, существует ли /var/run/docker.sock. Если вы используете " +"официальный образ Docker Nginx UI, убедитесь, что сокет Docker подключен " +"следующим образом: `-v /var/run/docker.sock:/var/run/docker.sock`." #: src/components/SelfCheck/tasks/frontend/https-check.ts:11 msgid "" "Check if HTTPS is enabled. Using HTTP outside localhost is insecure and " "prevents using Passkeys and clipboard features." msgstr "" +"Проверьте, включён ли HTTPS. Использование HTTP вне localhost небезопасно и " +"блокирует функции Passkeys и буфера обмена." #: src/components/SelfCheck/tasks/backend/index.ts:26 msgid "Check if the nginx.conf includes the conf.d directory." -msgstr "" +msgstr "Проверьте, включает ли файл nginx.conf каталог conf.d." #: src/components/SelfCheck/tasks/backend/index.ts:16 msgid "Check if the nginx.conf includes the sites-enabled directory." -msgstr "" +msgstr "Проверьте, включает ли файл nginx.conf каталог sites-enabled." #: src/components/SelfCheck/tasks/backend/index.ts:21 msgid "Check if the nginx.conf includes the streams-enabled directory." -msgstr "" +msgstr "Проверьте, включает ли файл nginx.conf каталог streams-enabled." #: src/components/SelfCheck/tasks/backend/index.ts:6 msgid "" "Check if the sites-available and sites-enabled directories are under the " "nginx configuration directory." msgstr "" +"Проверьте, находятся ли каталоги sites-available и sites-enabled в каталоге " +"конфигурации nginx." #: src/components/SelfCheck/tasks/backend/index.ts:11 msgid "" "Check if the streams-available and streams-enabled directories are under " "the nginx configuration directory." msgstr "" +"Проверьте, находятся ли каталоги streams-available и streams-enabled в " +"директории конфигурации nginx." #: src/constants/errors/crypto.ts:3 msgid "Cipher text is too short" -msgstr "" +msgstr "Зашифрованный текст слишком короткий" #: src/language/constants.ts:13 msgid "Cleaning environment variables" @@ -670,43 +776,44 @@ msgstr "Очищено успешно" #: src/components/SystemRestore/SystemRestoreContent.vue:271 msgid "Click or drag backup file to this area to upload" msgstr "" +"Нажмите или перетащите файл резервного копирования в эту область, чтобы " +"загрузить" #: src/views/preference/components/AuthSettings/TOTP.vue:110 msgid "Click to copy" -msgstr "" +msgstr "Нажмите, чтобы скопировать" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:120 msgid "Client Body Buffer Size" -msgstr "" +msgstr "Размер буфера корпуса клиента" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:113 msgid "Client Header Buffer Size" -msgstr "" +msgstr "Размер буфера заголовков клиента" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:99 msgid "Client Max Body Size" -msgstr "" +msgstr "Максимальный размер тела клиента" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:121 msgid "Client request body buffer size" -msgstr "" +msgstr "Размер буфера тела запроса клиента" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:114 msgid "Client request header buffer size" -msgstr "" +msgstr "Размер буфера заголовков запроса клиента" #: src/components/ConfigHistory/ConfigHistory.vue:169 msgid "Close" -msgstr "" +msgstr "Закрыть" #: src/constants/errors/llm.ts:2 -#, fuzzy msgid "Code completion is not enabled" -msgstr "Для текущей учетной записи TOTP не включен." +msgstr "Автодополнение кода не включено" #: src/views/preference/tabs/OpenAISettings.vue:86 msgid "Code Completion Model" -msgstr "" +msgstr "Модель автодополнения кода" #: src/views/preference/tabs/LogrotateSettings.vue:23 msgid "Command" @@ -714,7 +821,7 @@ msgstr "Команда" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" -msgstr "" +msgstr "Команда завершилась с неожиданным кодом выхода: {0}, ошибка: {1}" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:115 #: src/components/NgxConfigEditor/LocationEditor.vue:104 @@ -725,7 +832,7 @@ msgstr "Комментарии" #: src/components/ConfigHistory/ConfigHistory.vue:127 msgid "Compare" -msgstr "" +msgstr "Сравнивать" #: src/components/ConfigHistory/DiffViewer.vue:388 #, fuzzy @@ -734,15 +841,15 @@ msgstr "Конфигурации" #: src/components/ConfigHistory/ConfigHistory.vue:130 msgid "Compare Selected" -msgstr "" +msgstr "Сравните выбранный" #: src/components/ConfigHistory/ConfigHistory.vue:129 msgid "Compare with Current" -msgstr "" +msgstr "Сравните с током" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:88 msgid "Compression level, 1 is lowest, 9 is highest" -msgstr "" +msgstr "Уровень сжатия, 1 самый низкий, 9 - самый высокий" #: src/constants/errors/backup.ts:14 #, fuzzy @@ -786,7 +893,7 @@ msgstr "Подключено" #: src/views/dashboard/NginxDashBoard.vue:85 msgid "Connection error, trying to reconnect..." -msgstr "" +msgstr "Ошибка соединения, попытка переподключения..." #: src/views/terminal/Terminal.vue:142 msgid "Connection lost, please refresh the page." @@ -794,11 +901,11 @@ msgstr "Соединение потеряно, пожалуйста, обнов #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:61 msgid "Connection timeout period" -msgstr "" +msgstr "Период таймаута соединения" #: src/constants/errors/docker.ts:7 msgid "Container status unknown" -msgstr "" +msgstr "Статус контейнера неизвестен" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:120 #: src/components/NgxConfigEditor/LocationEditor.vue:116 @@ -893,7 +1000,7 @@ msgstr "Создание клиента облегчает связь с сер msgid "Credential" msgstr "Учетные данные" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "Учетные данные" @@ -1190,7 +1297,7 @@ msgid "DNS Credentials" msgstr "DNS учетные данные" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "Провайдер DNS" @@ -1241,6 +1348,10 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 #, fuzzy @@ -1253,7 +1364,7 @@ msgstr[1] "API Документ" msgid "Domain" msgstr "Домен" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "Список доменов пуст, попробуйте заново создать авто-сертификат для %{config}" @@ -1515,7 +1626,7 @@ msgstr "" msgid "External Notify" msgstr "" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 msgid "Fail to obtain certificate" msgstr "Не удалось получить сертификат" @@ -1668,6 +1779,11 @@ msgstr "" msgid "Failed to delete certificate" msgstr "Не удалось получить сертификат" +#: src/language/generate.ts:9 +#, fuzzy +msgid "Failed to delete certificate from database: %{error}" +msgstr "Не удалось получить сертификат" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1831,6 +1947,11 @@ msgstr "" msgid "Failed to revoke certificate" msgstr "Не удалось получить сертификат" +#: src/language/generate.ts:17 +#, fuzzy +msgid "Failed to revoke certificate: %{error}" +msgstr "Не удалось получить сертификат" + #: src/views/dashboard/components/ParamsOptimization.vue:90 #, fuzzy msgid "Failed to save Nginx performance settings" @@ -1870,7 +1991,7 @@ msgstr "Файл не найден" msgid "Filename is empty" msgstr "" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "Фильтр" @@ -2064,7 +2185,7 @@ msgid "Import" msgstr "Импорт" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Import Certificate" msgstr "Импортировать сертификат" @@ -2290,8 +2411,8 @@ msgstr "Оставьте пустым без изменений" msgid "Leave blank if you don't need this." msgstr "Оставьте пустым без изменений." -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 msgid "Leave blank will not change anything" msgstr "Если оставить пустым, ничего не изменится" @@ -2364,10 +2485,14 @@ msgstr "Локация" msgid "Locations" msgstr "Локации" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 msgid "Log" msgstr "Журнал" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 #, fuzzy msgid "Log List" @@ -2571,7 +2696,7 @@ msgid "Modify" msgstr "Изменить" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Modify Certificate" msgstr "Изменить сертификат" @@ -2589,8 +2714,8 @@ msgstr "Многострочная директива" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 @@ -2754,7 +2879,7 @@ msgstr "Nginx не работает" msgid "Nginx is running" msgstr "Nginx не работает" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "Журнал" @@ -3772,7 +3897,7 @@ msgstr "Выполняется" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -3835,7 +3960,7 @@ msgstr "Поток %{name} успешно сохранён на %{node}" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 msgid "Save successfully" msgstr "Сохранено успешно" @@ -3852,7 +3977,7 @@ msgstr "" "Отсканируйте QR-код с помощью мобильного телефона, чтобы добавить учетную " "запись в приложение." -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "SDK" @@ -4032,7 +4157,7 @@ msgstr "" msgid "Sleep time between cache manager iterations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 msgid "SSL Certificate Content" msgstr "Содержимое SSL-сертификата" @@ -4045,15 +4170,15 @@ msgstr "" msgid "SSL certificate file not found" msgstr "Содержимое ключа SSL-сертификата" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 msgid "SSL Certificate Key Content" msgstr "Содержимое ключа SSL-сертификата" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 msgid "SSL Certificate Key Path" msgstr "Путь к ключу SSL-сертификата" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 msgid "SSL Certificate Path" msgstr "Путь к SSL сертификату" @@ -4227,7 +4352,7 @@ msgstr "Синхронизировать с" msgid "Sync strategy" msgstr "Синхронизировать сертификат" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 msgid "Sync to" msgstr "Синхронизировать с" @@ -4306,11 +4431,11 @@ msgstr "" "Имя модели должно содержать только буквы, юникод, цифры, дефисы, тире и " "точки." -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 msgid "The input is not a SSL Certificate" msgstr "Входные данные не являются SSL-сертификатом" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 msgid "The input is not a SSL Certificate Key" msgstr "Введенные данные не являются ключом SSL сертификата" @@ -4348,11 +4473,11 @@ msgstr "" msgid "The parameter of server_name is required" msgstr "server_name параметр обязателен" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 msgid "The path exists, but the file is not a certificate" msgstr "Путь существует, но файл не является сертификатом" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 msgid "The path exists, but the file is not a private key" msgstr "Путь существует, но файл не является приватным ключом" @@ -4412,17 +4537,17 @@ msgid "" "lose access to your account." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 msgid "This Auto Cert item is invalid, please remove it." msgstr "Этот элемент автосертификата недействителен, удалите его.." -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "Этот сертификат под управлением Nginx UI" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "Это поле обязательно для заполнения" diff --git a/app/src/language/tr_TR/app.po b/app/src/language/tr_TR/app.po index 1ad41e5e..7c798612 100644 --- a/app/src/language/tr_TR/app.po +++ b/app/src/language/tr_TR/app.po @@ -14,6 +14,98 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.10.4\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "[Nginx UI] ACME Kullanıcısı: %{name}, E-posta: %{email}, CA Dizini: %{caDir}" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "[Nginx UI] Geçerli sertifika daha sonra iptal edilmek üzere yedekleniyor" + +#: src/language/generate.ts:28 +#, fuzzy +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "Başarıyla temizlendi" + +#: src/language/generate.ts:8 +#, fuzzy +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "Nginx başarıyla yeniden başlatıldı" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "" +"[Nginx UI] Sertifika sunucu için kullanıldı, sunucu TLS sertifikası yeniden " +"yükleniyor" + +#: src/language/generate.ts:24 +#, fuzzy +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "İstemci oluşturmak, CA sunucusuyla iletişimi kolaylaştırır" + +#: src/language/generate.ts:12 +#, fuzzy +msgid "[Nginx UI] Environment variables cleaned" +msgstr "Ortam değişkenleri temizlendi" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "[Nginx UI] Tamamlandı" + +#: src/language/generate.ts:4 +#, fuzzy +msgid "[Nginx UI] Issued certificate successfully" +msgstr "Sertifika başarıyla yayınlandı" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "[Nginx UI] Sertifika alınıyor" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "[Nginx UI] Sertifika iptali için hazırlanıyor" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "[Nginx UI] Lego yapılandırmaları hazırlanıyor" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "[Nginx UI] Nginx yeniden yükleniyor" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "[Nginx UI] İptal tamamlandı" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "[Nginx UI] Sertifika iptal ediliyor" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "[Nginx UI] Eski sertifika iptal ediliyor" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "[Nginx UI] DNS01 meydan okuma sağlayıcısı ayarlanıyor" + +#: src/language/generate.ts:6 +#, fuzzy +msgid "[Nginx UI] Setting environment variables" +msgstr "Ortam değişkenlerini ayarlama" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "[Nginx UI] HTTP01 meydan okuma sağlayıcısı ayarlanıyor" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "[Nginx UI] Sertifika özel anahtarı diske yazılıyor" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "[Nginx UI] Sertifika diske yazılıyor" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "İki aşamalı kimlik doğrulaması(2FA)" @@ -105,7 +197,7 @@ msgstr "Akış Ekle" msgid "Added successfully" msgstr "Başarıyla eklendi" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 msgid "Additional" msgstr "İlave bilgi" @@ -132,7 +224,7 @@ msgstr "Tüm Kurtarma Kodları Kullanıldı" msgid "API Base Url" msgstr "API Temel Bağlantı Adresi" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" msgstr "API Dökümanı" @@ -275,7 +367,7 @@ msgstr "Otomobil" msgid "auto = CPU cores" msgstr "Auto = CPU Çekirdekleri" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "Otomatik Yenileme" @@ -295,11 +387,9 @@ msgstr "\"Otomatik Yeniden Başlatma\"" msgid "Automatically indexed from site and stream configurations." msgstr "\"Site ve akış yapılandırmalarından otomatik olarak dizinlendi.\"" -#: src/views/certificate/components/CertificateEditor.vue:259 -#: src/views/config/ConfigEditor.vue:266 -#: src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 -#: src/views/nginx_log/NginxLog.vue:173 +#: src/views/certificate/CertificateEditor.vue:259 +#: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -506,42 +596,40 @@ msgid "Certificate %{name} will expire in 1 day" msgstr "%{name} sertifikasının süresi 1 gün sonra dolacak" #: src/constants/errors/cert.ts:4 -#, fuzzy msgid "Certificate decode error" -msgstr "Senkronizasyon Sertifikası Hatası" +msgstr "Sertifika çözme hatası" #: src/components/Notification/notifications.ts:29 -#, fuzzy msgid "Certificate Expiration Notice" -msgstr "Yapılandırma Şablonları" +msgstr "Sertifika Son Kullanma Bildirimi" #: src/components/Notification/notifications.ts:25 -#, fuzzy msgid "Certificate Expired" -msgstr "Sertifika Listesi" +msgstr "Sertifikanın süresi doldu" #: src/components/Notification/notifications.ts:33 #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 -#, fuzzy msgid "Certificate Expiring Soon" -msgstr "Senkronizasyon Sertifikası Hatası" +msgstr "Sertifika Yakında Sona Eriyor" + +#: src/language/generate.ts:5 +#, fuzzy +msgid "Certificate not found: %{error}" +msgstr "Sertifika çözme hatası" #: src/constants/errors/cert.ts:5 -#, fuzzy msgid "Certificate parse error" -msgstr "Senkronizasyon Sertifikası Hatası" +msgstr "Sertifika ayrıştırma hatası" #: src/constants/errors/cert.ts:8 -#, fuzzy msgid "Certificate path is empty" -msgstr "Yapılandırma Şablonları" +msgstr "Sertifika yolu boş" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 -#, fuzzy msgid "Certificate removed successfully" -msgstr "Başarıyla temizlendi" +msgstr "Sertifika başarıyla kaldırıldı" #: src/views/preference/tabs/CertSettings.vue:27 msgid "Certificate Renewal Interval" @@ -552,7 +640,12 @@ msgstr "Sertifika Yenileme Aralığı" msgid "Certificate renewed successfully" msgstr "Başarıyla temizlendi" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +#, fuzzy +msgid "Certificate revoked successfully" +msgstr "Sertifika başarıyla kaldırıldı" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 msgid "Certificate Status" msgid_plural "Certificates Status" @@ -595,7 +688,7 @@ msgstr "Kanal" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:40 #: src/views/stream/components/RightPanel/RightPanel.vue:22 msgid "Chat" -msgstr "" +msgstr "Sohbet" #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40 #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64 @@ -613,40 +706,54 @@ msgid "" "Docker Image, please make sure the docker socket is mounted like this: `-v " "/var/run/docker.sock:/var/run/docker.sock`." msgstr "" +"/var/run/docker.sock dosyasının var olup olmadığını kontrol edin. Nginx UI " +"Resmi Docker Image'ını kullanıyorsanız, docker soketinin şu şekilde " +"bağlandığından emin olun: `-v /var/run/docker.sock:/var/run/docker.sock`." #: src/components/SelfCheck/tasks/frontend/https-check.ts:11 msgid "" "Check if HTTPS is enabled. Using HTTP outside localhost is insecure and " "prevents using Passkeys and clipboard features." msgstr "" +"HTTPS'nin etkin olup olmadığını kontrol edin. localhost dışında HTTP " +"kullanmak güvensizdir ve Passkeys ile panosu özelliklerini kullanmayı " +"engeller." #: src/components/SelfCheck/tasks/backend/index.ts:26 msgid "Check if the nginx.conf includes the conf.d directory." -msgstr "" +msgstr "nginx.conf dosyasının conf.d dizinini içerip içermediğini kontrol edin." #: src/components/SelfCheck/tasks/backend/index.ts:16 msgid "Check if the nginx.conf includes the sites-enabled directory." msgstr "" +"nginx.conf dosyasının sites-enabled dizinini içerip içermediğini kontrol " +"edin." #: src/components/SelfCheck/tasks/backend/index.ts:21 msgid "Check if the nginx.conf includes the streams-enabled directory." msgstr "" +"nginx.conf dosyasının streams-enabled dizinini içerip içermediğini kontrol " +"edin." #: src/components/SelfCheck/tasks/backend/index.ts:6 msgid "" "Check if the sites-available and sites-enabled directories are under the " "nginx configuration directory." msgstr "" +"sites-available ve sites-enabled dizinlerinin nginx yapılandırma dizini " +"altında olup olmadığını kontrol edin." #: src/components/SelfCheck/tasks/backend/index.ts:11 msgid "" "Check if the streams-available and streams-enabled directories are under " "the nginx configuration directory." msgstr "" +"streams-available ve streams-enabled dizinlerinin nginx yapılandırma dizini " +"altında olup olmadığını kontrol edin." #: src/constants/errors/crypto.ts:3 msgid "Cipher text is too short" -msgstr "" +msgstr "Şifreli metin çok kısa" #: src/language/constants.ts:13 msgid "Cleaning environment variables" @@ -666,44 +773,43 @@ msgstr "Başarıyla temizlendi" #: src/components/SystemRestore/SystemRestoreContent.vue:194 #: src/components/SystemRestore/SystemRestoreContent.vue:271 msgid "Click or drag backup file to this area to upload" -msgstr "" +msgstr "Yüklemek için bu alana yedekleme dosyasını tıklayın veya sürükleyin" #: src/views/preference/components/AuthSettings/TOTP.vue:110 msgid "Click to copy" -msgstr "" +msgstr "Kopyala için tıklayın" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:120 msgid "Client Body Buffer Size" -msgstr "" +msgstr "İstemci gövdesi arabellek boyutu" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:113 msgid "Client Header Buffer Size" -msgstr "" +msgstr "İstemci Başlık Arabellek Boyutu" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:99 msgid "Client Max Body Size" -msgstr "" +msgstr "İstemci Maksimum Gövde Boyutu" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:121 msgid "Client request body buffer size" -msgstr "" +msgstr "İstemci istek gövdesi tampon boyutu" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:114 msgid "Client request header buffer size" -msgstr "" +msgstr "İstemci istek başlığı arabellek boyutu" #: src/components/ConfigHistory/ConfigHistory.vue:169 msgid "Close" -msgstr "" +msgstr "Kapat" #: src/constants/errors/llm.ts:2 -#, fuzzy msgid "Code completion is not enabled" -msgstr "Mevcut hesap için TOTP etkin değil." +msgstr "Kod tamamlama etkin değil" #: src/views/preference/tabs/OpenAISettings.vue:86 msgid "Code Completion Model" -msgstr "" +msgstr "Kod Tamamlama Modeli" #: src/views/preference/tabs/LogrotateSettings.vue:23 msgid "Command" @@ -711,7 +817,7 @@ msgstr "Komut" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" -msgstr "" +msgstr "Komut beklenmeyen çıkış kodu ile sonlandı: {0}, hata: {1}" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:115 #: src/components/NgxConfigEditor/LocationEditor.vue:104 @@ -722,7 +828,7 @@ msgstr "Yorumlar" #: src/components/ConfigHistory/ConfigHistory.vue:127 msgid "Compare" -msgstr "" +msgstr "Karşılaştırmak" #: src/components/ConfigHistory/DiffViewer.vue:388 #, fuzzy @@ -731,15 +837,15 @@ msgstr "Yapılandırmalar" #: src/components/ConfigHistory/ConfigHistory.vue:130 msgid "Compare Selected" -msgstr "" +msgstr "Seçili karşılaştırın" #: src/components/ConfigHistory/ConfigHistory.vue:129 msgid "Compare with Current" -msgstr "" +msgstr "Mevcut ile karşılaştırın" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:88 msgid "Compression level, 1 is lowest, 9 is highest" -msgstr "" +msgstr "Sıkıştırma seviyesi, 1 en düşük, 9 en yüksek" #: src/constants/errors/backup.ts:14 #, fuzzy @@ -783,7 +889,7 @@ msgstr "Bağlandı" #: src/views/dashboard/NginxDashBoard.vue:85 msgid "Connection error, trying to reconnect..." -msgstr "" +msgstr "Bağlantı hatası, yeniden bağlanılmaya çalışılıyor..." #: src/views/terminal/Terminal.vue:142 msgid "Connection lost, please refresh the page." @@ -791,11 +897,11 @@ msgstr "Bağlantı kesildi, lütfen sayfayı yenileyin." #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:61 msgid "Connection timeout period" -msgstr "" +msgstr "Bağlantı zaman aşımı süresi" #: src/constants/errors/docker.ts:7 msgid "Container status unknown" -msgstr "" +msgstr "Kapsayıcı durumu bilinmiyor" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:120 #: src/components/NgxConfigEditor/LocationEditor.vue:116 @@ -891,7 +997,7 @@ msgstr "İstemci oluşturmak, CA sunucusuyla iletişimi kolaylaştırır" msgid "Credential" msgstr "Kimlik bilgisi" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "Kimlik bilgileri" @@ -1203,7 +1309,7 @@ msgid "DNS Credentials" msgstr "DNS Kimlik Bilgileri" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "DNS Sağlayıcısı" @@ -1253,6 +1359,10 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 #, fuzzy @@ -1265,7 +1375,7 @@ msgstr[1] "API Dökümanı" msgid "Domain" msgstr "Alan Adı" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "" "Alan adları listesi boş, %{config} için Otomatik Sertifikayı yeniden açmayı " @@ -1543,7 +1653,7 @@ msgstr "" msgid "External Notify" msgstr "" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 msgid "Fail to obtain certificate" msgstr "Sertifika alınamadı" @@ -1696,6 +1806,11 @@ msgstr "" msgid "Failed to delete certificate" msgstr "Sertifika alınamadı" +#: src/language/generate.ts:9 +#, fuzzy +msgid "Failed to delete certificate from database: %{error}" +msgstr "Sertifika alınamadı" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1859,6 +1974,11 @@ msgstr "" msgid "Failed to revoke certificate" msgstr "Sertifika alınamadı" +#: src/language/generate.ts:17 +#, fuzzy +msgid "Failed to revoke certificate: %{error}" +msgstr "Sertifika alınamadı" + #: src/views/dashboard/components/ParamsOptimization.vue:90 #, fuzzy msgid "Failed to save Nginx performance settings" @@ -1898,7 +2018,7 @@ msgstr "Dosya Bulunamadı" msgid "Filename is empty" msgstr "" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "Filtre" @@ -2094,7 +2214,7 @@ msgid "Import" msgstr "İçe Aktar" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Import Certificate" msgstr "Sertifika İçe Aktar" @@ -2321,8 +2441,8 @@ msgstr "Buna ihtiyacınız yoksa boş bırakın." msgid "Leave blank if you don't need this." msgstr "Buna ihtiyacınız yoksa boş bırakın." -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 msgid "Leave blank will not change anything" msgstr "Boş bırakmak hiçbir şeyi değiştirmeyecektir" @@ -2395,10 +2515,14 @@ msgstr "Konum" msgid "Locations" msgstr "Konumlar" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 msgid "Log" msgstr "Günlük" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 #, fuzzy msgid "Log List" @@ -2614,7 +2738,7 @@ msgid "Modify" msgstr "Değiştir" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 #, fuzzy msgid "Modify Certificate" msgstr "Sertifika Değiştirme" @@ -2636,8 +2760,8 @@ msgstr "Çok Hatlı Direktif" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 @@ -2816,7 +2940,7 @@ msgstr "Nginx çalışmıyor" msgid "Nginx is running" msgstr "Nginx çalışmıyor" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 #, fuzzy msgid "Nginx Log" msgstr "Nginx Günlüğü" @@ -3933,7 +4057,7 @@ msgstr "Çalışıyor" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -4001,7 +4125,7 @@ msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 #, fuzzy msgid "Save successfully" @@ -4019,7 +4143,7 @@ msgstr "Başarıyla Kaydedildi" msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "Hesabı uygulamaya eklemek için QR kodunu cep telefonunuzla tarayın." -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 #, fuzzy msgid "SDK" msgstr "SDK" @@ -4215,7 +4339,7 @@ msgstr "" msgid "Sleep time between cache manager iterations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 #, fuzzy msgid "SSL Certificate Content" msgstr "SSL Sertifika İçeriği" @@ -4229,17 +4353,17 @@ msgstr "" msgid "SSL certificate file not found" msgstr "SSL Sertifika Anahtarı İçeriği" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 #, fuzzy msgid "SSL Certificate Key Content" msgstr "SSL Sertifika Anahtarı İçeriği" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 #, fuzzy msgid "SSL Certificate Key Path" msgstr "SSL Sertifikası Anahtar Yolu" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 #, fuzzy msgid "SSL Certificate Path" @@ -4430,7 +4554,7 @@ msgstr "Şununla senkronize et" msgid "Sync strategy" msgstr "Senkronizasyon Sertifikası" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 #, fuzzy msgid "Sync to" msgstr "Şununla senkronize et" @@ -4514,12 +4638,12 @@ msgid "" "dashes, colons, and dots." msgstr "Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir." -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 #, fuzzy msgid "The input is not a SSL Certificate" msgstr "Giriş bir SSL Sertifikası değil" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 #, fuzzy msgid "The input is not a SSL Certificate Key" msgstr "Girdi bir SSL Sertifika Anahtarı değil" @@ -4554,12 +4678,12 @@ msgstr "Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içerme msgid "The parameter of server_name is required" msgstr "server_name parametresi gereklidir" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 #, fuzzy msgid "The path exists, but the file is not a certificate" msgstr "Yol var, ancak dosya bir sertifika değil" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 #, fuzzy msgid "The path exists, but the file is not a private key" msgstr "Yol var, ancak dosya bir özel anahtar değil" @@ -4625,19 +4749,19 @@ msgid "" "lose access to your account." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 #, fuzzy msgid "This Auto Cert item is invalid, please remove it." msgstr "Bu Otomatik Sertifika öğesi geçersizdir, lütfen kaldırın." -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 #, fuzzy msgid "This certificate is managed by Nginx UI" msgstr "Bu sertifika Nginx UI tarafından yönetilir" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 #, fuzzy msgid "This field is required" msgstr "Bu alan gereklidir" diff --git a/app/src/language/uk_UA/app.po b/app/src/language/uk_UA/app.po index 8d3eba2f..2e64effe 100644 --- a/app/src/language/uk_UA/app.po +++ b/app/src/language/uk_UA/app.po @@ -14,6 +14,101 @@ msgstr "" "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 5.11\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "" +"[Nginx UI] Користувач ACME: %{name}, Електронна пошта: %{email}, Каталог " +"CA: %{caDir}" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "" +"[Nginx UI] Резервне копіювання поточного сертифіката для подальшого " +"відкликання" + +#: src/language/generate.ts:28 +#, fuzzy +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "Сертифікат успішно поновлено" + +#: src/language/generate.ts:8 +#, fuzzy +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "Сертифікат успішно видалено" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "" +"[Nginx UI] Сертифікат використовувався для сервера, перезавантаження " +"TLS-сертифіката сервера" + +#: src/language/generate.ts:24 +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "[Nginx UI] Створення клієнта для спрощення зв’язку з сервером CA" + +#: src/language/generate.ts:12 +#, fuzzy +msgid "[Nginx UI] Environment variables cleaned" +msgstr "Змінні навколишнього середовища очищення" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "[Nginx UI] Завершено" + +#: src/language/generate.ts:4 +#, fuzzy +msgid "[Nginx UI] Issued certificate successfully" +msgstr "Сертифікат успішно видалено" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "[Nginx UI] Отримання сертифіката" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "[Nginx UI] Підготовка до відкликання сертифіката" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "[Nginx UI] Підготовка конфігурацій lego" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "[Nginx UI] Перезавантаження nginx" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "[Nginx UI] Відкликання завершено" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "[Nginx UI] Відкликання сертифіката" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "[Nginx UI] Відкликання старого сертифіката" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "[Nginx UI] Налаштування провайдера виклику DNS01" + +#: src/language/generate.ts:6 +#, fuzzy +msgid "[Nginx UI] Setting environment variables" +msgstr "Змінні навколишнього середовища очищення" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "[Nginx UI] Налаштування провайдера HTTP01-виклику" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "[Nginx UI] Запис приватного ключа сертифіката на диск" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "[Nginx UI] Запис сертифіката на диск" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "2FA" @@ -105,7 +200,7 @@ msgstr "Додати стрім" msgid "Added successfully" msgstr "Успішно додано" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 msgid "Additional" msgstr "Додатково" @@ -132,7 +227,7 @@ msgstr "Усі коди відновлення використано" msgid "API Base Url" msgstr "Базова URL-адреса API" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" msgstr "API Документація" @@ -276,7 +371,7 @@ msgstr "Автоматичний" msgid "auto = CPU cores" msgstr "Auto = CPU ядра" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "Автоматичне оновлення" @@ -296,11 +391,9 @@ msgstr "\"Автоматичний перезапуск\"" msgid "Automatically indexed from site and stream configurations." msgstr "\"Автоматично проіндексовано з конфігурацій сайту та потоку.\"" -#: src/views/certificate/components/CertificateEditor.vue:259 -#: src/views/config/ConfigEditor.vue:266 -#: src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 -#: src/views/nginx_log/NginxLog.vue:173 +#: src/views/certificate/CertificateEditor.vue:259 +#: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -502,98 +595,110 @@ msgstr "Термін дії сертифіката %{name} закінчитьс #: src/constants/errors/cert.ts:4 msgid "Certificate decode error" -msgstr "" +msgstr "Помилка декодування сертифіката" #: src/components/Notification/notifications.ts:29 msgid "Certificate Expiration Notice" -msgstr "" +msgstr "Повідомлення про закінчення терміну дії сертифіката" #: src/components/Notification/notifications.ts:25 msgid "Certificate Expired" -msgstr "" +msgstr "Термін дії сертифіката закінчився" #: src/components/Notification/notifications.ts:33 #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 msgid "Certificate Expiring Soon" -msgstr "" +msgstr "Сертифікат незабаром закінчується" + +#: src/language/generate.ts:5 +#, fuzzy +msgid "Certificate not found: %{error}" +msgstr "Помилка декодування сертифіката" #: src/constants/errors/cert.ts:5 msgid "Certificate parse error" -msgstr "" +msgstr "Помилка аналізу сертифіката" #: src/constants/errors/cert.ts:8 msgid "Certificate path is empty" -msgstr "" +msgstr "Шлях до сертифіката порожній" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 msgid "Certificate removed successfully" -msgstr "" +msgstr "Сертифікат успішно видалено" #: src/views/preference/tabs/CertSettings.vue:27 msgid "Certificate Renewal Interval" -msgstr "" +msgstr "Інтервал оновлення сертифіката" #: src/language/constants.ts:21 msgid "Certificate renewed successfully" -msgstr "" +msgstr "Сертифікат успішно поновлено" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +#, fuzzy +msgid "Certificate revoked successfully" +msgstr "Сертифікат успішно видалено" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 +#, fuzzy msgid "Certificate Status" msgid_plural "Certificates Status" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Статус сертифіката" +msgstr[1] "Статус сертифіката" +msgstr[2] "Статус сертифіката" #: src/routes/modules/certificates.ts:11 #: src/views/certificate/CertificateList/Certificate.vue:14 msgid "Certificates" -msgstr "" +msgstr "Сертифікати" #: src/routes/modules/certificates.ts:28 msgid "Certificates List" -msgstr "" +msgstr "Список сертифікатів" #: src/components/AutoCertForm/AutoCertForm.vue:65 msgid "Challenge Method" -msgstr "" +msgstr "Метод перевірки" #: src/views/site/site_edit/components/Cert/ChangeCert.vue:49 #: src/views/site/site_edit/components/Cert/ChangeCert.vue:53 msgid "Change Certificate" -msgstr "" +msgstr "Змінити сертифікат" #: src/views/site/site_edit/components/Cert/Cert.vue:77 +#, fuzzy msgid "Changed Certificate" msgid_plural "Changed Certificates" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Змінено сертифікат" +msgstr[1] "Змінено сертифікат" +msgstr[2] "Змінено сертифікат" #: src/views/config/ConfigEditor.vue:322 msgid "Changed Path" -msgstr "" +msgstr "Змінений шлях" #: src/views/environments/list/BatchUpgrader.vue:159 #: src/views/system/Upgrade.vue:188 msgid "Channel" -msgstr "" +msgstr "Канал" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:40 #: src/views/stream/components/RightPanel/RightPanel.vue:22 msgid "Chat" -msgstr "" +msgstr "Чат" #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40 #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64 msgid "Check" -msgstr "" +msgstr "Перевірити" #: src/views/system/Upgrade.vue:185 msgid "Check again" -msgstr "" +msgstr "Перевірте ще раз" #: src/components/SelfCheck/tasks/backend/index.ts:31 msgid "" @@ -601,171 +706,182 @@ msgid "" "Docker Image, please make sure the docker socket is mounted like this: `-v " "/var/run/docker.sock:/var/run/docker.sock`." msgstr "" +"Перевірте, чи існує /var/run/docker.sock. Якщо ви використовуєте офіційний " +"Docker-образ Nginx UI, переконайтеся, що сокет Docker підключено таким " +"чином: `-v /var/run/docker.sock:/var/run/docker.sock`." #: src/components/SelfCheck/tasks/frontend/https-check.ts:11 msgid "" "Check if HTTPS is enabled. Using HTTP outside localhost is insecure and " "prevents using Passkeys and clipboard features." msgstr "" +"Перевірте, чи ввімкнено HTTPS. Використання HTTP поза localhost є " +"небезпечним і блокує функції Passkeys та буфера обміну." #: src/components/SelfCheck/tasks/backend/index.ts:26 msgid "Check if the nginx.conf includes the conf.d directory." -msgstr "" +msgstr "Перевірте, чи файл nginx.conf містить каталог conf.d." #: src/components/SelfCheck/tasks/backend/index.ts:16 msgid "Check if the nginx.conf includes the sites-enabled directory." -msgstr "" +msgstr "Перевірте, чи включає файл nginx.conf каталог sites-enabled." #: src/components/SelfCheck/tasks/backend/index.ts:21 msgid "Check if the nginx.conf includes the streams-enabled directory." -msgstr "" +msgstr "Перевірте, чи включає файл nginx.conf каталог streams-enabled." #: src/components/SelfCheck/tasks/backend/index.ts:6 msgid "" "Check if the sites-available and sites-enabled directories are under the " "nginx configuration directory." msgstr "" +"Перевірте, чи знаходяться каталоги sites-available та sites-enabled у " +"каталозі конфігурації nginx." #: src/components/SelfCheck/tasks/backend/index.ts:11 msgid "" "Check if the streams-available and streams-enabled directories are under " "the nginx configuration directory." msgstr "" +"Перевірте, чи каталоги streams-available та streams-enabled знаходяться в " +"каталозі конфігурації nginx." #: src/constants/errors/crypto.ts:3 msgid "Cipher text is too short" -msgstr "" +msgstr "Зашифрований текст занадто короткий" #: src/language/constants.ts:13 msgid "Cleaning environment variables" -msgstr "" +msgstr "Змінні навколишнього середовища очищення" #: src/components/ChatGPT/ChatGPT.vue:380 #: src/components/Notification/Notification.vue:140 #: src/views/notification/Notification.vue:44 msgid "Clear" -msgstr "" +msgstr "Чіткий" #: src/components/Notification/Notification.vue:93 #: src/views/notification/Notification.vue:13 msgid "Cleared successfully" -msgstr "" +msgstr "Успішно очищено" #: src/components/SystemRestore/SystemRestoreContent.vue:194 #: src/components/SystemRestore/SystemRestoreContent.vue:271 msgid "Click or drag backup file to this area to upload" msgstr "" +"Клацніть або перетягніть файл резервного копіювання в цю область, щоб " +"завантажити" #: src/views/preference/components/AuthSettings/TOTP.vue:110 msgid "Click to copy" -msgstr "" +msgstr "Клацніть, щоб скопіювати" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:120 msgid "Client Body Buffer Size" -msgstr "" +msgstr "Розмір буфера кузова клієнта" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:113 msgid "Client Header Buffer Size" -msgstr "" +msgstr "Розмір буфера заголовків клієнта" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:99 msgid "Client Max Body Size" -msgstr "" +msgstr "Максимальний розмір тіла клієнта" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:121 msgid "Client request body buffer size" -msgstr "" +msgstr "Розмір буфера тіла запиту клієнта" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:114 msgid "Client request header buffer size" -msgstr "" +msgstr "Розмір буфера заголовка запиту клієнта" #: src/components/ConfigHistory/ConfigHistory.vue:169 msgid "Close" -msgstr "" +msgstr "Закрити" #: src/constants/errors/llm.ts:2 msgid "Code completion is not enabled" -msgstr "" +msgstr "Автозавершення коду не ввімкнено" #: src/views/preference/tabs/OpenAISettings.vue:86 msgid "Code Completion Model" -msgstr "" +msgstr "Модель автодоповнення коду" #: src/views/preference/tabs/LogrotateSettings.vue:23 msgid "Command" -msgstr "" +msgstr "Команда" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" -msgstr "" +msgstr "Команда завершилася з неочікуваним кодом виходу: {0}, помилка: {1}" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:115 #: src/components/NgxConfigEditor/LocationEditor.vue:104 #: src/components/NgxConfigEditor/LocationEditor.vue:135 #: src/components/NgxConfigEditor/NgxServer.vue:91 msgid "Comments" -msgstr "" +msgstr "Коментарі" #: src/components/ConfigHistory/ConfigHistory.vue:127 msgid "Compare" -msgstr "" +msgstr "Порівнювати" #: src/components/ConfigHistory/DiffViewer.vue:388 msgid "Compare Configurations" -msgstr "" +msgstr "Порівняйте конфігурації" #: src/components/ConfigHistory/ConfigHistory.vue:130 msgid "Compare Selected" -msgstr "" +msgstr "Порівняйте вибрані" #: src/components/ConfigHistory/ConfigHistory.vue:129 msgid "Compare with Current" -msgstr "" +msgstr "Порівняйте з струмом" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:88 msgid "Compression level, 1 is lowest, 9 is highest" -msgstr "" +msgstr "Рівень стиснення, 1 найнижчий, 9 - найвищий" #: src/constants/errors/backup.ts:14 msgid "Config path is empty" -msgstr "" +msgstr "Конфігурація порожній" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:36 msgid "Config Template" -msgstr "" +msgstr "Шаблон конфігурації" #: src/views/config/InspectConfig.vue:27 msgid "Configuration file is test successful" -msgstr "" +msgstr "Файл конфігурації успішно протестовано" #: src/components/ConfigHistory/ConfigHistory.vue:138 msgid "Configuration History" -msgstr "" +msgstr "Історія конфігурації" #: src/views/dashboard/components/PerformanceTablesCard.vue:167 msgid "Configuration information" -msgstr "" +msgstr "Інформація про конфігурацію" #: src/views/site/site_add/SiteAdd.vue:85 msgid "Configuration Name" -msgstr "" +msgstr "Назва конфігурації" #: src/views/config/ConfigList.vue:104 msgid "Configurations" -msgstr "" +msgstr "Конфігурації" #: src/views/site/site_add/SiteAdd.vue:80 msgid "Configure SSL" -msgstr "" +msgstr "Налаштувати SSL" #: src/views/dashboard/Environments.vue:141 msgid "Connected" -msgstr "" +msgstr "Підключено" #: src/views/dashboard/NginxDashBoard.vue:85 msgid "Connection error, trying to reconnect..." -msgstr "" +msgstr "Помилка з'єднання, спроба повторного підключення..." #: src/views/terminal/Terminal.vue:142 msgid "Connection lost, please refresh the page." @@ -773,36 +889,36 @@ msgstr "З'єднання, будь ласка, оновіть сторінку. #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:61 msgid "Connection timeout period" -msgstr "" +msgstr "Період таймауту з'єднання" #: src/constants/errors/docker.ts:7 msgid "Container status unknown" -msgstr "" +msgstr "Стан контейнера невідомий" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:120 #: src/components/NgxConfigEditor/LocationEditor.vue:116 #: src/components/NgxConfigEditor/LocationEditor.vue:144 msgid "Content" -msgstr "" +msgstr "Вміст" #: src/components/SensitiveString/SensitiveString.vue:37 #: src/components/StdDesign/StdDataDisplay/StdTableTransformer.tsx:150 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:121 msgid "Copied" -msgstr "" +msgstr "Скопійовано" #: src/views/system/Backup/BackupCreator.vue:128 msgid "Copied!" -msgstr "" +msgstr "Скопійовано!" #: src/components/SensitiveString/SensitiveString.vue:37 #: src/views/system/Backup/BackupCreator.vue:128 msgid "Copy" -msgstr "" +msgstr "Копіювати" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:121 msgid "Copy Codes" -msgstr "" +msgstr "Копіювати коди" #: src/views/system/Upgrade.vue:146 msgid "Core Upgrade" @@ -870,7 +986,7 @@ msgstr "" msgid "Credential" msgstr "" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "" @@ -1143,7 +1259,7 @@ msgid "DNS Credentials" msgstr "" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "" @@ -1192,6 +1308,10 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 msgid "Document" @@ -1204,7 +1324,7 @@ msgstr[2] "" msgid "Domain" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "" @@ -1449,7 +1569,7 @@ msgstr "" msgid "External Notify" msgstr "" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 msgid "Fail to obtain certificate" msgstr "" @@ -1581,6 +1701,10 @@ msgstr "" msgid "Failed to delete certificate" msgstr "" +#: src/language/generate.ts:9 +msgid "Failed to delete certificate from database: %{error}" +msgstr "" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1721,6 +1845,10 @@ msgstr "" msgid "Failed to revoke certificate" msgstr "" +#: src/language/generate.ts:17 +msgid "Failed to revoke certificate: %{error}" +msgstr "" + #: src/views/dashboard/components/ParamsOptimization.vue:90 msgid "Failed to save Nginx performance settings" msgstr "" @@ -1757,7 +1885,7 @@ msgstr "" msgid "Filename is empty" msgstr "" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "" @@ -1933,7 +2061,7 @@ msgid "Import" msgstr "" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Import Certificate" msgstr "" @@ -2150,8 +2278,8 @@ msgstr "" msgid "Leave blank if you don't need this." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 msgid "Leave blank will not change anything" msgstr "" @@ -2222,10 +2350,14 @@ msgstr "" msgid "Locations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 msgid "Log" msgstr "" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 msgid "Log List" msgstr "" @@ -2413,7 +2545,7 @@ msgid "Modify" msgstr "" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Modify Certificate" msgstr "" @@ -2431,8 +2563,8 @@ msgstr "" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 @@ -2586,7 +2718,7 @@ msgstr "" msgid "Nginx is running" msgstr "" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "" @@ -3394,7 +3526,7 @@ msgstr "" #: src/views/certificate/components/RenewCert.vue:27 #: src/views/certificate/components/WildcardCertificate.vue:46 msgid "Renew successfully" -msgstr "" +msgstr "Оновлення успішне" #: src/views/dashboard/components/PerformanceTablesCard.vue:141 msgid "Request statistics" @@ -3532,7 +3664,7 @@ msgstr "" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -3589,7 +3721,7 @@ msgstr "" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 msgid "Save successfully" msgstr "" @@ -3604,7 +3736,7 @@ msgstr "" msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "" -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "" @@ -3773,7 +3905,7 @@ msgstr "" msgid "Sleep time between cache manager iterations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 msgid "SSL Certificate Content" msgstr "" @@ -3785,15 +3917,15 @@ msgstr "" msgid "SSL certificate file not found" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 msgid "SSL Certificate Key Content" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 msgid "SSL Certificate Key Path" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 msgid "SSL Certificate Path" msgstr "" @@ -3956,7 +4088,7 @@ msgstr "" msgid "Sync strategy" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 msgid "Sync to" msgstr "" @@ -4024,11 +4156,11 @@ msgid "" "dashes, colons, and dots." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 msgid "The input is not a SSL Certificate" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 msgid "The input is not a SSL Certificate Key" msgstr "" @@ -4059,11 +4191,11 @@ msgstr "" msgid "The parameter of server_name is required" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 msgid "The path exists, but the file is not a certificate" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 msgid "The path exists, but the file is not a private key" msgstr "" @@ -4115,17 +4247,17 @@ msgid "" "lose access to your account." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 msgid "This Auto Cert item is invalid, please remove it." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "" @@ -4555,7 +4687,7 @@ msgstr "" #: src/views/preference/tabs/AuthSettings.vue:163 #: src/views/preference/tabs/CertSettings.vue:72 msgid "Yes" -msgstr "" +msgstr "Так" #: src/views/terminal/Terminal.vue:135 msgid "" diff --git a/app/src/language/vi_VN/app.po b/app/src/language/vi_VN/app.po index 6f985ea7..e9f2311d 100644 --- a/app/src/language/vi_VN/app.po +++ b/app/src/language/vi_VN/app.po @@ -9,6 +9,98 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "[Nginx UI] Người dùng ACME: %{name}, Email: %{email}, Thư mục CA: %{caDir}" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "[Nginx UI] Đang sao lưu chứng chỉ hiện tại để thu hồi sau này" + +#: src/language/generate.ts:28 +#, fuzzy +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "Đã xóa thành công" + +#: src/language/generate.ts:8 +#, fuzzy +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "Restart Nginx thành công" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "" +"[Nginx UI] Chứng chỉ đã được sử dụng cho máy chủ, đang tải lại chứng chỉ " +"TLS của máy chủ" + +#: src/language/generate.ts:24 +#, fuzzy +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "Tạo client để giao tiếp với CA server" + +#: src/language/generate.ts:12 +#, fuzzy +msgid "[Nginx UI] Environment variables cleaned" +msgstr "Đặt biến môi trường" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "[Nginx UI] Đã hoàn thành" + +#: src/language/generate.ts:4 +#, fuzzy +msgid "[Nginx UI] Issued certificate successfully" +msgstr "Cấp chứng chỉ thành công" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "[Nginx UI] Đang lấy chứng chỉ" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "[Nginx UI] Chuẩn bị thu hồi chứng chỉ" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "[Nginx UI] Đang chuẩn bị cấu hình lego" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "[Nginx UI] Đang tải lại nginx" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "[Nginx UI] Đã hoàn tất thu hồi" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "[Nginx UI] Đang thu hồi chứng chỉ" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "[Nginx UI] Đang thu hồi chứng chỉ cũ" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "[Nginx UI] Đang thiết lập nhà cung cấp thử thách DNS01" + +#: src/language/generate.ts:6 +#, fuzzy +msgid "[Nginx UI] Setting environment variables" +msgstr "Đặt biến môi trường" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "[Nginx UI] Đang thiết lập nhà cung cấp thử thách HTTP01" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "[Nginx UI] Đang ghi khóa riêng của chứng chỉ vào ổ đĩa" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "[Nginx UI] Đang ghi chứng chỉ vào ổ đĩa" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "2fa" @@ -105,7 +197,7 @@ msgstr "Thêm Website" msgid "Added successfully" msgstr "Cập nhật thành công" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 #, fuzzy msgid "Additional" msgstr "Tùy chọn bổ sung" @@ -133,7 +225,7 @@ msgstr "Tất cả mã khôi phục đã được sử dụng" msgid "API Base Url" msgstr "URL Cơ sở API" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" msgstr "Tài liệu API" @@ -291,7 +383,7 @@ msgstr "Tự động" msgid "auto = CPU cores" msgstr "auto = lõi cpu" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "Tự động làm mới" @@ -311,11 +403,9 @@ msgstr "\"Khởi động lại Tự động\"" msgid "Automatically indexed from site and stream configurations." msgstr "\"Được lập chỉ mục tự động từ cấu hình trang web và luồng.\"" -#: src/views/certificate/components/CertificateEditor.vue:259 -#: src/views/config/ConfigEditor.vue:266 -#: src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 -#: src/views/nginx_log/NginxLog.vue:173 +#: src/views/certificate/CertificateEditor.vue:259 +#: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -525,42 +615,40 @@ msgid "Certificate %{name} will expire in 1 day" msgstr "Chứng chỉ %{name} sẽ hết hạn trong 1 ngày" #: src/constants/errors/cert.ts:4 -#, fuzzy msgid "Certificate decode error" -msgstr "Gia hạn chứng chỉ SSL thất bại" +msgstr "Lỗi giải mã chứng chỉ" #: src/components/Notification/notifications.ts:29 -#, fuzzy msgid "Certificate Expiration Notice" -msgstr "Mẫu Cấu hình" +msgstr "Thông báo hết hạn chứng chỉ" #: src/components/Notification/notifications.ts:25 -#, fuzzy msgid "Certificate Expired" -msgstr "Danh sách chứng chỉ" +msgstr "Chứng chỉ đã hết hạn" #: src/components/Notification/notifications.ts:33 #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 -#, fuzzy msgid "Certificate Expiring Soon" -msgstr "Chứng chỉ đã hết hạn" +msgstr "Chứng chỉ sắp hết hạn" + +#: src/language/generate.ts:5 +#, fuzzy +msgid "Certificate not found: %{error}" +msgstr "Lỗi giải mã chứng chỉ" #: src/constants/errors/cert.ts:5 -#, fuzzy msgid "Certificate parse error" -msgstr "Chứng chỉ đã hết hạn" +msgstr "Lỗi phân tích chứng chỉ" #: src/constants/errors/cert.ts:8 -#, fuzzy msgid "Certificate path is empty" -msgstr "Mẫu Cấu hình" +msgstr "Đường dẫn chứng chỉ trống" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 -#, fuzzy msgid "Certificate removed successfully" -msgstr "Đã xóa thành công" +msgstr "Đã xóa chứng chỉ thành công" #: src/views/preference/tabs/CertSettings.vue:27 #, fuzzy @@ -572,7 +660,12 @@ msgstr "Chứng chỉ SSL hợp lệ" msgid "Certificate renewed successfully" msgstr "Đã xóa thành công" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +#, fuzzy +msgid "Certificate revoked successfully" +msgstr "Đã xóa chứng chỉ thành công" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 #, fuzzy msgid "Certificate Status" @@ -621,7 +714,7 @@ msgstr "Kênh" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:40 #: src/views/stream/components/RightPanel/RightPanel.vue:22 msgid "Chat" -msgstr "" +msgstr "Trò chuyện" #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40 #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64 @@ -639,40 +732,49 @@ msgid "" "Docker Image, please make sure the docker socket is mounted like this: `-v " "/var/run/docker.sock:/var/run/docker.sock`." msgstr "" +"Kiểm tra xem /var/run/docker.sock có tồn tại không. Nếu bạn đang sử dụng " +"Docker Image chính thức của Nginx UI, hãy đảm bảo rằng ổ cắm Docker được " +"gắn như sau: `-v /var/run/docker.sock:/var/run/docker.sock`." #: src/components/SelfCheck/tasks/frontend/https-check.ts:11 msgid "" "Check if HTTPS is enabled. Using HTTP outside localhost is insecure and " "prevents using Passkeys and clipboard features." msgstr "" +"Kiểm tra xem HTTPS đã được bật chưa. Sử dụng HTTP bên ngoài localhost không " +"an toàn và ngăn chặn việc sử dụng tính năng Passkeys cùng khay nhớ tạm." #: src/components/SelfCheck/tasks/backend/index.ts:26 msgid "Check if the nginx.conf includes the conf.d directory." -msgstr "" +msgstr "Kiểm tra xem tệp nginx.conf có bao gồm thư mục conf.d không." #: src/components/SelfCheck/tasks/backend/index.ts:16 msgid "Check if the nginx.conf includes the sites-enabled directory." -msgstr "" +msgstr "Kiểm tra xem tệp nginx.conf có bao gồm thư mục sites-enabled không." #: src/components/SelfCheck/tasks/backend/index.ts:21 msgid "Check if the nginx.conf includes the streams-enabled directory." -msgstr "" +msgstr "Kiểm tra xem tệp nginx.conf có bao gồm thư mục streams-enabled không." #: src/components/SelfCheck/tasks/backend/index.ts:6 msgid "" "Check if the sites-available and sites-enabled directories are under the " "nginx configuration directory." msgstr "" +"Kiểm tra xem các thư mục sites-available và sites-enabled có nằm trong thư " +"mục cấu hình nginx hay không." #: src/components/SelfCheck/tasks/backend/index.ts:11 msgid "" "Check if the streams-available and streams-enabled directories are under " "the nginx configuration directory." msgstr "" +"Kiểm tra xem các thư mục streams-available và streams-enabled có nằm trong " +"thư mục cấu hình nginx hay không." #: src/constants/errors/crypto.ts:3 msgid "Cipher text is too short" -msgstr "" +msgstr "Văn bản mã hóa quá ngắn" #: src/language/constants.ts:13 msgid "Cleaning environment variables" @@ -693,43 +795,43 @@ msgstr "Đã xóa thành công" #: src/components/SystemRestore/SystemRestoreContent.vue:194 #: src/components/SystemRestore/SystemRestoreContent.vue:271 msgid "Click or drag backup file to this area to upload" -msgstr "" +msgstr "Nhấp hoặc kéo tệp sao lưu vào khu vực này để tải lên" #: src/views/preference/components/AuthSettings/TOTP.vue:110 msgid "Click to copy" -msgstr "" +msgstr "Bấm để sao chép" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:120 msgid "Client Body Buffer Size" -msgstr "" +msgstr "Kích thước bộ đệm thân máy khách" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:113 msgid "Client Header Buffer Size" -msgstr "" +msgstr "Kích thước bộ đệm tiêu đề máy khách" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:99 msgid "Client Max Body Size" -msgstr "" +msgstr "Kích thước tối đa của phần thân máy khách" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:121 msgid "Client request body buffer size" -msgstr "" +msgstr "Kích thước bộ đệm nội dung yêu cầu của máy khách" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:114 msgid "Client request header buffer size" -msgstr "" +msgstr "Kích thước bộ đệm tiêu đề yêu cầu của máy khách" #: src/components/ConfigHistory/ConfigHistory.vue:169 msgid "Close" -msgstr "" +msgstr "Đóng" #: src/constants/errors/llm.ts:2 msgid "Code completion is not enabled" -msgstr "" +msgstr "Hoàn thành mã không được bật" #: src/views/preference/tabs/OpenAISettings.vue:86 msgid "Code Completion Model" -msgstr "" +msgstr "Mô hình hoàn thành mã" #: src/views/preference/tabs/LogrotateSettings.vue:23 #, fuzzy @@ -738,7 +840,7 @@ msgstr "Bình luận" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" -msgstr "" +msgstr "Lệnh thoát với mã lỗi không mong muốn: {0}, lỗi: {1}" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:115 #: src/components/NgxConfigEditor/LocationEditor.vue:104 @@ -749,7 +851,7 @@ msgstr "Bình luận" #: src/components/ConfigHistory/ConfigHistory.vue:127 msgid "Compare" -msgstr "" +msgstr "So sánh" #: src/components/ConfigHistory/DiffViewer.vue:388 #, fuzzy @@ -758,15 +860,15 @@ msgstr "Cấu hình" #: src/components/ConfigHistory/ConfigHistory.vue:130 msgid "Compare Selected" -msgstr "" +msgstr "So sánh đã chọn" #: src/components/ConfigHistory/ConfigHistory.vue:129 msgid "Compare with Current" -msgstr "" +msgstr "So sánh với hiện tại" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:88 msgid "Compression level, 1 is lowest, 9 is highest" -msgstr "" +msgstr "Mức nén, 1 là thấp nhất, 9 là cao nhất" #: src/constants/errors/backup.ts:14 #, fuzzy @@ -810,7 +912,7 @@ msgstr "Đã kết nối" #: src/views/dashboard/NginxDashBoard.vue:85 msgid "Connection error, trying to reconnect..." -msgstr "" +msgstr "Lỗi kết nối, đang thử kết nối lại..." #: src/views/terminal/Terminal.vue:142 msgid "Connection lost, please refresh the page." @@ -818,11 +920,11 @@ msgstr "Kết nối bị mất, xin vui lòng làm mới trang." #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:61 msgid "Connection timeout period" -msgstr "" +msgstr "Khoảng thời gian chờ kết nối" #: src/constants/errors/docker.ts:7 msgid "Container status unknown" -msgstr "" +msgstr "Trạng thái container không xác định" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:120 #: src/components/NgxConfigEditor/LocationEditor.vue:116 @@ -834,20 +936,20 @@ msgstr "Nội dung" #: src/components/StdDesign/StdDataDisplay/StdTableTransformer.tsx:150 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:121 msgid "Copied" -msgstr "" +msgstr "Đã sao chép" #: src/views/system/Backup/BackupCreator.vue:128 msgid "Copied!" -msgstr "" +msgstr "Đã sao chép!" #: src/components/SensitiveString/SensitiveString.vue:37 #: src/views/system/Backup/BackupCreator.vue:128 msgid "Copy" -msgstr "" +msgstr "Sao chép" #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:121 msgid "Copy Codes" -msgstr "" +msgstr "Sao chép mã" #: src/views/system/Upgrade.vue:146 msgid "Core Upgrade" @@ -920,7 +1022,7 @@ msgstr "Tạo client để giao tiếp với CA server" msgid "Credential" msgstr "Chứng chỉ" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "Chứng chỉ" @@ -1222,7 +1324,7 @@ msgid "DNS Credentials" msgstr "Xác thực DNS" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "Nhà cung cấp DNS" @@ -1277,6 +1379,10 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 #, fuzzy @@ -1289,7 +1395,7 @@ msgstr[1] "Bình luận" msgid "Domain" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "" "Danh sách tên miền rỗng, hãy thử mở lại chức năng Tạo chứng chỉ tự động cho " @@ -1561,7 +1667,7 @@ msgstr "" msgid "External Notify" msgstr "" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 #, fuzzy msgid "Fail to obtain certificate" msgstr "Nhận chứng chỉ" @@ -1715,6 +1821,11 @@ msgstr "" msgid "Failed to delete certificate" msgstr "Nhận chứng chỉ" +#: src/language/generate.ts:9 +#, fuzzy +msgid "Failed to delete certificate from database: %{error}" +msgstr "Nhận chứng chỉ" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1878,6 +1989,11 @@ msgstr "" msgid "Failed to revoke certificate" msgstr "Nhận chứng chỉ" +#: src/language/generate.ts:17 +#, fuzzy +msgid "Failed to revoke certificate: %{error}" +msgstr "Nhận chứng chỉ" + #: src/views/dashboard/components/ParamsOptimization.vue:90 #, fuzzy msgid "Failed to save Nginx performance settings" @@ -1917,7 +2033,7 @@ msgstr "Không tìm thấy tệp tin" msgid "Filename is empty" msgstr "" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "Lọc" @@ -2102,7 +2218,7 @@ msgid "Import" msgstr "Xuất" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 #, fuzzy msgid "Import Certificate" msgstr "Chứng chỉ" @@ -2337,8 +2453,8 @@ msgstr "Bỏ trống nếu không thay đổi" msgid "Leave blank if you don't need this." msgstr "Bỏ trống nếu không thay đổi" -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 #, fuzzy msgid "Leave blank will not change anything" msgstr "Bỏ trống nếu không thay đổi" @@ -2415,11 +2531,15 @@ msgstr "Location" msgid "Locations" msgstr "Locations" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 #, fuzzy msgid "Log" msgstr "Log" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 msgid "Log List" msgstr "" @@ -2621,7 +2741,7 @@ msgid "Modify" msgstr "Sửa" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 #, fuzzy msgid "Modify Certificate" msgstr "Sửa chứng chỉ" @@ -2642,8 +2762,8 @@ msgstr "Single Directive" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 @@ -2806,7 +2926,7 @@ msgstr "" msgid "Nginx is running" msgstr "" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "" @@ -3832,7 +3952,7 @@ msgstr "Running" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -3897,7 +4017,7 @@ msgstr "Nhân bản %{conf_name} thành %{node_name} thành công" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 #, fuzzy msgid "Save successfully" @@ -3913,7 +4033,7 @@ msgstr "Lưu thành công" msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "" -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "" @@ -4093,7 +4213,7 @@ msgstr "" msgid "Sleep time between cache manager iterations" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 msgid "SSL Certificate Content" msgstr "" @@ -4106,15 +4226,15 @@ msgstr "" msgid "SSL certificate file not found" msgstr "Không tìm thấy tệp tin" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 msgid "SSL Certificate Key Content" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 msgid "SSL Certificate Key Path" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 msgid "SSL Certificate Path" msgstr "" @@ -4294,7 +4414,7 @@ msgstr "" msgid "Sync strategy" msgstr "Gia hạn chứng chỉ SSL" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 msgid "Sync to" msgstr "" @@ -4370,11 +4490,11 @@ msgid "" "dashes, colons, and dots." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 msgid "The input is not a SSL Certificate" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 msgid "The input is not a SSL Certificate Key" msgstr "" @@ -4406,11 +4526,11 @@ msgstr "" msgid "The parameter of server_name is required" msgstr "Tham số server_name là bắt buộc" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 msgid "The path exists, but the file is not a certificate" msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 msgid "The path exists, but the file is not a private key" msgstr "" @@ -4463,17 +4583,17 @@ msgid "" "lose access to your account." msgstr "" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 msgid "This Auto Cert item is invalid, please remove it." msgstr "Mục Chứng chỉ tự động này không hợp lệ, vui lòng xóa nó" -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "Chứng chỉ này được quản lý bởi Nginx UI" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "" diff --git a/app/src/language/zh_CN/app.po b/app/src/language/zh_CN/app.po index 9ca5d3e0..2492a670 100644 --- a/app/src/language/zh_CN/app.po +++ b/app/src/language/zh_CN/app.po @@ -15,6 +15,96 @@ msgstr "" "X-Generator: Poedit 3.6\n" "Generated-By: easygettext\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "[Nginx UI] ACME 用户:%{name},邮箱:%{email},CA 目录:%{caDir}" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "[Nginx UI] 正在备份当前证书以便后续撤销" + +#: src/language/generate.ts:28 +#, fuzzy +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "证书更新成功" + +#: src/language/generate.ts:8 +#, fuzzy +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "Nginx 重启成功" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "[Nginx UI] 证书已用于服务器,正在重新加载服务器 TLS 证书" + +#: src/language/generate.ts:24 +#, fuzzy +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "正在创建客户端用于与 CA 服务器通信" + +#: src/language/generate.ts:12 +#, fuzzy +msgid "[Nginx UI] Environment variables cleaned" +msgstr "环境变量已清理" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "[Nginx UI] 已完成" + +#: src/language/generate.ts:4 +#, fuzzy +msgid "[Nginx UI] Issued certificate successfully" +msgstr "证书申请成功" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "[Nginx UI] 正在获取证书" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "[Nginx UI] 准备撤销证书" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "[Nginx UI] 正在准备 lego 配置" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "[Nginx UI] 重新加载 Nginx" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "[Nginx UI] 吊销完成" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "[Nginx UI] 正在撤销证书" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "[Nginx UI] 正在撤销旧证书" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "[Nginx UI] 正在设置 DNS01 验证提供程序" + +#: src/language/generate.ts:6 +#, fuzzy +msgid "[Nginx UI] Setting environment variables" +msgstr "正在设置环境变量" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "[Nginx UI] 正在设置 HTTP01 验证提供程序" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "[Nginx UI] 正在将证书私钥写入磁盘" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "[Nginx UI] 正在将证书写入磁盘" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "2FA" @@ -31,7 +121,8 @@ msgstr "关于" msgid "Access Log" msgstr "访问日志" -#: src/components/NgxConfigEditor/LogEntry.vue:90 src/routes/modules/nginx_log.ts:17 +#: src/components/NgxConfigEditor/LogEntry.vue:90 +#: src/routes/modules/nginx_log.ts:17 msgid "Access Logs" msgstr "访问日志" @@ -42,7 +133,8 @@ msgstr "ACME 用户" #: src/views/certificate/ACMEUser.vue:95 #: src/views/certificate/CertificateList/certColumns.tsx:94 -#: src/views/certificate/DNSCredential.vue:33 src/views/config/configColumns.tsx:44 +#: src/views/certificate/DNSCredential.vue:33 +#: src/views/config/configColumns.tsx:44 #: src/views/environments/group/columns.ts:43 #: src/views/environments/list/envColumns.tsx:97 #: src/views/nginx_log/NginxLogList.vue:49 @@ -104,7 +196,7 @@ msgstr "添加 Stream" msgid "Added successfully" msgstr "添加成功" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 msgid "Additional" msgstr "额外选项" @@ -122,7 +214,8 @@ msgstr "之后,请刷新此页面并再次点击添加通行密钥。" msgid "All" msgstr "全部" -#: src/components/Notification/notifications.ts:165 src/language/constants.ts:58 +#: src/components/Notification/notifications.ts:165 +#: src/language/constants.ts:58 msgid "All Recovery Codes Have Been Used" msgstr "所有恢复代码已用完" @@ -130,7 +223,7 @@ msgstr "所有恢复代码已用完" msgid "API Base Url" msgstr "API 地址" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" msgstr "API 文档" @@ -199,7 +292,8 @@ msgstr "您确定要永久删除此项目吗?" msgid "Are you sure you want to delete this item?" msgstr "你确定要删除这个项目吗?" -#: src/views/site/site_list/SiteList.vue:122 src/views/stream/StreamList.vue:239 +#: src/views/site/site_list/SiteList.vue:122 +#: src/views/stream/StreamList.vue:239 msgid "Are you sure you want to delete?" msgstr "您确定要删除吗?" @@ -269,7 +363,7 @@ msgstr "自动" msgid "auto = CPU cores" msgstr "自动 = CPU 线程数" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "自动刷新" @@ -289,9 +383,9 @@ msgstr "\"自动重启\"" msgid "Automatically indexed from site and stream configurations." msgstr "自动从站点和流配置中索引。" -#: src/views/certificate/components/CertificateEditor.vue:259 +#: src/views/certificate/CertificateEditor.vue:259 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:173 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -498,13 +592,18 @@ msgstr "证书到期通知" #: src/components/Notification/notifications.ts:25 msgid "Certificate Expired" -msgstr "证书过期" +msgstr "证书已过期" #: src/components/Notification/notifications.ts:33 #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 msgid "Certificate Expiring Soon" -msgstr "证书即将到期" +msgstr "证书即将过期" + +#: src/language/generate.ts:5 +#, fuzzy +msgid "Certificate not found: %{error}" +msgstr "证书解码错误" #: src/constants/errors/cert.ts:5 msgid "Certificate parse error" @@ -517,7 +616,7 @@ msgstr "证书路径为空" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 msgid "Certificate removed successfully" -msgstr "成功删除证书" +msgstr "证书已成功移除" #: src/views/preference/tabs/CertSettings.vue:27 msgid "Certificate Renewal Interval" @@ -527,7 +626,12 @@ msgstr "证书续期间隔" msgid "Certificate renewed successfully" msgstr "证书更新成功" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +#, fuzzy +msgid "Certificate revoked successfully" +msgstr "证书已成功移除" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 msgid "Certificate Status" msgid_plural "Certificates Status" @@ -560,7 +664,8 @@ msgstr[0] "变更证书" msgid "Changed Path" msgstr "变更后的路径" -#: src/views/environments/list/BatchUpgrader.vue:159 src/views/system/Upgrade.vue:188 +#: src/views/environments/list/BatchUpgrader.vue:159 +#: src/views/system/Upgrade.vue:188 msgid "Channel" msgstr "通道" @@ -615,7 +720,7 @@ msgstr "检查 sites-available 和 sites-enabled 目录是否位于 nginx 配置 msgid "" "Check if the streams-available and streams-enabled directories are under " "the nginx configuration directory." -msgstr "检查 nginx 配置目录下是否有 streams-available 和 streams-enabled 目录。" +msgstr "检查 Nginx 配置目录下是否有 streams-available 和 streams-enabled 目录。" #: src/constants/errors/crypto.ts:3 msgid "Cipher text is too short" @@ -671,7 +776,7 @@ msgstr "关闭" #: src/constants/errors/llm.ts:2 msgid "Code completion is not enabled" -msgstr "未启用代码自动完成功能" +msgstr "代码补全未启用" #: src/views/preference/tabs/OpenAISettings.vue:86 msgid "Code Completion Model" @@ -683,7 +788,7 @@ msgstr "命令" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" -msgstr "命令以意外退出代码退出:{0},错误:{1}" +msgstr "命令以意外退出代码结束:{0},错误:{1}" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:115 #: src/components/NgxConfigEditor/LocationEditor.vue:104 @@ -750,7 +855,7 @@ msgstr "已连接" #: src/views/dashboard/NginxDashBoard.vue:85 msgid "Connection error, trying to reconnect..." -msgstr "连接错误,尝试重新连接..." +msgstr "连接错误,正在尝试重新连接..." #: src/views/terminal/Terminal.vue:142 msgid "Connection lost, please refresh the page." @@ -758,11 +863,11 @@ msgstr "连接中断,请刷新页面。" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:61 msgid "Connection timeout period" -msgstr "连接超时时间" +msgstr "连接超时期限" #: src/constants/errors/docker.ts:7 msgid "Container status unknown" -msgstr "未知容器状态" +msgstr "容器状态未知" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:120 #: src/components/NgxConfigEditor/LocationEditor.vue:116 @@ -855,7 +960,7 @@ msgstr "正在创建客户端用于与 CA 服务器通信" msgid "Credential" msgstr "DNS 凭证" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "凭证" @@ -920,7 +1025,8 @@ msgstr "定义共享内存区名称和大小,例如 proxy_cache:10m" #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:21 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519 #: src/views/certificate/components/RemoveCert.vue:87 -#: src/views/site/site_list/SiteList.vue:131 src/views/stream/StreamList.vue:248 +#: src/views/site/site_list/SiteList.vue:131 +#: src/views/stream/StreamList.vue:248 msgid "Delete" msgstr "删除" @@ -1106,8 +1212,8 @@ msgstr "在 %{node} 上禁用 %{name} 成功" #: src/views/site/components/SiteStatusSegmented.vue:134 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:62 #: src/views/site/site_list/columns.tsx:111 -#: src/views/stream/components/StreamEditor.vue:30 src/views/stream/StreamList.vue:60 -#: src/views/user/userColumns.tsx:41 +#: src/views/stream/components/StreamEditor.vue:30 +#: src/views/stream/StreamList.vue:60 src/views/user/userColumns.tsx:41 msgid "Disabled" msgstr "禁用" @@ -1121,12 +1227,13 @@ msgstr "禁用成功" msgid "Disk IO" msgstr "磁盘 IO" -#: src/routes/modules/certificates.ts:56 src/views/certificate/DNSCredential.vue:40 +#: src/routes/modules/certificates.ts:56 +#: src/views/certificate/DNSCredential.vue:40 msgid "DNS Credentials" msgstr "DNS 凭证" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "DNS 提供商" @@ -1175,6 +1282,11 @@ msgstr "Docker 客户端未初始化" msgid "Docker Socket" msgstr "Docker Socket" +#: src/constants/errors/self_check.ts:15 +#, fuzzy +msgid "Docker socket not exist" +msgstr "Docker Socket" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 msgid "Document" @@ -1185,7 +1297,7 @@ msgstr[0] "文档" msgid "Domain" msgstr "域名" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "域名列表为空,请尝试为 %{config} 重新打开证书自动续期" @@ -1197,7 +1309,8 @@ msgstr "下载最新版本错误" msgid "Downloading latest release" msgstr "下载最新版本" -#: src/views/environments/list/BatchUpgrader.vue:188 src/views/system/Upgrade.vue:215 +#: src/views/environments/list/BatchUpgrader.vue:188 +#: src/views/system/Upgrade.vue:215 msgid "Dry run mode enabled" msgstr "试运行模式已启动" @@ -1240,7 +1353,8 @@ msgstr "编辑站点" msgid "Edit Stream" msgstr "编辑 Stream" -#: src/views/certificate/ACMEUser.vue:25 src/views/preference/tabs/CertSettings.vue:12 +#: src/views/certificate/ACMEUser.vue:25 +#: src/views/preference/tabs/CertSettings.vue:12 msgid "Email" msgstr "邮箱" @@ -1354,8 +1468,8 @@ msgstr "启用 TOTP" #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:56 #: src/views/site/site_list/columns.tsx:110 #: src/views/stream/components/RightPanel/Basic.vue:62 -#: src/views/stream/components/StreamEditor.vue:24 src/views/stream/StreamList.vue:56 -#: src/views/user/userColumns.tsx:38 +#: src/views/stream/components/StreamEditor.vue:24 +#: src/views/stream/StreamList.vue:56 src/views/user/userColumns.tsx:38 msgid "Enabled" msgstr "启用" @@ -1374,7 +1488,8 @@ msgstr "用 Let's Encrypt 对网站进行加密" msgid "Environment variables cleaned" msgstr "环境变量已清理" -#: src/routes/modules/environments.ts:11 src/views/dashboard/Environments.vue:83 +#: src/routes/modules/environments.ts:11 +#: src/views/dashboard/Environments.vue:83 #: src/views/environments/list/Environment.vue:74 msgid "Environments" msgstr "环境" @@ -1392,7 +1507,8 @@ msgstr "差异查看器初始化出错" msgid "Error Log" msgstr "错误日志" -#: src/components/NgxConfigEditor/LogEntry.vue:98 src/routes/modules/nginx_log.ts:24 +#: src/components/NgxConfigEditor/LogEntry.vue:98 +#: src/routes/modules/nginx_log.ts:24 msgid "Error Logs" msgstr "错误日志" @@ -1426,7 +1542,7 @@ msgstr "外部 Docker 容器" msgid "External Notify" msgstr "外部通知" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 msgid "Fail to obtain certificate" msgstr "获取证书失败" @@ -1558,6 +1674,11 @@ msgstr "解密 Nginx UI 目录失败:{0}" msgid "Failed to delete certificate" msgstr "删除证书失败" +#: src/language/generate.ts:9 +#, fuzzy +msgid "Failed to delete certificate from database: %{error}" +msgstr "删除证书失败" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1698,6 +1819,11 @@ msgstr "恢复 Nginx UI 文件失败:{0}" msgid "Failed to revoke certificate" msgstr "证书撤销失败" +#: src/language/generate.ts:17 +#, fuzzy +msgid "Failed to revoke certificate: %{error}" +msgstr "证书撤销失败" + #: src/views/dashboard/components/ParamsOptimization.vue:90 msgid "Failed to save Nginx performance settings" msgstr "保存 Nginx 性能参数失败" @@ -1734,7 +1860,7 @@ msgstr "未找到文件" msgid "Filename is empty" msgstr "文件名为空" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "过滤" @@ -1802,7 +1928,8 @@ msgstr "正在生成私钥用于注册账户" msgid "Get data failed" msgstr "获取数据失败" -#: src/views/environments/list/BatchUpgrader.vue:177 src/views/system/Upgrade.vue:169 +#: src/views/environments/list/BatchUpgrader.vue:177 +#: src/views/system/Upgrade.vue:169 msgid "Get release information error" msgstr "获取发布信息错误" @@ -1909,7 +2036,7 @@ msgid "Import" msgstr "导入" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Import Certificate" msgstr "导入证书" @@ -1923,13 +2050,13 @@ msgid "" "processes" msgstr "包括主进程、工作进程、缓存进程和其他 Nginx 进程" -#: src/views/nginx_log/NginxLogList.vue:89 src/views/site/site_list/SiteList.vue:87 -#: src/views/stream/StreamList.vue:187 +#: src/views/nginx_log/NginxLogList.vue:89 +#: src/views/site/site_list/SiteList.vue:87 src/views/stream/StreamList.vue:187 msgid "Indexed" msgstr "已索引" -#: src/views/nginx_log/NginxLogList.vue:86 src/views/site/site_list/SiteList.vue:84 -#: src/views/stream/StreamList.vue:184 +#: src/views/nginx_log/NginxLogList.vue:86 +#: src/views/site/site_list/SiteList.vue:84 src/views/stream/StreamList.vue:184 msgid "Indexing..." msgstr "索引中..." @@ -1937,8 +2064,8 @@ msgstr "索引中..." msgid "Indicator" msgstr "指示器" -#: src/components/StdDesign/StdDetail/StdDetail.vue:81 src/constants/index.ts:24 -#: src/views/notification/notificationColumns.tsx:29 +#: src/components/StdDesign/StdDetail/StdDetail.vue:81 +#: src/constants/index.ts:24 src/views/notification/notificationColumns.tsx:29 msgid "Info" msgstr "信息" @@ -1962,7 +2089,8 @@ msgstr "输入恢复代码:" msgid "Insecure Skip Verify" msgstr "跳过证书认证" -#: src/routes/modules/auth.ts:8 src/views/install/components/InstallForm.vue:124 +#: src/routes/modules/auth.ts:8 +#: src/views/install/components/InstallForm.vue:124 #: src/views/install/components/InstallHeader.vue:9 msgid "Install" msgstr "安装" @@ -2009,7 +2137,8 @@ msgstr "无效文件对象" msgid "Invalid file path: {0}" msgstr "文件路径无效:{0}" -#: src/views/config/components/Rename.vue:66 src/views/config/ConfigEditor.vue:303 +#: src/views/config/components/Rename.vue:66 +#: src/views/config/ConfigEditor.vue:303 msgid "Invalid filename" msgstr "文件名无效" @@ -2124,8 +2253,8 @@ msgstr "如果不想修改,请留空" msgid "Leave blank if you don't need this." msgstr "如果不需要,请留空。" -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 msgid "Leave blank will not change anything" msgstr "留空不做任何更改" @@ -2141,7 +2270,8 @@ msgstr "Lego 禁用 CNAME 支持" msgid "License" msgstr "开源许可" -#: src/views/dashboard/Environments.vue:141 src/views/dashboard/Environments.vue:156 +#: src/views/dashboard/Environments.vue:141 +#: src/views/dashboard/Environments.vue:156 msgid "Link Start" msgstr "链接" @@ -2195,10 +2325,14 @@ msgstr "Location" msgid "Locations" msgstr "Locations" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 msgid "Log" msgstr "日志" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 msgid "Log List" msgstr "日志列表" @@ -2389,7 +2523,7 @@ msgid "Modify" msgstr "修改" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Modify Certificate" msgstr "修改证书" @@ -2407,9 +2541,10 @@ msgstr "多行指令" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 -#: src/views/certificate/DNSCredential.vue:11 src/views/config/components/Mkdir.vue:64 +#: src/views/certificate/DNSCredential.vue:11 +#: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 #: src/views/environments/group/columns.ts:8 #: src/views/environments/list/envColumns.tsx:9 @@ -2561,7 +2696,7 @@ msgstr "Nginx 未在另一个容器中运行" msgid "Nginx is running" msgstr "Nginx 正在运行" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "Nginx 日志" @@ -2648,7 +2783,8 @@ msgstr "Nginx UI 配置已恢复,几秒钟后将自动重启。" #: src/views/notification/Notification.vue:37 #: src/views/preference/tabs/AuthSettings.vue:164 #: src/views/preference/tabs/CertSettings.vue:73 -#: src/views/site/site_list/SiteList.vue:120 src/views/stream/StreamList.vue:237 +#: src/views/site/site_list/SiteList.vue:120 +#: src/views/stream/StreamList.vue:237 msgid "No" msgstr "取消" @@ -2676,7 +2812,8 @@ msgstr "节点" msgid "Node Group" msgstr "节点组" -#: src/routes/modules/environments.ts:33 src/views/environments/group/EnvGroup.vue:10 +#: src/routes/modules/environments.ts:33 +#: src/views/environments/group/EnvGroup.vue:10 msgid "Node Groups" msgstr "环境组" @@ -2798,7 +2935,8 @@ msgstr "确定" #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:20 #: src/views/site/site_list/SiteList.vue:121 #: src/views/stream/components/RightPanel/Basic.vue:46 -#: src/views/stream/StreamList.vue:238 src/views/system/Backup/BackupCreator.vue:149 +#: src/views/stream/StreamList.vue:238 +#: src/views/system/Backup/BackupCreator.vue:149 msgid "OK" msgstr "确定" @@ -2915,7 +3053,8 @@ msgstr "密码长度不能超过 20 个字符" #: src/components/NgxConfigEditor/LocationEditor.vue:110 #: src/components/NgxConfigEditor/LocationEditor.vue:138 -#: src/views/config/ConfigEditor.vue:316 src/views/nginx_log/NginxLogList.vue:41 +#: src/views/config/ConfigEditor.vue:316 +#: src/views/nginx_log/NginxLogList.vue:41 msgid "Path" msgstr "路径" @@ -2996,13 +3135,15 @@ msgid "" "select one of the credentialsbelow to request the API of the DNS provider." msgstr "请首先在 “证书”> “DNS 凭证” 中添加凭证,然后在下方选择一个凭证,请求 DNS 提供商的 API。" -#: src/components/Notification/notifications.ts:166 src/language/constants.ts:59 +#: src/components/Notification/notifications.ts:166 +#: src/language/constants.ts:59 msgid "" "Please generate new recovery codes in the preferences immediately to " "prevent lockout." msgstr "请立即在偏好设置中生成新的恢复码,以防止无法访问您的账户。" -#: src/views/config/components/Rename.vue:65 src/views/config/ConfigEditor.vue:302 +#: src/views/config/components/Rename.vue:65 +#: src/views/config/ConfigEditor.vue:302 msgid "Please input a filename" msgstr "请输入文件名" @@ -3083,8 +3224,8 @@ msgid "Post-sync Action" msgstr "同步后操作" #: src/views/environments/list/BatchUpgrader.vue:167 -#: src/views/environments/list/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194 -#: src/views/system/Upgrade.vue:245 +#: src/views/environments/list/BatchUpgrader.vue:220 +#: src/views/system/Upgrade.vue:194 src/views/system/Upgrade.vue:245 msgid "Pre-release" msgstr "预发布" @@ -3280,7 +3421,8 @@ msgstr "删除成功" #: src/components/NgxConfigEditor/NgxUpstream.vue:126 #: src/views/config/components/ConfigName.vue:51 -#: src/views/config/components/Rename.vue:56 src/views/config/ConfigList.vue:181 +#: src/views/config/components/Rename.vue:56 +#: src/views/config/ConfigList.vue:181 #: src/views/site/site_edit/components/ConfigName/ConfigName.vue:44 #: src/views/stream/components/ConfigName.vue:44 msgid "Rename" @@ -3302,11 +3444,13 @@ msgstr "远程配置重命名错误" msgid "Rename Remote Config Success" msgstr "重命名远程配置成功" -#: src/components/Notification/notifications.ts:109 src/language/constants.ts:56 +#: src/components/Notification/notifications.ts:109 +#: src/language/constants.ts:56 msgid "Rename Remote Site Error" msgstr "重命名远程站点错误" -#: src/components/Notification/notifications.ts:113 src/language/constants.ts:55 +#: src/components/Notification/notifications.ts:113 +#: src/language/constants.ts:55 msgid "Rename Remote Site Success" msgstr "重命名远程站点成功" @@ -3498,8 +3642,9 @@ msgstr "运行中" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 -#: src/views/config/components/ConfigName.vue:59 src/views/config/ConfigEditor.vue:275 +#: src/views/certificate/CertificateEditor.vue:266 +#: src/views/config/components/ConfigName.vue:59 +#: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 #: src/views/preference/Preference.vue:117 #: src/views/site/site_edit/components/ConfigName/ConfigName.vue:52 @@ -3518,11 +3663,13 @@ msgstr "保存指令" msgid "Save error %{msg}" msgstr "保存错误 %{msg}" -#: src/components/Notification/notifications.ts:117 src/language/constants.ts:48 +#: src/components/Notification/notifications.ts:117 +#: src/language/constants.ts:48 msgid "Save Remote Site Error" msgstr "保存远程站点错误" -#: src/components/Notification/notifications.ts:121 src/language/constants.ts:47 +#: src/components/Notification/notifications.ts:121 +#: src/language/constants.ts:47 msgid "Save Remote Site Success" msgstr "保存远程站点成功" @@ -3552,7 +3699,7 @@ msgstr "成功将站点 %{name} 保存到 %{node} 中" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 msgid "Save successfully" msgstr "保存成功" @@ -3567,7 +3714,7 @@ msgstr "保存成功" msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "用手机扫描二维码,将账户添加到应用程序中。" -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "SDK" @@ -3740,7 +3887,7 @@ msgstr "缓存加载器迭代之间的休眠时间" msgid "Sleep time between cache manager iterations" msgstr "缓存管理器迭代之间的休眠时间" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 msgid "SSL Certificate Content" msgstr "SSL 证书内容" @@ -3752,15 +3899,15 @@ msgstr "SSL 证书文件必须位于 Nginx 配置目录下:{0}" msgid "SSL certificate file not found" msgstr "未找到 SSL 证书文件" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 msgid "SSL Certificate Key Content" msgstr "SSL 证书密钥内容" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 msgid "SSL Certificate Key Path" msgstr "SSL证书密钥路径" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 msgid "SSL Certificate Path" msgstr "SSL证书路径" @@ -3790,8 +3937,8 @@ msgid "SSO Login" msgstr "SSO 登录" #: src/views/environments/list/BatchUpgrader.vue:164 -#: src/views/environments/list/BatchUpgrader.vue:214 src/views/system/Upgrade.vue:191 -#: src/views/system/Upgrade.vue:239 +#: src/views/environments/list/BatchUpgrader.vue:214 +#: src/views/system/Upgrade.vue:191 src/views/system/Upgrade.vue:239 msgid "Stable" msgstr "稳定" @@ -3925,7 +4072,7 @@ msgstr "同步节点" msgid "Sync strategy" msgstr "同步策略" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 msgid "Sync to" msgstr "同步到" @@ -3993,11 +4140,11 @@ msgid "" "dashes, colons, and dots." msgstr "ICP 备案号只能包含字母、单码、数字、连字符、破折号、冒号和点。" -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 msgid "The input is not a SSL Certificate" msgstr "输入的内容不是 SSL 证书" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 msgid "The input is not a SSL Certificate Key" msgstr "输入的内容不是 SSL 证书密钥" @@ -4028,11 +4175,11 @@ msgstr "节点名称只能包含字母、统一码、数字、连字符、破折 msgid "The parameter of server_name is required" msgstr "必须为 server_name 指令指明参数" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 msgid "The path exists, but the file is not a certificate" msgstr "路径存在,但文件不是证书" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 msgid "The path exists, but the file is not a private key" msgstr "路径存在,但文件不是私钥" @@ -4084,17 +4231,17 @@ msgid "" "lose access to your account." msgstr "这些代码是在您丢失密码和双重身份验证方式时,访问账户的最后手段。如果找不到这些代码,您将无法再访问您的账户。" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 msgid "This Auto Cert item is invalid, please remove it." msgstr "这个证书自动续期项目是无效的,请删除。" -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "该证书由 Nginx UI 托管" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "此字段必填" @@ -4289,7 +4436,8 @@ msgstr "未知问题" msgid "Update successfully" msgstr "更新成功" -#: src/views/certificate/ACMEUser.vue:88 src/views/certificate/DNSCredential.vue:27 +#: src/views/certificate/ACMEUser.vue:88 +#: src/views/certificate/DNSCredential.vue:27 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:329 #: src/views/environments/group/columns.ts:37 #: src/views/environments/list/envColumns.tsx:90 @@ -4304,9 +4452,10 @@ msgstr "修改时间" msgid "Updated successfully" msgstr "更新成功" -#: src/routes/modules/system.ts:33 src/views/environments/list/Environment.vue:107 -#: src/views/environments/list/Environment.vue:99 src/views/system/Upgrade.vue:143 -#: src/views/system/Upgrade.vue:226 +#: src/routes/modules/system.ts:33 +#: src/views/environments/list/Environment.vue:107 +#: src/views/environments/list/Environment.vue:99 +#: src/views/system/Upgrade.vue:143 src/views/system/Upgrade.vue:226 msgid "Upgrade" msgstr "升级" @@ -4318,7 +4467,8 @@ msgstr "成功升级 %{node} 上的 Nginx UI 🎉" msgid "Upgraded successfully" msgstr "升级成功" -#: src/views/environments/list/BatchUpgrader.vue:88 src/views/system/Upgrade.vue:77 +#: src/views/environments/list/BatchUpgrader.vue:88 +#: src/views/system/Upgrade.vue:77 msgid "Upgrading Nginx UI, please wait..." msgstr "正在升级 Nginx UI,请等待..." @@ -4366,7 +4516,8 @@ msgstr "用户名" msgid "Username (*)" msgstr "用户名 (*)" -#: src/components/CertInfo/CertInfo.vue:24 src/views/certificate/ACMEUser.vue:124 +#: src/components/CertInfo/CertInfo.vue:24 +#: src/views/certificate/ACMEUser.vue:124 #: src/views/certificate/CertificateList/certColumns.tsx:78 msgid "Valid" msgstr "有效的" diff --git a/app/src/language/zh_TW/app.po b/app/src/language/zh_TW/app.po index a44339c3..a9eaa051 100644 --- a/app/src/language/zh_TW/app.po +++ b/app/src/language/zh_TW/app.po @@ -19,6 +19,96 @@ msgstr "" "X-Generator: Weblate 5.10.4\n" "Generated-By: easygettext\n" +#: src/language/generate.ts:19 +msgid "[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}" +msgstr "[Nginx UI] ACME 使用者:%{name},電子郵件:%{email},CA 目錄:%{caDir}" + +#: src/language/generate.ts:13 +msgid "[Nginx UI] Backing up current certificate for later revocation" +msgstr "[Nginx UI] 正在備份當前憑證以便後續撤銷" + +#: src/language/generate.ts:28 +#, fuzzy +msgid "[Nginx UI] Certificate renewed successfully" +msgstr "憑證更新成功" + +#: src/language/generate.ts:8 +#, fuzzy +msgid "[Nginx UI] Certificate successfully revoked" +msgstr "Nginx 重啟成功" + +#: src/language/generate.ts:29 +msgid "[Nginx UI] Certificate was used for server, reloading server TLS certificate" +msgstr "[Nginx UI] 憑證已用於伺服器,正在重新載入伺服器 TLS 憑證" + +#: src/language/generate.ts:24 +#, fuzzy +msgid "[Nginx UI] Creating client facilitates communication with the CA server" +msgstr "建立客戶端方便與 CA 伺服器通訊" + +#: src/language/generate.ts:12 +#, fuzzy +msgid "[Nginx UI] Environment variables cleaned" +msgstr "環境變數已清理" + +#: src/language/generate.ts:21 +msgid "[Nginx UI] Finished" +msgstr "[Nginx UI] 已完成" + +#: src/language/generate.ts:4 +#, fuzzy +msgid "[Nginx UI] Issued certificate successfully" +msgstr "憑證簽發成功" + +#: src/language/generate.ts:14 +msgid "[Nginx UI] Obtaining certificate" +msgstr "[Nginx UI] 正在取得憑證" + +#: src/language/generate.ts:22 +msgid "[Nginx UI] Preparing for certificate revocation" +msgstr "[Nginx UI] 準備撤銷憑證" + +#: src/language/generate.ts:18 +msgid "[Nginx UI] Preparing lego configurations" +msgstr "[Nginx UI] 正在準備 lego 配置" + +#: src/language/generate.ts:25 +msgid "[Nginx UI] Reloading nginx" +msgstr "[Nginx UI] 重新載入 Nginx" + +#: src/language/generate.ts:16 +msgid "[Nginx UI] Revocation completed" +msgstr "[Nginx UI] 撤銷完成" + +#: src/language/generate.ts:7 +msgid "[Nginx UI] Revoking certificate" +msgstr "[Nginx UI] 正在撤銷證書" + +#: src/language/generate.ts:26 +msgid "[Nginx UI] Revoking old certificate" +msgstr "[Nginx UI] 正在撤銷舊憑證" + +#: src/language/generate.ts:20 +msgid "[Nginx UI] Setting DNS01 challenge provider" +msgstr "[Nginx UI] 正在設定 DNS01 驗證提供者" + +#: src/language/generate.ts:6 +#, fuzzy +msgid "[Nginx UI] Setting environment variables" +msgstr "設定環境變數中" + +#: src/language/generate.ts:11 +msgid "[Nginx UI] Setting HTTP01 challenge provider" +msgstr "[Nginx UI] 正在設定 HTTP01 驗證提供者" + +#: src/language/generate.ts:15 +msgid "[Nginx UI] Writing certificate private key to disk" +msgstr "[Nginx UI] 正在將證書私鑰寫入磁碟" + +#: src/language/generate.ts:27 +msgid "[Nginx UI] Writing certificate to disk" +msgstr "[Nginx UI] 正在將憑證寫入磁碟" + #: src/views/user/userColumns.tsx:32 msgid "2FA" msgstr "雙因素驗證" @@ -110,7 +200,7 @@ msgstr "新增 Stream" msgid "Added successfully" msgstr "新增成功" -#: src/views/certificate/DNSChallenge.vue:110 +#: src/views/certificate/components/DNSChallenge.vue:110 msgid "Additional" msgstr "其他設定" @@ -137,7 +227,7 @@ msgstr "所有恢復代碼已用完" msgid "API Base Url" msgstr "API 基礎網址" -#: src/views/certificate/DNSChallenge.vue:83 +#: src/views/certificate/components/DNSChallenge.vue:83 msgid "API Document" msgstr "API 文件" @@ -277,7 +367,7 @@ msgstr "自動" msgid "auto = CPU cores" msgstr "auto = CPU 核心數" -#: src/views/nginx_log/NginxLog.vue:149 +#: src/views/nginx_log/NginxLog.vue:150 msgid "Auto Refresh" msgstr "自動重新整理" @@ -297,11 +387,9 @@ msgstr "\"自動重啟\"" msgid "Automatically indexed from site and stream configurations." msgstr "\"自動從站點和流配置中索引。\"" -#: src/views/certificate/components/CertificateEditor.vue:259 -#: src/views/config/ConfigEditor.vue:266 -#: src/views/config/ConfigList.vue:112 -#: src/views/config/ConfigList.vue:195 -#: src/views/nginx_log/NginxLog.vue:173 +#: src/views/certificate/CertificateEditor.vue:259 +#: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112 +#: src/views/config/ConfigList.vue:195 src/views/nginx_log/NginxLog.vue:174 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:150 #: src/views/stream/components/StreamEditor.vue:106 msgid "Back" @@ -504,7 +592,7 @@ msgstr "證書解碼錯誤" #: src/components/Notification/notifications.ts:29 msgid "Certificate Expiration Notice" -msgstr "證書到期通知" +msgstr "憑證到期通知" #: src/components/Notification/notifications.ts:25 msgid "Certificate Expired" @@ -514,20 +602,25 @@ msgstr "憑證已過期" #: src/components/Notification/notifications.ts:37 #: src/components/Notification/notifications.ts:41 msgid "Certificate Expiring Soon" -msgstr "證書即將到期" +msgstr "憑證即將到期" + +#: src/language/generate.ts:5 +#, fuzzy +msgid "Certificate not found: %{error}" +msgstr "證書解碼錯誤" #: src/constants/errors/cert.ts:5 msgid "Certificate parse error" -msgstr "證書解析錯誤" +msgstr "憑證解析錯誤" #: src/constants/errors/cert.ts:8 msgid "Certificate path is empty" -msgstr "證書路徑為空" +msgstr "憑證路徑為空" #: src/views/certificate/components/RemoveCert.vue:41 #: src/views/certificate/components/RemoveCert.vue:61 msgid "Certificate removed successfully" -msgstr "憑證成功移除" +msgstr "憑證已成功移除" #: src/views/preference/tabs/CertSettings.vue:27 msgid "Certificate Renewal Interval" @@ -537,7 +630,12 @@ msgstr "憑證更新間隔" msgid "Certificate renewed successfully" msgstr "憑證更新成功" -#: src/views/certificate/components/CertificateEditor.vue:128 +#: src/language/generate.ts:10 +#, fuzzy +msgid "Certificate revoked successfully" +msgstr "憑證已成功移除" + +#: src/views/certificate/CertificateEditor.vue:128 #: src/views/site/site_edit/components/Cert/Cert.vue:58 msgid "Certificate Status" msgid_plural "Certificates Status" @@ -578,7 +676,7 @@ msgstr "通道" #: src/views/site/site_edit/components/RightPanel/RightPanel.vue:40 #: src/views/stream/components/RightPanel/RightPanel.vue:22 msgid "Chat" -msgstr "" +msgstr "聊天" #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40 #: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64 @@ -596,6 +694,8 @@ msgid "" "Docker Image, please make sure the docker socket is mounted like this: `-v " "/var/run/docker.sock:/var/run/docker.sock`." msgstr "" +"檢查 /var/run/docker.sock 是否存在。如果您正在使用 Nginx UI 官方 Docker 映像,請確保 Docker " +"通訊端已掛載如下:`-v /var/run/docker.sock:/var/run/docker.sock`。" #: src/components/SelfCheck/tasks/frontend/https-check.ts:11 msgid "" @@ -681,13 +781,12 @@ msgid "Close" msgstr "關閉" #: src/constants/errors/llm.ts:2 -#, fuzzy msgid "Code completion is not enabled" -msgstr "目前帳戶未啟用 TOTP。" +msgstr "程式碼補全未啟用" #: src/views/preference/tabs/OpenAISettings.vue:86 msgid "Code Completion Model" -msgstr "" +msgstr "程式碼補全模型" #: src/views/preference/tabs/LogrotateSettings.vue:23 msgid "Command" @@ -695,7 +794,7 @@ msgstr "命令" #: src/constants/errors/docker.ts:6 msgid "Command exited with unexpected exit code: {0}, error: {1}" -msgstr "" +msgstr "命令以意外退出代碼結束:{0},錯誤:{1}" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:115 #: src/components/NgxConfigEditor/LocationEditor.vue:104 @@ -771,11 +870,11 @@ msgstr "連線中斷,請重新整理此頁面。" #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:61 msgid "Connection timeout period" -msgstr "連線逾時時間" +msgstr "連接逾時期限" #: src/constants/errors/docker.ts:7 msgid "Container status unknown" -msgstr "" +msgstr "容器狀態未知" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:120 #: src/components/NgxConfigEditor/LocationEditor.vue:116 @@ -868,7 +967,7 @@ msgstr "建立客戶端方便與 CA 伺服器通訊" msgid "Credential" msgstr "認證" -#: src/views/certificate/DNSChallenge.vue:99 +#: src/views/certificate/components/DNSChallenge.vue:99 msgid "Credentials" msgstr "認證資訊" @@ -1142,7 +1241,7 @@ msgid "DNS Credentials" msgstr "DNS 認證" #: src/components/AutoCertForm/DNSChallenge.vue:94 -#: src/views/certificate/DNSChallenge.vue:72 +#: src/views/certificate/components/DNSChallenge.vue:72 msgid "DNS Provider" msgstr "DNS 供應商" @@ -1191,6 +1290,10 @@ msgstr "" msgid "Docker Socket" msgstr "" +#: src/constants/errors/self_check.ts:15 +msgid "Docker socket not exist" +msgstr "" + #: src/components/NgxConfigEditor/directive/DirectiveAdd.vue:88 #: src/components/NgxConfigEditor/directive/DirectiveDocuments.vue:16 msgid "Document" @@ -1201,7 +1304,7 @@ msgstr[0] "檔案" msgid "Domain" msgstr "網域" -#: src/views/certificate/components/CertificateEditor.vue:112 +#: src/views/certificate/CertificateEditor.vue:112 msgid "Domains list is empty, try to reopen Auto Cert for %{config}" msgstr "網域列表為空,請嘗試重新開啟 %{config} 的自動憑證" @@ -1447,7 +1550,7 @@ msgstr "外部通知" msgid "External Notify" msgstr "外部通知" -#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:96 +#: src/views/site/site_edit/components/Cert/ObtainCertLive.vue:80 msgid "Fail to obtain certificate" msgstr "取得憑證失敗" @@ -1581,6 +1684,11 @@ msgstr "解密 Nginx UI 目錄失敗:{0}" msgid "Failed to delete certificate" msgstr "憑證刪除失敗" +#: src/language/generate.ts:9 +#, fuzzy +msgid "Failed to delete certificate from database: %{error}" +msgstr "憑證刪除失敗" + #: src/views/site/components/SiteStatusSegmented.vue:46 #: src/views/stream/components/RightPanel/Basic.vue:37 #: src/views/stream/StreamList.vue:102 @@ -1727,6 +1835,11 @@ msgstr "還原 Nginx UI 檔案失敗:{0}" msgid "Failed to revoke certificate" msgstr "撤銷憑證失敗" +#: src/language/generate.ts:17 +#, fuzzy +msgid "Failed to revoke certificate: %{error}" +msgstr "撤銷憑證失敗" + #: src/views/dashboard/components/ParamsOptimization.vue:90 msgid "Failed to save Nginx performance settings" msgstr "儲存 Nginx 效能設定失敗" @@ -1764,7 +1877,7 @@ msgstr "找不到檔案" msgid "Filename is empty" msgstr "檔名空白" -#: src/views/nginx_log/NginxLog.vue:155 +#: src/views/nginx_log/NginxLog.vue:156 msgid "Filter" msgstr "篩選" @@ -1940,7 +2053,7 @@ msgid "Import" msgstr "匯入" #: src/routes/modules/certificates.ts:46 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Import Certificate" msgstr "匯入憑證" @@ -2158,8 +2271,8 @@ msgstr "留空表示不修改" msgid "Leave blank if you don't need this." msgstr "留空表示不需要此項目。" -#: src/views/certificate/components/CertificateEditor.vue:223 -#: src/views/certificate/components/CertificateEditor.vue:237 +#: src/views/certificate/CertificateEditor.vue:223 +#: src/views/certificate/CertificateEditor.vue:237 msgid "Leave blank will not change anything" msgstr "留空將不會改變任何內容" @@ -2232,10 +2345,14 @@ msgstr "Location" msgid "Locations" msgstr "Locations" -#: src/views/certificate/components/CertificateEditor.vue:247 +#: src/views/certificate/CertificateEditor.vue:247 msgid "Log" msgstr "日誌" +#: src/language/generate.ts:23 +msgid "Log file %{log_path} is not a regular file. " +msgstr "" + #: src/routes/modules/nginx_log.ts:39 src/views/nginx_log/NginxLogList.vue:67 msgid "Log List" msgstr "日誌列表" @@ -2426,7 +2543,7 @@ msgid "Modify" msgstr "修改" #: src/routes/modules/certificates.ts:36 -#: src/views/certificate/components/CertificateEditor.vue:85 +#: src/views/certificate/CertificateEditor.vue:85 msgid "Modify Certificate" msgstr "修改憑證" @@ -2444,8 +2561,8 @@ msgstr "多行指令" #: src/components/NgxConfigEditor/NgxUpstream.vue:178 #: src/views/certificate/ACMEUser.vue:13 +#: src/views/certificate/CertificateEditor.vue:162 #: src/views/certificate/CertificateList/certColumns.tsx:10 -#: src/views/certificate/components/CertificateEditor.vue:162 #: src/views/certificate/DNSCredential.vue:11 #: src/views/config/components/Mkdir.vue:64 #: src/views/config/configColumns.tsx:7 src/views/config/ConfigEditor.vue:309 @@ -2603,7 +2720,7 @@ msgstr "Nginx 未執行" msgid "Nginx is running" msgstr "Nginx 執行中" -#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:143 +#: src/routes/modules/nginx_log.ts:9 src/views/nginx_log/NginxLog.vue:144 msgid "Nginx Log" msgstr "Nginx 日誌" @@ -3554,7 +3671,7 @@ msgstr "執行中" #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:64 #: src/components/StdDesign/StdDetail/StdDetail.vue:93 -#: src/views/certificate/components/CertificateEditor.vue:266 +#: src/views/certificate/CertificateEditor.vue:266 #: src/views/config/components/ConfigName.vue:59 #: src/views/config/ConfigEditor.vue:275 #: src/views/preference/components/AuthSettings/Passkey.vue:130 @@ -3611,7 +3728,7 @@ msgstr "串流 %{name} 成功儲存至 %{node}" #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97 -#: src/views/certificate/components/CertificateEditor.vue:49 +#: src/views/certificate/CertificateEditor.vue:49 #: src/views/preference/store/index.ts:118 msgid "Save successfully" msgstr "儲存成功" @@ -3626,7 +3743,7 @@ msgstr "儲存成功" msgid "Scan the QR code with your mobile phone to add the account to the app." msgstr "用手機掃描二維碼將賬戶新增到應用程式中。" -#: src/views/certificate/DNSChallenge.vue:90 +#: src/views/certificate/components/DNSChallenge.vue:90 msgid "SDK" msgstr "SDK" @@ -3799,7 +3916,7 @@ msgstr "快取載入器迭代間的休眠時間" msgid "Sleep time between cache manager iterations" msgstr "快取管理器迭代間的休眠時間" -#: src/views/certificate/components/CertificateEditor.vue:213 +#: src/views/certificate/CertificateEditor.vue:213 msgid "SSL Certificate Content" msgstr "SSL 憑證內容" @@ -3811,15 +3928,15 @@ msgstr "SSL 憑證檔案必須位於 Nginx 設定目錄下:{0}" msgid "SSL certificate file not found" msgstr "SSL 憑證檔案未找到" -#: src/views/certificate/components/CertificateEditor.vue:227 +#: src/views/certificate/CertificateEditor.vue:227 msgid "SSL Certificate Key Content" msgstr "SSL 憑證金鑰內容" -#: src/views/certificate/components/CertificateEditor.vue:192 +#: src/views/certificate/CertificateEditor.vue:192 msgid "SSL Certificate Key Path" msgstr "SSL 憑證金鑰路徑" -#: src/views/certificate/components/CertificateEditor.vue:177 +#: src/views/certificate/CertificateEditor.vue:177 #: src/views/preference/tabs/ServerSettings.vue:37 msgid "SSL Certificate Path" msgstr "SSL 憑證路徑" @@ -3984,7 +4101,7 @@ msgstr "同步節點" msgid "Sync strategy" msgstr "同步策略" -#: src/views/certificate/components/CertificateEditor.vue:206 +#: src/views/certificate/CertificateEditor.vue:206 msgid "Sync to" msgstr "同步到" @@ -4053,11 +4170,11 @@ msgid "" "dashes, colons, and dots." msgstr "ICP 編號僅能包含字母、Unicode 字元、數字、連字號、破折號、冒號和句點。" -#: src/views/certificate/components/CertificateEditor.vue:216 +#: src/views/certificate/CertificateEditor.vue:216 msgid "The input is not a SSL Certificate" msgstr "輸入的不是 SSL 憑證" -#: src/views/certificate/components/CertificateEditor.vue:230 +#: src/views/certificate/CertificateEditor.vue:230 msgid "The input is not a SSL Certificate Key" msgstr "輸入的不是 SSL 憑證金鑰" @@ -4088,11 +4205,11 @@ msgstr "節點名稱僅能包含字母、Unicode 字元、數字、連字號、 msgid "The parameter of server_name is required" msgstr "必須提供 server_name 參數" -#: src/views/certificate/components/CertificateEditor.vue:181 +#: src/views/certificate/CertificateEditor.vue:181 msgid "The path exists, but the file is not a certificate" msgstr "路徑存在,但檔案不是憑證" -#: src/views/certificate/components/CertificateEditor.vue:196 +#: src/views/certificate/CertificateEditor.vue:196 msgid "The path exists, but the file is not a private key" msgstr "路徑存在,但檔案不是金鑰" @@ -4144,17 +4261,17 @@ msgid "" "lose access to your account." msgstr "這些代碼是您在遺失密碼和第二重驗證因素時,存取帳戶的最後手段。如果您找不到這些代碼,您將無法再存取您的帳戶。" -#: src/views/certificate/components/CertificateEditor.vue:102 +#: src/views/certificate/CertificateEditor.vue:102 msgid "This Auto Cert item is invalid, please remove it." msgstr "此自動憑證項目無效,請將其移除。" -#: src/views/certificate/components/CertificateEditor.vue:92 +#: src/views/certificate/CertificateEditor.vue:92 msgid "This certificate is managed by Nginx UI" msgstr "此憑證由 Nginx UI 管理" -#: src/views/certificate/components/CertificateEditor.vue:165 -#: src/views/certificate/components/CertificateEditor.vue:179 -#: src/views/certificate/components/CertificateEditor.vue:194 +#: src/views/certificate/CertificateEditor.vue:165 +#: src/views/certificate/CertificateEditor.vue:179 +#: src/views/certificate/CertificateEditor.vue:194 msgid "This field is required" msgstr "此欄位為必填項" diff --git a/app/src/routes/modules/certificates.ts b/app/src/routes/modules/certificates.ts index 75e00936..fc22b361 100644 --- a/app/src/routes/modules/certificates.ts +++ b/app/src/routes/modules/certificates.ts @@ -31,7 +31,7 @@ export const certificatesRoutes: RouteRecordRaw[] = [ { path: ':id', name: 'Modify Certificate', - component: () => import('@/views/certificate/components/CertificateEditor.vue'), + component: () => import('@/views/certificate/CertificateEditor.vue'), meta: { name: () => $gettext('Modify Certificate'), hiddenInSidebar: true, @@ -41,7 +41,7 @@ export const certificatesRoutes: RouteRecordRaw[] = [ { path: 'import', name: 'Import Certificate', - component: () => import('@/views/certificate/components/CertificateEditor.vue'), + component: () => import('@/views/certificate/CertificateEditor.vue'), meta: { name: () => $gettext('Import Certificate'), hiddenInSidebar: true, diff --git a/app/src/views/certificate/components/CertificateEditor.vue b/app/src/views/certificate/CertificateEditor.vue similarity index 90% rename from app/src/views/certificate/components/CertificateEditor.vue rename to app/src/views/certificate/CertificateEditor.vue index 972e523e..cafa8b95 100644 --- a/app/src/views/certificate/components/CertificateEditor.vue +++ b/app/src/views/certificate/CertificateEditor.vue @@ -2,14 +2,14 @@ import type { Cert } from '@/api/cert' import type { Ref } from 'vue' import cert from '@/api/cert' -import AutoCertForm from '@/components/AutoCertForm/AutoCertForm.vue' -import CertInfo from '@/components/CertInfo/CertInfo.vue' -import CodeEditor from '@/components/CodeEditor/CodeEditor.vue' -import FooterToolBar from '@/components/FooterToolbar/FooterToolBar.vue' -import NodeSelector from '@/components/NodeSelector/NodeSelector.vue' +import AutoCertForm from '@/components/AutoCertForm' +import CertInfo from '@/components/CertInfo' +import CodeEditor from '@/components/CodeEditor' +import FooterToolBar from '@/components/FooterToolbar' +import NodeSelector from '@/components/NodeSelector' import { AutoCertState } from '@/constants' import { message } from 'ant-design-vue' -import RenewCert from './RenewCert.vue' +import RenewCert from './components/RenewCert.vue' const route = useRoute() @@ -59,21 +59,21 @@ async function save() { provide('saveCert', save) const log = computed(() => { - const logs = data.value.log?.split('\n') + if (!data.value.log) + return '' - logs.forEach((line, idx, lines) => { - const regex = /\[Nginx UI\] (.*)/ - - const matches = line.match(regex) - - if (matches && matches.length > 1) { - const extractedText = matches[1] - - lines[idx] = line.replaceAll(extractedText, $gettext(extractedText)) + return data.value.log.split('\n').map(line => { + try { + return T(JSON.parse(line)) } - }) - - return logs.join('\n') + catch { + // fallback to legacy log format + const matches = line.match(/\[Nginx UI\] (.*)/) + if (matches?.[1]) + return line.replaceAll(matches[1], $gettext(matches[1])) + return line + } + }).join('\n') }) const isManaged = computed(() => { diff --git a/app/src/views/certificate/DNSCredential.vue b/app/src/views/certificate/DNSCredential.vue index 406cef3c..9d39f6fd 100644 --- a/app/src/views/certificate/DNSCredential.vue +++ b/app/src/views/certificate/DNSCredential.vue @@ -5,7 +5,7 @@ import dns_credential from '@/api/dns_credential' import StdCurd from '@/components/StdDesign/StdDataDisplay/StdCurd.vue' import { datetime } from '@/components/StdDesign/StdDataDisplay/StdTableTransformer' import { input } from '@/components/StdDesign/StdDataEntry' -import DNSChallenge from './DNSChallenge.vue' +import DNSChallenge from './components/DNSChallenge.vue' const columns: Column[] = [{ title: () => $gettext('Name'), diff --git a/app/src/views/certificate/DNSChallenge.vue b/app/src/views/certificate/components/DNSChallenge.vue similarity index 100% rename from app/src/views/certificate/DNSChallenge.vue rename to app/src/views/certificate/components/DNSChallenge.vue diff --git a/app/src/views/nginx_log/NginxLog.vue b/app/src/views/nginx_log/NginxLog.vue index 7304f11a..c1f6af07 100644 --- a/app/src/views/nginx_log/NginxLog.vue +++ b/app/src/views/nginx_log/NginxLog.vue @@ -60,7 +60,8 @@ function init() { addLog(r.content) openWs() }).catch(e => { - addLog(e.error) + if (e.error) + addLog(T(e.error)) }) } diff --git a/app/src/views/site/site_edit/components/Cert/ObtainCertLive.vue b/app/src/views/site/site_edit/components/Cert/ObtainCertLive.vue index 2f61ca16..d0e96778 100644 --- a/app/src/views/site/site_edit/components/Cert/ObtainCertLive.vue +++ b/app/src/views/site/site_edit/components/Cert/ObtainCertLive.vue @@ -58,31 +58,14 @@ async function issue_cert(config_name: string, server_name: string[], key_type: ws.onmessage = async m => { const r = JSON.parse(m.data) - const regex = /\[Nginx UI\] (.*)/ + log(T(r)) - const matches = r.message.match(regex) - - if (matches && matches.length > 1) { - const extractedText = matches[1] - - r.message = r.message.replaceAll(extractedText, $gettext(extractedText)) - } - - log(r.message) - - // eslint-disable-next-line sonarjs/no-small-switch switch (r.status) { - case 'info': - // If it is a nginx ui log, increase the percent. - if (r.message.includes('[Nginx UI]')) - progressPercent.value += 8 - - break - default: + case 'success': modalClosable.value = true issuingCert.value = false - if (r.status === 'success' && r.ssl_certificate !== undefined && r.ssl_certificate_key !== undefined) { + if (r.ssl_certificate !== undefined && r.ssl_certificate_key !== undefined) { progressStatus.value = 'success' progressPercent.value = 100 resolve({ @@ -91,10 +74,15 @@ async function issue_cert(config_name: string, server_name: string[], key_type: key_type: r.key_type, }) } - else { - progressStatus.value = 'exception' - reject($gettext('Fail to obtain certificate')) - } + break + case 'error': + progressStatus.value = 'exception' + reject($gettext('Fail to obtain certificate')) + break + default: + // If it is a nginx ui log, increase the percent. + if (r.message.includes('[Nginx UI]')) + progressPercent.value += 8 break } } diff --git a/app/vite.config.ts b/app/vite.config.ts index 31a156ed..9e590818 100644 --- a/app/vite.config.ts +++ b/app/vite.config.ts @@ -55,6 +55,9 @@ export default defineConfig(({ mode }) => { '$npgettext', ], }, + { + '@/language': ['T'], + }, ], vueTemplate: true, eslintrc: { diff --git a/cmd/translation/gettext.go b/cmd/translation/gettext.go new file mode 100644 index 00000000..c017cec3 --- /dev/null +++ b/cmd/translation/gettext.go @@ -0,0 +1,196 @@ +// go run . +package main + +import ( + "bufio" + "fmt" + "os" + "path/filepath" + "regexp" + "runtime" + "strings" + + "github.com/uozi-tech/cosy/logger" +) + +// Directories to exclude +var excludeDirs = []string{ + ".devcontainer", ".github", ".idea", ".pnpm-store", + ".vscode", "app", "query", "tmp", "cmd", +} + +// Regular expression to match import statements for translation package +var importRegex = regexp.MustCompile(`import\s+\(\s*((?:.|\n)*?)\s*\)|\s*import\s+(.*?)\s+".*?(?:internal/translation|github\.com/0xJacky/Nginx-UI/internal/translation)"`) +var singleImportRegex = regexp.MustCompile(`\s*(?:(\w+)\s+)?".*?(?:internal/translation|github\.com/0xJacky/Nginx-UI/internal/translation)"`) + +func main() { + logger.Init("release") + // Start scanning from the project root + _, file, _, ok := runtime.Caller(0) + if !ok { + logger.Error("Unable to get the current file") + return + } + + root := filepath.Join(filepath.Dir(file), "../../") + calls := make(map[string]bool) + + // Scan all Go files + err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + + // Skip excluded directories + for _, dir := range excludeDirs { + if strings.Contains(path, dir) { + if info.IsDir() { + return filepath.SkipDir + } + return nil + } + } + + // Only process Go files + if !info.IsDir() && strings.HasSuffix(path, ".go") { + findTranslationC(path, calls) + } + + return nil + }) + + if err != nil { + logger.Errorf("Error walking the path: %v\n", err) + return + } + + // Generate a single TS file + generateSingleTSFile(root, calls) + + logger.Infof("Found %d translation messages\n", len(calls)) +} + +// findTranslationC finds all translation.C calls in a file and adds them to the calls map +func findTranslationC(filePath string, calls map[string]bool) { + // Read the entire file content + content, err := os.ReadFile(filePath) + if err != nil { + logger.Errorf("Error reading file %s: %v\n", filePath, err) + return + } + + fileContent := string(content) + + // Find the translation package alias from import statements + alias := findTranslationAlias(fileContent) + if alias == "" { + // No translation package imported, skip this file + return + } + + // Create regex pattern based on the alias + pattern := fmt.Sprintf(`%s\.C\(\s*["']([^"']*(?:\\["'][^"']*)*)["']`, alias) + cCallRegex := regexp.MustCompile(pattern) + + // Handle backtick strings separately (multi-line strings) + backtickPattern := fmt.Sprintf(`%s\.C\(\s*\x60([^\x60]*)\x60`, alias) + backtickRegex := regexp.MustCompile(backtickPattern) + + // Find all matches with regular quotes + matches := cCallRegex.FindAllStringSubmatch(fileContent, -1) + for _, match := range matches { + if len(match) >= 2 { + message := match[1] + // Clean up the message (remove escaped quotes, etc.) + message = strings.ReplaceAll(message, "\\\"", "\"") + message = strings.ReplaceAll(message, "\\'", "'") + + // Add to the map if not already present + if _, exists := calls[message]; !exists { + calls[message] = true + } + } + } + + // Find all matches with backticks + backtickMatches := backtickRegex.FindAllStringSubmatch(fileContent, -1) + for _, match := range backtickMatches { + if len(match) >= 2 { + message := match[1] + + // Add to the map if not already present + if _, exists := calls[message]; !exists { + calls[message] = true + } + } + } +} + +// findTranslationAlias finds the alias for the translation package in import statements +func findTranslationAlias(fileContent string) string { + // Default alias + alias := "translation" + + // Find import blocks + matches := importRegex.FindAllStringSubmatch(fileContent, -1) + for _, match := range matches { + if len(match) >= 3 && match[1] != "" { + // This is a block import, search inside it + imports := match[1] + singleMatches := singleImportRegex.FindAllStringSubmatch(imports, -1) + for _, singleMatch := range singleMatches { + if len(singleMatch) >= 2 && singleMatch[1] != "" { + // Custom alias found + return singleMatch[1] + } + } + } else if len(match) >= 3 && match[2] != "" { + // This is a single-line import + singleMatch := singleImportRegex.FindAllStringSubmatch(match[2], -1) + if len(singleMatch) > 0 && len(singleMatch[0]) >= 2 && singleMatch[0][1] != "" { + // Custom alias found + return singleMatch[0][1] + } + } + } + + return alias +} + +// generateSingleTSFile generates a single TS file with all translation messages +func generateSingleTSFile(root string, calls map[string]bool) { + outputPath := filepath.Join(root, "app/src/language/generate.ts") + + // Create the directory if it doesn't exist + err := os.MkdirAll(filepath.Dir(outputPath), 0755) + if err != nil { + logger.Errorf("Error creating directory: %v\n", err) + return + } + + // Create the output file + file, err := os.Create(outputPath) + if err != nil { + logger.Errorf("Error creating file: %v\n", err) + return + } + defer file.Close() + + writer := bufio.NewWriter(file) + + // Write the header + writer.WriteString("// This file is auto-generated. DO NOT EDIT MANUALLY.\n\n") + writer.WriteString("export const msg = [\n") + + // Write each translation message + for message := range calls { + // Escape single quotes in the message for JavaScript + escapedMessage := strings.ReplaceAll(message, "'", "\\'") + writer.WriteString(fmt.Sprintf(" $gettext('%s'),\n", escapedMessage)) + } + + writer.WriteString("]\n") + writer.Flush() + + logger.Infof("Generated TS file at %s\n", outputPath) +} diff --git a/internal/cert/auto_cert.go b/internal/cert/auto_cert.go index 80ac8da4..7aa22397 100644 --- a/internal/cert/auto_cert.go +++ b/internal/cert/auto_cert.go @@ -1,14 +1,15 @@ package cert import ( + "runtime" + "strings" + "time" + "github.com/0xJacky/Nginx-UI/internal/notification" "github.com/0xJacky/Nginx-UI/model" "github.com/0xJacky/Nginx-UI/settings" "github.com/pkg/errors" "github.com/uozi-tech/cosy/logger" - "runtime" - "strings" - "time" ) func AutoCert() { @@ -30,9 +31,9 @@ func AutoCert() { func autoCert(certModel *model.Cert) { confName := certModel.Filename - log := &Logger{} + log := NewLogger() log.SetCertModel(certModel) - defer log.Exit() + defer log.Close() if len(certModel.Filename) == 0 { log.Error(ErrCertModelFilenameEmpty) @@ -93,13 +94,7 @@ func autoCert(certModel *model.Cert) { } // errChan will be closed inside IssueCert - go IssueCert(payload, logChan, errChan) - - go func() { - for logString := range logChan { - log.Info(strings.TrimSpace(logString)) - } - }() + go IssueCert(payload, log, errChan) // block, unless errChan closed for err := range errChan { diff --git a/internal/cert/issue.go b/internal/cert/issue.go index 19e1c587..3a95204a 100644 --- a/internal/cert/issue.go +++ b/internal/cert/issue.go @@ -3,10 +3,12 @@ package cert import ( "log" "os" + "runtime" "time" "github.com/0xJacky/Nginx-UI/internal/cert/dns" "github.com/0xJacky/Nginx-UI/internal/nginx" + "github.com/0xJacky/Nginx-UI/internal/translation" "github.com/0xJacky/Nginx-UI/internal/transport" "github.com/0xJacky/Nginx-UI/model" "github.com/0xJacky/Nginx-UI/query" @@ -26,9 +28,11 @@ const ( DNS01 = "dns01" ) -func IssueCert(payload *ConfigPayload, logChan chan string, errChan chan error) { +func IssueCert(payload *ConfigPayload, certLogger *Logger, errChan chan error) { defer func() { if err := recover(); err != nil { + buf := make([]byte, 1024) + runtime.Stack(buf, false) logger.Error(err) } }() @@ -49,18 +53,23 @@ func IssueCert(payload *ConfigPayload, logChan chan string, errChan chan error) legolog.Logger = log.New(os.Stderr, "", log.LstdFlags) }() - l.Println("[INFO] [Nginx UI] Preparing lego configurations") + certLogger.Info(translation.C("[Nginx UI] Preparing lego configurations")) user, err := payload.GetACMEUser() if err != nil { errChan <- errors.Wrap(err, "issue cert get acme user error") return } - l.Printf("[INFO] [Nginx UI] ACME User: %s, Email: %s, CA Dir: %s\n", user.Name, user.Email, user.CADir) + + certLogger.Info(translation.C("[Nginx UI] ACME User: %{name}, Email: %{email}, CA Dir: %{caDir}", map[string]any{ + "name": user.Name, + "email": user.Email, + "caDir": user.CADir, + })) // Start a goroutine to fetch and process logs from channel go func() { for msg := range cw.Ch { - logChan <- string(msg) + certLogger.Info(translation.C(string(msg))) } }() @@ -80,7 +89,7 @@ func IssueCert(payload *ConfigPayload, logChan chan string, errChan chan error) config.Certificate.KeyType = payload.GetKeyType() - l.Println("[INFO] [Nginx UI] Creating client facilitates communication with the CA server") + certLogger.Info(translation.C("[Nginx UI] Creating client facilitates communication with the CA server")) // A client facilitates communication with the CA server. client, err := lego.NewClient(config) if err != nil { @@ -92,7 +101,7 @@ func IssueCert(payload *ConfigPayload, logChan chan string, errChan chan error) default: fallthrough case HTTP01: - l.Println("[INFO] [Nginx UI] Setting HTTP01 challenge provider") + certLogger.Info(translation.C("[Nginx UI] Setting HTTP01 challenge provider")) err = client.Challenge.SetHTTP01Provider( http01.NewProviderServer("", settings.CertSettings.HTTPChallengePort, @@ -106,14 +115,14 @@ func IssueCert(payload *ConfigPayload, logChan chan string, errChan chan error) return } - l.Println("[INFO] [Nginx UI] Setting DNS01 challenge provider") + certLogger.Info(translation.C("[Nginx UI] Setting DNS01 challenge provider")) code := dnsCredential.Config.Code pConfig, ok := dns.GetProvider(code) if !ok { errChan <- errors.Wrap(err, "provider not found") return } - l.Println("[INFO] [Nginx UI] Setting environment variables") + certLogger.Info(translation.C("[Nginx UI] Setting environment variables")) if dnsCredential.Config.Configuration != nil { err = pConfig.SetEnv(*dnsCredential.Config.Configuration) if err != nil { @@ -123,7 +132,7 @@ func IssueCert(payload *ConfigPayload, logChan chan string, errChan chan error) } defer func() { pConfig.CleanEnv() - l.Println("[INFO] [Nginx UI] Environment variables cleaned") + certLogger.Info(translation.C("[Nginx UI] Environment variables cleaned")) }() provider, err := dnsproviders.NewDNSChallengeProviderByName(code) if err != nil { @@ -167,7 +176,7 @@ func IssueCert(payload *ConfigPayload, logChan chan string, errChan chan error) var oldResource *model.CertificateResource if payload.RevokeOld && payload.Resource != nil && payload.Resource.Certificate != nil { - l.Println("[INFO] [Nginx UI] Backing up current certificate for later revocation") + certLogger.Info(translation.C("[Nginx UI] Backing up current certificate for later revocation")) // Save a copy of the old certificate and key oldResource = &model.CertificateResource{ @@ -179,16 +188,16 @@ func IssueCert(payload *ConfigPayload, logChan chan string, errChan chan error) if time.Now().Sub(payload.NotBefore).Hours()/24 <= 21 && payload.Resource != nil && payload.Resource.Certificate != nil { - renew(payload, client, l, errChan) + renew(payload, client, certLogger, errChan) } else { - obtain(payload, client, l, errChan) + obtain(payload, client, certLogger, errChan) } - l.Println("[INFO] [Nginx UI] Reloading nginx") + certLogger.Info(translation.C("[Nginx UI] Reloading nginx")) nginx.Reload() - l.Println("[INFO] [Nginx UI] Finished") + certLogger.Info(translation.C("[Nginx UI] Finished")) if payload.GetCertificatePath() == cSettings.ServerSettings.SSLCert && payload.GetCertificateKeyPath() == cSettings.ServerSettings.SSLKey { @@ -197,7 +206,7 @@ func IssueCert(payload *ConfigPayload, logChan chan string, errChan chan error) // Revoke old certificate if requested and we have a backup if payload.RevokeOld && oldResource != nil && len(oldResource.Certificate) > 0 { - l.Println("[INFO] [Nginx UI] Revoking old certificate") + certLogger.Info(translation.C("[Nginx UI] Revoking old certificate")) // Create a payload for revocation using old certificate revokePayload := &ConfigPayload{ @@ -211,7 +220,7 @@ func IssueCert(payload *ConfigPayload, logChan chan string, errChan chan error) } // Revoke the old certificate - revoke(revokePayload, client, l, errChan) + revoke(revokePayload, client, certLogger, errChan) } // Wait log to be written diff --git a/internal/cert/logger.go b/internal/cert/logger.go index fb5c88a9..744a78cb 100644 --- a/internal/cert/logger.go +++ b/internal/cert/logger.go @@ -2,35 +2,95 @@ package cert import ( "fmt" - "github.com/0xJacky/Nginx-UI/model" - "github.com/uozi-tech/cosy/logger" "strings" + "sync" "time" + + "github.com/0xJacky/Nginx-UI/internal/translation" + "github.com/0xJacky/Nginx-UI/model" + "github.com/gorilla/websocket" + "github.com/uozi-tech/cosy/logger" ) type Logger struct { buffer []string cert *model.Cert + ws *websocket.Conn + trans *translation.Container + mu sync.Mutex + msgCh chan []byte + done chan struct{} +} + +func NewLogger() *Logger { + l := &Logger{ + msgCh: make(chan []byte, 100), + done: make(chan struct{}), + } + go l.processMessages() + return l +} + +func (t *Logger) processMessages() { + for { + select { + case msg := <-t.msgCh: + t.mu.Lock() + if t.ws != nil { + _ = t.ws.WriteMessage(websocket.TextMessage, msg) + } + t.mu.Unlock() + case <-t.done: + return + } + } } func (t *Logger) SetCertModel(cert *model.Cert) { + t.mu.Lock() + defer t.mu.Unlock() t.cert = cert } -func (t *Logger) Info(text string) { - t.buffer = append(t.buffer, strings.TrimSpace(text)) - logger.Info("AutoCert", strings.TrimSpace(text)) +func (t *Logger) SetWebSocket(ws *websocket.Conn) { + t.mu.Lock() + defer t.mu.Unlock() + t.ws = ws +} + +func (t *Logger) Info(c *translation.Container) { + result, err := c.ToJSON() + if err != nil { + return + } + + t.mu.Lock() + t.buffer = append(t.buffer, string(result)) + t.mu.Unlock() + + logger.Info("AutoCert", c.ToString()) + + t.msgCh <- result } func (t *Logger) Error(err error) { + t.mu.Lock() t.buffer = append(t.buffer, fmt.Sprintf("%s [Error] %s", - time.Now().Format("2006/01/02 15:04:05"), + time.Now().Format(time.DateTime), strings.TrimSpace(err.Error()), )) + t.mu.Unlock() + logger.Error("AutoCert", err) } -func (t *Logger) Exit() { +func (t *Logger) Close() { + t.mu.Lock() + defer t.mu.Unlock() + + close(t.msgCh) + close(t.done) + if t.cert == nil { return } @@ -41,6 +101,9 @@ func (t *Logger) Exit() { } func (t *Logger) ToString() (content string) { + t.mu.Lock() + defer t.mu.Unlock() + content = strings.Join(t.buffer, "\n") return } diff --git a/internal/cert/obtain.go b/internal/cert/obtain.go index d0cf207a..90142723 100644 --- a/internal/cert/obtain.go +++ b/internal/cert/obtain.go @@ -1,21 +1,21 @@ package cert import ( + "github.com/0xJacky/Nginx-UI/internal/translation" "github.com/0xJacky/Nginx-UI/model" "github.com/go-acme/lego/v4/certificate" "github.com/go-acme/lego/v4/lego" "github.com/pkg/errors" - "log" ) -func obtain(payload *ConfigPayload, client *lego.Client, l *log.Logger, errChan chan error) { +func obtain(payload *ConfigPayload, client *lego.Client, l *Logger, errChan chan error) { request := certificate.ObtainRequest{ Domains: payload.ServerName, Bundle: true, MustStaple: payload.MustStaple, } - l.Println("[INFO] [Nginx UI] Obtaining certificate") + l.Info(translation.C("[Nginx UI] Obtaining certificate")) certificates, err := client.Certificate.Obtain(request) if err != nil { errChan <- errors.Wrap(err, "obtain certificate error") diff --git a/internal/cert/payload.go b/internal/cert/payload.go index a4bde645..84baf473 100644 --- a/internal/cert/payload.go +++ b/internal/cert/payload.go @@ -1,7 +1,6 @@ package cert import ( - "log" "os" "path/filepath" "strings" @@ -9,6 +8,7 @@ import ( "github.com/0xJacky/Nginx-UI/internal/helper" "github.com/0xJacky/Nginx-UI/internal/nginx" + "github.com/0xJacky/Nginx-UI/internal/translation" "github.com/0xJacky/Nginx-UI/model" "github.com/0xJacky/Nginx-UI/query" "github.com/go-acme/lego/v4/certcrypto" @@ -76,7 +76,7 @@ func (c *ConfigPayload) mkCertificateDir() (err error) { return } -func (c *ConfigPayload) WriteFile(l *log.Logger, errChan chan error) { +func (c *ConfigPayload) WriteFile(l *Logger, errChan chan error) { err := c.mkCertificateDir() if err != nil { errChan <- errors.Wrap(err, "make certificate dir error") @@ -85,7 +85,7 @@ func (c *ConfigPayload) WriteFile(l *log.Logger, errChan chan error) { // Each certificate comes back with the cert bytes, the bytes of the client's // private key, and a certificate URL. SAVE THESE TO DISK. - l.Println("[INFO] [Nginx UI] Writing certificate to disk") + l.Info(translation.C("[Nginx UI] Writing certificate to disk")) err = os.WriteFile(c.GetCertificatePath(), c.Resource.Certificate, 0644) @@ -94,7 +94,7 @@ func (c *ConfigPayload) WriteFile(l *log.Logger, errChan chan error) { return } - l.Println("[INFO] [Nginx UI] Writing certificate private key to disk") + l.Info(translation.C("[Nginx UI] Writing certificate private key to disk")) err = os.WriteFile(c.GetCertificateKeyPath(), c.Resource.PrivateKey, 0644) diff --git a/internal/cert/renew.go b/internal/cert/renew.go index 52667d4b..b5046b36 100644 --- a/internal/cert/renew.go +++ b/internal/cert/renew.go @@ -1,14 +1,14 @@ package cert import ( + "github.com/0xJacky/Nginx-UI/internal/translation" "github.com/0xJacky/Nginx-UI/model" "github.com/go-acme/lego/v4/certificate" "github.com/go-acme/lego/v4/lego" "github.com/pkg/errors" - "log" ) -func renew(payload *ConfigPayload, client *lego.Client, l *log.Logger, errChan chan error) { +func renew(payload *ConfigPayload, client *lego.Client, l *Logger, errChan chan error) { if payload.Resource == nil { errChan <- ErrPayloadResourceIsNil return @@ -35,5 +35,5 @@ func renew(payload *ConfigPayload, client *lego.Client, l *log.Logger, errChan c payload.WriteFile(l, errChan) - l.Println("[INFO] [Nginx UI] Certificate renewed successfully") + l.Info(translation.C("[Nginx UI] Certificate renewed successfully")) } diff --git a/internal/cert/revoke.go b/internal/cert/revoke.go index df873f5f..c6dc1ad4 100644 --- a/internal/cert/revoke.go +++ b/internal/cert/revoke.go @@ -3,8 +3,10 @@ package cert import ( "log" "os" + "runtime" "time" + "github.com/0xJacky/Nginx-UI/internal/translation" "github.com/0xJacky/Nginx-UI/internal/transport" "github.com/go-acme/lego/v4/lego" legolog "github.com/go-acme/lego/v4/log" @@ -14,9 +16,11 @@ import ( ) // RevokeCert revokes a certificate and provides log messages through channels -func RevokeCert(payload *ConfigPayload, logChan chan string, errChan chan error) { +func RevokeCert(payload *ConfigPayload, certLogger *Logger, logChan chan string, errChan chan error) { defer func() { if err := recover(); err != nil { + buf := make([]byte, 1024) + runtime.Stack(buf, false) logger.Error(err) } }() @@ -46,7 +50,7 @@ func RevokeCert(payload *ConfigPayload, logChan chan string, errChan chan error) }() // Create client for communication with CA server - l.Println("[INFO] [Nginx UI] Preparing for certificate revocation") + certLogger.Info(translation.C("[Nginx UI] Preparing for certificate revocation")) user, err := payload.GetACMEUser() if err != nil { errChan <- errors.Wrap(err, "get ACME user error") @@ -76,30 +80,30 @@ func RevokeCert(payload *ConfigPayload, logChan chan string, errChan chan error) return } - revoke(payload, client, l, errChan) + revoke(payload, client, certLogger, errChan) // If the revoked certificate was used for the server itself, reload server TLS certificate if payload.GetCertificatePath() == cSettings.ServerSettings.SSLCert && payload.GetCertificateKeyPath() == cSettings.ServerSettings.SSLKey { - l.Println("[INFO] [Nginx UI] Certificate was used for server, reloading server TLS certificate") + certLogger.Info(translation.C("[Nginx UI] Certificate was used for server, reloading server TLS certificate")) ReloadServerTLSCertificate() } - l.Println("[INFO] [Nginx UI] Revocation completed") + certLogger.Info(translation.C("[Nginx UI] Revocation completed")) // Wait for logs to be written time.Sleep(2 * time.Second) } // revoke implements the internal certificate revocation logic -func revoke(payload *ConfigPayload, client *lego.Client, l *log.Logger, errChan chan error) { - l.Println("[INFO] [Nginx UI] Revoking certificate") +func revoke(payload *ConfigPayload, client *lego.Client, l *Logger, errChan chan error) { + l.Info(translation.C("[Nginx UI] Revoking certificate")) err := client.Certificate.Revoke(payload.Resource.Certificate) if err != nil { errChan <- errors.Wrap(err, "revoke certificate error") - return + return } - l.Println("[INFO] [Nginx UI] Certificate successfully revoked") - return + l.Info(translation.C("[Nginx UI] Certificate successfully revoked")) + return } diff --git a/internal/self_check/self_check.go b/internal/self_check/self_check.go index f7548fa7..8a06b421 100644 --- a/internal/self_check/self_check.go +++ b/internal/self_check/self_check.go @@ -3,64 +3,10 @@ package self_check import ( "errors" - "github.com/0xJacky/Nginx-UI/internal/helper" "github.com/uozi-tech/cosy" ) -type Task struct { - Name string - CheckFunc func() error - FixFunc func() error -} -type Report struct { - Name string `json:"name"` - Err *cosy.Error `json:"err,omitempty"` -} - -type Reports []*Report - -var selfCheckTasks = []*Task{ - { - Name: "Directory-Sites", - CheckFunc: CheckSitesDirectory, - FixFunc: FixSitesDirectory, - }, - { - Name: "Directory-Streams", - CheckFunc: CheckStreamDirectory, - FixFunc: FixStreamDirectory, - }, - { - Name: "NginxConf-Sites-Enabled", - CheckFunc: CheckNginxConfIncludeSites, - FixFunc: FixNginxConfIncludeSites, - }, - { - Name: "NginxConf-Streams-Enabled", - CheckFunc: CheckNginxConfIncludeStreams, - FixFunc: FixNginxConfIncludeStreams, - }, - { - Name: "NginxConf-ConfD", - CheckFunc: CheckNginxConfIncludeConfD, - FixFunc: FixNginxConfIncludeConfD, - }, -} - -var selfCheckTaskMap = make(map[string]*Task) - -func init() { - for _, task := range selfCheckTasks { - selfCheckTaskMap[task.Name] = task - } - if helper.InNginxUIOfficialDocker() { - selfCheckTasks = append(selfCheckTasks, &Task{ - Name: "Docker-Socket", - CheckFunc: CheckDockerSocket, - }) - } -} func Run() (reports Reports) { reports = make(Reports, 0) diff --git a/internal/self_check/tasks.go b/internal/self_check/tasks.go new file mode 100644 index 00000000..2fe5afb1 --- /dev/null +++ b/internal/self_check/tasks.go @@ -0,0 +1,61 @@ +package self_check + +import ( + "github.com/0xJacky/Nginx-UI/internal/helper" + "github.com/uozi-tech/cosy" +) + +type Task struct { + Name string + CheckFunc func() error + FixFunc func() error +} + +type Report struct { + Name string `json:"name"` + Err *cosy.Error `json:"err,omitempty"` +} + +type Reports []*Report + +var selfCheckTasks = []*Task{ + { + Name: "Directory-Sites", + CheckFunc: CheckSitesDirectory, + FixFunc: FixSitesDirectory, + }, + { + Name: "Directory-Streams", + CheckFunc: CheckStreamDirectory, + FixFunc: FixStreamDirectory, + }, + { + Name: "NginxConf-Sites-Enabled", + CheckFunc: CheckNginxConfIncludeSites, + FixFunc: FixNginxConfIncludeSites, + }, + { + Name: "NginxConf-Streams-Enabled", + CheckFunc: CheckNginxConfIncludeStreams, + FixFunc: FixNginxConfIncludeStreams, + }, + { + Name: "NginxConf-ConfD", + CheckFunc: CheckNginxConfIncludeConfD, + FixFunc: FixNginxConfIncludeConfD, + }, +} + +var selfCheckTaskMap = make(map[string]*Task) + +func init() { + for _, task := range selfCheckTasks { + selfCheckTaskMap[task.Name] = task + } + if helper.InNginxUIOfficialDocker() { + selfCheckTasks = append(selfCheckTasks, &Task{ + Name: "Docker-Socket", + CheckFunc: CheckDockerSocket, + }) + } +} diff --git a/internal/self_check/websocket.go b/internal/self_check/websocket.go deleted file mode 100644 index 7766845b..00000000 --- a/internal/self_check/websocket.go +++ /dev/null @@ -1 +0,0 @@ -package self_check diff --git a/internal/translation/container.go b/internal/translation/container.go new file mode 100644 index 00000000..70c5a4e3 --- /dev/null +++ b/internal/translation/container.go @@ -0,0 +1,40 @@ +package translation + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Container contains a source string and a map of arguments. +type Container struct { + Message string `json:"message"` + Args map[string]any `json:"args,omitempty"` +} + +// C creates a new Container. +func C(message string, args ...map[string]any) *Container { + if len(args) == 0 { + return &Container{ + Message: message, + } + } + return &Container{ + Message: message, + Args: args[0], + } +} + +// ToString returns the source string with the arguments replaced. +func (c *Container) ToString() (result string) { + result = c.Message + for k, v := range c.Args { + result = strings.ReplaceAll(result, "%{"+k+"}", fmt.Sprintf("%v", v)) + } + return +} + +// ToJSON returns the arguments as a JSON object. +func (c *Container) ToJSON() (result []byte, err error) { + return json.Marshal(c) +} diff --git a/internal/translation/translation.go b/internal/translation/translation.go index 3cecc7fd..ca939c54 100644 --- a/internal/translation/translation.go +++ b/internal/translation/translation.go @@ -3,11 +3,12 @@ package translation import ( "encoding/json" "fmt" + "io" + "log" + "github.com/0xJacky/Nginx-UI/app" "github.com/0xJacky/pofile" "github.com/samber/lo" - "io" - "log" ) var Dict map[string]pofile.Dict