From 458b8053573ad88c69b5c9b18cbcf523c7f22efb Mon Sep 17 00:00:00 2001 From: devhaozi <115467771+devhaozi@users.noreply.github.com> Date: Tue, 13 Jan 2026 18:53:38 +0000 Subject: [PATCH] chore(l10n): update pot files --- pkg/embed/locales/backend.pot | 100 +- web/src/locales/en.po | 888 ++++++----- web/src/locales/frontend.pot | 917 +++++++----- web/src/locales/zh_CN.po | 2626 ++++++++++++++++----------------- web/src/locales/zh_TW.po | 2554 +++++++++++++++----------------- 5 files changed, 3540 insertions(+), 3545 deletions(-) diff --git a/pkg/embed/locales/backend.pot b/pkg/embed/locales/backend.pot index 692806a9..9babe29b 100644 --- a/pkg/embed/locales/backend.pot +++ b/pkg/embed/locales/backend.pot @@ -580,10 +580,10 @@ msgstr "" msgid "Index Hit Rate" msgstr "" -#: internal/service/cli.go:942 -#: internal/service/cli.go:947 -#: internal/service/cli.go:952 -#: internal/service/cli.go:991 +#: internal/service/cli.go:943 +#: internal/service/cli.go:948 +#: internal/service/cli.go:953 +#: internal/service/cli.go:992 msgid "Initialization failed: %v" msgstr "" @@ -1197,6 +1197,18 @@ msgstr "" msgid "USAGE" msgstr "" +#: internal/service/template.go:73 +msgid "Unable to create compose from template in offline mode" +msgstr "" + +#: internal/service/template.go:51 +msgid "Unable to get template in offline mode" +msgstr "" + +#: internal/service/template.go:29 +msgid "Unable to get template list in offline mode" +msgstr "" + #: internal/service/app.go:206 msgid "Unable to update app list cache in offline mode" msgstr "" @@ -1385,9 +1397,9 @@ msgstr "" msgid "app not found" msgstr "" -#: internal/data/setting.go:311 -#: internal/data/setting.go:370 -#: internal/data/setting.go:386 +#: internal/data/setting.go:319 +#: internal/data/setting.go:378 +#: internal/data/setting.go:394 msgid "background task is running, modifying some settings is prohibited, please try again later" msgstr "" @@ -1413,7 +1425,7 @@ msgstr "" msgid "can't download a directory" msgstr "" -#: internal/data/website.go:508 +#: internal/data/website.go:513 msgid "can't find %s database server, please add it first" msgstr "" @@ -1461,7 +1473,7 @@ msgstr "" msgid "directory %s does not exist" msgstr "" -#: internal/service/toolbox_system.go:128 +#: internal/service/toolbox_system.go:129 msgid "disk space is insufficient, current free %s" msgstr "" @@ -1553,7 +1565,7 @@ msgstr "" msgid "failed to delete stream upstream config: %v" msgstr "" -#: internal/data/project.go:156 +#: internal/data/project.go:157 msgid "failed to delete systemd config" msgstr "" @@ -1582,7 +1594,7 @@ msgstr "" msgid "failed to generate SSH key: %v" msgstr "" -#: internal/data/project.go:104 +#: internal/data/project.go:105 msgid "failed to generate systemd config" msgstr "" @@ -1610,6 +1622,10 @@ msgstr "" msgid "failed to get MySQL status: %v" msgstr "" +#: internal/service/toolbox_system.go:264 +msgid "failed to get NTP configuration: %v" +msgstr "" + #: internal/apps/postgresql/app.go:120 msgid "failed to get PostgreSQL backend pid: %v" msgstr "" @@ -1630,7 +1646,7 @@ msgstr "" msgid "failed to get PostgreSQL start time: %v" msgstr "" -#: internal/service/toolbox_system.go:78 +#: internal/service/toolbox_system.go:79 msgid "failed to get SWAP: %v" msgstr "" @@ -1647,7 +1663,7 @@ msgstr "" msgid "failed to get apache workers: %v" msgstr "" -#: internal/service/toolbox_system.go:180 +#: internal/service/toolbox_system.go:181 msgid "failed to get available timezones: %v" msgstr "" @@ -1663,7 +1679,7 @@ msgstr "" msgid "failed to get disk list: %v" msgstr "" -#: internal/service/toolbox_system.go:124 +#: internal/service/toolbox_system.go:125 msgid "failed to get disk space: %v" msgstr "" @@ -1679,7 +1695,7 @@ msgstr "" msgid "failed to get home apps: %v" msgstr "" -#: internal/data/website.go:411 +#: internal/data/website.go:416 msgid "failed to get index template file: %v" msgstr "" @@ -1755,7 +1771,7 @@ msgstr "" msgid "failed to get the update information: %v" msgstr "" -#: internal/service/toolbox_system.go:169 +#: internal/service/toolbox_system.go:170 msgid "failed to get timezone: %v" msgstr "" @@ -1785,10 +1801,10 @@ msgid "failed to mount partition: %v" msgstr "" #: internal/data/cert.go:97 -#: internal/data/setting.go:316 -#: internal/data/setting.go:389 -#: internal/data/website.go:577 -#: internal/data/website.go:831 +#: internal/data/setting.go:324 +#: internal/data/setting.go:397 +#: internal/data/website.go:582 +#: internal/data/website.go:842 msgid "failed to parse certificate: %v" msgstr "" @@ -1797,14 +1813,14 @@ msgid "failed to parse disk list: %v" msgstr "" #: internal/data/cert.go:100 -#: internal/data/setting.go:319 -#: internal/data/setting.go:392 -#: internal/data/website.go:580 -#: internal/data/website.go:834 +#: internal/data/setting.go:327 +#: internal/data/setting.go:400 +#: internal/data/website.go:585 +#: internal/data/website.go:845 msgid "failed to parse private key: %v" msgstr "" -#: internal/data/project.go:196 +#: internal/data/project.go:197 msgid "failed to parse systemd config" msgstr "" @@ -1899,7 +1915,7 @@ msgstr "" msgid "failed to remove volume group: %v" msgstr "" -#: internal/data/project.go:130 +#: internal/data/project.go:131 msgid "failed to rename systemd config" msgstr "" @@ -1929,15 +1945,19 @@ msgstr "" msgid "failed to set MYSQL_PWD env: %v" msgstr "" -#: internal/service/toolbox_system.go:148 +#: internal/service/toolbox_system.go:285 +msgid "failed to set NTP servers: %v" +msgstr "" + +#: internal/service/toolbox_system.go:149 msgid "failed to set SWAP permission: %v" msgstr "" -#: internal/service/toolbox_system.go:268 +#: internal/service/toolbox_system.go:312 msgid "failed to set hostname: %v" msgstr "" -#: internal/service/toolbox_system.go:291 +#: internal/service/toolbox_system.go:335 msgid "failed to set hosts: %v" msgstr "" @@ -1965,7 +1985,7 @@ msgstr "" msgid "failed to unset MYSQL_PWD env: %v" msgstr "" -#: internal/service/toolbox_system.go:57 +#: internal/service/toolbox_system.go:58 msgid "failed to update DNS: %v" msgstr "" @@ -2084,6 +2104,10 @@ msgstr "" msgid "log file %s not exists" msgstr "" +#: internal/data/website.go:990 +msgid "maximum number of custom configurations reached (limit: %d)" +msgstr "" + #: internal/apps/rsync/app.go:117 msgid "module %s already exists" msgstr "" @@ -2126,7 +2150,7 @@ msgstr "" msgid "name is required" msgstr "" -#: internal/data/website.go:859 +#: internal/data/website.go:870 msgid "not support one-key obtain wildcard certificate, please use Cert menu to obtain it with DNS method" msgstr "" @@ -2190,11 +2214,11 @@ msgstr "" msgid "please set public ips first" msgstr "" -#: internal/data/setting.go:336 +#: internal/data/setting.go:344 msgid "port is already in use" msgstr "" -#: internal/data/project.go:87 +#: internal/data/project.go:88 msgid "project name already exists" msgstr "" @@ -2214,7 +2238,7 @@ msgstr "" msgid "rule not found" msgstr "" -#: internal/data/website.go:555 +#: internal/data/website.go:560 msgid "runtime directory does not exist" msgstr "" @@ -2338,11 +2362,11 @@ msgstr "" msgid "unsupported system" msgstr "" -#: internal/data/website.go:946 +#: internal/data/website.go:1092 msgid "unsupported web server: %s" msgstr "" -#: internal/data/website.go:912 +#: internal/data/website.go:1058 msgid "unsupported website type: %s" msgstr "" @@ -2372,11 +2396,11 @@ msgstr "" msgid "webhook script not found" msgstr "" -#: internal/data/website.go:670 +#: internal/data/website.go:681 msgid "website %s has bound certificates, please delete the certificate first" msgstr "" -#: internal/data/website.go:562 +#: internal/data/website.go:567 msgid "website directory does not exist" msgstr "" diff --git a/web/src/locales/en.po b/web/src/locales/en.po index c478931c..d7e4c1cb 100644 --- a/web/src/locales/en.po +++ b/web/src/locales/en.po @@ -157,13 +157,13 @@ msgid "Month %{month}" msgstr "" #: src/components/common/CronSelector.vue:170 -#: src/views/apps/nginx/NginxIndex.vue:745 src/views/website/EditView.vue:345 +#: src/views/apps/nginx/NginxIndex.vue:745 src/views/website/EditView.vue:346 #, fuzzy msgid "Minutes" msgstr "minutes" #: src/components/common/CronSelector.vue:181 -#: src/views/apps/nginx/NginxIndex.vue:746 src/views/website/EditView.vue:346 +#: src/views/apps/nginx/NginxIndex.vue:746 src/views/website/EditView.vue:347 msgid "Hours" msgstr "" @@ -245,10 +245,10 @@ msgstr "Cannot save in current state" #: src/views/apps/supervisor/IndexView.vue:219 #: src/views/apps/supervisor/IndexView.vue:284 #: src/views/environment/PHPView.vue:154 src/views/environment/PHPView.vue:160 -#: src/views/project/EditModal.vue:157 src/views/setting/IndexView.vue:55 -#: src/views/toolbox/SystemView.vue:51 src/views/toolbox/SystemView.vue:57 -#: src/views/toolbox/SystemView.vue:66 src/views/toolbox/SystemView.vue:75 -#: src/views/website/EditView.vue:123 +#: src/views/project/EditModal.vue:157 src/views/setting/IndexView.vue:56 +#: src/views/toolbox/SystemView.vue:62 src/views/toolbox/SystemView.vue:68 +#: src/views/toolbox/SystemView.vue:77 src/views/toolbox/SystemView.vue:86 +#: src/views/toolbox/SystemView.vue:123 src/views/website/EditView.vue:124 msgid "Saved successfully" msgstr "Saved successfully" @@ -275,14 +275,14 @@ msgstr "Select File" #: src/views/container/NetworkView.vue:45 src/views/container/VolumeView.vue:26 #: src/views/database/CreateServerModal.vue:55 #: src/views/database/ServerList.vue:39 -#: src/views/database/UpdateServerModal.vue:55 src/views/file/ListView.vue:1187 -#: src/views/file/PropertyModal.vue:27 src/views/file/ToolBar.vue:222 -#: src/views/file/ToolBar.vue:313 src/views/project/ListView.vue:31 -#: src/views/ssh/CreateModal.vue:59 src/views/ssh/UpdateModal.vue:65 -#: src/views/toolbox/LogView.vue:206 src/views/toolbox/ProcessView.vue:107 -#: src/views/toolbox/ProcessView.vue:386 src/views/toolbox/WebHookView.vue:33 -#: src/views/toolbox/WebHookView.vue:332 src/views/toolbox/WebHookView.vue:367 -#: src/views/website/CreateModal.vue:123 +#: src/views/database/UpdateServerModal.vue:55 src/views/file/ListView.vue:1267 +#: src/views/file/PropertyModal.vue:27 src/views/file/ToolBar.vue:202 +#: src/views/project/ListView.vue:34 src/views/ssh/CreateModal.vue:59 +#: src/views/ssh/UpdateModal.vue:65 src/views/toolbox/LogView.vue:206 +#: src/views/toolbox/ProcessView.vue:109 src/views/toolbox/ProcessView.vue:388 +#: src/views/toolbox/WebHookView.vue:33 src/views/toolbox/WebHookView.vue:332 +#: src/views/toolbox/WebHookView.vue:367 src/views/website/CreateModal.vue:123 +#: src/views/website/EditView.vue:951 msgid "Name" msgstr "Name" @@ -290,39 +290,40 @@ msgstr "Name" msgid "Permissions" msgstr "Permissions" -#: src/components/common/PathSelector.vue:100 src/views/file/ListView.vue:1198 +#: src/components/common/PathSelector.vue:100 src/views/file/ListView.vue:1278 msgid "Owner / Group" msgstr "Owner / Group" #: src/components/common/PathSelector.vue:112 src/views/backup/ListView.vue:42 -#: src/views/container/ImageView.vue:74 src/views/file/ListView.vue:1194 -#: src/views/file/PropertyModal.vue:39 src/views/file/ToolBar.vue:223 +#: src/views/container/ImageView.vue:74 src/views/file/ListView.vue:1274 +#: src/views/file/PropertyModal.vue:39 src/views/file/ToolBar.vue:203 #: src/views/toolbox/DiskView.vue:275 src/views/toolbox/LogView.vue:207 msgid "Size" msgstr "Size" -#: src/components/common/PathSelector.vue:147 src/views/file/ListView.vue:1287 +#: src/components/common/PathSelector.vue:147 src/views/file/ListView.vue:1414 msgid "Calculate" msgstr "Calculate" -#: src/components/common/PathSelector.vue:152 src/views/file/ListView.vue:1203 -#: src/views/file/PropertyModal.vue:51 src/views/file/ToolBar.vue:224 +#: src/components/common/PathSelector.vue:152 src/views/file/ListView.vue:1283 +#: src/views/file/PropertyModal.vue:51 src/views/file/ToolBar.vue:204 msgid "Modification Time" msgstr "Modification Time" -#: src/components/common/PathSelector.vue:186 src/views/file/ListView.vue:1060 +#: src/components/common/PathSelector.vue:186 src/views/file/ListView.vue:1138 #: src/views/file/PathInput.vue:30 msgid "Invalid path" msgstr "Invalid path" -#: src/components/common/PathSelector.vue:246 src/views/file/ListView.vue:575 -#: src/views/file/ToolBar.vue:43 src/views/file/ToolBar.vue:57 +#: src/components/common/PathSelector.vue:246 src/views/file/ListView.vue:131 +#: src/views/file/ListView.vue:653 src/views/file/ToolBar.vue:37 msgid "Invalid name" msgstr "Invalid name" #: src/components/common/PathSelector.vue:254 #: src/components/file-editor/FileTree.vue:284 -#: src/views/backup/ListView.vue:122 src/views/cert/CreateAccountModal.vue:52 +#: src/views/app/TemplateDeployModal.vue:79 src/views/backup/ListView.vue:122 +#: src/views/cert/CreateAccountModal.vue:52 #: src/views/cert/CreateCertModal.vue:50 src/views/cert/CreateDnsModal.vue:35 #: src/views/cert/UploadCertModal.vue:21 #: src/views/container/ComposeView.vue:269 @@ -330,7 +331,7 @@ msgstr "Invalid name" #: src/views/container/NetworkView.vue:183 #: src/views/container/VolumeView.vue:137 #: src/views/database/CreateDatabaseModal.vue:28 -#: src/views/database/CreateUserModal.vue:28 src/views/file/ToolBar.vue:51 +#: src/views/database/CreateUserModal.vue:28 src/views/file/ListView.vue:140 #: src/views/firewall/CreateForwardModal.vue:41 #: src/views/setting/CreateModal.vue:19 src/views/setting/TokenModal.vue:125 #: src/views/ssh/CreateModal.vue:40 src/views/task/CreateModal.vue:50 @@ -339,18 +340,18 @@ msgid "Created successfully" msgstr "Created successfully" #: src/components/common/PathSelector.vue:312 -#: src/views/file/PropertyModal.vue:34 src/views/file/ToolBar.vue:246 +#: src/views/file/PropertyModal.vue:34 src/views/file/ToolBar.vue:226 msgid "File" msgstr "File" -#: src/components/common/PathSelector.vue:313 src/views/file/ToolBar.vue:247 +#: src/components/common/PathSelector.vue:313 src/views/file/ToolBar.vue:227 msgid "Folder" msgstr "Folder" #: src/components/common/PathSelector.vue:317 #: src/components/common/PathSelector.vue:380 #: src/views/container/ContainerCreate.vue:539 -#: src/views/project/CreateModal.vue:215 src/views/setting/TokenModal.vue:266 +#: src/views/project/CreateModal.vue:219 src/views/setting/TokenModal.vue:266 #: src/views/toolbox/WebHookView.vue:352 #: src/views/website/BulkCreateModal.vue:129 #: src/views/website/CreateModal.vue:264 @@ -385,8 +386,8 @@ msgstr "Root Directory" #: src/views/database/CreateServerModal.vue:120 #: src/views/database/CreateUserModal.vue:125 #: src/views/database/UpdateServerModal.vue:112 -#: src/views/database/UpdateUserModal.vue:79 src/views/file/ToolBar.vue:317 -#: src/views/file/ToolBar.vue:338 src/views/firewall/CreateForwardModal.vue:88 +#: src/views/database/UpdateUserModal.vue:79 src/views/file/ToolBar.vue:300 +#: src/views/firewall/CreateForwardModal.vue:88 #: src/views/firewall/CreateIpModal.vue:121 #: src/views/firewall/CreateModal.vue:155 src/views/setting/CreateModal.vue:64 #: src/views/setting/PasswordModal.vue:44 src/views/setting/TwoFaModal.vue:87 @@ -433,7 +434,7 @@ msgstr "Files to compress" #: src/views/toolbox/DiskView.vue:586 src/views/toolbox/DiskView.vue:594 #: src/views/toolbox/DiskView.vue:616 src/views/toolbox/DiskView.vue:635 #: src/views/toolbox/DiskView.vue:640 src/views/toolbox/DiskView.vue:663 -#: src/views/toolbox/ProcessView.vue:234 src/views/toolbox/ProcessView.vue:239 +#: src/views/toolbox/ProcessView.vue:236 src/views/toolbox/ProcessView.vue:241 msgid "Confirm" msgstr "Confirm" @@ -448,44 +449,51 @@ msgstr "" #: src/components/file-editor/EditorToolbar.vue:101 #: src/components/file-editor/FileTree.vue:603 #: src/layout/header/components/UserAvatar.vue:30 +#: src/views/app/TemplateDeployModal.vue:227 #: src/views/container/ContainerCreate.vue:536 #: src/views/container/ImagePullModal.vue:184 #: src/views/container/ImagePullModal.vue:198 #: src/views/container/ImageView.vue:351 src/views/container/ImageView.vue:366 -#: src/views/file/ListView.vue:166 src/views/file/ListView.vue:588 -#: src/views/file/ListView.vue:712 src/views/file/ToolBar.vue:145 -#: src/views/file/ToolBar.vue:280 src/views/home/UpdateView.vue:27 +#: src/views/file/ListView.vue:244 src/views/file/ListView.vue:666 +#: src/views/file/ListView.vue:790 src/views/file/ToolBar.vue:125 +#: src/views/file/ToolBar.vue:260 src/views/home/UpdateView.vue:27 #: src/views/project/EditModal.vue:572 src/views/toolbox/DiskView.vue:406 #: src/views/toolbox/DiskView.vue:431 src/views/toolbox/DiskView.vue:454 #: src/views/toolbox/DiskView.vue:480 src/views/toolbox/DiskView.vue:505 #: src/views/toolbox/DiskView.vue:524 src/views/toolbox/DiskView.vue:547 #: src/views/toolbox/DiskView.vue:568 src/views/toolbox/DiskView.vue:595 #: src/views/toolbox/DiskView.vue:617 src/views/toolbox/DiskView.vue:641 -#: src/views/toolbox/DiskView.vue:664 src/views/toolbox/ProcessView.vue:240 +#: src/views/toolbox/DiskView.vue:664 src/views/toolbox/ProcessView.vue:242 msgid "Cancel" msgstr "Cancel" #: src/components/common/PtyTerminalModal.vue:252 src/locales/menu.ts:19 #: src/views/container/ContainerView.vue:124 -#: src/views/container/ContainerView.vue:637 src/views/file/ListView.vue:230 -#: src/views/file/ListView.vue:829 src/views/file/ToolBar.vue:255 +#: src/views/container/ContainerView.vue:637 src/views/file/ListView.vue:308 +#: src/views/file/ListView.vue:907 src/views/file/ToolBar.vue:235 msgid "Terminal" msgstr "Terminal" -#: src/components/common/RealtimeLog.vue:29 +#: src/components/common/RealtimeLog.vue:34 msgid "Path or service cannot be empty" msgstr "Path or service cannot be empty" -#: src/components/common/RealtimeLog.vue:44 -#: src/components/common/RealtimeLogModal.vue:33 +#: src/components/common/RealtimeLog.vue:49 +#: src/components/common/RealtimeLogModal.vue:38 msgid "Failed to get log stream" msgstr "Failed to get log stream" -#: src/components/common/RealtimeLogModal.vue:67 src/locales/menu.ts:15 +#: src/components/common/RealtimeLog.vue:91 +#: src/components/common/RealtimeLogModal.vue:81 +#, fuzzy +msgid "No logs available" +msgstr "Inodes Available" + +#: src/components/common/RealtimeLogModal.vue:72 src/locales/menu.ts:15 #: src/views/apps/supervisor/IndexView.vue:89 #: src/views/container/ContainerView.vue:137 -#: src/views/container/ContainerView.vue:605 src/views/project/ListView.vue:95 -#: src/views/project/ListView.vue:233 src/views/task/CronView.vue:116 +#: src/views/container/ContainerView.vue:605 src/views/project/ListView.vue:111 +#: src/views/project/ListView.vue:249 src/views/task/CronView.vue:116 #: src/views/task/TaskView.vue:74 msgid "Logs" msgstr "Logs" @@ -497,14 +505,14 @@ msgstr "Logs" msgid "Loading..." msgstr "Loading..." -#: src/components/common/ServiceStatus.vue:26 src/views/project/ListView.vue:60 +#: src/components/common/ServiceStatus.vue:26 src/views/project/ListView.vue:63 #: src/views/task/TaskView.vue:33 src/views/toolbox/ProcessView.vue:48 #: src/views/toolbox/ProcessView.vue:80 src/views/website/ListView.vue:28 msgid "Running" msgstr "Running" -#: src/components/common/ServiceStatus.vue:26 src/views/project/ListView.vue:60 -#: src/views/toolbox/ProcessView.vue:50 src/views/toolbox/ProcessView.vue:84 +#: src/components/common/ServiceStatus.vue:26 src/views/project/ListView.vue:63 +#: src/views/toolbox/ProcessView.vue:50 src/views/toolbox/ProcessView.vue:86 msgid "Stopped" msgstr "Stopped" @@ -514,7 +522,7 @@ msgstr "Starting..." #: src/components/common/ServiceStatus.vue:48 #: src/views/apps/supervisor/IndexView.vue:240 -#: src/views/project/ListView.vue:152 src/views/website/ListView.vue:228 +#: src/views/project/ListView.vue:168 src/views/website/ListView.vue:228 msgid "Started successfully" msgstr "Started successfully" @@ -525,7 +533,7 @@ msgstr "Stopping..." #: src/components/common/ServiceStatus.vue:63 #: src/views/apps/supervisor/IndexView.vue:247 -#: src/views/project/ListView.vue:147 src/views/website/ListView.vue:230 +#: src/views/project/ListView.vue:163 src/views/website/ListView.vue:230 msgid "Stopped successfully" msgstr "Stopped successfully" @@ -589,7 +597,7 @@ msgstr "Autostart Off" #: src/views/apps/supervisor/IndexView.vue:115 #: src/views/container/ComposeView.vue:173 #: src/views/container/ContainerView.vue:161 -#: src/views/container/ContainerView.vue:558 src/views/project/ListView.vue:85 +#: src/views/container/ContainerView.vue:558 src/views/project/ListView.vue:101 msgid "Start" msgstr "Start" @@ -597,7 +605,7 @@ msgstr "Start" #: src/views/apps/supervisor/IndexView.vue:140 #: src/views/container/ComposeView.vue:212 #: src/views/container/ContainerView.vue:166 -#: src/views/container/ContainerView.vue:561 src/views/project/ListView.vue:85 +#: src/views/container/ContainerView.vue:561 src/views/project/ListView.vue:101 msgid "Stop" msgstr "Stop" @@ -674,7 +682,7 @@ msgid "Encoding" msgstr "Encoding" #: src/components/file-editor/EditorStatusBar.vue:144 -#: src/views/setting/SettingBase.vue:104 +#: src/views/setting/SettingBase.vue:117 msgid "Language" msgstr "Language" @@ -711,7 +719,7 @@ msgstr "" #: src/components/file-editor/EditorToolbar.vue:205 #: src/components/file-editor/FileTree.vue:695 #: src/views/log/DatabaseLog.vue:108 src/views/log/HttpLog.vue:133 -#: src/views/log/OperationLog.vue:106 src/views/toolbox/ProcessView.vue:327 +#: src/views/log/OperationLog.vue:106 src/views/toolbox/ProcessView.vue:329 msgid "Refresh" msgstr "Refresh" @@ -744,11 +752,12 @@ msgstr "" #: src/views/apps/redis/IndexView.vue:63 src/views/apps/rsync/IndexView.vue:235 #: src/views/apps/supervisor/IndexView.vue:342 #: src/views/environment/PHPView.vue:232 src/views/environment/PHPView.vue:250 -#: src/views/project/EditModal.vue:575 src/views/setting/IndexView.vue:106 +#: src/views/project/EditModal.vue:575 src/views/setting/IndexView.vue:107 #: src/views/task/CronView.vue:259 src/views/toolbox/SshView.vue:239 -#: src/views/toolbox/SystemView.vue:110 src/views/toolbox/SystemView.vue:134 -#: src/views/toolbox/SystemView.vue:152 src/views/toolbox/SystemView.vue:178 -#: src/views/toolbox/WebHookView.vue:390 src/views/website/EditView.vue:932 +#: src/views/toolbox/SystemView.vue:152 src/views/toolbox/SystemView.vue:176 +#: src/views/toolbox/SystemView.vue:194 src/views/toolbox/SystemView.vue:232 +#: src/views/toolbox/SystemView.vue:304 src/views/toolbox/WebHookView.vue:390 +#: src/views/website/EditView.vue:1016 msgid "Save" msgstr "Save" @@ -805,7 +814,7 @@ msgid "Editor Settings" msgstr "Port Settings" #: src/components/file-editor/FileEditorView.vue:145 -#: src/views/setting/IndexView.vue:90 +#: src/views/setting/IndexView.vue:91 msgid "Basic" msgstr "Basic" @@ -900,7 +909,8 @@ msgstr "" #: src/components/file-editor/FileEditorView.vue:211 #: src/views/app/AppView.vue:229 src/views/app/EnvironmentView.vue:217 -#: src/views/firewall/RuleView.vue:150 src/views/project/IndexView.vue:21 +#: src/views/app/TemplateView.vue:59 src/views/firewall/RuleView.vue:150 +#: src/views/project/IndexView.vue:21 msgid "All" msgstr "All" @@ -1004,20 +1014,22 @@ msgstr "Failed to calculate size" msgid "Failed to create" msgstr "Files to compress" -#: src/components/file-editor/FileTree.vue:378 +#: src/components/file-editor/FileTree.vue:378 src/views/file/ListView.vue:1304 +#: src/views/file/ListView.vue:1322 #, fuzzy msgid "Folder name" msgstr "Filename" -#: src/components/file-editor/FileTree.vue:378 +#: src/components/file-editor/FileTree.vue:378 src/views/file/ListView.vue:1304 +#: src/views/file/ListView.vue:1322 #, fuzzy msgid "File name" msgstr "Filename" #: src/components/file-editor/FileTree.vue:477 #: src/views/container/ContainerView.vue:153 -#: src/views/container/ContainerView.vue:616 src/views/file/ListView.vue:228 -#: src/views/file/ListView.vue:1350 +#: src/views/container/ContainerView.vue:616 src/views/file/ListView.vue:306 +#: src/views/file/ListView.vue:1477 msgid "Rename" msgstr "Rename" @@ -1042,11 +1054,11 @@ msgstr "Rename" #: src/views/container/VolumeView.vue:88 src/views/container/VolumeView.vue:162 #: src/views/database/DatabaseList.vue:101 #: src/views/database/ServerList.vue:214 src/views/database/UserList.vue:189 -#: src/views/environment/PHPView.vue:106 src/views/file/ListView.vue:185 -#: src/views/file/ListView.vue:235 src/views/file/ListView.vue:1355 -#: src/views/file/ToolBar.vue:293 src/views/firewall/ForwardView.vue:103 +#: src/views/environment/PHPView.vue:106 src/views/file/ListView.vue:263 +#: src/views/file/ListView.vue:313 src/views/file/ListView.vue:1482 +#: src/views/file/ToolBar.vue:273 src/views/firewall/ForwardView.vue:103 #: src/views/firewall/IpRuleView.vue:145 src/views/firewall/RuleView.vue:182 -#: src/views/project/ListView.vue:124 src/views/project/ListView.vue:202 +#: src/views/project/ListView.vue:140 src/views/project/ListView.vue:218 #: src/views/setting/SettingUser.vue:139 src/views/setting/TokenModal.vue:91 #: src/views/ssh/IndexView.vue:91 src/views/task/CronView.vue:149 #: src/views/task/TaskView.vue:97 src/views/toolbox/WebHookView.vue:179 @@ -1054,8 +1066,8 @@ msgstr "Rename" msgid "Delete" msgstr "Delete" -#: src/components/file-editor/FileTree.vue:481 src/views/file/ListView.vue:219 -#: src/views/file/ListView.vue:1345 src/views/monitor/IndexView.vue:498 +#: src/components/file-editor/FileTree.vue:481 src/views/file/ListView.vue:297 +#: src/views/file/ListView.vue:1472 src/views/monitor/IndexView.vue:498 #: src/views/toolbox/SshView.vue:301 msgid "Download" msgstr "Download" @@ -1072,7 +1084,7 @@ msgstr "Files to compress" #: src/components/file-editor/FileTree.vue:601 #: src/views/apps/nginx/NginxIndex.vue:207 -#: src/views/apps/nginx/NginxIndex.vue:283 src/views/file/ListView.vue:1358 +#: src/views/apps/nginx/NginxIndex.vue:283 src/views/file/ListView.vue:1485 msgid "Are you sure you want to delete %{ name }?" msgstr "Are you sure you want to delete %{ name }?" @@ -1088,12 +1100,12 @@ msgstr "Are you sure you want to delete %{ name }?" #: src/views/container/VolumeView.vue:129 #: src/views/database/DatabaseList.vue:125 #: src/views/database/ServerList.vue:238 src/views/database/UserList.vue:213 -#: src/views/file/ListView.vue:643 src/views/file/ListView.vue:663 -#: src/views/file/ToolBar.vue:190 src/views/firewall/ForwardView.vue:129 +#: src/views/file/ListView.vue:721 src/views/file/ListView.vue:741 +#: src/views/file/ToolBar.vue:170 src/views/firewall/ForwardView.vue:129 #: src/views/firewall/ForwardView.vue:147 src/views/firewall/IpRuleView.vue:171 #: src/views/firewall/IpRuleView.vue:189 src/views/firewall/RuleView.vue:208 -#: src/views/firewall/RuleView.vue:226 src/views/project/ListView.vue:170 -#: src/views/project/ListView.vue:180 src/views/setting/SettingUser.vue:174 +#: src/views/firewall/RuleView.vue:226 src/views/project/ListView.vue:186 +#: src/views/project/ListView.vue:196 src/views/setting/SettingUser.vue:174 #: src/views/setting/TokenModal.vue:114 src/views/task/CronView.vue:191 #: src/views/task/TaskView.vue:122 src/views/toolbox/WebHookView.vue:236 #: src/views/website/ListView.vue:254 src/views/website/ListView.vue:264 @@ -1119,8 +1131,7 @@ msgstr "Files" msgid "New Folder" msgstr "Folder" -#: src/components/file-editor/FileTree.vue:707 src/views/file/ToolBar.vue:251 -#: src/views/file/ToolBar.vue:305 +#: src/components/file-editor/FileTree.vue:707 src/views/file/ToolBar.vue:231 msgid "New" msgstr "New" @@ -1220,7 +1231,7 @@ msgstr "Backup" #: src/locales/menu.ts:9 src/views/cert/CertView.vue:486 #: src/views/cert/CertView.vue:563 src/views/cert/IndexView.vue:96 #: src/views/cert/UploadCertModal.vue:38 src/views/setting/SettingSafe.vue:290 -#: src/views/website/EditView.vue:863 +#: src/views/website/EditView.vue:893 msgid "Certificate" msgstr "Certificate" @@ -1323,7 +1334,7 @@ msgstr "App Name" #: src/views/app/AppView.vue:40 src/views/app/EnvironmentView.vue:33 #: src/views/environment/PHPView.vue:48 src/views/project/EditModal.vue:188 -#: src/views/project/ListView.vue:38 +#: src/views/project/ListView.vue:41 msgid "Description" msgstr "Description" @@ -1350,9 +1361,9 @@ msgstr "Show in Home" #: src/views/container/ImageView.vue:90 src/views/container/NetworkView.vue:109 #: src/views/container/VolumeView.vue:63 src/views/database/DatabaseList.vue:77 #: src/views/database/ServerList.vue:134 src/views/database/UserList.vue:151 -#: src/views/environment/PHPView.vue:55 src/views/file/ListView.vue:1206 +#: src/views/environment/PHPView.vue:55 src/views/file/ListView.vue:1286 #: src/views/firewall/ForwardView.vue:79 src/views/firewall/IpRuleView.vue:121 -#: src/views/firewall/RuleView.vue:158 src/views/project/ListView.vue:72 +#: src/views/firewall/RuleView.vue:158 src/views/project/ListView.vue:88 #: src/views/setting/SettingUser.vue:85 src/views/setting/TokenModal.vue:52 #: src/views/task/CronView.vue:98 src/views/task/TaskView.vue:55 #: src/views/toolbox/DiskView.vue:340 src/views/toolbox/DiskView.vue:831 @@ -1441,6 +1452,81 @@ msgstr "Container Name" msgid "Update Cache" msgstr "Update Cache" +#: src/views/app/TemplateDeployModal.vue:58 +#, fuzzy +msgid "Please enter compose name" +msgstr "Please enter absolute path" + +#: src/views/app/TemplateDeployModal.vue:128 +#, fuzzy +msgid "Deploy Template" +msgstr "Compose Name" + +#: src/views/app/TemplateDeployModal.vue:139 +#: src/views/container/ContainerCreate.vue:191 +#: src/views/project/EditModal.vue:177 src/views/website/EditView.vue:462 +msgid "Basic Settings" +msgstr "Basic Settings" + +#: src/views/app/TemplateDeployModal.vue:141 +#: src/views/container/ComposeView.vue:361 +msgid "Compose Name" +msgstr "Compose Name" + +#: src/views/app/TemplateDeployModal.vue:146 +#, fuzzy +msgid "Enter compose name" +msgstr "Enter comment name" + +#: src/views/app/TemplateDeployModal.vue:150 +#, fuzzy +msgid "Deploy Options" +msgstr "Options" + +#: src/views/app/TemplateDeployModal.vue:154 +#, fuzzy +msgid "Auto Start" +msgstr "Autostart On" + +#: src/views/app/TemplateDeployModal.vue:159 +#, fuzzy +msgid "Auto Firewall" +msgstr "Firewall" + +#: src/views/app/TemplateDeployModal.vue:163 +msgid "Automatically allow ports defined in compose" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:176 +#: src/views/apps/minio/IndexView.vue:32 +#: src/views/container/ComposeView.vue:367 +#: src/views/container/ComposeView.vue:393 +#: src/views/container/ContainerCreate.vue:454 +#: src/views/project/EditModal.vue:373 src/views/toolbox/ProcessView.vue:440 +msgid "Environment Variables" +msgstr "Environment Variables" + +#: src/views/app/TemplateDeployModal.vue:189 +#, fuzzy +msgid "Select value" +msgstr "Select File" + +#: src/views/app/TemplateDeployModal.vue:219 +#, fuzzy +msgid "Compose Preview" +msgstr "Compose Name" + +#: src/views/app/TemplateDeployModal.vue:230 src/views/app/TemplateView.vue:94 +#: src/views/cert/CertView.vue:208 +msgid "Deploy" +msgstr "Deploy" + +#: src/views/app/TemplateDeployModal.vue:238 +#: src/views/container/ComposeView.vue:408 +#, fuzzy +msgid "Starting Compose" +msgstr "Create Compose" + #: src/views/app/VersionModal.vue:79 msgid "Channel" msgstr "Channel" @@ -1483,7 +1569,7 @@ msgstr "Current Value" #: src/views/apps/postgresql/IndexView.vue:56 #: src/views/apps/supervisor/IndexView.vue:225 #: src/views/environment/PHPView.vue:166 src/views/environment/PHPView.vue:172 -#: src/views/website/EditView.vue:168 +#: src/views/website/EditView.vue:169 msgid "Cleared successfully" msgstr "Cleared successfully" @@ -1571,8 +1657,8 @@ msgstr "This modifies the Docker configuration file (/etc/docker/daemon.json)" #: src/views/container/ContainerView.vue:50 #: src/views/database/ServerList.vue:113 src/views/database/UserList.vue:130 #: src/views/firewall/RuleView.vue:61 src/views/log/HttpLog.vue:74 -#: src/views/project/ListView.vue:53 src/views/task/TaskView.vue:22 -#: src/views/toolbox/ProcessView.vue:135 src/views/toolbox/ProcessView.vue:392 +#: src/views/project/ListView.vue:56 src/views/task/TaskView.vue:22 +#: src/views/toolbox/ProcessView.vue:137 src/views/toolbox/ProcessView.vue:394 msgid "Status" msgstr "Status" @@ -1668,7 +1754,7 @@ msgstr "" #: src/views/database/CreateServerModal.vue:63 #: src/views/database/DatabaseList.vue:11 src/views/database/ServerList.vue:16 #: src/views/database/UserList.vue:16 src/views/file/PropertyModal.vue:33 -#: src/views/log/OperationLog.vue:57 src/views/project/ListView.vue:45 +#: src/views/log/OperationLog.vue:57 src/views/project/ListView.vue:48 msgid "Type" msgstr "Type" @@ -1719,7 +1805,7 @@ msgid "Ban List" msgstr "Ban List" #: src/views/apps/frp/IndexView.vue:60 src/views/apps/frp/IndexView.vue:88 -#: src/views/project/CreateModal.vue:186 src/views/project/EditModal.vue:232 +#: src/views/project/CreateModal.vue:190 src/views/project/EditModal.vue:232 #, fuzzy msgid "Run User" msgstr "Run As User" @@ -1728,8 +1814,8 @@ msgstr "Run As User" #: src/views/apps/frp/IndexView.vue:95 src/views/apps/frp/IndexView.vue:96 #: src/views/apps/rsync/IndexView.vue:53 src/views/apps/rsync/IndexView.vue:272 #: src/views/apps/rsync/IndexView.vue:326 src/views/database/IndexView.vue:28 -#: src/views/setting/IndexView.vue:92 src/views/toolbox/ProcessView.vue:129 -#: src/views/toolbox/ProcessView.vue:389 src/views/toolbox/WebHookView.vue:335 +#: src/views/setting/IndexView.vue:93 src/views/toolbox/ProcessView.vue:131 +#: src/views/toolbox/ProcessView.vue:391 src/views/toolbox/WebHookView.vue:335 #: src/views/toolbox/WebHookView.vue:370 msgid "User" msgstr "User" @@ -1753,14 +1839,6 @@ msgstr "" msgid "Service Configuration" msgstr "Service Configuration" -#: src/views/apps/minio/IndexView.vue:32 -#: src/views/container/ComposeView.vue:367 -#: src/views/container/ComposeView.vue:393 -#: src/views/container/ContainerCreate.vue:454 -#: src/views/project/EditModal.vue:373 src/views/toolbox/ProcessView.vue:438 -msgid "Environment Variables" -msgstr "Environment Variables" - #: src/views/apps/minio/IndexView.vue:36 msgid "" "This is modifying the Minio environment variable file /etc/default/minio. If " @@ -1786,9 +1864,9 @@ msgid "Modified successfully" msgstr "Modified successfully" #: src/views/apps/mysql/MysqlIndex.vue:72 src/views/database/ServerList.vue:75 -#: src/views/database/UserList.vue:69 src/views/file/ListView.vue:718 -#: src/views/file/ListView.vue:738 src/views/file/ToolBar.vue:151 -#: src/views/file/ToolBar.vue:171 src/views/setting/TokenModal.vue:163 +#: src/views/database/UserList.vue:69 src/views/file/ListView.vue:796 +#: src/views/file/ListView.vue:816 src/views/file/ToolBar.vue:131 +#: src/views/file/ToolBar.vue:151 src/views/setting/TokenModal.vue:163 msgid "Copied successfully" msgstr "Copied successfully" @@ -1797,9 +1875,9 @@ msgid "Root Password" msgstr "Root Password" #: src/views/apps/mysql/MysqlIndex.vue:88 src/views/database/ServerList.vue:79 -#: src/views/database/UserList.vue:73 src/views/file/ListView.vue:181 -#: src/views/file/ListView.vue:215 src/views/file/ListView.vue:814 -#: src/views/file/ToolBar.vue:286 +#: src/views/database/UserList.vue:73 src/views/file/ListView.vue:259 +#: src/views/file/ListView.vue:293 src/views/file/ListView.vue:892 +#: src/views/file/ToolBar.vue:266 msgid "Copy" msgstr "Copy" @@ -1836,18 +1914,18 @@ msgid "Protocol" msgstr "Protocol" #: src/views/apps/nginx/NginxIndex.vue:169 -#: src/views/apps/nginx/NginxIndex.vue:588 src/views/website/EditView.vue:655 +#: src/views/apps/nginx/NginxIndex.vue:588 src/views/website/EditView.vue:683 #, fuzzy msgid "Proxy Pass" msgstr "Proxy Address" -#: src/views/apps/nginx/NginxIndex.vue:180 src/views/file/ListView.vue:657 +#: src/views/apps/nginx/NginxIndex.vue:180 src/views/file/ListView.vue:735 #: src/views/file/PropertyModal.vue:55 src/views/file/PropertyModal.vue:59 #: src/views/toolbox/WebHookView.vue:81 msgid "Yes" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:180 src/views/file/ListView.vue:658 +#: src/views/apps/nginx/NginxIndex.vue:180 src/views/file/ListView.vue:736 #: src/views/file/PropertyModal.vue:55 src/views/file/PropertyModal.vue:59 #: src/views/toolbox/WebHookView.vue:81 #, fuzzy @@ -1856,8 +1934,8 @@ msgstr "None" #: src/views/apps/nginx/NginxIndex.vue:197 #: src/views/apps/nginx/NginxIndex.vue:273 -#: src/views/container/ComposeView.vue:122 src/views/file/ListView.vue:206 -#: src/views/file/ListView.vue:1335 src/views/project/ListView.vue:105 +#: src/views/container/ComposeView.vue:122 src/views/file/ListView.vue:284 +#: src/views/file/ListView.vue:1462 src/views/project/ListView.vue:121 #: src/views/ssh/IndexView.vue:69 src/views/task/CronView.vue:128 #: src/views/toolbox/WebHookView.vue:158 src/views/website/ListView.vue:138 msgid "Edit" @@ -1924,15 +2002,15 @@ msgstr "Server" #: src/views/apps/nginx/NginxIndex.vue:503 #: src/views/database/CreateServerModal.vue:47 -#: src/views/database/IndexView.vue:49 src/views/website/EditView.vue:595 +#: src/views/database/IndexView.vue:49 src/views/website/EditView.vue:623 msgid "Add Server" msgstr "Add Server" -#: src/views/apps/nginx/NginxIndex.vue:516 src/views/website/EditView.vue:487 +#: src/views/apps/nginx/NginxIndex.vue:516 src/views/website/EditView.vue:515 msgid "Upstream" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:520 src/views/website/EditView.vue:611 +#: src/views/apps/nginx/NginxIndex.vue:520 src/views/website/EditView.vue:639 #, fuzzy msgid "Add Upstream" msgstr "Add User" @@ -1996,7 +2074,7 @@ msgstr "Private Key" msgid "e.g. /path/to/key.pem" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:658 src/views/website/EditView.vue:498 +#: src/views/apps/nginx/NginxIndex.vue:658 src/views/website/EditView.vue:526 msgid "Load Balancing Algorithm" msgstr "" @@ -2012,7 +2090,7 @@ msgstr "" msgid "Options (optional), e.g. weight=5 backup" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:688 +#: src/views/apps/nginx/NginxIndex.vue:688 src/views/toolbox/SystemView.vue:297 msgid "Add" msgstr "Add" @@ -2031,24 +2109,24 @@ msgstr "Options" msgid "No servers added yet" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:722 src/views/website/EditView.vue:526 -#: src/views/website/EditView.vue:684 +#: src/views/apps/nginx/NginxIndex.vue:722 src/views/website/EditView.vue:554 +#: src/views/website/EditView.vue:714 #, fuzzy msgid "DNS Resolver" msgstr "DNS Records to Set" -#: src/views/apps/nginx/NginxIndex.vue:725 src/views/website/EditView.vue:529 -#: src/views/website/EditView.vue:687 +#: src/views/apps/nginx/NginxIndex.vue:725 src/views/website/EditView.vue:557 +#: src/views/website/EditView.vue:717 msgid "e.g., 8.8.8.8" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:731 src/views/website/EditView.vue:535 -#: src/views/website/EditView.vue:693 +#: src/views/apps/nginx/NginxIndex.vue:731 src/views/website/EditView.vue:563 +#: src/views/website/EditView.vue:723 #, fuzzy msgid "Resolver Timeout" msgstr "Login Timeout" -#: src/views/apps/nginx/NginxIndex.vue:744 src/views/website/EditView.vue:344 +#: src/views/apps/nginx/NginxIndex.vue:744 src/views/website/EditView.vue:345 #, fuzzy msgid "Seconds" msgstr "Per Second In" @@ -2184,7 +2262,7 @@ msgstr "Run Log" #: src/views/database/CreateDatabaseModal.vue:79 #: src/views/database/CreateUserModal.vue:55 #: src/views/database/IndexView.vue:42 src/views/setting/CreateModal.vue:32 -#: src/views/setting/IndexView.vue:98 +#: src/views/setting/IndexView.vue:99 msgid "Create User" msgstr "Create User" @@ -2221,7 +2299,7 @@ msgstr "It is recommended to use the generator to generate a random password" #: src/views/apps/rsync/IndexView.vue:46 src/views/apps/rsync/IndexView.vue:264 #: src/views/apps/rsync/IndexView.vue:318 #: src/views/container/ComposeView.vue:64 src/views/file/PropertyModal.vue:34 -#: src/views/project/ListView.vue:65 src/views/website/CreateModal.vue:227 +#: src/views/project/ListView.vue:68 src/views/website/CreateModal.vue:227 #: src/views/website/ListView.vue:41 msgid "Directory" msgstr "Directory" @@ -2245,7 +2323,7 @@ msgstr "" #: src/views/database/ServerList.vue:86 #: src/views/database/UpdateServerModal.vue:65 #: src/views/database/UserList.vue:80 src/views/ssh/CreateModal.vue:64 -#: src/views/ssh/UpdateModal.vue:70 src/views/toolbox/SystemView.vue:139 +#: src/views/ssh/UpdateModal.vue:70 src/views/toolbox/SystemView.vue:181 msgid "Host" msgstr "Host" @@ -2407,7 +2485,7 @@ msgid "Daemon Logs" msgstr "Daemon Logs" #: src/views/apps/supervisor/IndexView.vue:381 -#: src/views/project/CreateModal.vue:204 src/views/project/EditModal.vue:250 +#: src/views/project/CreateModal.vue:208 src/views/project/EditModal.vue:250 msgid "Start Command" msgstr "Start Command" @@ -2416,7 +2494,7 @@ msgid "Please enter absolute path for files in start command" msgstr "Please enter absolute path for files in start command" #: src/views/apps/supervisor/IndexView.vue:389 -#: src/views/project/EditModal.vue:214 src/views/toolbox/ProcessView.vue:424 +#: src/views/project/EditModal.vue:214 src/views/toolbox/ProcessView.vue:426 msgid "Working Directory" msgstr "Working Directory" @@ -2602,11 +2680,11 @@ msgstr "Enter HMAC" #: src/views/cert/CertView.vue:63 src/views/cert/CertView.vue:439 #: src/views/cert/CreateCertModal.vue:74 src/views/cert/ObtainModal.vue:57 -#: src/views/website/CreateModal.vue:135 src/views/website/EditView.vue:393 +#: src/views/website/CreateModal.vue:135 src/views/website/EditView.vue:421 msgid "Domain" msgstr "Domain" -#: src/views/cert/CertView.vue:108 src/views/file/ToolBar.vue:253 +#: src/views/cert/CertView.vue:108 src/views/file/ToolBar.vue:233 #: src/views/file/UploadModal.vue:38 src/views/monitor/IndexView.vue:492 msgid "Upload" msgstr "Upload" @@ -2615,7 +2693,7 @@ msgstr "Upload" msgid "Associated Account" msgstr "Associated Account" -#: src/views/cert/CertView.vue:129 src/views/website/EditView.vue:794 +#: src/views/cert/CertView.vue:129 src/views/website/EditView.vue:824 msgid "Issuer" msgstr "Issuer" @@ -2637,12 +2715,8 @@ msgstr "Auto Renew" msgid "Issue" msgstr "Issue" -#: src/views/cert/CertView.vue:208 -msgid "Deploy" -msgstr "Deploy" - #: src/views/cert/CertView.vue:220 src/views/cert/ObtainModal.vue:24 -#: src/views/cert/ObtainModal.vue:81 src/views/website/EditView.vue:141 +#: src/views/cert/ObtainModal.vue:81 src/views/website/EditView.vue:142 msgid "Please wait..." msgstr "Please wait..." @@ -2703,7 +2777,7 @@ msgid "Select DNS for certificate issuance" msgstr "Select DNS for certificate issuance" #: src/views/cert/CertView.vue:491 src/views/cert/UploadCertModal.vue:42 -#: src/views/website/EditView.vue:867 +#: src/views/website/EditView.vue:897 msgid "Enter the content of the PEM certificate file" msgstr "Enter the content of the PEM certificate file" @@ -2711,12 +2785,12 @@ msgstr "Enter the content of the PEM certificate file" #: src/views/cert/UploadCertModal.vue:46 src/views/setting/SettingSafe.vue:297 #: src/views/ssh/CreateModal.vue:80 src/views/ssh/CreateModal.vue:91 #: src/views/ssh/UpdateModal.vue:86 src/views/ssh/UpdateModal.vue:97 -#: src/views/website/EditView.vue:871 +#: src/views/website/EditView.vue:901 msgid "Private Key" msgstr "Private Key" #: src/views/cert/CertView.vue:503 src/views/cert/UploadCertModal.vue:50 -#: src/views/website/EditView.vue:875 +#: src/views/website/EditView.vue:905 msgid "Enter the content of the KEY private key file" msgstr "Enter the content of the KEY private key file" @@ -2953,10 +3027,6 @@ msgstr "Create Compose" msgid "Are you sure you want to delete the selected composes?" msgstr "Are you sure you want to delete the server?" -#: src/views/container/ComposeView.vue:361 -msgid "Compose Name" -msgstr "Compose Name" - #: src/views/container/ComposeView.vue:364 #: src/views/container/ComposeView.vue:390 src/views/container/IndexView.vue:23 msgid "Compose" @@ -2976,11 +3046,6 @@ msgstr "Variable Value" msgid "Edit Compose" msgstr "Edit Compose" -#: src/views/container/ComposeView.vue:408 -#, fuzzy -msgid "Starting Compose" -msgstr "Create Compose" - #: src/views/container/ContainerCreate.vue:52 msgid "Always" msgstr "Always" @@ -3012,11 +3077,6 @@ msgstr "Please enter absolute path" msgid "Create Container" msgstr "Create Container" -#: src/views/container/ContainerCreate.vue:191 -#: src/views/project/EditModal.vue:177 src/views/website/EditView.vue:434 -msgid "Basic Settings" -msgstr "Basic Settings" - #: src/views/container/ContainerCreate.vue:193 #: src/views/container/ContainerView.vue:43 msgid "Container Name" @@ -3193,7 +3253,7 @@ msgstr "Resource Overview" #: src/views/container/ContainerCreate.vue:428 src/views/home/IndexView.vue:565 #: src/views/monitor/IndexView.vue:435 src/views/monitor/IndexView.vue:451 #: src/views/monitor/IndexView.vue:728 src/views/toolbox/BenchmarkView.vue:177 -#: src/views/toolbox/ProcessView.vue:153 +#: src/views/toolbox/ProcessView.vue:155 msgid "Memory" msgstr "Memory" @@ -3301,7 +3361,7 @@ msgstr "Pause" msgid "Resume" msgstr "Resume" -#: src/views/container/ContainerView.vue:231 src/views/file/ListView.vue:1366 +#: src/views/container/ContainerView.vue:231 src/views/file/ListView.vue:1493 msgid "More" msgstr "More" @@ -3463,6 +3523,7 @@ msgid "Driver" msgstr "Driver" #: src/views/container/NetworkView.vue:59 src/views/container/VolumeView.vue:40 +#: src/views/website/EditView.vue:959 msgid "Scope" msgstr "Scope" @@ -3630,7 +3691,7 @@ msgstr "Enter database server host" #: src/views/database/CreateServerModal.vue:84 #: src/views/database/UpdateServerModal.vue:76 #: src/views/firewall/ForwardView.vue:31 src/views/firewall/RuleView.vue:48 -#: src/views/setting/SettingBase.vue:110 src/views/ssh/CreateModal.vue:70 +#: src/views/setting/SettingBase.vue:123 src/views/ssh/CreateModal.vue:70 #: src/views/ssh/UpdateModal.vue:76 src/views/website/CreateModal.vue:146 msgid "Port" msgstr "Port" @@ -3692,7 +3753,7 @@ msgstr "Valid" msgid "Invalid" msgstr "Invalid" -#: src/views/database/ServerList.vue:146 src/views/toolbox/SystemView.vue:81 +#: src/views/database/ServerList.vue:146 src/views/toolbox/SystemView.vue:92 msgid "Synchronized successfully" msgstr "Synchronized successfully" @@ -3806,9 +3867,9 @@ msgid "Compressed successfully" msgstr "Compressed successfully" #: src/views/file/CompressModal.vue:73 src/views/file/CompressModal.vue:105 -#: src/views/file/ListView.vue:183 src/views/file/ListView.vue:219 -#: src/views/file/ListView.vue:817 src/views/file/ListView.vue:1329 -#: src/views/file/ToolBar.vue:288 +#: src/views/file/ListView.vue:261 src/views/file/ListView.vue:297 +#: src/views/file/ListView.vue:895 src/views/file/ListView.vue:1456 +#: src/views/file/ToolBar.vue:268 msgid "Compress" msgstr "Compress" @@ -3829,149 +3890,149 @@ msgstr "Format" msgid "File Editor" msgstr "Website Edit" -#: src/views/file/ListView.vue:160 src/views/file/ListView.vue:585 -#: src/views/file/ListView.vue:653 src/views/file/ListView.vue:701 -#: src/views/file/ToolBar.vue:134 +#: src/views/file/ListView.vue:238 src/views/file/ListView.vue:663 +#: src/views/file/ListView.vue:731 src/views/file/ListView.vue:779 +#: src/views/file/ToolBar.vue:114 msgid "Warning" msgstr "Warning" -#: src/views/file/ListView.vue:161 +#: src/views/file/ListView.vue:239 msgid "" "%{ name } has immutable attribute. The panel will temporarily remove the " "immutable attribute, perform the operation, and then restore the immutable " "attribute. Do you want to continue?" msgstr "" -#: src/views/file/ListView.vue:165 +#: src/views/file/ListView.vue:243 #, fuzzy msgid "Continue" msgstr "Container" -#: src/views/file/ListView.vue:182 src/views/file/ListView.vue:216 -#: src/views/file/ListView.vue:815 src/views/file/ToolBar.vue:287 +#: src/views/file/ListView.vue:260 src/views/file/ListView.vue:294 +#: src/views/file/ListView.vue:893 src/views/file/ToolBar.vue:267 msgid "Move" msgstr "Move" -#: src/views/file/ListView.vue:184 src/views/file/ListView.vue:217 -#: src/views/file/ListView.vue:816 src/views/file/ListView.vue:1197 +#: src/views/file/ListView.vue:262 src/views/file/ListView.vue:295 +#: src/views/file/ListView.vue:894 src/views/file/ListView.vue:1277 #: src/views/file/PermissionModal.vue:144 src/views/file/PropertyModal.vue:42 -#: src/views/file/ToolBar.vue:289 +#: src/views/file/ToolBar.vue:269 msgid "Permission" msgstr "Permission" -#: src/views/file/ListView.vue:189 src/views/file/ListView.vue:239 -#: src/views/file/ToolBar.vue:283 +#: src/views/file/ListView.vue:267 src/views/file/ListView.vue:317 +#: src/views/file/ToolBar.vue:263 msgid "Paste" msgstr "Paste" -#: src/views/file/ListView.vue:201 src/views/file/ListView.vue:1316 +#: src/views/file/ListView.vue:279 src/views/file/ListView.vue:1443 msgid "Open" msgstr "Open" -#: src/views/file/ListView.vue:203 src/views/file/ListView.vue:1335 +#: src/views/file/ListView.vue:281 src/views/file/ListView.vue:1462 msgid "Preview" msgstr "Preview" -#: src/views/file/ListView.vue:205 src/views/file/ListView.vue:223 -#: src/views/file/ListView.vue:822 src/views/file/ListView.vue:1442 +#: src/views/file/ListView.vue:283 src/views/file/ListView.vue:301 +#: src/views/file/ListView.vue:900 src/views/file/ListView.vue:1569 msgid "Uncompress" msgstr "Uncompress" -#: src/views/file/ListView.vue:234 src/views/file/ListView.vue:832 +#: src/views/file/ListView.vue:312 src/views/file/ListView.vue:910 #: src/views/file/PropertyModal.vue:11 #, fuzzy msgid "Properties" msgstr "Property" -#: src/views/file/ListView.vue:496 src/views/file/ToolBar.vue:83 -#: src/views/file/ToolBar.vue:100 +#: src/views/file/ListView.vue:574 src/views/file/ToolBar.vue:63 +#: src/views/file/ToolBar.vue:80 msgid "Marked successfully, please navigate to the destination path to paste" msgstr "Marked successfully, please navigate to the destination path to paste" -#: src/views/file/ListView.vue:586 +#: src/views/file/ListView.vue:664 msgid "There are items with the same name. Do you want to overwrite?" msgstr "There are items with the same name. Do you want to overwrite?" -#: src/views/file/ListView.vue:587 src/views/file/ListView.vue:711 -#: src/views/file/ToolBar.vue:144 +#: src/views/file/ListView.vue:665 src/views/file/ListView.vue:789 +#: src/views/file/ToolBar.vue:124 msgid "Overwrite" msgstr "Overwrite" -#: src/views/file/ListView.vue:594 src/views/file/ListView.vue:613 +#: src/views/file/ListView.vue:672 src/views/file/ListView.vue:691 msgid "Renamed %{ source } to %{ target } successfully" msgstr "Renamed %{ source } to %{ target } successfully" -#: src/views/file/ListView.vue:649 +#: src/views/file/ListView.vue:727 msgid "Some files are immutable and cannot be deleted" msgstr "" -#: src/views/file/ListView.vue:654 +#: src/views/file/ListView.vue:732 #, fuzzy msgid "Are you sure you want to delete %{count} items?" msgstr "Are you sure you want to delete the account?" -#: src/views/file/ListView.vue:673 +#: src/views/file/ListView.vue:751 msgid "Path copied to clipboard" msgstr "" -#: src/views/file/ListView.vue:680 src/views/file/ToolBar.vue:110 +#: src/views/file/ListView.vue:758 src/views/file/ToolBar.vue:90 msgid "Please mark the files/folders to copy or move first" msgstr "Please mark the files/folders to copy or move first" -#: src/views/file/ListView.vue:702 src/views/file/ToolBar.vue:135 +#: src/views/file/ListView.vue:780 src/views/file/ToolBar.vue:115 #, fuzzy msgid "There are items with the same name %{ items } Do you want to overwrite?" msgstr "" "There are items with the same name. %{ items } Do you want to overwrite?" -#: src/views/file/ListView.vue:724 src/views/file/ListView.vue:744 -#: src/views/file/ToolBar.vue:157 src/views/file/ToolBar.vue:177 +#: src/views/file/ListView.vue:802 src/views/file/ListView.vue:822 +#: src/views/file/ToolBar.vue:137 src/views/file/ToolBar.vue:157 msgid "Moved successfully" msgstr "Moved successfully" -#: src/views/file/ListView.vue:730 src/views/file/ToolBar.vue:163 +#: src/views/file/ListView.vue:808 src/views/file/ToolBar.vue:143 msgid "Canceled" msgstr "Canceled" -#: src/views/file/ListView.vue:825 +#: src/views/file/ListView.vue:903 msgid "Copy Path" msgstr "Copy Path" -#: src/views/file/ListView.vue:1063 +#: src/views/file/ListView.vue:1141 msgid "Uncompressing..." msgstr "Uncompressing..." -#: src/views/file/ListView.vue:1070 +#: src/views/file/ListView.vue:1148 msgid "Uncompressed successfully" msgstr "Uncompressed successfully" -#: src/views/file/ListView.vue:1377 +#: src/views/file/ListView.vue:1504 #, fuzzy msgid "No files" msgstr "Files" -#: src/views/file/ListView.vue:1387 +#: src/views/file/ListView.vue:1514 msgid "%{count} item(s) selected" msgstr "" -#: src/views/file/ListView.vue:1390 +#: src/views/file/ListView.vue:1517 #, fuzzy msgid "Clear" msgstr "Clear Log" -#: src/views/file/ListView.vue:1395 +#: src/views/file/ListView.vue:1522 msgid "%{count} item(s)" msgstr "" -#: src/views/file/ListView.vue:1430 +#: src/views/file/ListView.vue:1557 msgid "Uncompress - %{ file }" msgstr "Uncompress - %{ file }" -#: src/views/file/ListView.vue:1438 +#: src/views/file/ListView.vue:1565 msgid "Uncompress to" msgstr "Uncompress to" -#: src/views/file/ListView.vue:1450 src/views/file/ToolBar.vue:345 +#: src/views/file/ListView.vue:1577 src/views/file/ToolBar.vue:307 #, fuzzy msgid "Terminal - %{ path }" msgstr "Modify permissions - %{ path }" @@ -4064,43 +4125,43 @@ msgstr "" msgid "Immutable" msgstr "Stable" -#: src/views/file/ToolBar.vue:66 +#: src/views/file/ToolBar.vue:46 msgid "Download task created successfully" msgstr "Download task created successfully" -#: src/views/file/ToolBar.vue:72 +#: src/views/file/ToolBar.vue:52 msgid "Please select files/folders to copy" msgstr "Please select files/folders to copy" -#: src/views/file/ToolBar.vue:89 +#: src/views/file/ToolBar.vue:69 msgid "Please select files/folders to move" msgstr "Please select files/folders to move" -#: src/views/file/ToolBar.vue:229 +#: src/views/file/ToolBar.vue:209 msgid "Sort" msgstr "" -#: src/views/file/ToolBar.vue:254 src/views/file/ToolBar.vue:323 +#: src/views/file/ToolBar.vue:234 src/views/file/ToolBar.vue:285 msgid "Remote Download" msgstr "Remote Download" -#: src/views/file/ToolBar.vue:273 +#: src/views/file/ToolBar.vue:253 msgid "Switch to grid view" msgstr "" -#: src/views/file/ToolBar.vue:274 +#: src/views/file/ToolBar.vue:254 msgid "Switch to list view" msgstr "" -#: src/views/file/ToolBar.vue:296 +#: src/views/file/ToolBar.vue:276 msgid "Are you sure you want to delete in bulk?" msgstr "Are you sure you want to delete in bulk?" -#: src/views/file/ToolBar.vue:331 +#: src/views/file/ToolBar.vue:293 msgid "Download URL" msgstr "Download URL" -#: src/views/file/ToolBar.vue:334 +#: src/views/file/ToolBar.vue:296 msgid "Save as" msgstr "Save as" @@ -4496,7 +4557,7 @@ msgstr "You have not set any apps to display here!" msgid "Environment Information" msgstr "Environment Information" -#: src/views/home/IndexView.vue:768 src/views/toolbox/SystemView.vue:141 +#: src/views/home/IndexView.vue:768 src/views/toolbox/SystemView.vue:183 msgid "System Hostname" msgstr "System Hostname" @@ -4585,7 +4646,7 @@ msgid "Loading update information, please wait a moment" msgstr "Loading update information, please wait a moment" #: src/views/log/DatabaseLog.vue:31 src/views/log/HttpLog.vue:39 -#: src/views/log/OperationLog.vue:34 src/views/toolbox/SystemView.vue:155 +#: src/views/log/OperationLog.vue:34 src/views/toolbox/SystemView.vue:197 msgid "Time" msgstr "Time" @@ -4723,7 +4784,7 @@ msgstr "days" msgid "Clear Monitoring Records" msgstr "Clear Monitoring Records" -#: src/views/monitor/IndexView.vue:611 src/views/website/EditView.vue:912 +#: src/views/monitor/IndexView.vue:611 src/views/website/EditView.vue:1024 msgid "Are you sure you want to clear?" msgstr "Are you sure you want to clear?" @@ -4769,7 +4830,7 @@ msgstr "" msgid "Create PHP Project" msgstr "Create Host" -#: src/views/project/CreateModal.vue:119 src/views/project/ListView.vue:197 +#: src/views/project/CreateModal.vue:119 src/views/project/ListView.vue:213 #, fuzzy msgid "Create Project" msgstr "Create Host" @@ -4788,41 +4849,45 @@ msgstr "" msgid "Project Directory" msgstr "Select Directory" -#: src/views/project/CreateModal.vue:150 src/views/project/EditModal.vue:204 +#: src/views/project/CreateModal.vue:151 #, fuzzy -msgid "Project root directory" -msgstr "Root Directory" +msgid "" +"Project root directory (if left empty, defaults to project directory/project " +"name)" +msgstr "" +"Website root directory (if left empty, defaults to website directory/website " +"name)" -#: src/views/project/CreateModal.vue:164 src/views/website/CreateModal.vue:158 -#: src/views/website/EditView.vue:453 +#: src/views/project/CreateModal.vue:168 src/views/website/CreateModal.vue:158 +#: src/views/website/EditView.vue:481 msgid "PHP Version" msgstr "PHP Version" -#: src/views/project/CreateModal.vue:168 src/views/website/CreateModal.vue:162 -#: src/views/website/EditView.vue:458 +#: src/views/project/CreateModal.vue:172 src/views/website/CreateModal.vue:162 +#: src/views/website/EditView.vue:486 msgid "Select PHP Version" msgstr "Select PHP Version" -#: src/views/project/CreateModal.vue:174 +#: src/views/project/CreateModal.vue:178 #, fuzzy msgid "Framework" msgstr "Network" -#: src/views/project/CreateModal.vue:178 +#: src/views/project/CreateModal.vue:182 #, fuzzy msgid "Select Framework" msgstr "Select server" -#: src/views/project/CreateModal.vue:194 src/views/project/EditModal.vue:240 +#: src/views/project/CreateModal.vue:198 src/views/project/EditModal.vue:240 #, fuzzy msgid "Select User" msgstr "Select server" -#: src/views/project/CreateModal.vue:199 +#: src/views/project/CreateModal.vue:203 msgid "Select www user if no special requirements" msgstr "" -#: src/views/project/CreateModal.vue:209 src/views/project/EditModal.vue:255 +#: src/views/project/CreateModal.vue:213 src/views/project/EditModal.vue:255 msgid "e.g., php artisan serve, node app.js" msgstr "" @@ -4880,6 +4945,11 @@ msgstr "Edit Website - %{ name }" msgid "Project description" msgstr "Description" +#: src/views/project/EditModal.vue:204 +#, fuzzy +msgid "Project root directory" +msgstr "Root Directory" + #: src/views/project/EditModal.vue:221 msgid "Working directory (optional, defaults to project directory)" msgstr "" @@ -5106,7 +5176,7 @@ msgstr "Read-Only" msgid "Paths that the service can only read from" msgstr "Path or service cannot be empty" -#: src/views/project/IndexView.vue:22 src/views/project/ListView.vue:20 +#: src/views/project/IndexView.vue:22 src/views/project/ListView.vue:23 msgid "General" msgstr "" @@ -5130,12 +5200,12 @@ msgstr "" msgid "Node.js" msgstr "" -#: src/views/project/ListView.vue:115 +#: src/views/project/ListView.vue:131 #, fuzzy msgid "Are you sure you want to delete project %{ name }?" msgstr "Are you sure you want to delete process %{ name }?" -#: src/views/project/ListView.vue:205 +#: src/views/project/ListView.vue:221 #, fuzzy msgid "Are you sure you want to delete the selected projects?" msgstr "Are you sure you want to delete the server?" @@ -5152,12 +5222,12 @@ msgstr "Enter user password" msgid "Enter user email" msgstr "Enter user email" -#: src/views/setting/IndexView.vue:68 +#: src/views/setting/IndexView.vue:69 #, fuzzy msgid "Panel is restarting, page will refresh in 5 seconds" msgstr "Panel is restarting, page will refresh in 3 seconds" -#: src/views/setting/IndexView.vue:91 +#: src/views/setting/IndexView.vue:92 msgid "Safe" msgstr "Safe" @@ -5166,52 +5236,62 @@ msgstr "Safe" msgid "Updated successfully" msgstr "Updated successfully" -#: src/views/setting/SettingBase.vue:51 +#: src/views/setting/SettingBase.vue:56 msgid "Stable" msgstr "Stable" -#: src/views/setting/SettingBase.vue:55 +#: src/views/setting/SettingBase.vue:60 msgid "Beta" msgstr "Beta" -#: src/views/setting/SettingBase.vue:101 src/views/setting/SettingBase.vue:102 +#: src/views/setting/SettingBase.vue:114 src/views/setting/SettingBase.vue:115 msgid "Panel Name" msgstr "Panel Name" -#: src/views/setting/SettingBase.vue:107 +#: src/views/setting/SettingBase.vue:120 msgid "Update Channel" msgstr "Update Channel" -#: src/views/setting/SettingBase.vue:111 +#: src/views/setting/SettingBase.vue:124 msgid "8888" msgstr "8888" -#: src/views/setting/SettingBase.vue:113 +#: src/views/setting/SettingBase.vue:126 msgid "Default Website Directory" msgstr "Default Website Directory" -#: src/views/setting/SettingBase.vue:115 +#: src/views/setting/SettingBase.vue:128 msgid "/opt/ace/sites" msgstr "" -#: src/views/setting/SettingBase.vue:123 +#: src/views/setting/SettingBase.vue:136 msgid "Default Backup Directory" msgstr "Default Backup Directory" -#: src/views/setting/SettingBase.vue:125 +#: src/views/setting/SettingBase.vue:138 #, fuzzy msgid "/opt/ace/backup" msgstr "/www/backup" -#: src/views/setting/SettingBase.vue:133 +#: src/views/setting/SettingBase.vue:146 +#, fuzzy +msgid "Default Project Directory" +msgstr "Select Directory" + +#: src/views/setting/SettingBase.vue:150 +#, fuzzy +msgid "/opt/ace/projects" +msgstr "/www/backup" + +#: src/views/setting/SettingBase.vue:159 msgid "Custom Logo" msgstr "Custom Logo" -#: src/views/setting/SettingBase.vue:136 +#: src/views/setting/SettingBase.vue:162 msgid "Please enter the complete URL" msgstr "Please enter the complete URL" -#: src/views/setting/SettingBase.vue:139 +#: src/views/setting/SettingBase.vue:165 msgid "Hide Menu" msgstr "Hide Menu" @@ -5576,7 +5656,7 @@ msgid "Completed" msgstr "Completed" #: src/views/task/TaskView.vue:30 src/views/toolbox/ProcessView.vue:53 -#: src/views/toolbox/ProcessView.vue:90 +#: src/views/toolbox/ProcessView.vue:92 msgid "Waiting" msgstr "Waiting" @@ -6018,7 +6098,7 @@ msgstr "Service" #: src/views/toolbox/DiskView.vue:844 src/views/toolbox/DiskView.vue:874 #: src/views/toolbox/DiskView.vue:912 src/views/toolbox/DiskView.vue:957 -#: src/views/website/EditView.vue:591 src/views/website/EditView.vue:749 +#: src/views/website/EditView.vue:619 src/views/website/EditView.vue:779 #, fuzzy msgid "Remove" msgstr "Auto Remove" @@ -6258,19 +6338,19 @@ msgstr "" msgid "All Status" msgstr "Status" -#: src/views/toolbox/ProcessView.vue:49 src/views/toolbox/ProcessView.vue:82 +#: src/views/toolbox/ProcessView.vue:49 src/views/toolbox/ProcessView.vue:84 msgid "Sleeping" msgstr "Sleeping" -#: src/views/toolbox/ProcessView.vue:51 src/views/toolbox/ProcessView.vue:86 +#: src/views/toolbox/ProcessView.vue:51 src/views/toolbox/ProcessView.vue:88 msgid "Idle" msgstr "Idle" -#: src/views/toolbox/ProcessView.vue:52 src/views/toolbox/ProcessView.vue:88 +#: src/views/toolbox/ProcessView.vue:52 src/views/toolbox/ProcessView.vue:90 msgid "Zombie" msgstr "Zombie" -#: src/views/toolbox/ProcessView.vue:54 src/views/toolbox/ProcessView.vue:92 +#: src/views/toolbox/ProcessView.vue:54 src/views/toolbox/ProcessView.vue:94 msgid "Locked" msgstr "Locked" @@ -6312,90 +6392,95 @@ msgstr "" msgid "User Signal 2 (SIGUSR2)" msgstr "" -#: src/views/toolbox/ProcessView.vue:115 src/views/toolbox/ProcessView.vue:383 +#: src/views/toolbox/ProcessView.vue:82 +#, fuzzy +msgid "Blocked" +msgstr "Locked" + +#: src/views/toolbox/ProcessView.vue:117 src/views/toolbox/ProcessView.vue:385 msgid "Parent PID" msgstr "Parent PID" -#: src/views/toolbox/ProcessView.vue:122 src/views/toolbox/ProcessView.vue:395 +#: src/views/toolbox/ProcessView.vue:124 src/views/toolbox/ProcessView.vue:397 msgid "Threads" msgstr "Threads" -#: src/views/toolbox/ProcessView.vue:163 src/views/toolbox/ProcessView.vue:416 +#: src/views/toolbox/ProcessView.vue:165 src/views/toolbox/ProcessView.vue:418 msgid "Start Time" msgstr "Start Time" -#: src/views/toolbox/ProcessView.vue:235 +#: src/views/toolbox/ProcessView.vue:237 #, fuzzy msgid "Are you sure you want to send %{ signal } to process %{ pid }?" msgstr "Are you sure you want to terminate process %{ pid }?" -#: src/views/toolbox/ProcessView.vue:245 +#: src/views/toolbox/ProcessView.vue:247 msgid "Signal %{ signal } has been sent to process %{ pid }" msgstr "" -#: src/views/toolbox/ProcessView.vue:313 +#: src/views/toolbox/ProcessView.vue:315 msgid "Search by PID or name" msgstr "" -#: src/views/toolbox/ProcessView.vue:372 +#: src/views/toolbox/ProcessView.vue:374 #, fuzzy msgid "Process Details" msgstr "Add Process" -#: src/views/toolbox/ProcessView.vue:401 +#: src/views/toolbox/ProcessView.vue:403 #, fuzzy msgid "Memory (RSS)" msgstr "Memory" -#: src/views/toolbox/ProcessView.vue:404 +#: src/views/toolbox/ProcessView.vue:406 #, fuzzy msgid "Virtual Memory" msgstr "Memory" -#: src/views/toolbox/ProcessView.vue:407 +#: src/views/toolbox/ProcessView.vue:409 msgid "Swap" msgstr "" -#: src/views/toolbox/ProcessView.vue:410 +#: src/views/toolbox/ProcessView.vue:412 #, fuzzy msgid "Disk Read" msgstr "Read" -#: src/views/toolbox/ProcessView.vue:413 +#: src/views/toolbox/ProcessView.vue:415 #, fuzzy msgid "Disk Write" msgstr "Write" -#: src/views/toolbox/ProcessView.vue:419 +#: src/views/toolbox/ProcessView.vue:421 #, fuzzy msgid "Executable Path" msgstr "Execute" -#: src/views/toolbox/ProcessView.vue:429 +#: src/views/toolbox/ProcessView.vue:431 #, fuzzy msgid "Command Line" msgstr "Command" -#: src/views/toolbox/ProcessView.vue:446 +#: src/views/toolbox/ProcessView.vue:448 #, fuzzy msgid "No environment variables" msgstr "Environment Variables" -#: src/views/toolbox/ProcessView.vue:454 +#: src/views/toolbox/ProcessView.vue:456 #, fuzzy msgid "Open Files" msgstr "Files" -#: src/views/toolbox/ProcessView.vue:462 +#: src/views/toolbox/ProcessView.vue:464 msgid "No open files" msgstr "" -#: src/views/toolbox/ProcessView.vue:470 +#: src/views/toolbox/ProcessView.vue:472 #, fuzzy msgid "Network Connections" msgstr "Network Protocol" -#: src/views/toolbox/ProcessView.vue:483 +#: src/views/toolbox/ProcessView.vue:485 msgid "No network connections" msgstr "" @@ -6544,42 +6629,46 @@ msgstr "" msgid "Download Private Key" msgstr "Private Key" -#: src/views/toolbox/SystemView.vue:92 +#: src/views/toolbox/SystemView.vue:117 +msgid "At least one NTP server is required" +msgstr "" + +#: src/views/toolbox/SystemView.vue:134 msgid "Current DNS manager: %{ manager }" msgstr "Current DNS manager: %{ manager }" -#: src/views/toolbox/SystemView.vue:98 +#: src/views/toolbox/SystemView.vue:140 msgid "DNS modifications will revert to default after system restart." msgstr "DNS modifications will revert to default after system restart." -#: src/views/toolbox/SystemView.vue:102 +#: src/views/toolbox/SystemView.vue:144 msgid "Enter primary DNS server" msgstr "" -#: src/views/toolbox/SystemView.vue:105 +#: src/views/toolbox/SystemView.vue:147 msgid "Enter secondary DNS server" msgstr "" -#: src/views/toolbox/SystemView.vue:119 +#: src/views/toolbox/SystemView.vue:161 #, fuzzy msgid "System total %{ total }, used %{ used }, free %{ free }" msgstr "Total %{ total }, used %{ used }, free %{ free }" -#: src/views/toolbox/SystemView.vue:127 +#: src/views/toolbox/SystemView.vue:169 #, fuzzy msgid "Panel SWAP Size" msgstr "SWAP Size" -#: src/views/toolbox/SystemView.vue:144 +#: src/views/toolbox/SystemView.vue:186 msgid "Enter hostname, e.g. myserver" msgstr "" -#: src/views/toolbox/SystemView.vue:147 +#: src/views/toolbox/SystemView.vue:189 #, fuzzy msgid "Hosts" msgstr "Host" -#: src/views/toolbox/SystemView.vue:159 +#: src/views/toolbox/SystemView.vue:201 msgid "" "After manually changing the time, it may still be overwritten by system " "automatic time synchronization." @@ -6587,22 +6676,63 @@ msgstr "" "After manually changing the time, it may still be overwritten by system " "automatic time synchronization." -#: src/views/toolbox/SystemView.vue:165 +#: src/views/toolbox/SystemView.vue:207 msgid "Select Timezone" msgstr "Select Timezone" -#: src/views/toolbox/SystemView.vue:168 +#: src/views/toolbox/SystemView.vue:210 msgid "Please select a timezone" msgstr "Please select a timezone" -#: src/views/toolbox/SystemView.vue:172 +#: src/views/toolbox/SystemView.vue:214 msgid "Modify Time" msgstr "Modify Time" -#: src/views/toolbox/SystemView.vue:181 +#: src/views/toolbox/SystemView.vue:217 +#, fuzzy +msgid "NTP Server" +msgstr "Server" + +#: src/views/toolbox/SystemView.vue:221 +#, fuzzy +msgid "Optional, leave empty to use default servers" +msgstr "Leave empty to use default path" + +#: src/views/toolbox/SystemView.vue:225 +#, fuzzy +msgid "Configure Default Servers" +msgstr "On failure (default 5 retries)" + +#: src/views/toolbox/SystemView.vue:235 msgid "Synchronize Time" msgstr "Synchronize Time" +#: src/views/toolbox/SystemView.vue:246 +#, fuzzy +msgid "System NTP Server Configuration" +msgstr "Service Configuration" + +#: src/views/toolbox/SystemView.vue:255 +msgid "" +"Unable to detect NTP service. Please ensure chrony or systemd-timesyncd is " +"installed." +msgstr "" + +#: src/views/toolbox/SystemView.vue:262 +msgid "" +"Current NTP service: %{ service }. Changes will be applied to system " +"configuration." +msgstr "" + +#: src/views/toolbox/SystemView.vue:275 +#, fuzzy +msgid "Enter NTP server address" +msgstr "Please enter username and password" + +#: src/views/toolbox/SystemView.vue:300 +msgid "Reset to Default" +msgstr "" + #: src/views/toolbox/WebHookView.vue:69 src/views/toolbox/WebHookView.vue:341 #: src/views/toolbox/WebHookView.vue:376 msgid "Raw Output" @@ -6726,7 +6856,7 @@ msgstr "Path: The path of the website, can be empty to use the default path." msgid "Remark: The remark of the website, can be empty." msgstr "Remark: The remark of the website, can be empty." -#: src/views/website/CreateModal.vue:39 src/views/website/EditView.vue:58 +#: src/views/website/CreateModal.vue:39 src/views/website/EditView.vue:59 msgid "Not used" msgstr "Not used" @@ -6777,285 +6907,323 @@ msgstr "" msgid "Remark" msgstr "Remark" -#: src/views/website/EditView.vue:89 +#: src/views/website/EditView.vue:90 msgid "Edit Website - %{ name }" msgstr "Edit Website - %{ name }" -#: src/views/website/EditView.vue:91 +#: src/views/website/EditView.vue:92 msgid "Edit Website" msgstr "Edit Website" -#: src/views/website/EditView.vue:130 +#: src/views/website/EditView.vue:131 msgid "Reset successfully" msgstr "Reset successfully" -#: src/views/website/EditView.vue:147 +#: src/views/website/EditView.vue:148 msgid "Issued successfully" msgstr "Issued successfully" -#: src/views/website/EditView.vue:161 +#: src/views/website/EditView.vue:162 msgid "The selected certificate is invalid" msgstr "The selected certificate is invalid" -#: src/views/website/EditView.vue:240 +#: src/views/website/EditView.vue:241 msgid "Exact Match (=)" msgstr "Exact Match (=)" -#: src/views/website/EditView.vue:241 +#: src/views/website/EditView.vue:242 msgid "Priority Prefix Match (^~)" msgstr "Priority Prefix Match (^~)" -#: src/views/website/EditView.vue:242 +#: src/views/website/EditView.vue:243 #, fuzzy msgid "Prefix Match" msgstr "Normal Prefix Match ( )" -#: src/views/website/EditView.vue:243 +#: src/views/website/EditView.vue:244 #, fuzzy msgid "Case-sensitive Regex (~)" msgstr "Case Sensitive Regex Match (~)" -#: src/views/website/EditView.vue:244 +#: src/views/website/EditView.vue:245 #, fuzzy msgid "Case-insensitive Regex (~*)" msgstr "Case Insensitive Regex Match (~*)" #: src/views/website/EditView.vue:391 +#, fuzzy +msgid "This Website" +msgstr "Edit Website" + +#: src/views/website/EditView.vue:392 +msgid "Global" +msgstr "" + +#: src/views/website/EditView.vue:419 msgid "Domain & Listening" msgstr "Domain & Listening" -#: src/views/website/EditView.vue:401 +#: src/views/website/EditView.vue:429 msgid "Listening Address" msgstr "Listening Address" -#: src/views/website/EditView.vue:436 +#: src/views/website/EditView.vue:464 msgid "Website Directory" msgstr "Website Directory" -#: src/views/website/EditView.vue:439 +#: src/views/website/EditView.vue:467 msgid "Enter website directory (absolute path)" msgstr "Enter website directory (absolute path)" -#: src/views/website/EditView.vue:442 +#: src/views/website/EditView.vue:470 msgid "Running Directory" msgstr "Running Directory" -#: src/views/website/EditView.vue:446 +#: src/views/website/EditView.vue:474 msgid "Enter running directory (needed for Laravel etc.) (absolute path)" msgstr "Enter running directory (needed for Laravel etc.) (absolute path)" -#: src/views/website/EditView.vue:450 +#: src/views/website/EditView.vue:478 msgid "Default Document" msgstr "Default Document" -#: src/views/website/EditView.vue:463 +#: src/views/website/EditView.vue:491 #, fuzzy msgid "Anti-cross-site Attack" msgstr "Anti-cross-site Attack (PHP)" -#: src/views/website/EditView.vue:469 +#: src/views/website/EditView.vue:497 msgid "Upstreams" msgstr "" -#: src/views/website/EditView.vue:490 -#, fuzzy -msgid "Upstream name" -msgstr "Username" - -#: src/views/website/EditView.vue:504 src/views/website/EditView.vue:511 -msgid "Round Robin (default)" -msgstr "" - -#: src/views/website/EditView.vue:512 -msgid "Least Busy" -msgstr "" - -#: src/views/website/EditView.vue:513 -msgid "By Traffic" -msgstr "" - #: src/views/website/EditView.vue:518 #, fuzzy +msgid "Upstream name" +msgstr "Username" + +#: src/views/website/EditView.vue:532 src/views/website/EditView.vue:539 +msgid "Round Robin (default)" +msgstr "" + +#: src/views/website/EditView.vue:540 +msgid "Least Busy" +msgstr "" + +#: src/views/website/EditView.vue:541 +msgid "By Traffic" +msgstr "" + +#: src/views/website/EditView.vue:546 +#, fuzzy msgid "Keepalive Connections" msgstr "Network Protocol" -#: src/views/website/EditView.vue:556 +#: src/views/website/EditView.vue:584 #, fuzzy msgid "Backend Servers" msgstr "Add Server" -#: src/views/website/EditView.vue:566 +#: src/views/website/EditView.vue:594 msgid "Server address, e.g., 127.0.0.1:8080" msgstr "" -#: src/views/website/EditView.vue:580 +#: src/views/website/EditView.vue:608 msgid "Options, e.g., weight=5 backup" msgstr "" -#: src/views/website/EditView.vue:606 +#: src/views/website/EditView.vue:634 #, fuzzy msgid "No upstreams configured" msgstr "Not configured" -#: src/views/website/EditView.vue:615 +#: src/views/website/EditView.vue:643 #, fuzzy msgid "Proxies" msgstr "Proxy Address" -#: src/views/website/EditView.vue:633 +#: src/views/website/EditView.vue:661 #, fuzzy msgid "Rule" msgstr "Add Rule" -#: src/views/website/EditView.vue:641 +#: src/views/website/EditView.vue:669 msgid "Match Type" msgstr "Match Type" -#: src/views/website/EditView.vue:648 +#: src/views/website/EditView.vue:676 msgid "Match Expression" msgstr "Match Expression" -#: src/views/website/EditView.vue:651 +#: src/views/website/EditView.vue:679 msgid "e.g., /, /api, ^/api/v[0-9]+/" msgstr "" -#: src/views/website/EditView.vue:659 +#: src/views/website/EditView.vue:687 msgid "Backend address, e.g., http://127.0.0.1:8080 or http://upstream_name" msgstr "" -#: src/views/website/EditView.vue:666 +#: src/views/website/EditView.vue:694 #, fuzzy msgid "Proxy Host" msgstr "Target" -#: src/views/website/EditView.vue:669 -msgid "Default: $host, or extracted from Proxy Pass" +#: src/views/website/EditView.vue:698 +msgid "Default: $proxy_host, or extracted from Proxy Pass" msgstr "" -#: src/views/website/EditView.vue:672 +#: src/views/website/EditView.vue:702 msgid "Proxy SNI" msgstr "" -#: src/views/website/EditView.vue:675 +#: src/views/website/EditView.vue:705 msgid "Optional, for HTTPS backends" msgstr "" -#: src/views/website/EditView.vue:678 +#: src/views/website/EditView.vue:708 msgid "Enable Cache" msgstr "Enable Cache" -#: src/views/website/EditView.vue:681 +#: src/views/website/EditView.vue:711 #, fuzzy msgid "Enable Buffering" msgstr "Disable Buffer" -#: src/views/website/EditView.vue:712 +#: src/views/website/EditView.vue:742 #, fuzzy msgid "Response Content Replacement" msgstr "Content Replacement" -#: src/views/website/EditView.vue:722 +#: src/views/website/EditView.vue:752 #, fuzzy msgid "Original content" msgstr "Target content" -#: src/views/website/EditView.vue:738 +#: src/views/website/EditView.vue:768 msgid "Replacement content" msgstr "Replacement content" -#: src/views/website/EditView.vue:762 +#: src/views/website/EditView.vue:792 #, fuzzy msgid "Add Replacement Rule" msgstr "Replacement content" -#: src/views/website/EditView.vue:772 +#: src/views/website/EditView.vue:802 #, fuzzy msgid "No proxy rules configured" msgstr "Not configured" -#: src/views/website/EditView.vue:777 +#: src/views/website/EditView.vue:807 #, fuzzy msgid "Add Proxy Rule" msgstr "Add Rule" -#: src/views/website/EditView.vue:784 +#: src/views/website/EditView.vue:814 msgid "Certificate Information" msgstr "Certificate Information" -#: src/views/website/EditView.vue:786 +#: src/views/website/EditView.vue:816 msgid "Certificate Validity" msgstr "Certificate Validity" -#: src/views/website/EditView.vue:800 +#: src/views/website/EditView.vue:830 msgid "Domains" msgstr "Domains" -#: src/views/website/EditView.vue:815 +#: src/views/website/EditView.vue:845 msgid "Main Switch" msgstr "Main Switch" -#: src/views/website/EditView.vue:821 +#: src/views/website/EditView.vue:851 msgid "Use Existing Certificate" msgstr "Use Existing Certificate" -#: src/views/website/EditView.vue:835 +#: src/views/website/EditView.vue:865 msgid "HTTP Redirect" msgstr "HTTP Redirect" -#: src/views/website/EditView.vue:838 +#: src/views/website/EditView.vue:868 msgid "OCSP Stapling" msgstr "OCSP Stapling" -#: src/views/website/EditView.vue:843 +#: src/views/website/EditView.vue:873 #, fuzzy msgid "TLS Version" msgstr "Version" -#: src/views/website/EditView.vue:855 +#: src/views/website/EditView.vue:885 msgid "Cipher Suites" msgstr "" -#: src/views/website/EditView.vue:859 +#: src/views/website/EditView.vue:889 msgid "Enter the cipher suite, leave blank to reset to default" msgstr "" -#: src/views/website/EditView.vue:883 +#: src/views/website/EditView.vue:913 msgid "Rewrite" msgstr "Rewrite" -#: src/views/website/EditView.vue:886 +#: src/views/website/EditView.vue:916 msgid "Presets" msgstr "Presets" -#: src/views/website/EditView.vue:898 +#: src/views/website/EditView.vue:928 +#, fuzzy +msgid "Custom Configs" +msgstr "Custom Logo" + +#: src/views/website/EditView.vue:946 +#, fuzzy +msgid "Config" +msgstr "Configure" + +#: src/views/website/EditView.vue:955 +msgid "Config name (letters, numbers, underscore, hyphen)" +msgstr "" + +#: src/views/website/EditView.vue:963 +#, fuzzy +msgid "Content" +msgstr "Script Content" + +#: src/views/website/EditView.vue:977 +#, fuzzy +msgid "No custom configs" +msgstr "Not configured" + +#: src/views/website/EditView.vue:982 +#, fuzzy +msgid "Add Custom Config" +msgstr "Custom Logo" + +#: src/views/website/EditView.vue:986 msgid "Access Log" msgstr "Access Log" -#: src/views/website/EditView.vue:902 src/views/website/EditView.vue:922 +#: src/views/website/EditView.vue:990 src/views/website/EditView.vue:1002 msgid "All logs can be viewed by downloading the file" msgstr "All logs can be viewed by downloading the file" -#: src/views/website/EditView.vue:904 src/views/website/EditView.vue:924 +#: src/views/website/EditView.vue:992 src/views/website/EditView.vue:1004 msgid "view" msgstr "view" -#: src/views/website/EditView.vue:909 -msgid "Clear Logs" -msgstr "Clear Logs" - -#: src/views/website/EditView.vue:918 +#: src/views/website/EditView.vue:998 msgid "Error Log" msgstr "Error Log" -#: src/views/website/EditView.vue:942 +#: src/views/website/EditView.vue:1021 +msgid "Clear Logs" +msgstr "Clear Logs" + +#: src/views/website/EditView.vue:1034 msgid "One-click Certificate Issuance" msgstr "One-click Certificate Issuance" -#: src/views/website/EditView.vue:947 +#: src/views/website/EditView.vue:1039 msgid "Reset Configuration" msgstr "Reset Configuration" -#: src/views/website/EditView.vue:950 +#: src/views/website/EditView.vue:1042 msgid "Are you sure you want to reset the configuration?" msgstr "Are you sure you want to reset the configuration?" @@ -7376,10 +7544,6 @@ msgstr "" #~ "Before updating apps, it is strongly recommended to backup/snapshot " #~ "first, so you can roll back immediately if there are any issues!" -#, fuzzy -#~ msgid "Compose Templates" -#~ msgstr "Compose Name" - #, fuzzy #~ msgid "Installed" #~ msgstr "Install" diff --git a/web/src/locales/frontend.pot b/web/src/locales/frontend.pot index 1ef4bbcf..7f7f39a1 100644 --- a/web/src/locales/frontend.pot +++ b/web/src/locales/frontend.pot @@ -153,13 +153,13 @@ msgstr "" #: src/components/common/CronSelector.vue:170 #: src/views/apps/nginx/NginxIndex.vue:745 -#: src/views/website/EditView.vue:345 +#: src/views/website/EditView.vue:346 msgid "Minutes" msgstr "" #: src/components/common/CronSelector.vue:181 #: src/views/apps/nginx/NginxIndex.vue:746 -#: src/views/website/EditView.vue:346 +#: src/views/website/EditView.vue:347 msgid "Hours" msgstr "" @@ -241,12 +241,13 @@ msgstr "" #: src/views/environment/PHPView.vue:154 #: src/views/environment/PHPView.vue:160 #: src/views/project/EditModal.vue:157 -#: src/views/setting/IndexView.vue:55 -#: src/views/toolbox/SystemView.vue:51 -#: src/views/toolbox/SystemView.vue:57 -#: src/views/toolbox/SystemView.vue:66 -#: src/views/toolbox/SystemView.vue:75 -#: src/views/website/EditView.vue:123 +#: src/views/setting/IndexView.vue:56 +#: src/views/toolbox/SystemView.vue:62 +#: src/views/toolbox/SystemView.vue:68 +#: src/views/toolbox/SystemView.vue:77 +#: src/views/toolbox/SystemView.vue:86 +#: src/views/toolbox/SystemView.vue:123 +#: src/views/website/EditView.vue:124 msgid "Saved successfully" msgstr "" @@ -276,20 +277,20 @@ msgstr "" #: src/views/database/CreateServerModal.vue:55 #: src/views/database/ServerList.vue:39 #: src/views/database/UpdateServerModal.vue:55 -#: src/views/file/ListView.vue:1187 +#: src/views/file/ListView.vue:1267 #: src/views/file/PropertyModal.vue:27 -#: src/views/file/ToolBar.vue:222 -#: src/views/file/ToolBar.vue:313 -#: src/views/project/ListView.vue:31 +#: src/views/file/ToolBar.vue:202 +#: src/views/project/ListView.vue:34 #: src/views/ssh/CreateModal.vue:59 #: src/views/ssh/UpdateModal.vue:65 #: src/views/toolbox/LogView.vue:206 -#: src/views/toolbox/ProcessView.vue:107 -#: src/views/toolbox/ProcessView.vue:386 +#: src/views/toolbox/ProcessView.vue:109 +#: src/views/toolbox/ProcessView.vue:388 #: src/views/toolbox/WebHookView.vue:33 #: src/views/toolbox/WebHookView.vue:332 #: src/views/toolbox/WebHookView.vue:367 #: src/views/website/CreateModal.vue:123 +#: src/views/website/EditView.vue:951 msgid "Name" msgstr "" @@ -298,48 +299,49 @@ msgid "Permissions" msgstr "" #: src/components/common/PathSelector.vue:100 -#: src/views/file/ListView.vue:1198 +#: src/views/file/ListView.vue:1278 msgid "Owner / Group" msgstr "" #: src/components/common/PathSelector.vue:112 #: src/views/backup/ListView.vue:42 #: src/views/container/ImageView.vue:74 -#: src/views/file/ListView.vue:1194 +#: src/views/file/ListView.vue:1274 #: src/views/file/PropertyModal.vue:39 -#: src/views/file/ToolBar.vue:223 +#: src/views/file/ToolBar.vue:203 #: src/views/toolbox/DiskView.vue:275 #: src/views/toolbox/LogView.vue:207 msgid "Size" msgstr "" #: src/components/common/PathSelector.vue:147 -#: src/views/file/ListView.vue:1287 +#: src/views/file/ListView.vue:1414 msgid "Calculate" msgstr "" #: src/components/common/PathSelector.vue:152 -#: src/views/file/ListView.vue:1203 +#: src/views/file/ListView.vue:1283 #: src/views/file/PropertyModal.vue:51 -#: src/views/file/ToolBar.vue:224 +#: src/views/file/ToolBar.vue:204 msgid "Modification Time" msgstr "" #: src/components/common/PathSelector.vue:186 -#: src/views/file/ListView.vue:1060 +#: src/views/file/ListView.vue:1138 #: src/views/file/PathInput.vue:30 msgid "Invalid path" msgstr "" #: src/components/common/PathSelector.vue:246 -#: src/views/file/ListView.vue:575 -#: src/views/file/ToolBar.vue:43 -#: src/views/file/ToolBar.vue:57 +#: src/views/file/ListView.vue:131 +#: src/views/file/ListView.vue:653 +#: src/views/file/ToolBar.vue:37 msgid "Invalid name" msgstr "" #: src/components/common/PathSelector.vue:254 #: src/components/file-editor/FileTree.vue:284 +#: src/views/app/TemplateDeployModal.vue:79 #: src/views/backup/ListView.vue:122 #: src/views/cert/CreateAccountModal.vue:52 #: src/views/cert/CreateCertModal.vue:50 @@ -351,7 +353,7 @@ msgstr "" #: src/views/container/VolumeView.vue:137 #: src/views/database/CreateDatabaseModal.vue:28 #: src/views/database/CreateUserModal.vue:28 -#: src/views/file/ToolBar.vue:51 +#: src/views/file/ListView.vue:140 #: src/views/firewall/CreateForwardModal.vue:41 #: src/views/setting/CreateModal.vue:19 #: src/views/setting/TokenModal.vue:125 @@ -363,19 +365,19 @@ msgstr "" #: src/components/common/PathSelector.vue:312 #: src/views/file/PropertyModal.vue:34 -#: src/views/file/ToolBar.vue:246 +#: src/views/file/ToolBar.vue:226 msgid "File" msgstr "" #: src/components/common/PathSelector.vue:313 -#: src/views/file/ToolBar.vue:247 +#: src/views/file/ToolBar.vue:227 msgid "Folder" msgstr "" #: src/components/common/PathSelector.vue:317 #: src/components/common/PathSelector.vue:380 #: src/views/container/ContainerCreate.vue:539 -#: src/views/project/CreateModal.vue:215 +#: src/views/project/CreateModal.vue:219 #: src/views/setting/TokenModal.vue:266 #: src/views/toolbox/WebHookView.vue:352 #: src/views/website/BulkCreateModal.vue:129 @@ -419,8 +421,7 @@ msgstr "" #: src/views/database/CreateUserModal.vue:125 #: src/views/database/UpdateServerModal.vue:112 #: src/views/database/UpdateUserModal.vue:79 -#: src/views/file/ToolBar.vue:317 -#: src/views/file/ToolBar.vue:338 +#: src/views/file/ToolBar.vue:300 #: src/views/firewall/CreateForwardModal.vue:88 #: src/views/firewall/CreateIpModal.vue:121 #: src/views/firewall/CreateModal.vue:155 @@ -476,8 +477,8 @@ msgstr "" #: src/views/toolbox/DiskView.vue:635 #: src/views/toolbox/DiskView.vue:640 #: src/views/toolbox/DiskView.vue:663 -#: src/views/toolbox/ProcessView.vue:234 -#: src/views/toolbox/ProcessView.vue:239 +#: src/views/toolbox/ProcessView.vue:236 +#: src/views/toolbox/ProcessView.vue:241 msgid "Confirm" msgstr "" @@ -490,16 +491,17 @@ msgstr "" #: src/components/file-editor/EditorToolbar.vue:101 #: src/components/file-editor/FileTree.vue:603 #: src/layout/header/components/UserAvatar.vue:30 +#: src/views/app/TemplateDeployModal.vue:227 #: src/views/container/ContainerCreate.vue:536 #: src/views/container/ImagePullModal.vue:184 #: src/views/container/ImagePullModal.vue:198 #: src/views/container/ImageView.vue:351 #: src/views/container/ImageView.vue:366 -#: src/views/file/ListView.vue:166 -#: src/views/file/ListView.vue:588 -#: src/views/file/ListView.vue:712 -#: src/views/file/ToolBar.vue:145 -#: src/views/file/ToolBar.vue:280 +#: src/views/file/ListView.vue:244 +#: src/views/file/ListView.vue:666 +#: src/views/file/ListView.vue:790 +#: src/views/file/ToolBar.vue:125 +#: src/views/file/ToolBar.vue:260 #: src/views/home/UpdateView.vue:27 #: src/views/project/EditModal.vue:572 #: src/views/toolbox/DiskView.vue:406 @@ -514,7 +516,7 @@ msgstr "" #: src/views/toolbox/DiskView.vue:617 #: src/views/toolbox/DiskView.vue:641 #: src/views/toolbox/DiskView.vue:664 -#: src/views/toolbox/ProcessView.vue:240 +#: src/views/toolbox/ProcessView.vue:242 msgid "Cancel" msgstr "" @@ -522,28 +524,33 @@ msgstr "" #: src/locales/menu.ts:19 #: src/views/container/ContainerView.vue:124 #: src/views/container/ContainerView.vue:637 -#: src/views/file/ListView.vue:230 -#: src/views/file/ListView.vue:829 -#: src/views/file/ToolBar.vue:255 +#: src/views/file/ListView.vue:308 +#: src/views/file/ListView.vue:907 +#: src/views/file/ToolBar.vue:235 msgid "Terminal" msgstr "" -#: src/components/common/RealtimeLog.vue:29 +#: src/components/common/RealtimeLog.vue:34 msgid "Path or service cannot be empty" msgstr "" -#: src/components/common/RealtimeLog.vue:44 -#: src/components/common/RealtimeLogModal.vue:33 +#: src/components/common/RealtimeLog.vue:49 +#: src/components/common/RealtimeLogModal.vue:38 msgid "Failed to get log stream" msgstr "" -#: src/components/common/RealtimeLogModal.vue:67 +#: src/components/common/RealtimeLog.vue:91 +#: src/components/common/RealtimeLogModal.vue:81 +msgid "No logs available" +msgstr "" + +#: src/components/common/RealtimeLogModal.vue:72 #: src/locales/menu.ts:15 #: src/views/apps/supervisor/IndexView.vue:89 #: src/views/container/ContainerView.vue:137 #: src/views/container/ContainerView.vue:605 -#: src/views/project/ListView.vue:95 -#: src/views/project/ListView.vue:233 +#: src/views/project/ListView.vue:111 +#: src/views/project/ListView.vue:249 #: src/views/task/CronView.vue:116 #: src/views/task/TaskView.vue:74 msgid "Logs" @@ -560,7 +567,7 @@ msgid "Loading..." msgstr "" #: src/components/common/ServiceStatus.vue:26 -#: src/views/project/ListView.vue:60 +#: src/views/project/ListView.vue:63 #: src/views/task/TaskView.vue:33 #: src/views/toolbox/ProcessView.vue:48 #: src/views/toolbox/ProcessView.vue:80 @@ -569,9 +576,9 @@ msgid "Running" msgstr "" #: src/components/common/ServiceStatus.vue:26 -#: src/views/project/ListView.vue:60 +#: src/views/project/ListView.vue:63 #: src/views/toolbox/ProcessView.vue:50 -#: src/views/toolbox/ProcessView.vue:84 +#: src/views/toolbox/ProcessView.vue:86 msgid "Stopped" msgstr "" @@ -581,7 +588,7 @@ msgstr "" #: src/components/common/ServiceStatus.vue:48 #: src/views/apps/supervisor/IndexView.vue:240 -#: src/views/project/ListView.vue:152 +#: src/views/project/ListView.vue:168 #: src/views/website/ListView.vue:228 msgid "Started successfully" msgstr "" @@ -593,7 +600,7 @@ msgstr "" #: src/components/common/ServiceStatus.vue:63 #: src/views/apps/supervisor/IndexView.vue:247 -#: src/views/project/ListView.vue:147 +#: src/views/project/ListView.vue:163 #: src/views/website/ListView.vue:230 msgid "Stopped successfully" msgstr "" @@ -661,7 +668,7 @@ msgstr "" #: src/views/container/ComposeView.vue:173 #: src/views/container/ContainerView.vue:161 #: src/views/container/ContainerView.vue:558 -#: src/views/project/ListView.vue:85 +#: src/views/project/ListView.vue:101 msgid "Start" msgstr "" @@ -670,7 +677,7 @@ msgstr "" #: src/views/container/ComposeView.vue:212 #: src/views/container/ContainerView.vue:166 #: src/views/container/ContainerView.vue:561 -#: src/views/project/ListView.vue:85 +#: src/views/project/ListView.vue:101 msgid "Stop" msgstr "" @@ -743,7 +750,7 @@ msgid "Encoding" msgstr "" #: src/components/file-editor/EditorStatusBar.vue:144 -#: src/views/setting/SettingBase.vue:104 +#: src/views/setting/SettingBase.vue:117 msgid "Language" msgstr "" @@ -779,7 +786,7 @@ msgstr "" #: src/views/log/DatabaseLog.vue:108 #: src/views/log/HttpLog.vue:133 #: src/views/log/OperationLog.vue:106 -#: src/views/toolbox/ProcessView.vue:327 +#: src/views/toolbox/ProcessView.vue:329 msgid "Refresh" msgstr "" @@ -817,15 +824,16 @@ msgstr "" #: src/views/environment/PHPView.vue:232 #: src/views/environment/PHPView.vue:250 #: src/views/project/EditModal.vue:575 -#: src/views/setting/IndexView.vue:106 +#: src/views/setting/IndexView.vue:107 #: src/views/task/CronView.vue:259 #: src/views/toolbox/SshView.vue:239 -#: src/views/toolbox/SystemView.vue:110 -#: src/views/toolbox/SystemView.vue:134 #: src/views/toolbox/SystemView.vue:152 -#: src/views/toolbox/SystemView.vue:178 +#: src/views/toolbox/SystemView.vue:176 +#: src/views/toolbox/SystemView.vue:194 +#: src/views/toolbox/SystemView.vue:232 +#: src/views/toolbox/SystemView.vue:304 #: src/views/toolbox/WebHookView.vue:390 -#: src/views/website/EditView.vue:932 +#: src/views/website/EditView.vue:1016 msgid "Save" msgstr "" @@ -881,7 +889,7 @@ msgid "Editor Settings" msgstr "" #: src/components/file-editor/FileEditorView.vue:145 -#: src/views/setting/IndexView.vue:90 +#: src/views/setting/IndexView.vue:91 msgid "Basic" msgstr "" @@ -976,6 +984,7 @@ msgstr "" #: src/components/file-editor/FileEditorView.vue:211 #: src/views/app/AppView.vue:229 #: src/views/app/EnvironmentView.vue:217 +#: src/views/app/TemplateView.vue:59 #: src/views/firewall/RuleView.vue:150 #: src/views/project/IndexView.vue:21 msgid "All" @@ -1079,18 +1088,22 @@ msgid "Failed to create" msgstr "" #: src/components/file-editor/FileTree.vue:378 +#: src/views/file/ListView.vue:1304 +#: src/views/file/ListView.vue:1322 msgid "Folder name" msgstr "" #: src/components/file-editor/FileTree.vue:378 +#: src/views/file/ListView.vue:1304 +#: src/views/file/ListView.vue:1322 msgid "File name" msgstr "" #: src/components/file-editor/FileTree.vue:477 #: src/views/container/ContainerView.vue:153 #: src/views/container/ContainerView.vue:616 -#: src/views/file/ListView.vue:228 -#: src/views/file/ListView.vue:1350 +#: src/views/file/ListView.vue:306 +#: src/views/file/ListView.vue:1477 msgid "Rename" msgstr "" @@ -1122,15 +1135,15 @@ msgstr "" #: src/views/database/ServerList.vue:214 #: src/views/database/UserList.vue:189 #: src/views/environment/PHPView.vue:106 -#: src/views/file/ListView.vue:185 -#: src/views/file/ListView.vue:235 -#: src/views/file/ListView.vue:1355 -#: src/views/file/ToolBar.vue:293 +#: src/views/file/ListView.vue:263 +#: src/views/file/ListView.vue:313 +#: src/views/file/ListView.vue:1482 +#: src/views/file/ToolBar.vue:273 #: src/views/firewall/ForwardView.vue:103 #: src/views/firewall/IpRuleView.vue:145 #: src/views/firewall/RuleView.vue:182 -#: src/views/project/ListView.vue:124 -#: src/views/project/ListView.vue:202 +#: src/views/project/ListView.vue:140 +#: src/views/project/ListView.vue:218 #: src/views/setting/SettingUser.vue:139 #: src/views/setting/TokenModal.vue:91 #: src/views/ssh/IndexView.vue:91 @@ -1143,8 +1156,8 @@ msgid "Delete" msgstr "" #: src/components/file-editor/FileTree.vue:481 -#: src/views/file/ListView.vue:219 -#: src/views/file/ListView.vue:1345 +#: src/views/file/ListView.vue:297 +#: src/views/file/ListView.vue:1472 #: src/views/monitor/IndexView.vue:498 #: src/views/toolbox/SshView.vue:301 msgid "Download" @@ -1161,7 +1174,7 @@ msgstr "" #: src/components/file-editor/FileTree.vue:601 #: src/views/apps/nginx/NginxIndex.vue:207 #: src/views/apps/nginx/NginxIndex.vue:283 -#: src/views/file/ListView.vue:1358 +#: src/views/file/ListView.vue:1485 msgid "Are you sure you want to delete %{ name }?" msgstr "" @@ -1180,17 +1193,17 @@ msgstr "" #: src/views/database/DatabaseList.vue:125 #: src/views/database/ServerList.vue:238 #: src/views/database/UserList.vue:213 -#: src/views/file/ListView.vue:643 -#: src/views/file/ListView.vue:663 -#: src/views/file/ToolBar.vue:190 +#: src/views/file/ListView.vue:721 +#: src/views/file/ListView.vue:741 +#: src/views/file/ToolBar.vue:170 #: src/views/firewall/ForwardView.vue:129 #: src/views/firewall/ForwardView.vue:147 #: src/views/firewall/IpRuleView.vue:171 #: src/views/firewall/IpRuleView.vue:189 #: src/views/firewall/RuleView.vue:208 #: src/views/firewall/RuleView.vue:226 -#: src/views/project/ListView.vue:170 -#: src/views/project/ListView.vue:180 +#: src/views/project/ListView.vue:186 +#: src/views/project/ListView.vue:196 #: src/views/setting/SettingUser.vue:174 #: src/views/setting/TokenModal.vue:114 #: src/views/task/CronView.vue:191 @@ -1218,8 +1231,7 @@ msgid "New Folder" msgstr "" #: src/components/file-editor/FileTree.vue:707 -#: src/views/file/ToolBar.vue:251 -#: src/views/file/ToolBar.vue:305 +#: src/views/file/ToolBar.vue:231 msgid "New" msgstr "" @@ -1324,7 +1336,7 @@ msgstr "" #: src/views/cert/IndexView.vue:96 #: src/views/cert/UploadCertModal.vue:38 #: src/views/setting/SettingSafe.vue:290 -#: src/views/website/EditView.vue:863 +#: src/views/website/EditView.vue:893 msgid "Certificate" msgstr "" @@ -1438,7 +1450,7 @@ msgstr "" #: src/views/app/EnvironmentView.vue:33 #: src/views/environment/PHPView.vue:48 #: src/views/project/EditModal.vue:188 -#: src/views/project/ListView.vue:38 +#: src/views/project/ListView.vue:41 msgid "Description" msgstr "" @@ -1475,11 +1487,11 @@ msgstr "" #: src/views/database/ServerList.vue:134 #: src/views/database/UserList.vue:151 #: src/views/environment/PHPView.vue:55 -#: src/views/file/ListView.vue:1206 +#: src/views/file/ListView.vue:1286 #: src/views/firewall/ForwardView.vue:79 #: src/views/firewall/IpRuleView.vue:121 #: src/views/firewall/RuleView.vue:158 -#: src/views/project/ListView.vue:72 +#: src/views/project/ListView.vue:88 #: src/views/setting/SettingUser.vue:85 #: src/views/setting/TokenModal.vue:52 #: src/views/task/CronView.vue:98 @@ -1562,6 +1574,75 @@ msgstr "" msgid "Update Cache" msgstr "" +#: src/views/app/TemplateDeployModal.vue:58 +msgid "Please enter compose name" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:128 +msgid "Deploy Template" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:139 +#: src/views/container/ContainerCreate.vue:191 +#: src/views/project/EditModal.vue:177 +#: src/views/website/EditView.vue:462 +msgid "Basic Settings" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:141 +#: src/views/container/ComposeView.vue:361 +msgid "Compose Name" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:146 +msgid "Enter compose name" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:150 +msgid "Deploy Options" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:154 +msgid "Auto Start" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:159 +msgid "Auto Firewall" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:163 +msgid "Automatically allow ports defined in compose" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:176 +#: src/views/apps/minio/IndexView.vue:32 +#: src/views/container/ComposeView.vue:367 +#: src/views/container/ComposeView.vue:393 +#: src/views/container/ContainerCreate.vue:454 +#: src/views/project/EditModal.vue:373 +#: src/views/toolbox/ProcessView.vue:440 +msgid "Environment Variables" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:189 +msgid "Select value" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:219 +msgid "Compose Preview" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:230 +#: src/views/app/TemplateView.vue:94 +#: src/views/cert/CertView.vue:208 +msgid "Deploy" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:238 +#: src/views/container/ComposeView.vue:408 +msgid "Starting Compose" +msgstr "" + #: src/views/app/VersionModal.vue:79 msgid "Channel" msgstr "" @@ -1606,7 +1687,7 @@ msgstr "" #: src/views/apps/supervisor/IndexView.vue:225 #: src/views/environment/PHPView.vue:166 #: src/views/environment/PHPView.vue:172 -#: src/views/website/EditView.vue:168 +#: src/views/website/EditView.vue:169 msgid "Cleared successfully" msgstr "" @@ -1691,10 +1772,10 @@ msgstr "" #: src/views/database/UserList.vue:130 #: src/views/firewall/RuleView.vue:61 #: src/views/log/HttpLog.vue:74 -#: src/views/project/ListView.vue:53 +#: src/views/project/ListView.vue:56 #: src/views/task/TaskView.vue:22 -#: src/views/toolbox/ProcessView.vue:135 -#: src/views/toolbox/ProcessView.vue:392 +#: src/views/toolbox/ProcessView.vue:137 +#: src/views/toolbox/ProcessView.vue:394 msgid "Status" msgstr "" @@ -1787,7 +1868,7 @@ msgstr "" #: src/views/database/UserList.vue:16 #: src/views/file/PropertyModal.vue:33 #: src/views/log/OperationLog.vue:57 -#: src/views/project/ListView.vue:45 +#: src/views/project/ListView.vue:48 msgid "Type" msgstr "" @@ -1841,7 +1922,7 @@ msgstr "" #: src/views/apps/frp/IndexView.vue:60 #: src/views/apps/frp/IndexView.vue:88 -#: src/views/project/CreateModal.vue:186 +#: src/views/project/CreateModal.vue:190 #: src/views/project/EditModal.vue:232 msgid "Run User" msgstr "" @@ -1854,9 +1935,9 @@ msgstr "" #: src/views/apps/rsync/IndexView.vue:272 #: src/views/apps/rsync/IndexView.vue:326 #: src/views/database/IndexView.vue:28 -#: src/views/setting/IndexView.vue:92 -#: src/views/toolbox/ProcessView.vue:129 -#: src/views/toolbox/ProcessView.vue:389 +#: src/views/setting/IndexView.vue:93 +#: src/views/toolbox/ProcessView.vue:131 +#: src/views/toolbox/ProcessView.vue:391 #: src/views/toolbox/WebHookView.vue:335 #: src/views/toolbox/WebHookView.vue:370 msgid "User" @@ -1880,15 +1961,6 @@ msgstr "" msgid "Service Configuration" msgstr "" -#: src/views/apps/minio/IndexView.vue:32 -#: src/views/container/ComposeView.vue:367 -#: src/views/container/ComposeView.vue:393 -#: src/views/container/ContainerCreate.vue:454 -#: src/views/project/EditModal.vue:373 -#: src/views/toolbox/ProcessView.vue:438 -msgid "Environment Variables" -msgstr "" - #: src/views/apps/minio/IndexView.vue:36 msgid "This is modifying the Minio environment variable file /etc/default/minio. If you do not understand the meaning of each parameter, please do not modify it arbitrarily!" msgstr "" @@ -1915,10 +1987,10 @@ msgstr "" #: src/views/apps/mysql/MysqlIndex.vue:72 #: src/views/database/ServerList.vue:75 #: src/views/database/UserList.vue:69 -#: src/views/file/ListView.vue:718 -#: src/views/file/ListView.vue:738 +#: src/views/file/ListView.vue:796 +#: src/views/file/ListView.vue:816 +#: src/views/file/ToolBar.vue:131 #: src/views/file/ToolBar.vue:151 -#: src/views/file/ToolBar.vue:171 #: src/views/setting/TokenModal.vue:163 msgid "Copied successfully" msgstr "" @@ -1931,10 +2003,10 @@ msgstr "" #: src/views/apps/mysql/MysqlIndex.vue:88 #: src/views/database/ServerList.vue:79 #: src/views/database/UserList.vue:73 -#: src/views/file/ListView.vue:181 -#: src/views/file/ListView.vue:215 -#: src/views/file/ListView.vue:814 -#: src/views/file/ToolBar.vue:286 +#: src/views/file/ListView.vue:259 +#: src/views/file/ListView.vue:293 +#: src/views/file/ListView.vue:892 +#: src/views/file/ToolBar.vue:266 msgid "Copy" msgstr "" @@ -1969,12 +2041,12 @@ msgstr "" #: src/views/apps/nginx/NginxIndex.vue:169 #: src/views/apps/nginx/NginxIndex.vue:588 -#: src/views/website/EditView.vue:655 +#: src/views/website/EditView.vue:683 msgid "Proxy Pass" msgstr "" #: src/views/apps/nginx/NginxIndex.vue:180 -#: src/views/file/ListView.vue:657 +#: src/views/file/ListView.vue:735 #: src/views/file/PropertyModal.vue:55 #: src/views/file/PropertyModal.vue:59 #: src/views/toolbox/WebHookView.vue:81 @@ -1982,7 +2054,7 @@ msgid "Yes" msgstr "" #: src/views/apps/nginx/NginxIndex.vue:180 -#: src/views/file/ListView.vue:658 +#: src/views/file/ListView.vue:736 #: src/views/file/PropertyModal.vue:55 #: src/views/file/PropertyModal.vue:59 #: src/views/toolbox/WebHookView.vue:81 @@ -1992,9 +2064,9 @@ msgstr "" #: src/views/apps/nginx/NginxIndex.vue:197 #: src/views/apps/nginx/NginxIndex.vue:273 #: src/views/container/ComposeView.vue:122 -#: src/views/file/ListView.vue:206 -#: src/views/file/ListView.vue:1335 -#: src/views/project/ListView.vue:105 +#: src/views/file/ListView.vue:284 +#: src/views/file/ListView.vue:1462 +#: src/views/project/ListView.vue:121 #: src/views/ssh/IndexView.vue:69 #: src/views/task/CronView.vue:128 #: src/views/toolbox/WebHookView.vue:158 @@ -2059,17 +2131,17 @@ msgstr "" #: src/views/apps/nginx/NginxIndex.vue:503 #: src/views/database/CreateServerModal.vue:47 #: src/views/database/IndexView.vue:49 -#: src/views/website/EditView.vue:595 +#: src/views/website/EditView.vue:623 msgid "Add Server" msgstr "" #: src/views/apps/nginx/NginxIndex.vue:516 -#: src/views/website/EditView.vue:487 +#: src/views/website/EditView.vue:515 msgid "Upstream" msgstr "" #: src/views/apps/nginx/NginxIndex.vue:520 -#: src/views/website/EditView.vue:611 +#: src/views/website/EditView.vue:639 msgid "Add Upstream" msgstr "" @@ -2127,7 +2199,7 @@ msgid "e.g. /path/to/key.pem" msgstr "" #: src/views/apps/nginx/NginxIndex.vue:658 -#: src/views/website/EditView.vue:498 +#: src/views/website/EditView.vue:526 msgid "Load Balancing Algorithm" msgstr "" @@ -2144,6 +2216,7 @@ msgid "Options (optional), e.g. weight=5 backup" msgstr "" #: src/views/apps/nginx/NginxIndex.vue:688 +#: src/views/toolbox/SystemView.vue:297 msgid "Add" msgstr "" @@ -2163,25 +2236,25 @@ msgid "No servers added yet" msgstr "" #: src/views/apps/nginx/NginxIndex.vue:722 -#: src/views/website/EditView.vue:526 -#: src/views/website/EditView.vue:684 +#: src/views/website/EditView.vue:554 +#: src/views/website/EditView.vue:714 msgid "DNS Resolver" msgstr "" #: src/views/apps/nginx/NginxIndex.vue:725 -#: src/views/website/EditView.vue:529 -#: src/views/website/EditView.vue:687 +#: src/views/website/EditView.vue:557 +#: src/views/website/EditView.vue:717 msgid "e.g., 8.8.8.8" msgstr "" #: src/views/apps/nginx/NginxIndex.vue:731 -#: src/views/website/EditView.vue:535 -#: src/views/website/EditView.vue:693 +#: src/views/website/EditView.vue:563 +#: src/views/website/EditView.vue:723 msgid "Resolver Timeout" msgstr "" #: src/views/apps/nginx/NginxIndex.vue:744 -#: src/views/website/EditView.vue:344 +#: src/views/website/EditView.vue:345 msgid "Seconds" msgstr "" @@ -2297,7 +2370,7 @@ msgstr "" #: src/views/database/CreateUserModal.vue:55 #: src/views/database/IndexView.vue:42 #: src/views/setting/CreateModal.vue:32 -#: src/views/setting/IndexView.vue:98 +#: src/views/setting/IndexView.vue:99 msgid "Create User" msgstr "" @@ -2341,7 +2414,7 @@ msgstr "" #: src/views/apps/rsync/IndexView.vue:318 #: src/views/container/ComposeView.vue:64 #: src/views/file/PropertyModal.vue:34 -#: src/views/project/ListView.vue:65 +#: src/views/project/ListView.vue:68 #: src/views/website/CreateModal.vue:227 #: src/views/website/ListView.vue:41 msgid "Directory" @@ -2365,7 +2438,7 @@ msgstr "" #: src/views/database/UserList.vue:80 #: src/views/ssh/CreateModal.vue:64 #: src/views/ssh/UpdateModal.vue:70 -#: src/views/toolbox/SystemView.vue:139 +#: src/views/toolbox/SystemView.vue:181 msgid "Host" msgstr "" @@ -2521,7 +2594,7 @@ msgid "Daemon Logs" msgstr "" #: src/views/apps/supervisor/IndexView.vue:381 -#: src/views/project/CreateModal.vue:204 +#: src/views/project/CreateModal.vue:208 #: src/views/project/EditModal.vue:250 msgid "Start Command" msgstr "" @@ -2532,7 +2605,7 @@ msgstr "" #: src/views/apps/supervisor/IndexView.vue:389 #: src/views/project/EditModal.vue:214 -#: src/views/toolbox/ProcessView.vue:424 +#: src/views/toolbox/ProcessView.vue:426 msgid "Working Directory" msgstr "" @@ -2738,12 +2811,12 @@ msgstr "" #: src/views/cert/CreateCertModal.vue:74 #: src/views/cert/ObtainModal.vue:57 #: src/views/website/CreateModal.vue:135 -#: src/views/website/EditView.vue:393 +#: src/views/website/EditView.vue:421 msgid "Domain" msgstr "" #: src/views/cert/CertView.vue:108 -#: src/views/file/ToolBar.vue:253 +#: src/views/file/ToolBar.vue:233 #: src/views/file/UploadModal.vue:38 #: src/views/monitor/IndexView.vue:492 msgid "Upload" @@ -2754,7 +2827,7 @@ msgid "Associated Account" msgstr "" #: src/views/cert/CertView.vue:129 -#: src/views/website/EditView.vue:794 +#: src/views/website/EditView.vue:824 msgid "Issuer" msgstr "" @@ -2778,14 +2851,10 @@ msgstr "" msgid "Issue" msgstr "" -#: src/views/cert/CertView.vue:208 -msgid "Deploy" -msgstr "" - #: src/views/cert/CertView.vue:220 #: src/views/cert/ObtainModal.vue:24 #: src/views/cert/ObtainModal.vue:81 -#: src/views/website/EditView.vue:141 +#: src/views/website/EditView.vue:142 msgid "Please wait..." msgstr "" @@ -2844,7 +2913,7 @@ msgstr "" #: src/views/cert/CertView.vue:491 #: src/views/cert/UploadCertModal.vue:42 -#: src/views/website/EditView.vue:867 +#: src/views/website/EditView.vue:897 msgid "Enter the content of the PEM certificate file" msgstr "" @@ -2856,13 +2925,13 @@ msgstr "" #: src/views/ssh/CreateModal.vue:91 #: src/views/ssh/UpdateModal.vue:86 #: src/views/ssh/UpdateModal.vue:97 -#: src/views/website/EditView.vue:871 +#: src/views/website/EditView.vue:901 msgid "Private Key" msgstr "" #: src/views/cert/CertView.vue:503 #: src/views/cert/UploadCertModal.vue:50 -#: src/views/website/EditView.vue:875 +#: src/views/website/EditView.vue:905 msgid "Enter the content of the KEY private key file" msgstr "" @@ -3110,10 +3179,6 @@ msgstr "" msgid "Are you sure you want to delete the selected composes?" msgstr "" -#: src/views/container/ComposeView.vue:361 -msgid "Compose Name" -msgstr "" - #: src/views/container/ComposeView.vue:364 #: src/views/container/ComposeView.vue:390 #: src/views/container/IndexView.vue:23 @@ -3134,10 +3199,6 @@ msgstr "" msgid "Edit Compose" msgstr "" -#: src/views/container/ComposeView.vue:408 -msgid "Starting Compose" -msgstr "" - #: src/views/container/ContainerCreate.vue:52 msgid "Always" msgstr "" @@ -3168,12 +3229,6 @@ msgstr "" msgid "Create Container" msgstr "" -#: src/views/container/ContainerCreate.vue:191 -#: src/views/project/EditModal.vue:177 -#: src/views/website/EditView.vue:434 -msgid "Basic Settings" -msgstr "" - #: src/views/container/ContainerCreate.vue:193 #: src/views/container/ContainerView.vue:43 msgid "Container Name" @@ -3333,7 +3388,7 @@ msgstr "" #: src/views/monitor/IndexView.vue:451 #: src/views/monitor/IndexView.vue:728 #: src/views/toolbox/BenchmarkView.vue:177 -#: src/views/toolbox/ProcessView.vue:153 +#: src/views/toolbox/ProcessView.vue:155 msgid "Memory" msgstr "" @@ -3429,7 +3484,7 @@ msgid "Resume" msgstr "" #: src/views/container/ContainerView.vue:231 -#: src/views/file/ListView.vue:1366 +#: src/views/file/ListView.vue:1493 msgid "More" msgstr "" @@ -3589,6 +3644,7 @@ msgstr "" #: src/views/container/NetworkView.vue:59 #: src/views/container/VolumeView.vue:40 +#: src/views/website/EditView.vue:959 msgid "Scope" msgstr "" @@ -3757,7 +3813,7 @@ msgstr "" #: src/views/database/UpdateServerModal.vue:76 #: src/views/firewall/ForwardView.vue:31 #: src/views/firewall/RuleView.vue:48 -#: src/views/setting/SettingBase.vue:110 +#: src/views/setting/SettingBase.vue:123 #: src/views/ssh/CreateModal.vue:70 #: src/views/ssh/UpdateModal.vue:76 #: src/views/website/CreateModal.vue:146 @@ -3823,7 +3879,7 @@ msgid "Invalid" msgstr "" #: src/views/database/ServerList.vue:146 -#: src/views/toolbox/SystemView.vue:81 +#: src/views/toolbox/SystemView.vue:92 msgid "Synchronized successfully" msgstr "" @@ -3922,11 +3978,11 @@ msgstr "" #: src/views/file/CompressModal.vue:73 #: src/views/file/CompressModal.vue:105 -#: src/views/file/ListView.vue:183 -#: src/views/file/ListView.vue:219 -#: src/views/file/ListView.vue:817 -#: src/views/file/ListView.vue:1329 -#: src/views/file/ToolBar.vue:288 +#: src/views/file/ListView.vue:261 +#: src/views/file/ListView.vue:297 +#: src/views/file/ListView.vue:895 +#: src/views/file/ListView.vue:1456 +#: src/views/file/ToolBar.vue:268 msgid "Compress" msgstr "" @@ -3946,161 +4002,161 @@ msgstr "" msgid "File Editor" msgstr "" -#: src/views/file/ListView.vue:160 -#: src/views/file/ListView.vue:585 -#: src/views/file/ListView.vue:653 -#: src/views/file/ListView.vue:701 -#: src/views/file/ToolBar.vue:134 +#: src/views/file/ListView.vue:238 +#: src/views/file/ListView.vue:663 +#: src/views/file/ListView.vue:731 +#: src/views/file/ListView.vue:779 +#: src/views/file/ToolBar.vue:114 msgid "Warning" msgstr "" -#: src/views/file/ListView.vue:161 +#: src/views/file/ListView.vue:239 msgid "%{ name } has immutable attribute. The panel will temporarily remove the immutable attribute, perform the operation, and then restore the immutable attribute. Do you want to continue?" msgstr "" -#: src/views/file/ListView.vue:165 +#: src/views/file/ListView.vue:243 msgid "Continue" msgstr "" -#: src/views/file/ListView.vue:182 -#: src/views/file/ListView.vue:216 -#: src/views/file/ListView.vue:815 -#: src/views/file/ToolBar.vue:287 +#: src/views/file/ListView.vue:260 +#: src/views/file/ListView.vue:294 +#: src/views/file/ListView.vue:893 +#: src/views/file/ToolBar.vue:267 msgid "Move" msgstr "" -#: src/views/file/ListView.vue:184 -#: src/views/file/ListView.vue:217 -#: src/views/file/ListView.vue:816 -#: src/views/file/ListView.vue:1197 +#: src/views/file/ListView.vue:262 +#: src/views/file/ListView.vue:295 +#: src/views/file/ListView.vue:894 +#: src/views/file/ListView.vue:1277 #: src/views/file/PermissionModal.vue:144 #: src/views/file/PropertyModal.vue:42 -#: src/views/file/ToolBar.vue:289 +#: src/views/file/ToolBar.vue:269 msgid "Permission" msgstr "" -#: src/views/file/ListView.vue:189 -#: src/views/file/ListView.vue:239 -#: src/views/file/ToolBar.vue:283 +#: src/views/file/ListView.vue:267 +#: src/views/file/ListView.vue:317 +#: src/views/file/ToolBar.vue:263 msgid "Paste" msgstr "" -#: src/views/file/ListView.vue:201 -#: src/views/file/ListView.vue:1316 +#: src/views/file/ListView.vue:279 +#: src/views/file/ListView.vue:1443 msgid "Open" msgstr "" -#: src/views/file/ListView.vue:203 -#: src/views/file/ListView.vue:1335 +#: src/views/file/ListView.vue:281 +#: src/views/file/ListView.vue:1462 msgid "Preview" msgstr "" -#: src/views/file/ListView.vue:205 -#: src/views/file/ListView.vue:223 -#: src/views/file/ListView.vue:822 -#: src/views/file/ListView.vue:1442 +#: src/views/file/ListView.vue:283 +#: src/views/file/ListView.vue:301 +#: src/views/file/ListView.vue:900 +#: src/views/file/ListView.vue:1569 msgid "Uncompress" msgstr "" -#: src/views/file/ListView.vue:234 -#: src/views/file/ListView.vue:832 +#: src/views/file/ListView.vue:312 +#: src/views/file/ListView.vue:910 #: src/views/file/PropertyModal.vue:11 msgid "Properties" msgstr "" -#: src/views/file/ListView.vue:496 -#: src/views/file/ToolBar.vue:83 -#: src/views/file/ToolBar.vue:100 +#: src/views/file/ListView.vue:574 +#: src/views/file/ToolBar.vue:63 +#: src/views/file/ToolBar.vue:80 msgid "Marked successfully, please navigate to the destination path to paste" msgstr "" -#: src/views/file/ListView.vue:586 +#: src/views/file/ListView.vue:664 msgid "There are items with the same name. Do you want to overwrite?" msgstr "" -#: src/views/file/ListView.vue:587 -#: src/views/file/ListView.vue:711 -#: src/views/file/ToolBar.vue:144 +#: src/views/file/ListView.vue:665 +#: src/views/file/ListView.vue:789 +#: src/views/file/ToolBar.vue:124 msgid "Overwrite" msgstr "" -#: src/views/file/ListView.vue:594 -#: src/views/file/ListView.vue:613 +#: src/views/file/ListView.vue:672 +#: src/views/file/ListView.vue:691 msgid "Renamed %{ source } to %{ target } successfully" msgstr "" -#: src/views/file/ListView.vue:649 +#: src/views/file/ListView.vue:727 msgid "Some files are immutable and cannot be deleted" msgstr "" -#: src/views/file/ListView.vue:654 +#: src/views/file/ListView.vue:732 msgid "Are you sure you want to delete %{count} items?" msgstr "" -#: src/views/file/ListView.vue:673 +#: src/views/file/ListView.vue:751 msgid "Path copied to clipboard" msgstr "" -#: src/views/file/ListView.vue:680 -#: src/views/file/ToolBar.vue:110 +#: src/views/file/ListView.vue:758 +#: src/views/file/ToolBar.vue:90 msgid "Please mark the files/folders to copy or move first" msgstr "" -#: src/views/file/ListView.vue:702 -#: src/views/file/ToolBar.vue:135 +#: src/views/file/ListView.vue:780 +#: src/views/file/ToolBar.vue:115 msgid "There are items with the same name %{ items } Do you want to overwrite?" msgstr "" -#: src/views/file/ListView.vue:724 -#: src/views/file/ListView.vue:744 +#: src/views/file/ListView.vue:802 +#: src/views/file/ListView.vue:822 +#: src/views/file/ToolBar.vue:137 #: src/views/file/ToolBar.vue:157 -#: src/views/file/ToolBar.vue:177 msgid "Moved successfully" msgstr "" -#: src/views/file/ListView.vue:730 -#: src/views/file/ToolBar.vue:163 +#: src/views/file/ListView.vue:808 +#: src/views/file/ToolBar.vue:143 msgid "Canceled" msgstr "" -#: src/views/file/ListView.vue:825 +#: src/views/file/ListView.vue:903 msgid "Copy Path" msgstr "" -#: src/views/file/ListView.vue:1063 +#: src/views/file/ListView.vue:1141 msgid "Uncompressing..." msgstr "" -#: src/views/file/ListView.vue:1070 +#: src/views/file/ListView.vue:1148 msgid "Uncompressed successfully" msgstr "" -#: src/views/file/ListView.vue:1377 +#: src/views/file/ListView.vue:1504 msgid "No files" msgstr "" -#: src/views/file/ListView.vue:1387 +#: src/views/file/ListView.vue:1514 msgid "%{count} item(s) selected" msgstr "" -#: src/views/file/ListView.vue:1390 +#: src/views/file/ListView.vue:1517 msgid "Clear" msgstr "" -#: src/views/file/ListView.vue:1395 +#: src/views/file/ListView.vue:1522 msgid "%{count} item(s)" msgstr "" -#: src/views/file/ListView.vue:1430 +#: src/views/file/ListView.vue:1557 msgid "Uncompress - %{ file }" msgstr "" -#: src/views/file/ListView.vue:1438 +#: src/views/file/ListView.vue:1565 msgid "Uncompress to" msgstr "" -#: src/views/file/ListView.vue:1450 -#: src/views/file/ToolBar.vue:345 +#: src/views/file/ListView.vue:1577 +#: src/views/file/ToolBar.vue:307 msgid "Terminal - %{ path }" msgstr "" @@ -4192,44 +4248,44 @@ msgstr "" msgid "Immutable" msgstr "" -#: src/views/file/ToolBar.vue:66 +#: src/views/file/ToolBar.vue:46 msgid "Download task created successfully" msgstr "" -#: src/views/file/ToolBar.vue:72 +#: src/views/file/ToolBar.vue:52 msgid "Please select files/folders to copy" msgstr "" -#: src/views/file/ToolBar.vue:89 +#: src/views/file/ToolBar.vue:69 msgid "Please select files/folders to move" msgstr "" -#: src/views/file/ToolBar.vue:229 +#: src/views/file/ToolBar.vue:209 msgid "Sort" msgstr "" -#: src/views/file/ToolBar.vue:254 -#: src/views/file/ToolBar.vue:323 +#: src/views/file/ToolBar.vue:234 +#: src/views/file/ToolBar.vue:285 msgid "Remote Download" msgstr "" -#: src/views/file/ToolBar.vue:273 +#: src/views/file/ToolBar.vue:253 msgid "Switch to grid view" msgstr "" -#: src/views/file/ToolBar.vue:274 +#: src/views/file/ToolBar.vue:254 msgid "Switch to list view" msgstr "" -#: src/views/file/ToolBar.vue:296 +#: src/views/file/ToolBar.vue:276 msgid "Are you sure you want to delete in bulk?" msgstr "" -#: src/views/file/ToolBar.vue:331 +#: src/views/file/ToolBar.vue:293 msgid "Download URL" msgstr "" -#: src/views/file/ToolBar.vue:334 +#: src/views/file/ToolBar.vue:296 msgid "Save as" msgstr "" @@ -4651,7 +4707,7 @@ msgid "Environment Information" msgstr "" #: src/views/home/IndexView.vue:768 -#: src/views/toolbox/SystemView.vue:141 +#: src/views/toolbox/SystemView.vue:183 msgid "System Hostname" msgstr "" @@ -4742,7 +4798,7 @@ msgstr "" #: src/views/log/DatabaseLog.vue:31 #: src/views/log/HttpLog.vue:39 #: src/views/log/OperationLog.vue:34 -#: src/views/toolbox/SystemView.vue:155 +#: src/views/toolbox/SystemView.vue:197 msgid "Time" msgstr "" @@ -4877,7 +4933,7 @@ msgid "Clear Monitoring Records" msgstr "" #: src/views/monitor/IndexView.vue:611 -#: src/views/website/EditView.vue:912 +#: src/views/website/EditView.vue:1024 msgid "Are you sure you want to clear?" msgstr "" @@ -4926,7 +4982,7 @@ msgid "Create PHP Project" msgstr "" #: src/views/project/CreateModal.vue:119 -#: src/views/project/ListView.vue:197 +#: src/views/project/ListView.vue:213 msgid "Create Project" msgstr "" @@ -4945,41 +5001,40 @@ msgstr "" msgid "Project Directory" msgstr "" -#: src/views/project/CreateModal.vue:150 -#: src/views/project/EditModal.vue:204 -msgid "Project root directory" -msgstr "" - -#: src/views/project/CreateModal.vue:164 -#: src/views/website/CreateModal.vue:158 -#: src/views/website/EditView.vue:453 -msgid "PHP Version" +#: src/views/project/CreateModal.vue:151 +msgid "Project root directory (if left empty, defaults to project directory/project name)" msgstr "" #: src/views/project/CreateModal.vue:168 +#: src/views/website/CreateModal.vue:158 +#: src/views/website/EditView.vue:481 +msgid "PHP Version" +msgstr "" + +#: src/views/project/CreateModal.vue:172 #: src/views/website/CreateModal.vue:162 -#: src/views/website/EditView.vue:458 +#: src/views/website/EditView.vue:486 msgid "Select PHP Version" msgstr "" -#: src/views/project/CreateModal.vue:174 +#: src/views/project/CreateModal.vue:178 msgid "Framework" msgstr "" -#: src/views/project/CreateModal.vue:178 +#: src/views/project/CreateModal.vue:182 msgid "Select Framework" msgstr "" -#: src/views/project/CreateModal.vue:194 +#: src/views/project/CreateModal.vue:198 #: src/views/project/EditModal.vue:240 msgid "Select User" msgstr "" -#: src/views/project/CreateModal.vue:199 +#: src/views/project/CreateModal.vue:203 msgid "Select www user if no special requirements" msgstr "" -#: src/views/project/CreateModal.vue:209 +#: src/views/project/CreateModal.vue:213 #: src/views/project/EditModal.vue:255 msgid "e.g., php artisan serve, node app.js" msgstr "" @@ -5029,6 +5084,10 @@ msgstr "" msgid "Project description" msgstr "" +#: src/views/project/EditModal.vue:204 +msgid "Project root directory" +msgstr "" + #: src/views/project/EditModal.vue:221 msgid "Working directory (optional, defaults to project directory)" msgstr "" @@ -5226,7 +5285,7 @@ msgid "Paths that the service can only read from" msgstr "" #: src/views/project/IndexView.vue:22 -#: src/views/project/ListView.vue:20 +#: src/views/project/ListView.vue:23 msgid "General" msgstr "" @@ -5251,11 +5310,11 @@ msgstr "" msgid "Node.js" msgstr "" -#: src/views/project/ListView.vue:115 +#: src/views/project/ListView.vue:131 msgid "Are you sure you want to delete project %{ name }?" msgstr "" -#: src/views/project/ListView.vue:205 +#: src/views/project/ListView.vue:221 msgid "Are you sure you want to delete the selected projects?" msgstr "" @@ -5272,11 +5331,11 @@ msgstr "" msgid "Enter user email" msgstr "" -#: src/views/setting/IndexView.vue:68 +#: src/views/setting/IndexView.vue:69 msgid "Panel is restarting, page will refresh in 5 seconds" msgstr "" -#: src/views/setting/IndexView.vue:91 +#: src/views/setting/IndexView.vue:92 msgid "Safe" msgstr "" @@ -5287,52 +5346,60 @@ msgstr "" msgid "Updated successfully" msgstr "" -#: src/views/setting/SettingBase.vue:51 +#: src/views/setting/SettingBase.vue:56 msgid "Stable" msgstr "" -#: src/views/setting/SettingBase.vue:55 +#: src/views/setting/SettingBase.vue:60 msgid "Beta" msgstr "" -#: src/views/setting/SettingBase.vue:101 -#: src/views/setting/SettingBase.vue:102 +#: src/views/setting/SettingBase.vue:114 +#: src/views/setting/SettingBase.vue:115 msgid "Panel Name" msgstr "" -#: src/views/setting/SettingBase.vue:107 +#: src/views/setting/SettingBase.vue:120 msgid "Update Channel" msgstr "" -#: src/views/setting/SettingBase.vue:111 +#: src/views/setting/SettingBase.vue:124 msgid "8888" msgstr "" -#: src/views/setting/SettingBase.vue:113 +#: src/views/setting/SettingBase.vue:126 msgid "Default Website Directory" msgstr "" -#: src/views/setting/SettingBase.vue:115 +#: src/views/setting/SettingBase.vue:128 msgid "/opt/ace/sites" msgstr "" -#: src/views/setting/SettingBase.vue:123 +#: src/views/setting/SettingBase.vue:136 msgid "Default Backup Directory" msgstr "" -#: src/views/setting/SettingBase.vue:125 +#: src/views/setting/SettingBase.vue:138 msgid "/opt/ace/backup" msgstr "" -#: src/views/setting/SettingBase.vue:133 +#: src/views/setting/SettingBase.vue:146 +msgid "Default Project Directory" +msgstr "" + +#: src/views/setting/SettingBase.vue:150 +msgid "/opt/ace/projects" +msgstr "" + +#: src/views/setting/SettingBase.vue:159 msgid "Custom Logo" msgstr "" -#: src/views/setting/SettingBase.vue:136 +#: src/views/setting/SettingBase.vue:162 msgid "Please enter the complete URL" msgstr "" -#: src/views/setting/SettingBase.vue:139 +#: src/views/setting/SettingBase.vue:165 msgid "Hide Menu" msgstr "" @@ -5687,7 +5754,7 @@ msgstr "" #: src/views/task/TaskView.vue:30 #: src/views/toolbox/ProcessView.vue:53 -#: src/views/toolbox/ProcessView.vue:90 +#: src/views/toolbox/ProcessView.vue:92 msgid "Waiting" msgstr "" @@ -6077,8 +6144,8 @@ msgstr "" #: src/views/toolbox/DiskView.vue:874 #: src/views/toolbox/DiskView.vue:912 #: src/views/toolbox/DiskView.vue:957 -#: src/views/website/EditView.vue:591 -#: src/views/website/EditView.vue:749 +#: src/views/website/EditView.vue:619 +#: src/views/website/EditView.vue:779 msgid "Remove" msgstr "" @@ -6288,22 +6355,22 @@ msgid "All Status" msgstr "" #: src/views/toolbox/ProcessView.vue:49 -#: src/views/toolbox/ProcessView.vue:82 +#: src/views/toolbox/ProcessView.vue:84 msgid "Sleeping" msgstr "" #: src/views/toolbox/ProcessView.vue:51 -#: src/views/toolbox/ProcessView.vue:86 +#: src/views/toolbox/ProcessView.vue:88 msgid "Idle" msgstr "" #: src/views/toolbox/ProcessView.vue:52 -#: src/views/toolbox/ProcessView.vue:88 +#: src/views/toolbox/ProcessView.vue:90 msgid "Zombie" msgstr "" #: src/views/toolbox/ProcessView.vue:54 -#: src/views/toolbox/ProcessView.vue:92 +#: src/views/toolbox/ProcessView.vue:94 msgid "Locked" msgstr "" @@ -6343,82 +6410,86 @@ msgstr "" msgid "User Signal 2 (SIGUSR2)" msgstr "" -#: src/views/toolbox/ProcessView.vue:115 -#: src/views/toolbox/ProcessView.vue:383 +#: src/views/toolbox/ProcessView.vue:82 +msgid "Blocked" +msgstr "" + +#: src/views/toolbox/ProcessView.vue:117 +#: src/views/toolbox/ProcessView.vue:385 msgid "Parent PID" msgstr "" -#: src/views/toolbox/ProcessView.vue:122 -#: src/views/toolbox/ProcessView.vue:395 +#: src/views/toolbox/ProcessView.vue:124 +#: src/views/toolbox/ProcessView.vue:397 msgid "Threads" msgstr "" -#: src/views/toolbox/ProcessView.vue:163 -#: src/views/toolbox/ProcessView.vue:416 +#: src/views/toolbox/ProcessView.vue:165 +#: src/views/toolbox/ProcessView.vue:418 msgid "Start Time" msgstr "" -#: src/views/toolbox/ProcessView.vue:235 +#: src/views/toolbox/ProcessView.vue:237 msgid "Are you sure you want to send %{ signal } to process %{ pid }?" msgstr "" -#: src/views/toolbox/ProcessView.vue:245 +#: src/views/toolbox/ProcessView.vue:247 msgid "Signal %{ signal } has been sent to process %{ pid }" msgstr "" -#: src/views/toolbox/ProcessView.vue:313 +#: src/views/toolbox/ProcessView.vue:315 msgid "Search by PID or name" msgstr "" -#: src/views/toolbox/ProcessView.vue:372 +#: src/views/toolbox/ProcessView.vue:374 msgid "Process Details" msgstr "" -#: src/views/toolbox/ProcessView.vue:401 +#: src/views/toolbox/ProcessView.vue:403 msgid "Memory (RSS)" msgstr "" -#: src/views/toolbox/ProcessView.vue:404 +#: src/views/toolbox/ProcessView.vue:406 msgid "Virtual Memory" msgstr "" -#: src/views/toolbox/ProcessView.vue:407 +#: src/views/toolbox/ProcessView.vue:409 msgid "Swap" msgstr "" -#: src/views/toolbox/ProcessView.vue:410 +#: src/views/toolbox/ProcessView.vue:412 msgid "Disk Read" msgstr "" -#: src/views/toolbox/ProcessView.vue:413 +#: src/views/toolbox/ProcessView.vue:415 msgid "Disk Write" msgstr "" -#: src/views/toolbox/ProcessView.vue:419 +#: src/views/toolbox/ProcessView.vue:421 msgid "Executable Path" msgstr "" -#: src/views/toolbox/ProcessView.vue:429 +#: src/views/toolbox/ProcessView.vue:431 msgid "Command Line" msgstr "" -#: src/views/toolbox/ProcessView.vue:446 +#: src/views/toolbox/ProcessView.vue:448 msgid "No environment variables" msgstr "" -#: src/views/toolbox/ProcessView.vue:454 +#: src/views/toolbox/ProcessView.vue:456 msgid "Open Files" msgstr "" -#: src/views/toolbox/ProcessView.vue:462 +#: src/views/toolbox/ProcessView.vue:464 msgid "No open files" msgstr "" -#: src/views/toolbox/ProcessView.vue:470 +#: src/views/toolbox/ProcessView.vue:472 msgid "Network Connections" msgstr "" -#: src/views/toolbox/ProcessView.vue:483 +#: src/views/toolbox/ProcessView.vue:485 msgid "No network connections" msgstr "" @@ -6547,58 +6618,94 @@ msgstr "" msgid "Download Private Key" msgstr "" -#: src/views/toolbox/SystemView.vue:92 +#: src/views/toolbox/SystemView.vue:117 +msgid "At least one NTP server is required" +msgstr "" + +#: src/views/toolbox/SystemView.vue:134 msgid "Current DNS manager: %{ manager }" msgstr "" -#: src/views/toolbox/SystemView.vue:98 +#: src/views/toolbox/SystemView.vue:140 msgid "DNS modifications will revert to default after system restart." msgstr "" -#: src/views/toolbox/SystemView.vue:102 +#: src/views/toolbox/SystemView.vue:144 msgid "Enter primary DNS server" msgstr "" -#: src/views/toolbox/SystemView.vue:105 +#: src/views/toolbox/SystemView.vue:147 msgid "Enter secondary DNS server" msgstr "" -#: src/views/toolbox/SystemView.vue:119 +#: src/views/toolbox/SystemView.vue:161 msgid "System total %{ total }, used %{ used }, free %{ free }" msgstr "" -#: src/views/toolbox/SystemView.vue:127 +#: src/views/toolbox/SystemView.vue:169 msgid "Panel SWAP Size" msgstr "" -#: src/views/toolbox/SystemView.vue:144 +#: src/views/toolbox/SystemView.vue:186 msgid "Enter hostname, e.g. myserver" msgstr "" -#: src/views/toolbox/SystemView.vue:147 +#: src/views/toolbox/SystemView.vue:189 msgid "Hosts" msgstr "" -#: src/views/toolbox/SystemView.vue:159 +#: src/views/toolbox/SystemView.vue:201 msgid "After manually changing the time, it may still be overwritten by system automatic time synchronization." msgstr "" -#: src/views/toolbox/SystemView.vue:165 +#: src/views/toolbox/SystemView.vue:207 msgid "Select Timezone" msgstr "" -#: src/views/toolbox/SystemView.vue:168 +#: src/views/toolbox/SystemView.vue:210 msgid "Please select a timezone" msgstr "" -#: src/views/toolbox/SystemView.vue:172 +#: src/views/toolbox/SystemView.vue:214 msgid "Modify Time" msgstr "" -#: src/views/toolbox/SystemView.vue:181 +#: src/views/toolbox/SystemView.vue:217 +msgid "NTP Server" +msgstr "" + +#: src/views/toolbox/SystemView.vue:221 +msgid "Optional, leave empty to use default servers" +msgstr "" + +#: src/views/toolbox/SystemView.vue:225 +msgid "Configure Default Servers" +msgstr "" + +#: src/views/toolbox/SystemView.vue:235 msgid "Synchronize Time" msgstr "" +#: src/views/toolbox/SystemView.vue:246 +msgid "System NTP Server Configuration" +msgstr "" + +#: src/views/toolbox/SystemView.vue:255 +msgid "Unable to detect NTP service. Please ensure chrony or systemd-timesyncd is installed." +msgstr "" + +#: src/views/toolbox/SystemView.vue:262 +msgid "Current NTP service: %{ service }. Changes will be applied to system configuration." +msgstr "" + +#: src/views/toolbox/SystemView.vue:275 +msgid "Enter NTP server address" +msgstr "" + +#: src/views/toolbox/SystemView.vue:300 +msgid "Reset to Default" +msgstr "" + #: src/views/toolbox/WebHookView.vue:69 #: src/views/toolbox/WebHookView.vue:341 #: src/views/toolbox/WebHookView.vue:376 @@ -6707,7 +6814,7 @@ msgid "Remark: The remark of the website, can be empty." msgstr "" #: src/views/website/CreateModal.vue:39 -#: src/views/website/EditView.vue:58 +#: src/views/website/EditView.vue:59 msgid "Not used" msgstr "" @@ -6752,270 +6859,302 @@ msgstr "" msgid "Remark" msgstr "" -#: src/views/website/EditView.vue:89 +#: src/views/website/EditView.vue:90 msgid "Edit Website - %{ name }" msgstr "" -#: src/views/website/EditView.vue:91 +#: src/views/website/EditView.vue:92 msgid "Edit Website" msgstr "" -#: src/views/website/EditView.vue:130 +#: src/views/website/EditView.vue:131 msgid "Reset successfully" msgstr "" -#: src/views/website/EditView.vue:147 +#: src/views/website/EditView.vue:148 msgid "Issued successfully" msgstr "" -#: src/views/website/EditView.vue:161 +#: src/views/website/EditView.vue:162 msgid "The selected certificate is invalid" msgstr "" -#: src/views/website/EditView.vue:240 +#: src/views/website/EditView.vue:241 msgid "Exact Match (=)" msgstr "" -#: src/views/website/EditView.vue:241 +#: src/views/website/EditView.vue:242 msgid "Priority Prefix Match (^~)" msgstr "" -#: src/views/website/EditView.vue:242 +#: src/views/website/EditView.vue:243 msgid "Prefix Match" msgstr "" -#: src/views/website/EditView.vue:243 +#: src/views/website/EditView.vue:244 msgid "Case-sensitive Regex (~)" msgstr "" -#: src/views/website/EditView.vue:244 +#: src/views/website/EditView.vue:245 msgid "Case-insensitive Regex (~*)" msgstr "" #: src/views/website/EditView.vue:391 +msgid "This Website" +msgstr "" + +#: src/views/website/EditView.vue:392 +msgid "Global" +msgstr "" + +#: src/views/website/EditView.vue:419 msgid "Domain & Listening" msgstr "" -#: src/views/website/EditView.vue:401 +#: src/views/website/EditView.vue:429 msgid "Listening Address" msgstr "" -#: src/views/website/EditView.vue:436 +#: src/views/website/EditView.vue:464 msgid "Website Directory" msgstr "" -#: src/views/website/EditView.vue:439 +#: src/views/website/EditView.vue:467 msgid "Enter website directory (absolute path)" msgstr "" -#: src/views/website/EditView.vue:442 +#: src/views/website/EditView.vue:470 msgid "Running Directory" msgstr "" -#: src/views/website/EditView.vue:446 +#: src/views/website/EditView.vue:474 msgid "Enter running directory (needed for Laravel etc.) (absolute path)" msgstr "" -#: src/views/website/EditView.vue:450 +#: src/views/website/EditView.vue:478 msgid "Default Document" msgstr "" -#: src/views/website/EditView.vue:463 +#: src/views/website/EditView.vue:491 msgid "Anti-cross-site Attack" msgstr "" -#: src/views/website/EditView.vue:469 +#: src/views/website/EditView.vue:497 msgid "Upstreams" msgstr "" -#: src/views/website/EditView.vue:490 +#: src/views/website/EditView.vue:518 msgid "Upstream name" msgstr "" -#: src/views/website/EditView.vue:504 -#: src/views/website/EditView.vue:511 +#: src/views/website/EditView.vue:532 +#: src/views/website/EditView.vue:539 msgid "Round Robin (default)" msgstr "" -#: src/views/website/EditView.vue:512 +#: src/views/website/EditView.vue:540 msgid "Least Busy" msgstr "" -#: src/views/website/EditView.vue:513 +#: src/views/website/EditView.vue:541 msgid "By Traffic" msgstr "" -#: src/views/website/EditView.vue:518 +#: src/views/website/EditView.vue:546 msgid "Keepalive Connections" msgstr "" -#: src/views/website/EditView.vue:556 +#: src/views/website/EditView.vue:584 msgid "Backend Servers" msgstr "" -#: src/views/website/EditView.vue:566 +#: src/views/website/EditView.vue:594 msgid "Server address, e.g., 127.0.0.1:8080" msgstr "" -#: src/views/website/EditView.vue:580 +#: src/views/website/EditView.vue:608 msgid "Options, e.g., weight=5 backup" msgstr "" -#: src/views/website/EditView.vue:606 +#: src/views/website/EditView.vue:634 msgid "No upstreams configured" msgstr "" -#: src/views/website/EditView.vue:615 +#: src/views/website/EditView.vue:643 msgid "Proxies" msgstr "" -#: src/views/website/EditView.vue:633 +#: src/views/website/EditView.vue:661 msgid "Rule" msgstr "" -#: src/views/website/EditView.vue:641 +#: src/views/website/EditView.vue:669 msgid "Match Type" msgstr "" -#: src/views/website/EditView.vue:648 +#: src/views/website/EditView.vue:676 msgid "Match Expression" msgstr "" -#: src/views/website/EditView.vue:651 +#: src/views/website/EditView.vue:679 msgid "e.g., /, /api, ^/api/v[0-9]+/" msgstr "" -#: src/views/website/EditView.vue:659 +#: src/views/website/EditView.vue:687 msgid "Backend address, e.g., http://127.0.0.1:8080 or http://upstream_name" msgstr "" -#: src/views/website/EditView.vue:666 +#: src/views/website/EditView.vue:694 msgid "Proxy Host" msgstr "" -#: src/views/website/EditView.vue:669 -msgid "Default: $host, or extracted from Proxy Pass" +#: src/views/website/EditView.vue:698 +msgid "Default: $proxy_host, or extracted from Proxy Pass" msgstr "" -#: src/views/website/EditView.vue:672 +#: src/views/website/EditView.vue:702 msgid "Proxy SNI" msgstr "" -#: src/views/website/EditView.vue:675 +#: src/views/website/EditView.vue:705 msgid "Optional, for HTTPS backends" msgstr "" -#: src/views/website/EditView.vue:678 +#: src/views/website/EditView.vue:708 msgid "Enable Cache" msgstr "" -#: src/views/website/EditView.vue:681 +#: src/views/website/EditView.vue:711 msgid "Enable Buffering" msgstr "" -#: src/views/website/EditView.vue:712 +#: src/views/website/EditView.vue:742 msgid "Response Content Replacement" msgstr "" -#: src/views/website/EditView.vue:722 +#: src/views/website/EditView.vue:752 msgid "Original content" msgstr "" -#: src/views/website/EditView.vue:738 +#: src/views/website/EditView.vue:768 msgid "Replacement content" msgstr "" -#: src/views/website/EditView.vue:762 +#: src/views/website/EditView.vue:792 msgid "Add Replacement Rule" msgstr "" -#: src/views/website/EditView.vue:772 +#: src/views/website/EditView.vue:802 msgid "No proxy rules configured" msgstr "" -#: src/views/website/EditView.vue:777 +#: src/views/website/EditView.vue:807 msgid "Add Proxy Rule" msgstr "" -#: src/views/website/EditView.vue:784 +#: src/views/website/EditView.vue:814 msgid "Certificate Information" msgstr "" -#: src/views/website/EditView.vue:786 +#: src/views/website/EditView.vue:816 msgid "Certificate Validity" msgstr "" -#: src/views/website/EditView.vue:800 +#: src/views/website/EditView.vue:830 msgid "Domains" msgstr "" -#: src/views/website/EditView.vue:815 +#: src/views/website/EditView.vue:845 msgid "Main Switch" msgstr "" -#: src/views/website/EditView.vue:821 +#: src/views/website/EditView.vue:851 msgid "Use Existing Certificate" msgstr "" -#: src/views/website/EditView.vue:835 +#: src/views/website/EditView.vue:865 msgid "HTTP Redirect" msgstr "" -#: src/views/website/EditView.vue:838 +#: src/views/website/EditView.vue:868 msgid "OCSP Stapling" msgstr "" -#: src/views/website/EditView.vue:843 +#: src/views/website/EditView.vue:873 msgid "TLS Version" msgstr "" -#: src/views/website/EditView.vue:855 +#: src/views/website/EditView.vue:885 msgid "Cipher Suites" msgstr "" -#: src/views/website/EditView.vue:859 +#: src/views/website/EditView.vue:889 msgid "Enter the cipher suite, leave blank to reset to default" msgstr "" -#: src/views/website/EditView.vue:883 +#: src/views/website/EditView.vue:913 msgid "Rewrite" msgstr "" -#: src/views/website/EditView.vue:886 +#: src/views/website/EditView.vue:916 msgid "Presets" msgstr "" -#: src/views/website/EditView.vue:898 +#: src/views/website/EditView.vue:928 +msgid "Custom Configs" +msgstr "" + +#: src/views/website/EditView.vue:946 +msgid "Config" +msgstr "" + +#: src/views/website/EditView.vue:955 +msgid "Config name (letters, numbers, underscore, hyphen)" +msgstr "" + +#: src/views/website/EditView.vue:963 +msgid "Content" +msgstr "" + +#: src/views/website/EditView.vue:977 +msgid "No custom configs" +msgstr "" + +#: src/views/website/EditView.vue:982 +msgid "Add Custom Config" +msgstr "" + +#: src/views/website/EditView.vue:986 msgid "Access Log" msgstr "" -#: src/views/website/EditView.vue:902 -#: src/views/website/EditView.vue:922 +#: src/views/website/EditView.vue:990 +#: src/views/website/EditView.vue:1002 msgid "All logs can be viewed by downloading the file" msgstr "" -#: src/views/website/EditView.vue:904 -#: src/views/website/EditView.vue:924 +#: src/views/website/EditView.vue:992 +#: src/views/website/EditView.vue:1004 msgid "view" msgstr "" -#: src/views/website/EditView.vue:909 -msgid "Clear Logs" -msgstr "" - -#: src/views/website/EditView.vue:918 +#: src/views/website/EditView.vue:998 msgid "Error Log" msgstr "" -#: src/views/website/EditView.vue:942 +#: src/views/website/EditView.vue:1021 +msgid "Clear Logs" +msgstr "" + +#: src/views/website/EditView.vue:1034 msgid "One-click Certificate Issuance" msgstr "" -#: src/views/website/EditView.vue:947 +#: src/views/website/EditView.vue:1039 msgid "Reset Configuration" msgstr "" -#: src/views/website/EditView.vue:950 +#: src/views/website/EditView.vue:1042 msgid "Are you sure you want to reset the configuration?" msgstr "" diff --git a/web/src/locales/zh_CN.po b/web/src/locales/zh_CN.po index cdc23b42..31ba66a0 100644 --- a/web/src/locales/zh_CN.po +++ b/web/src/locales/zh_CN.po @@ -1,5 +1,9 @@ msgid "" msgstr "" +"Project-Id-Version: acepanel\n" +"PO-Revision-Date: 2026-01-12 19:14\n" +"Language-Team: Chinese Simplified\n" +"Language: zh_CN\n" "Content-Type: text/plain; charset=UTF-8\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: acepanel\n" @@ -7,13 +11,8 @@ msgstr "" "X-Crowdin-Language: zh-CN\n" "X-Crowdin-File: frontend.pot\n" "X-Crowdin-File-ID: 1168\n" -"Project-Id-Version: acepanel\n" -"Language-Team: Chinese Simplified\n" -"Language: zh_CN\n" -"PO-Revision-Date: 2026-01-12 19:14\n" -#: src/components/common/AppFooter.vue:13 -#: src/views/home/IndexView.vue:467 +#: src/components/common/AppFooter.vue:13 src/views/home/IndexView.vue:467 msgid "AcePanel" msgstr "AcePanel" @@ -148,12 +147,9 @@ msgid "Yearly" msgstr "每年" #: src/components/common/CronSelector.vue:44 -#: src/views/monitor/IndexView.vue:650 -#: src/views/monitor/IndexView.vue:704 -#: src/views/monitor/IndexView.vue:756 -#: src/views/monitor/IndexView.vue:812 -#: src/views/monitor/IndexView.vue:879 -#: src/views/project/CreateModal.vue:15 +#: src/views/monitor/IndexView.vue:650 src/views/monitor/IndexView.vue:704 +#: src/views/monitor/IndexView.vue:756 src/views/monitor/IndexView.vue:812 +#: src/views/monitor/IndexView.vue:879 src/views/project/CreateModal.vue:15 msgid "Custom" msgstr "自定义" @@ -162,14 +158,12 @@ msgid "Month %{month}" msgstr "%{month} 月" #: src/components/common/CronSelector.vue:170 -#: src/views/apps/nginx/NginxIndex.vue:745 -#: src/views/website/EditView.vue:345 +#: src/views/apps/nginx/NginxIndex.vue:745 src/views/website/EditView.vue:346 msgid "Minutes" msgstr "分" #: src/components/common/CronSelector.vue:181 -#: src/views/apps/nginx/NginxIndex.vue:746 -#: src/views/website/EditView.vue:346 +#: src/views/apps/nginx/NginxIndex.vue:746 src/views/website/EditView.vue:347 msgid "Hours" msgstr "时" @@ -227,12 +221,10 @@ msgstr "当前状态无法保存" #: src/views/apps/codeserver/IndexView.vue:23 #: src/views/apps/docker/IndexView.vue:23 #: src/views/apps/fail2ban/IndexView.vue:160 -#: src/views/apps/frp/IndexView.vue:36 -#: src/views/apps/frp/IndexView.vue:44 +#: src/views/apps/frp/IndexView.vue:36 src/views/apps/frp/IndexView.vue:44 #: src/views/apps/gitea/IndexView.vue:21 #: src/views/apps/memcached/IndexView.vue:43 -#: src/views/apps/minio/IndexView.vue:21 -#: src/views/apps/mysql/MysqlIndex.vue:48 +#: src/views/apps/minio/IndexView.vue:21 src/views/apps/mysql/MysqlIndex.vue:48 #: src/views/apps/nginx/NginxIndex.vue:323 #: src/views/apps/nginx/NginxIndex.vue:382 #: src/views/apps/nginx/NginxIndex.vue:459 @@ -243,20 +235,15 @@ msgstr "当前状态无法保存" #: src/views/apps/postgresql/IndexView.vue:46 #: src/views/apps/postgresql/IndexView.vue:51 #: src/views/apps/pureftpd/IndexView.vue:115 -#: src/views/apps/redis/IndexView.vue:40 -#: src/views/apps/rsync/IndexView.vue:133 +#: src/views/apps/redis/IndexView.vue:40 src/views/apps/rsync/IndexView.vue:133 #: src/views/apps/rsync/IndexView.vue:177 #: src/views/apps/supervisor/IndexView.vue:219 #: src/views/apps/supervisor/IndexView.vue:284 -#: src/views/environment/PHPView.vue:154 -#: src/views/environment/PHPView.vue:160 -#: src/views/project/EditModal.vue:157 -#: src/views/setting/IndexView.vue:55 -#: src/views/toolbox/SystemView.vue:51 -#: src/views/toolbox/SystemView.vue:57 -#: src/views/toolbox/SystemView.vue:66 -#: src/views/toolbox/SystemView.vue:75 -#: src/views/website/EditView.vue:123 +#: src/views/environment/PHPView.vue:154 src/views/environment/PHPView.vue:160 +#: src/views/project/EditModal.vue:157 src/views/setting/IndexView.vue:56 +#: src/views/toolbox/SystemView.vue:62 src/views/toolbox/SystemView.vue:68 +#: src/views/toolbox/SystemView.vue:77 src/views/toolbox/SystemView.vue:86 +#: src/views/toolbox/SystemView.vue:123 src/views/website/EditView.vue:124 msgid "Saved successfully" msgstr "保存成功" @@ -276,30 +263,21 @@ msgstr "选择文件" #: src/views/apps/nginx/NginxIndex.vue:232 #: src/views/apps/nginx/NginxIndex.vue:572 #: src/views/apps/nginx/NginxIndex.vue:650 -#: src/views/apps/rsync/IndexView.vue:39 -#: src/views/apps/rsync/IndexView.vue:256 +#: src/views/apps/rsync/IndexView.vue:39 src/views/apps/rsync/IndexView.vue:256 #: src/views/apps/supervisor/IndexView.vue:46 #: src/views/apps/supervisor/IndexView.vue:373 #: src/views/container/ComposeView.vue:57 -#: src/views/container/NetworkView.vue:45 -#: src/views/container/VolumeView.vue:26 +#: src/views/container/NetworkView.vue:45 src/views/container/VolumeView.vue:26 #: src/views/database/CreateServerModal.vue:55 #: src/views/database/ServerList.vue:39 -#: src/views/database/UpdateServerModal.vue:55 -#: src/views/file/ListView.vue:1187 -#: src/views/file/PropertyModal.vue:27 -#: src/views/file/ToolBar.vue:222 -#: src/views/file/ToolBar.vue:313 -#: src/views/project/ListView.vue:31 -#: src/views/ssh/CreateModal.vue:59 -#: src/views/ssh/UpdateModal.vue:65 -#: src/views/toolbox/LogView.vue:206 -#: src/views/toolbox/ProcessView.vue:107 -#: src/views/toolbox/ProcessView.vue:386 -#: src/views/toolbox/WebHookView.vue:33 -#: src/views/toolbox/WebHookView.vue:332 -#: src/views/toolbox/WebHookView.vue:367 -#: src/views/website/CreateModal.vue:123 +#: src/views/database/UpdateServerModal.vue:55 src/views/file/ListView.vue:1267 +#: src/views/file/PropertyModal.vue:27 src/views/file/ToolBar.vue:202 +#: src/views/project/ListView.vue:34 src/views/ssh/CreateModal.vue:59 +#: src/views/ssh/UpdateModal.vue:65 src/views/toolbox/LogView.vue:206 +#: src/views/toolbox/ProcessView.vue:109 src/views/toolbox/ProcessView.vue:388 +#: src/views/toolbox/WebHookView.vue:33 src/views/toolbox/WebHookView.vue:332 +#: src/views/toolbox/WebHookView.vue:367 src/views/website/CreateModal.vue:123 +#: src/views/website/EditView.vue:951 msgid "Name" msgstr "名称" @@ -307,94 +285,75 @@ msgstr "名称" msgid "Permissions" msgstr "权限" -#: src/components/common/PathSelector.vue:100 -#: src/views/file/ListView.vue:1198 +#: src/components/common/PathSelector.vue:100 src/views/file/ListView.vue:1278 msgid "Owner / Group" msgstr "所有者 / 组" -#: src/components/common/PathSelector.vue:112 -#: src/views/backup/ListView.vue:42 -#: src/views/container/ImageView.vue:74 -#: src/views/file/ListView.vue:1194 -#: src/views/file/PropertyModal.vue:39 -#: src/views/file/ToolBar.vue:223 -#: src/views/toolbox/DiskView.vue:275 -#: src/views/toolbox/LogView.vue:207 +#: src/components/common/PathSelector.vue:112 src/views/backup/ListView.vue:42 +#: src/views/container/ImageView.vue:74 src/views/file/ListView.vue:1274 +#: src/views/file/PropertyModal.vue:39 src/views/file/ToolBar.vue:203 +#: src/views/toolbox/DiskView.vue:275 src/views/toolbox/LogView.vue:207 msgid "Size" msgstr "大小" -#: src/components/common/PathSelector.vue:147 -#: src/views/file/ListView.vue:1287 +#: src/components/common/PathSelector.vue:147 src/views/file/ListView.vue:1414 msgid "Calculate" msgstr "计算" -#: src/components/common/PathSelector.vue:152 -#: src/views/file/ListView.vue:1203 -#: src/views/file/PropertyModal.vue:51 -#: src/views/file/ToolBar.vue:224 +#: src/components/common/PathSelector.vue:152 src/views/file/ListView.vue:1283 +#: src/views/file/PropertyModal.vue:51 src/views/file/ToolBar.vue:204 msgid "Modification Time" msgstr "修改时间" -#: src/components/common/PathSelector.vue:186 -#: src/views/file/ListView.vue:1060 +#: src/components/common/PathSelector.vue:186 src/views/file/ListView.vue:1138 #: src/views/file/PathInput.vue:30 msgid "Invalid path" msgstr "无效路径" -#: src/components/common/PathSelector.vue:246 -#: src/views/file/ListView.vue:575 -#: src/views/file/ToolBar.vue:43 -#: src/views/file/ToolBar.vue:57 +#: src/components/common/PathSelector.vue:246 src/views/file/ListView.vue:131 +#: src/views/file/ListView.vue:653 src/views/file/ToolBar.vue:37 msgid "Invalid name" msgstr "无效的名称" #: src/components/common/PathSelector.vue:254 #: src/components/file-editor/FileTree.vue:284 -#: src/views/backup/ListView.vue:122 +#: src/views/app/TemplateDeployModal.vue:79 src/views/backup/ListView.vue:122 #: src/views/cert/CreateAccountModal.vue:52 -#: src/views/cert/CreateCertModal.vue:50 -#: src/views/cert/CreateDnsModal.vue:35 +#: src/views/cert/CreateCertModal.vue:50 src/views/cert/CreateDnsModal.vue:35 #: src/views/cert/UploadCertModal.vue:21 #: src/views/container/ComposeView.vue:269 #: src/views/container/ContainerCreate.vue:107 #: src/views/container/NetworkView.vue:183 #: src/views/container/VolumeView.vue:137 #: src/views/database/CreateDatabaseModal.vue:28 -#: src/views/database/CreateUserModal.vue:28 -#: src/views/file/ToolBar.vue:51 +#: src/views/database/CreateUserModal.vue:28 src/views/file/ListView.vue:140 #: src/views/firewall/CreateForwardModal.vue:41 -#: src/views/setting/CreateModal.vue:19 -#: src/views/setting/TokenModal.vue:125 -#: src/views/ssh/CreateModal.vue:40 -#: src/views/task/CreateModal.vue:50 +#: src/views/setting/CreateModal.vue:19 src/views/setting/TokenModal.vue:125 +#: src/views/ssh/CreateModal.vue:40 src/views/task/CreateModal.vue:50 #: src/views/toolbox/WebHookView.vue:258 msgid "Created successfully" msgstr "创建成功" #: src/components/common/PathSelector.vue:312 -#: src/views/file/PropertyModal.vue:34 -#: src/views/file/ToolBar.vue:246 +#: src/views/file/PropertyModal.vue:34 src/views/file/ToolBar.vue:226 msgid "File" msgstr "文件" -#: src/components/common/PathSelector.vue:313 -#: src/views/file/ToolBar.vue:247 +#: src/components/common/PathSelector.vue:313 src/views/file/ToolBar.vue:227 msgid "Folder" msgstr "文件夹" #: src/components/common/PathSelector.vue:317 #: src/components/common/PathSelector.vue:380 #: src/views/container/ContainerCreate.vue:539 -#: src/views/project/CreateModal.vue:215 -#: src/views/setting/TokenModal.vue:266 +#: src/views/project/CreateModal.vue:219 src/views/setting/TokenModal.vue:266 #: src/views/toolbox/WebHookView.vue:352 #: src/views/website/BulkCreateModal.vue:129 #: src/views/website/CreateModal.vue:264 msgid "Create" msgstr "创建" -#: src/components/common/PathSelector.vue:326 -#: src/views/file/PathInput.vue:146 +#: src/components/common/PathSelector.vue:326 src/views/file/PathInput.vue:146 msgid "Root Directory" msgstr "根目录" @@ -404,19 +363,13 @@ msgstr "根目录" #: src/views/apps/nginx/NginxIndex.vue:755 #: src/views/apps/pureftpd/IndexView.vue:242 #: src/views/apps/pureftpd/IndexView.vue:264 -#: src/views/apps/rsync/IndexView.vue:305 -#: src/views/apps/s3fs/IndexView.vue:181 +#: src/views/apps/rsync/IndexView.vue:305 src/views/apps/s3fs/IndexView.vue:181 #: src/views/apps/supervisor/IndexView.vue:409 -#: src/views/backup/ListView.vue:256 -#: src/views/backup/ListView.vue:280 -#: src/views/cert/AccountView.vue:268 -#: src/views/cert/CertView.vue:524 -#: src/views/cert/CertView.vue:548 -#: src/views/cert/CreateAccountModal.vue:125 -#: src/views/cert/CreateCertModal.vue:115 -#: src/views/cert/CreateDnsModal.vue:173 -#: src/views/cert/DnsView.vue:310 -#: src/views/cert/ObtainModal.vue:130 +#: src/views/backup/ListView.vue:256 src/views/backup/ListView.vue:280 +#: src/views/cert/AccountView.vue:268 src/views/cert/CertView.vue:524 +#: src/views/cert/CertView.vue:548 src/views/cert/CreateAccountModal.vue:125 +#: src/views/cert/CreateCertModal.vue:115 src/views/cert/CreateDnsModal.vue:173 +#: src/views/cert/DnsView.vue:310 src/views/cert/ObtainModal.vue:130 #: src/views/cert/UploadCertModal.vue:55 #: src/views/container/ComposeView.vue:377 #: src/views/container/ComposeView.vue:403 @@ -428,17 +381,12 @@ msgstr "根目录" #: src/views/database/CreateServerModal.vue:120 #: src/views/database/CreateUserModal.vue:125 #: src/views/database/UpdateServerModal.vue:112 -#: src/views/database/UpdateUserModal.vue:79 -#: src/views/file/ToolBar.vue:317 -#: src/views/file/ToolBar.vue:338 +#: src/views/database/UpdateUserModal.vue:79 src/views/file/ToolBar.vue:300 #: src/views/firewall/CreateForwardModal.vue:88 #: src/views/firewall/CreateIpModal.vue:121 -#: src/views/firewall/CreateModal.vue:155 -#: src/views/setting/CreateModal.vue:64 -#: src/views/setting/PasswordModal.vue:44 -#: src/views/setting/TwoFaModal.vue:87 -#: src/views/ssh/CreateModal.vue:109 -#: src/views/ssh/UpdateModal.vue:115 +#: src/views/firewall/CreateModal.vue:155 src/views/setting/CreateModal.vue:64 +#: src/views/setting/PasswordModal.vue:44 src/views/setting/TwoFaModal.vue:87 +#: src/views/ssh/CreateModal.vue:109 src/views/ssh/UpdateModal.vue:115 #: src/views/task/CreateModal.vue:157 msgid "Submit" msgstr "提交" @@ -468,31 +416,23 @@ msgstr "连接失败" #: src/components/common/PtyTerminalModal.vue:195 #: src/components/common/PtyTerminalModal.vue:199 #: src/layout/header/components/UserAvatar.vue:29 -#: src/views/home/UpdateView.vue:26 -#: src/views/monitor/IndexView.vue:600 -#: src/views/toolbox/DiskView.vue:403 -#: src/views/toolbox/DiskView.vue:405 -#: src/views/toolbox/DiskView.vue:428 -#: src/views/toolbox/DiskView.vue:430 -#: src/views/toolbox/DiskView.vue:500 -#: src/views/toolbox/DiskView.vue:504 -#: src/views/toolbox/DiskView.vue:523 -#: src/views/toolbox/DiskView.vue:542 -#: src/views/toolbox/DiskView.vue:546 -#: src/views/toolbox/DiskView.vue:567 -#: src/views/toolbox/DiskView.vue:586 -#: src/views/toolbox/DiskView.vue:594 -#: src/views/toolbox/DiskView.vue:616 -#: src/views/toolbox/DiskView.vue:635 -#: src/views/toolbox/DiskView.vue:640 -#: src/views/toolbox/DiskView.vue:663 -#: src/views/toolbox/ProcessView.vue:234 -#: src/views/toolbox/ProcessView.vue:239 +#: src/views/home/UpdateView.vue:26 src/views/monitor/IndexView.vue:600 +#: src/views/toolbox/DiskView.vue:403 src/views/toolbox/DiskView.vue:405 +#: src/views/toolbox/DiskView.vue:428 src/views/toolbox/DiskView.vue:430 +#: src/views/toolbox/DiskView.vue:500 src/views/toolbox/DiskView.vue:504 +#: src/views/toolbox/DiskView.vue:523 src/views/toolbox/DiskView.vue:542 +#: src/views/toolbox/DiskView.vue:546 src/views/toolbox/DiskView.vue:567 +#: src/views/toolbox/DiskView.vue:586 src/views/toolbox/DiskView.vue:594 +#: src/views/toolbox/DiskView.vue:616 src/views/toolbox/DiskView.vue:635 +#: src/views/toolbox/DiskView.vue:640 src/views/toolbox/DiskView.vue:663 +#: src/views/toolbox/ProcessView.vue:236 src/views/toolbox/ProcessView.vue:241 msgid "Confirm" msgstr "确认" #: src/components/common/PtyTerminalModal.vue:196 -msgid "Command may still running. Closing the window will terminate the command. Are you sure?" +msgid "" +"Command may still running. Closing the window will terminate the command. " +"Are you sure?" msgstr "命令可能仍在运行。关闭窗口将终止命令。您确定吗?" #: src/components/common/PtyTerminalModal.vue:200 @@ -500,88 +440,70 @@ msgstr "命令可能仍在运行。关闭窗口将终止命令。您确定吗? #: src/components/file-editor/EditorToolbar.vue:101 #: src/components/file-editor/FileTree.vue:603 #: src/layout/header/components/UserAvatar.vue:30 +#: src/views/app/TemplateDeployModal.vue:227 #: src/views/container/ContainerCreate.vue:536 #: src/views/container/ImagePullModal.vue:184 #: src/views/container/ImagePullModal.vue:198 -#: src/views/container/ImageView.vue:351 -#: src/views/container/ImageView.vue:366 -#: src/views/file/ListView.vue:166 -#: src/views/file/ListView.vue:588 -#: src/views/file/ListView.vue:712 -#: src/views/file/ToolBar.vue:145 -#: src/views/file/ToolBar.vue:280 -#: src/views/home/UpdateView.vue:27 -#: src/views/project/EditModal.vue:572 -#: src/views/toolbox/DiskView.vue:406 -#: src/views/toolbox/DiskView.vue:431 -#: src/views/toolbox/DiskView.vue:454 -#: src/views/toolbox/DiskView.vue:480 -#: src/views/toolbox/DiskView.vue:505 -#: src/views/toolbox/DiskView.vue:524 -#: src/views/toolbox/DiskView.vue:547 -#: src/views/toolbox/DiskView.vue:568 -#: src/views/toolbox/DiskView.vue:595 -#: src/views/toolbox/DiskView.vue:617 -#: src/views/toolbox/DiskView.vue:641 -#: src/views/toolbox/DiskView.vue:664 -#: src/views/toolbox/ProcessView.vue:240 +#: src/views/container/ImageView.vue:351 src/views/container/ImageView.vue:366 +#: src/views/file/ListView.vue:244 src/views/file/ListView.vue:666 +#: src/views/file/ListView.vue:790 src/views/file/ToolBar.vue:125 +#: src/views/file/ToolBar.vue:260 src/views/home/UpdateView.vue:27 +#: src/views/project/EditModal.vue:572 src/views/toolbox/DiskView.vue:406 +#: src/views/toolbox/DiskView.vue:431 src/views/toolbox/DiskView.vue:454 +#: src/views/toolbox/DiskView.vue:480 src/views/toolbox/DiskView.vue:505 +#: src/views/toolbox/DiskView.vue:524 src/views/toolbox/DiskView.vue:547 +#: src/views/toolbox/DiskView.vue:568 src/views/toolbox/DiskView.vue:595 +#: src/views/toolbox/DiskView.vue:617 src/views/toolbox/DiskView.vue:641 +#: src/views/toolbox/DiskView.vue:664 src/views/toolbox/ProcessView.vue:242 msgid "Cancel" msgstr "取消" -#: src/components/common/PtyTerminalModal.vue:252 -#: src/locales/menu.ts:19 +#: src/components/common/PtyTerminalModal.vue:252 src/locales/menu.ts:19 #: src/views/container/ContainerView.vue:124 -#: src/views/container/ContainerView.vue:637 -#: src/views/file/ListView.vue:230 -#: src/views/file/ListView.vue:829 -#: src/views/file/ToolBar.vue:255 +#: src/views/container/ContainerView.vue:637 src/views/file/ListView.vue:308 +#: src/views/file/ListView.vue:907 src/views/file/ToolBar.vue:235 msgid "Terminal" msgstr "终端" -#: src/components/common/RealtimeLog.vue:29 +#: src/components/common/RealtimeLog.vue:34 msgid "Path or service cannot be empty" msgstr "路径或服务不能为空" -#: src/components/common/RealtimeLog.vue:44 -#: src/components/common/RealtimeLogModal.vue:33 +#: src/components/common/RealtimeLog.vue:49 +#: src/components/common/RealtimeLogModal.vue:38 msgid "Failed to get log stream" msgstr "获取日志流失败" -#: src/components/common/RealtimeLogModal.vue:67 -#: src/locales/menu.ts:15 +#: src/components/common/RealtimeLog.vue:91 +#: src/components/common/RealtimeLogModal.vue:81 +#, fuzzy +msgid "No logs available" +msgstr "可用 Inodes" + +#: src/components/common/RealtimeLogModal.vue:72 src/locales/menu.ts:15 #: src/views/apps/supervisor/IndexView.vue:89 #: src/views/container/ContainerView.vue:137 -#: src/views/container/ContainerView.vue:605 -#: src/views/project/ListView.vue:95 -#: src/views/project/ListView.vue:233 -#: src/views/task/CronView.vue:116 +#: src/views/container/ContainerView.vue:605 src/views/project/ListView.vue:111 +#: src/views/project/ListView.vue:249 src/views/task/CronView.vue:116 #: src/views/task/TaskView.vue:74 msgid "Logs" msgstr "日志" -#: src/components/common/ServiceStatus.vue:25 -#: src/views/home/IndexView.vue:770 -#: src/views/home/IndexView.vue:778 -#: src/views/home/IndexView.vue:785 -#: src/views/home/IndexView.vue:791 -#: src/views/home/IndexView.vue:802 +#: src/components/common/ServiceStatus.vue:25 src/views/home/IndexView.vue:770 +#: src/views/home/IndexView.vue:778 src/views/home/IndexView.vue:785 +#: src/views/home/IndexView.vue:791 src/views/home/IndexView.vue:802 #: src/views/home/IndexView.vue:814 msgid "Loading..." msgstr "加载中……" -#: src/components/common/ServiceStatus.vue:26 -#: src/views/project/ListView.vue:60 -#: src/views/task/TaskView.vue:33 -#: src/views/toolbox/ProcessView.vue:48 -#: src/views/toolbox/ProcessView.vue:80 -#: src/views/website/ListView.vue:28 +#: src/components/common/ServiceStatus.vue:26 src/views/project/ListView.vue:63 +#: src/views/task/TaskView.vue:33 src/views/toolbox/ProcessView.vue:48 +#: src/views/toolbox/ProcessView.vue:80 src/views/website/ListView.vue:28 msgid "Running" msgstr "运行中" -#: src/components/common/ServiceStatus.vue:26 -#: src/views/project/ListView.vue:60 -#: src/views/toolbox/ProcessView.vue:50 -#: src/views/toolbox/ProcessView.vue:84 +#: src/components/common/ServiceStatus.vue:26 src/views/project/ListView.vue:63 +#: src/views/toolbox/ProcessView.vue:50 src/views/toolbox/ProcessView.vue:86 msgid "Stopped" msgstr "已停止" @@ -591,8 +513,7 @@ msgstr "正在启动……" #: src/components/common/ServiceStatus.vue:48 #: src/views/apps/supervisor/IndexView.vue:240 -#: src/views/project/ListView.vue:152 -#: src/views/website/ListView.vue:228 +#: src/views/project/ListView.vue:168 src/views/website/ListView.vue:228 msgid "Started successfully" msgstr "启动成功" @@ -603,8 +524,7 @@ msgstr "停止中..." #: src/components/common/ServiceStatus.vue:63 #: src/views/apps/supervisor/IndexView.vue:247 -#: src/views/project/ListView.vue:147 -#: src/views/website/ListView.vue:230 +#: src/views/project/ListView.vue:163 src/views/website/ListView.vue:230 msgid "Stopped successfully" msgstr "停止成功" @@ -644,14 +564,12 @@ msgstr "自启动已成功禁用" #: src/views/apps/fail2ban/IndexView.vue:228 #: src/views/apps/gitea/IndexView.vue:29 #: src/views/apps/memcached/IndexView.vue:51 -#: src/views/apps/minio/IndexView.vue:29 -#: src/views/apps/mysql/MysqlIndex.vue:80 +#: src/views/apps/minio/IndexView.vue:29 src/views/apps/mysql/MysqlIndex.vue:80 #: src/views/apps/nginx/NginxIndex.vue:476 #: src/views/apps/podman/IndexView.vue:39 #: src/views/apps/postgresql/IndexView.vue:63 #: src/views/apps/pureftpd/IndexView.vue:158 -#: src/views/apps/redis/IndexView.vue:48 -#: src/views/apps/rsync/IndexView.vue:191 +#: src/views/apps/redis/IndexView.vue:48 src/views/apps/rsync/IndexView.vue:191 #: src/views/apps/supervisor/IndexView.vue:298 #: src/views/container/ContainerView.vue:102 #: src/views/environment/PHPView.vue:192 @@ -670,8 +588,7 @@ msgstr "自启动关闭" #: src/views/apps/supervisor/IndexView.vue:115 #: src/views/container/ComposeView.vue:173 #: src/views/container/ContainerView.vue:161 -#: src/views/container/ContainerView.vue:558 -#: src/views/project/ListView.vue:85 +#: src/views/container/ContainerView.vue:558 src/views/project/ListView.vue:101 msgid "Start" msgstr "启动" @@ -679,8 +596,7 @@ msgstr "启动" #: src/views/apps/supervisor/IndexView.vue:140 #: src/views/container/ComposeView.vue:212 #: src/views/container/ContainerView.vue:166 -#: src/views/container/ContainerView.vue:561 -#: src/views/project/ListView.vue:85 +#: src/views/container/ContainerView.vue:561 src/views/project/ListView.vue:101 msgid "Stop" msgstr "停止" @@ -691,8 +607,7 @@ msgstr "您确定要停止 %{ service } 吗?" #: src/components/common/ServiceStatus.vue:162 #: src/views/apps/supervisor/IndexView.vue:168 #: src/views/container/ContainerView.vue:171 -#: src/views/container/ContainerView.vue:564 -#: src/views/home/IndexView.vue:475 +#: src/views/container/ContainerView.vue:564 src/views/home/IndexView.vue:475 msgid "Restart" msgstr "重启" @@ -753,7 +668,7 @@ msgid "Encoding" msgstr "编码" #: src/components/file-editor/EditorStatusBar.vue:144 -#: src/views/setting/SettingBase.vue:104 +#: src/views/setting/SettingBase.vue:117 msgid "Language" msgstr "语言" @@ -786,10 +701,8 @@ msgstr "此文件有未保存的更改。刷新将丢弃它们。是否继续? #: src/components/file-editor/EditorToolbar.vue:200 #: src/components/file-editor/EditorToolbar.vue:205 #: src/components/file-editor/FileTree.vue:695 -#: src/views/log/DatabaseLog.vue:108 -#: src/views/log/HttpLog.vue:133 -#: src/views/log/OperationLog.vue:106 -#: src/views/toolbox/ProcessView.vue:327 +#: src/views/log/DatabaseLog.vue:108 src/views/log/HttpLog.vue:133 +#: src/views/log/OperationLog.vue:106 src/views/toolbox/ProcessView.vue:329 msgid "Refresh" msgstr "刷新" @@ -804,12 +717,9 @@ msgstr "保存(Ctrl+S)" #: src/components/file-editor/EditorToolbar.vue:184 #: src/views/apps/apache/IndexView.vue:72 #: src/views/apps/codeserver/IndexView.vue:46 -#: src/views/apps/docker/IndexView.vue:42 -#: src/views/apps/frp/IndexView.vue:63 -#: src/views/apps/frp/IndexView.vue:78 -#: src/views/apps/frp/IndexView.vue:91 -#: src/views/apps/frp/IndexView.vue:106 -#: src/views/apps/gitea/IndexView.vue:44 +#: src/views/apps/docker/IndexView.vue:42 src/views/apps/frp/IndexView.vue:63 +#: src/views/apps/frp/IndexView.vue:78 src/views/apps/frp/IndexView.vue:91 +#: src/views/apps/frp/IndexView.vue:106 src/views/apps/gitea/IndexView.vue:44 #: src/views/apps/memcached/IndexView.vue:59 #: src/views/apps/minio/IndexView.vue:44 #: src/views/apps/mysql/MysqlIndex.vue:111 @@ -821,21 +731,15 @@ msgstr "保存(Ctrl+S)" #: src/views/apps/postgresql/IndexView.vue:78 #: src/views/apps/postgresql/IndexView.vue:95 #: src/views/apps/pureftpd/IndexView.vue:165 -#: src/views/apps/redis/IndexView.vue:63 -#: src/views/apps/rsync/IndexView.vue:235 +#: src/views/apps/redis/IndexView.vue:63 src/views/apps/rsync/IndexView.vue:235 #: src/views/apps/supervisor/IndexView.vue:342 -#: src/views/environment/PHPView.vue:232 -#: src/views/environment/PHPView.vue:250 -#: src/views/project/EditModal.vue:575 -#: src/views/setting/IndexView.vue:106 -#: src/views/task/CronView.vue:259 -#: src/views/toolbox/SshView.vue:239 -#: src/views/toolbox/SystemView.vue:110 -#: src/views/toolbox/SystemView.vue:134 -#: src/views/toolbox/SystemView.vue:152 -#: src/views/toolbox/SystemView.vue:178 -#: src/views/toolbox/WebHookView.vue:390 -#: src/views/website/EditView.vue:932 +#: src/views/environment/PHPView.vue:232 src/views/environment/PHPView.vue:250 +#: src/views/project/EditModal.vue:575 src/views/setting/IndexView.vue:107 +#: src/views/task/CronView.vue:259 src/views/toolbox/SshView.vue:239 +#: src/views/toolbox/SystemView.vue:152 src/views/toolbox/SystemView.vue:176 +#: src/views/toolbox/SystemView.vue:194 src/views/toolbox/SystemView.vue:232 +#: src/views/toolbox/SystemView.vue:304 src/views/toolbox/WebHookView.vue:390 +#: src/views/website/EditView.vue:1016 msgid "Save" msgstr "保存" @@ -881,8 +785,7 @@ msgid "Toggle Minimap" msgstr "切换小地图" #: src/components/file-editor/EditorToolbar.vue:291 -#: src/views/firewall/IndexView.vue:23 -#: src/views/website/IndexView.vue:24 +#: src/views/firewall/IndexView.vue:23 src/views/website/IndexView.vue:24 msgid "Settings" msgstr "设置" @@ -891,7 +794,7 @@ msgid "Editor Settings" msgstr "编辑器设置" #: src/components/file-editor/FileEditorView.vue:145 -#: src/views/setting/IndexView.vue:90 +#: src/views/setting/IndexView.vue:91 msgid "Basic" msgstr "基本" @@ -954,19 +857,13 @@ msgid "Render Whitespace" msgstr "渲染空格" #: src/components/file-editor/FileEditorView.vue:207 -#: src/views/cert/CertView.vue:69 -#: src/views/cert/CertView.vue:123 -#: src/views/cert/CertView.vue:134 -#: src/views/cert/CertView.vue:152 +#: src/views/cert/CertView.vue:69 src/views/cert/CertView.vue:123 +#: src/views/cert/CertView.vue:134 src/views/cert/CertView.vue:152 #: src/views/container/ContainerCreate.vue:51 -#: src/views/database/ServerList.vue:51 -#: src/views/database/ServerList.vue:66 -#: src/views/database/UserList.vue:45 -#: src/views/database/UserList.vue:85 -#: src/views/firewall/ForwardView.vue:25 -#: src/views/firewall/IpRuleView.vue:25 -#: src/views/firewall/IpRuleView.vue:42 -#: src/views/firewall/RuleView.vue:25 +#: src/views/database/ServerList.vue:51 src/views/database/ServerList.vue:66 +#: src/views/database/UserList.vue:45 src/views/database/UserList.vue:85 +#: src/views/firewall/ForwardView.vue:25 src/views/firewall/IpRuleView.vue:25 +#: src/views/firewall/IpRuleView.vue:42 src/views/firewall/RuleView.vue:25 #: src/views/firewall/RuleView.vue:42 msgid "None" msgstr "无" @@ -984,9 +881,8 @@ msgid "Trailing" msgstr "尾部" #: src/components/file-editor/FileEditorView.vue:211 -#: src/views/app/AppView.vue:229 -#: src/views/app/EnvironmentView.vue:217 -#: src/views/firewall/RuleView.vue:150 +#: src/views/app/AppView.vue:229 src/views/app/EnvironmentView.vue:217 +#: src/views/app/TemplateView.vue:59 src/views/firewall/RuleView.vue:150 #: src/views/project/IndexView.vue:21 msgid "All" msgstr "全部" @@ -1079,8 +975,7 @@ msgstr "粘贴时格式化" msgid "Format On Type" msgstr "输入时格式化" -#: src/components/file-editor/FileTree.vue:154 -#: src/views/file/EditModal.vue:50 +#: src/components/file-editor/FileTree.vue:154 src/views/file/EditModal.vue:50 msgid "Failed to load file" msgstr "加载文件失败" @@ -1088,19 +983,20 @@ msgstr "加载文件失败" msgid "Failed to create" msgstr "创建失败" -#: src/components/file-editor/FileTree.vue:378 +#: src/components/file-editor/FileTree.vue:378 src/views/file/ListView.vue:1304 +#: src/views/file/ListView.vue:1322 msgid "Folder name" msgstr "文件夹名" -#: src/components/file-editor/FileTree.vue:378 +#: src/components/file-editor/FileTree.vue:378 src/views/file/ListView.vue:1304 +#: src/views/file/ListView.vue:1322 msgid "File name" msgstr "文件名" #: src/components/file-editor/FileTree.vue:477 #: src/views/container/ContainerView.vue:153 -#: src/views/container/ContainerView.vue:616 -#: src/views/file/ListView.vue:228 -#: src/views/file/ListView.vue:1350 +#: src/views/container/ContainerView.vue:616 src/views/file/ListView.vue:306 +#: src/views/file/ListView.vue:1477 msgid "Rename" msgstr "重命名" @@ -1113,49 +1009,32 @@ msgstr "重命名" #: src/views/apps/nginx/NginxIndex.vue:709 #: src/views/apps/pureftpd/IndexView.vue:88 #: src/views/apps/rsync/IndexView.vue:105 -#: src/views/apps/supervisor/IndexView.vue:195 -#: src/views/backup/ListView.vue:96 -#: src/views/cert/AccountView.vue:127 -#: src/views/cert/CertView.vue:303 -#: src/views/cert/DnsView.vue:111 -#: src/views/container/ComposeView.vue:243 +#: src/views/apps/supervisor/IndexView.vue:195 src/views/backup/ListView.vue:96 +#: src/views/cert/AccountView.vue:127 src/views/cert/CertView.vue:303 +#: src/views/cert/DnsView.vue:111 src/views/container/ComposeView.vue:243 #: src/views/container/ComposeView.vue:323 #: src/views/container/ContainerView.vue:191 #: src/views/container/ContainerView.vue:576 -#: src/views/container/ImageView.vue:115 -#: src/views/container/ImageView.vue:275 +#: src/views/container/ImageView.vue:115 src/views/container/ImageView.vue:275 #: src/views/container/NetworkView.vue:134 #: src/views/container/NetworkView.vue:208 -#: src/views/container/VolumeView.vue:88 -#: src/views/container/VolumeView.vue:162 +#: src/views/container/VolumeView.vue:88 src/views/container/VolumeView.vue:162 #: src/views/database/DatabaseList.vue:101 -#: src/views/database/ServerList.vue:214 -#: src/views/database/UserList.vue:189 -#: src/views/environment/PHPView.vue:106 -#: src/views/file/ListView.vue:185 -#: src/views/file/ListView.vue:235 -#: src/views/file/ListView.vue:1355 -#: src/views/file/ToolBar.vue:293 -#: src/views/firewall/ForwardView.vue:103 -#: src/views/firewall/IpRuleView.vue:145 -#: src/views/firewall/RuleView.vue:182 -#: src/views/project/ListView.vue:124 -#: src/views/project/ListView.vue:202 -#: src/views/setting/SettingUser.vue:139 -#: src/views/setting/TokenModal.vue:91 -#: src/views/ssh/IndexView.vue:91 -#: src/views/task/CronView.vue:149 -#: src/views/task/TaskView.vue:97 -#: src/views/toolbox/WebHookView.vue:179 -#: src/views/website/ListView.vue:195 -#: src/views/website/ListView.vue:289 +#: src/views/database/ServerList.vue:214 src/views/database/UserList.vue:189 +#: src/views/environment/PHPView.vue:106 src/views/file/ListView.vue:263 +#: src/views/file/ListView.vue:313 src/views/file/ListView.vue:1482 +#: src/views/file/ToolBar.vue:273 src/views/firewall/ForwardView.vue:103 +#: src/views/firewall/IpRuleView.vue:145 src/views/firewall/RuleView.vue:182 +#: src/views/project/ListView.vue:140 src/views/project/ListView.vue:218 +#: src/views/setting/SettingUser.vue:139 src/views/setting/TokenModal.vue:91 +#: src/views/ssh/IndexView.vue:91 src/views/task/CronView.vue:149 +#: src/views/task/TaskView.vue:97 src/views/toolbox/WebHookView.vue:179 +#: src/views/website/ListView.vue:195 src/views/website/ListView.vue:289 msgid "Delete" msgstr "删除" -#: src/components/file-editor/FileTree.vue:481 -#: src/views/file/ListView.vue:219 -#: src/views/file/ListView.vue:1345 -#: src/views/monitor/IndexView.vue:498 +#: src/components/file-editor/FileTree.vue:481 src/views/file/ListView.vue:297 +#: src/views/file/ListView.vue:1472 src/views/monitor/IndexView.vue:498 #: src/views/toolbox/SshView.vue:301 msgid "Download" msgstr "下载" @@ -1170,8 +1049,7 @@ msgstr "重命名失败" #: src/components/file-editor/FileTree.vue:601 #: src/views/apps/nginx/NginxIndex.vue:207 -#: src/views/apps/nginx/NginxIndex.vue:283 -#: src/views/file/ListView.vue:1358 +#: src/views/apps/nginx/NginxIndex.vue:283 src/views/file/ListView.vue:1485 msgid "Are you sure you want to delete %{ name }?" msgstr "您确定要删除 %{ name } 吗?" @@ -1180,34 +1058,22 @@ msgstr "您确定要删除 %{ name } 吗?" #: src/views/apps/nginx/NginxIndex.vue:390 #: src/views/apps/nginx/NginxIndex.vue:467 #: src/views/apps/pureftpd/IndexView.vue:145 -#: src/views/apps/rsync/IndexView.vue:158 -#: src/views/apps/s3fs/IndexView.vue:89 +#: src/views/apps/rsync/IndexView.vue:158 src/views/apps/s3fs/IndexView.vue:89 #: src/views/apps/supervisor/IndexView.vue:261 -#: src/views/backup/ListView.vue:145 -#: src/views/container/ImageView.vue:156 +#: src/views/backup/ListView.vue:145 src/views/container/ImageView.vue:156 #: src/views/container/NetworkView.vue:175 #: src/views/container/VolumeView.vue:129 #: src/views/database/DatabaseList.vue:125 -#: src/views/database/ServerList.vue:238 -#: src/views/database/UserList.vue:213 -#: src/views/file/ListView.vue:643 -#: src/views/file/ListView.vue:663 -#: src/views/file/ToolBar.vue:190 -#: src/views/firewall/ForwardView.vue:129 -#: src/views/firewall/ForwardView.vue:147 -#: src/views/firewall/IpRuleView.vue:171 -#: src/views/firewall/IpRuleView.vue:189 -#: src/views/firewall/RuleView.vue:208 -#: src/views/firewall/RuleView.vue:226 -#: src/views/project/ListView.vue:170 -#: src/views/project/ListView.vue:180 -#: src/views/setting/SettingUser.vue:174 -#: src/views/setting/TokenModal.vue:114 -#: src/views/task/CronView.vue:191 -#: src/views/task/TaskView.vue:122 -#: src/views/toolbox/WebHookView.vue:236 -#: src/views/website/ListView.vue:254 -#: src/views/website/ListView.vue:264 +#: src/views/database/ServerList.vue:238 src/views/database/UserList.vue:213 +#: src/views/file/ListView.vue:721 src/views/file/ListView.vue:741 +#: src/views/file/ToolBar.vue:170 src/views/firewall/ForwardView.vue:129 +#: src/views/firewall/ForwardView.vue:147 src/views/firewall/IpRuleView.vue:171 +#: src/views/firewall/IpRuleView.vue:189 src/views/firewall/RuleView.vue:208 +#: src/views/firewall/RuleView.vue:226 src/views/project/ListView.vue:186 +#: src/views/project/ListView.vue:196 src/views/setting/SettingUser.vue:174 +#: src/views/setting/TokenModal.vue:114 src/views/task/CronView.vue:191 +#: src/views/task/TaskView.vue:122 src/views/toolbox/WebHookView.vue:236 +#: src/views/website/ListView.vue:254 src/views/website/ListView.vue:264 msgid "Deleted successfully" msgstr "删除成功" @@ -1227,9 +1093,7 @@ msgstr "新文件" msgid "New Folder" msgstr "新文件夹" -#: src/components/file-editor/FileTree.vue:707 -#: src/views/file/ToolBar.vue:251 -#: src/views/file/ToolBar.vue:305 +#: src/components/file-editor/FileTree.vue:707 src/views/file/ToolBar.vue:231 msgid "New" msgstr "新建" @@ -1273,8 +1137,7 @@ msgstr "切换主题" #: src/layout/header/components/UserAvatar.vue:13 #: src/views/apps/pureftpd/IndexView.vue:65 #: src/views/apps/pureftpd/IndexView.vue:249 -#: src/views/setting/PasswordModal.vue:26 -#: src/views/setting/SettingUser.vue:117 +#: src/views/setting/PasswordModal.vue:26 src/views/setting/SettingUser.vue:117 msgid "Change Password" msgstr "更改密码" @@ -1294,12 +1157,9 @@ msgstr "提示" msgid "Logged out successfully!" msgstr "退出登录成功!" -#: src/layout/header/components/UserAvatar.vue:48 -#: src/views/cert/DnsView.vue:56 -#: src/views/firewall/IpRuleView.vue:76 -#: src/views/firewall/IpRuleView.vue:101 -#: src/views/firewall/RuleView.vue:110 -#: src/views/firewall/RuleView.vue:135 +#: src/layout/header/components/UserAvatar.vue:48 src/views/cert/DnsView.vue:56 +#: src/views/firewall/IpRuleView.vue:76 src/views/firewall/IpRuleView.vue:101 +#: src/views/firewall/RuleView.vue:110 src/views/firewall/RuleView.vue:135 #: src/views/toolbox/DiskView.vue:172 msgid "Unknown" msgstr "未知" @@ -1328,13 +1188,10 @@ msgstr "应用" msgid "Backup" msgstr "备份" -#: src/locales/menu.ts:9 -#: src/views/cert/CertView.vue:486 -#: src/views/cert/CertView.vue:563 -#: src/views/cert/IndexView.vue:96 -#: src/views/cert/UploadCertModal.vue:38 -#: src/views/setting/SettingSafe.vue:290 -#: src/views/website/EditView.vue:863 +#: src/locales/menu.ts:9 src/views/cert/CertView.vue:486 +#: src/views/cert/CertView.vue:563 src/views/cert/IndexView.vue:96 +#: src/views/cert/UploadCertModal.vue:38 src/views/setting/SettingSafe.vue:290 +#: src/views/website/EditView.vue:893 msgid "Certificate" msgstr "证书" @@ -1342,10 +1199,8 @@ msgstr "证书" msgid "Container" msgstr "容器" -#: src/locales/menu.ts:11 -#: src/views/backup/ListView.vue:276 -#: src/views/database/IndexView.vue:27 -#: src/views/home/IndexView.vue:453 +#: src/locales/menu.ts:11 src/views/backup/ListView.vue:276 +#: src/views/database/IndexView.vue:27 src/views/home/IndexView.vue:453 #: src/views/website/CreateModal.vue:170 msgid "Database" msgstr "数据库" @@ -1382,24 +1237,17 @@ msgstr "任务" msgid "Toolbox" msgstr "工具箱" -#: src/locales/menu.ts:22 -#: src/views/app/AppView.vue:93 -#: src/views/app/EnvironmentView.vue:78 -#: src/views/home/IndexView.vue:479 +#: src/locales/menu.ts:22 src/views/app/AppView.vue:93 +#: src/views/app/EnvironmentView.vue:78 src/views/home/IndexView.vue:479 #: src/views/setting/TokenModal.vue:299 msgid "Update" msgstr "更新" -#: src/locales/menu.ts:23 -#: src/views/apps/fail2ban/IndexView.vue:315 -#: src/views/backup/IndexView.vue:37 -#: src/views/backup/ListView.vue:232 -#: src/views/backup/ListView.vue:269 -#: src/views/cert/CertView.vue:455 -#: src/views/cert/CertView.vue:538 -#: src/views/cert/CreateCertModal.vue:90 -#: src/views/home/IndexView.vue:449 -#: src/views/task/CreateModal.vue:118 +#: src/locales/menu.ts:23 src/views/apps/fail2ban/IndexView.vue:315 +#: src/views/backup/IndexView.vue:37 src/views/backup/ListView.vue:232 +#: src/views/backup/ListView.vue:269 src/views/cert/CertView.vue:455 +#: src/views/cert/CertView.vue:538 src/views/cert/CreateCertModal.vue:90 +#: src/views/home/IndexView.vue:449 src/views/task/CreateModal.vue:118 msgid "Website" msgstr "网站" @@ -1427,15 +1275,12 @@ msgstr "Rsync 管理器" msgid "Frp Manager" msgstr "Frp 管理器" -#: src/router/routes/index.ts:18 -#: src/views/login/IndexView.vue:229 +#: src/router/routes/index.ts:18 src/views/login/IndexView.vue:229 msgid "Login" msgstr "登录" -#: src/views/app/AppView.vue:17 -#: src/views/app/AppView.vue:152 -#: src/views/app/AppView.vue:157 -#: src/views/app/EnvironmentView.vue:145 +#: src/views/app/AppView.vue:17 src/views/app/AppView.vue:152 +#: src/views/app/AppView.vue:157 src/views/app/EnvironmentView.vue:145 #: src/views/environment/PHPView.vue:79 msgid "Install" msgstr "安装" @@ -1444,16 +1289,13 @@ msgstr "安装" msgid "App Name" msgstr "应用名称" -#: src/views/app/AppView.vue:40 -#: src/views/app/EnvironmentView.vue:33 -#: src/views/environment/PHPView.vue:48 -#: src/views/project/EditModal.vue:188 -#: src/views/project/ListView.vue:38 +#: src/views/app/AppView.vue:40 src/views/app/EnvironmentView.vue:33 +#: src/views/environment/PHPView.vue:48 src/views/project/EditModal.vue:188 +#: src/views/project/ListView.vue:41 msgid "Description" msgstr "描述" -#: src/views/app/AppView.vue:46 -#: src/views/app/EnvironmentView.vue:45 +#: src/views/app/AppView.vue:46 src/views/app/EnvironmentView.vue:45 msgid "Installed Version" msgstr "已安装版本" @@ -1461,65 +1303,52 @@ msgstr "已安装版本" msgid "Show in Home" msgstr "在主页显示" -#: src/views/app/AppView.vue:65 -#: src/views/app/EnvironmentView.vue:51 +#: src/views/app/AppView.vue:65 src/views/app/EnvironmentView.vue:51 #: src/views/apps/fail2ban/IndexView.vue:59 #: src/views/apps/fail2ban/IndexView.vue:118 #: src/views/apps/nginx/NginxIndex.vue:184 #: src/views/apps/nginx/NginxIndex.vue:260 #: src/views/apps/nginx/NginxIndex.vue:696 #: src/views/apps/pureftpd/IndexView.vue:46 -#: src/views/apps/rsync/IndexView.vue:68 -#: src/views/apps/s3fs/IndexView.vue:32 -#: src/views/apps/supervisor/IndexView.vue:74 -#: src/views/backup/ListView.vue:57 -#: src/views/cert/AccountView.vue:79 -#: src/views/cert/CertView.vue:170 -#: src/views/cert/DnsView.vue:64 -#: src/views/container/ComposeView.vue:100 +#: src/views/apps/rsync/IndexView.vue:68 src/views/apps/s3fs/IndexView.vue:32 +#: src/views/apps/supervisor/IndexView.vue:74 src/views/backup/ListView.vue:57 +#: src/views/cert/AccountView.vue:79 src/views/cert/CertView.vue:170 +#: src/views/cert/DnsView.vue:64 src/views/container/ComposeView.vue:100 #: src/views/container/ContainerView.vue:109 -#: src/views/container/ImageView.vue:90 -#: src/views/container/NetworkView.vue:109 -#: src/views/container/VolumeView.vue:63 -#: src/views/database/DatabaseList.vue:77 -#: src/views/database/ServerList.vue:134 -#: src/views/database/UserList.vue:151 -#: src/views/environment/PHPView.vue:55 -#: src/views/file/ListView.vue:1206 -#: src/views/firewall/ForwardView.vue:79 -#: src/views/firewall/IpRuleView.vue:121 -#: src/views/firewall/RuleView.vue:158 -#: src/views/project/ListView.vue:72 -#: src/views/setting/SettingUser.vue:85 -#: src/views/setting/TokenModal.vue:52 -#: src/views/task/CronView.vue:98 -#: src/views/task/TaskView.vue:55 -#: src/views/toolbox/DiskView.vue:340 -#: src/views/toolbox/DiskView.vue:831 -#: src/views/toolbox/WebHookView.vue:131 -#: src/views/website/ListView.vue:123 +#: src/views/container/ImageView.vue:90 src/views/container/NetworkView.vue:109 +#: src/views/container/VolumeView.vue:63 src/views/database/DatabaseList.vue:77 +#: src/views/database/ServerList.vue:134 src/views/database/UserList.vue:151 +#: src/views/environment/PHPView.vue:55 src/views/file/ListView.vue:1286 +#: src/views/firewall/ForwardView.vue:79 src/views/firewall/IpRuleView.vue:121 +#: src/views/firewall/RuleView.vue:158 src/views/project/ListView.vue:88 +#: src/views/setting/SettingUser.vue:85 src/views/setting/TokenModal.vue:52 +#: src/views/task/CronView.vue:98 src/views/task/TaskView.vue:55 +#: src/views/toolbox/DiskView.vue:340 src/views/toolbox/DiskView.vue:831 +#: src/views/toolbox/WebHookView.vue:131 src/views/website/ListView.vue:123 msgid "Actions" msgstr "操作" #: src/views/app/AppView.vue:80 -msgid "Updating app %{ app } may reset related configurations to default state, are you sure to continue?" +msgid "" +"Updating app %{ app } may reset related configurations to default state, are " +"you sure to continue?" msgstr "更新应用 %{ app } 可能会将相关配置重置为默认状态,您确定要继续吗?" -#: src/views/app/AppView.vue:109 -#: src/views/app/EnvironmentView.vue:94 +#: src/views/app/AppView.vue:109 src/views/app/EnvironmentView.vue:94 msgid "Manage" msgstr "管理" #: src/views/app/AppView.vue:123 -msgid "Reinstalling/Switching to a different web server will reset the configuration of all websites, are you sure to continue?" +msgid "" +"Reinstalling/Switching to a different web server will reset the " +"configuration of all websites, are you sure to continue?" msgstr "重新安装/切换到不同的 Web 服务器将重置所有网站的配置,您确定要继续吗?" #: src/views/app/AppView.vue:127 msgid "Are you sure to uninstall app %{ app }?" msgstr "您确定要卸载应用 %{ app } 吗?" -#: src/views/app/AppView.vue:137 -#: src/views/app/EnvironmentView.vue:118 +#: src/views/app/AppView.vue:137 src/views/app/EnvironmentView.vue:118 msgid "Uninstall" msgstr "卸载" @@ -1527,12 +1356,9 @@ msgstr "卸载" msgid "Setup successfully" msgstr "设置成功" -#: src/views/app/AppView.vue:198 -#: src/views/app/AppView.vue:206 -#: src/views/app/EnvironmentView.vue:178 -#: src/views/app/EnvironmentView.vue:186 -#: src/views/app/EnvironmentView.vue:194 -#: src/views/app/VersionModal.vue:34 +#: src/views/app/AppView.vue:198 src/views/app/AppView.vue:206 +#: src/views/app/EnvironmentView.vue:178 src/views/app/EnvironmentView.vue:186 +#: src/views/app/EnvironmentView.vue:194 src/views/app/VersionModal.vue:34 msgid "Task submitted, please check the progress in background tasks" msgstr "任务已提交,请在后台任务中查看进度" @@ -1572,6 +1398,80 @@ msgstr "容器模板" msgid "Update Cache" msgstr "更新缓存" +#: src/views/app/TemplateDeployModal.vue:58 +#, fuzzy +msgid "Please enter compose name" +msgstr "请输入镜像名" + +#: src/views/app/TemplateDeployModal.vue:128 +#, fuzzy +msgid "Deploy Template" +msgstr "部署证书" + +#: src/views/app/TemplateDeployModal.vue:139 +#: src/views/container/ContainerCreate.vue:191 +#: src/views/project/EditModal.vue:177 src/views/website/EditView.vue:462 +msgid "Basic Settings" +msgstr "基本设置" + +#: src/views/app/TemplateDeployModal.vue:141 +#: src/views/container/ComposeView.vue:361 +msgid "Compose Name" +msgstr "编排名称" + +#: src/views/app/TemplateDeployModal.vue:146 +#, fuzzy +msgid "Enter compose name" +msgstr "输入备注名称" + +#: src/views/app/TemplateDeployModal.vue:150 +#, fuzzy +msgid "Deploy Options" +msgstr "挂载选项" + +#: src/views/app/TemplateDeployModal.vue:154 +#, fuzzy +msgid "Auto Start" +msgstr "自启动开启" + +#: src/views/app/TemplateDeployModal.vue:159 +#, fuzzy +msgid "Auto Firewall" +msgstr "防火墙" + +#: src/views/app/TemplateDeployModal.vue:163 +msgid "Automatically allow ports defined in compose" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:176 +#: src/views/apps/minio/IndexView.vue:32 +#: src/views/container/ComposeView.vue:367 +#: src/views/container/ComposeView.vue:393 +#: src/views/container/ContainerCreate.vue:454 +#: src/views/project/EditModal.vue:373 src/views/toolbox/ProcessView.vue:440 +msgid "Environment Variables" +msgstr "环境变量" + +#: src/views/app/TemplateDeployModal.vue:189 +#, fuzzy +msgid "Select value" +msgstr "选择文件" + +#: src/views/app/TemplateDeployModal.vue:219 +#, fuzzy +msgid "Compose Preview" +msgstr "编排名称" + +#: src/views/app/TemplateDeployModal.vue:230 src/views/app/TemplateView.vue:94 +#: src/views/cert/CertView.vue:208 +msgid "Deploy" +msgstr "部署" + +#: src/views/app/TemplateDeployModal.vue:238 +#: src/views/container/ComposeView.vue:408 +msgid "Starting Compose" +msgstr "正在启动编排" + #: src/views/app/VersionModal.vue:79 msgid "Channel" msgstr "渠道" @@ -1593,8 +1493,7 @@ msgstr "发行日志" #: src/views/apps/mysql/MysqlIndex.vue:32 #: src/views/apps/nginx/NginxIndex.vue:130 #: src/views/apps/postgresql/IndexView.vue:30 -#: src/views/apps/redis/IndexView.vue:24 -#: src/views/environment/PHPView.vue:120 +#: src/views/apps/redis/IndexView.vue:24 src/views/environment/PHPView.vue:120 msgid "Property" msgstr "属性" @@ -1603,8 +1502,7 @@ msgstr "属性" #: src/views/apps/mysql/MysqlIndex.vue:39 #: src/views/apps/nginx/NginxIndex.vue:137 #: src/views/apps/postgresql/IndexView.vue:37 -#: src/views/apps/redis/IndexView.vue:31 -#: src/views/environment/PHPView.vue:127 +#: src/views/apps/redis/IndexView.vue:31 src/views/environment/PHPView.vue:127 msgid "Current Value" msgstr "当前值" @@ -1614,18 +1512,15 @@ msgstr "当前值" #: src/views/apps/nginx/NginxIndex.vue:329 #: src/views/apps/postgresql/IndexView.vue:56 #: src/views/apps/supervisor/IndexView.vue:225 -#: src/views/environment/PHPView.vue:166 -#: src/views/environment/PHPView.vue:172 -#: src/views/website/EditView.vue:168 +#: src/views/environment/PHPView.vue:166 src/views/environment/PHPView.vue:172 +#: src/views/website/EditView.vue:169 msgid "Cleared successfully" msgstr "清除成功" #: src/views/apps/apache/IndexView.vue:59 #: src/views/apps/codeserver/IndexView.vue:34 -#: src/views/apps/frp/IndexView.vue:75 -#: src/views/apps/frp/IndexView.vue:103 -#: src/views/apps/gitea/IndexView.vue:32 -#: src/views/apps/mysql/MysqlIndex.vue:98 +#: src/views/apps/frp/IndexView.vue:75 src/views/apps/frp/IndexView.vue:103 +#: src/views/apps/gitea/IndexView.vue:32 src/views/apps/mysql/MysqlIndex.vue:98 #: src/views/apps/nginx/NginxIndex.vue:479 #: src/views/apps/phpmyadmin/IndexView.vue:73 msgid "Modify Configuration" @@ -1633,16 +1528,18 @@ msgstr "修改配置" #: src/views/apps/apache/IndexView.vue:63 #: src/views/apps/nginx/NginxIndex.vue:483 -msgid "This modifies the %{name} main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "这将修改 %{name} 主配置文件。如果您不了解每个参数的含义,请不要随意修改!" +msgid "" +"This modifies the %{name} main configuration file. If you do not understand " +"the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"这将修改 %{name} 主配置文件。如果您不了解每个参数的含义,请不要随意修改!" #: src/views/apps/apache/IndexView.vue:77 #: src/views/apps/memcached/IndexView.vue:64 #: src/views/apps/mysql/MysqlIndex.vue:116 #: src/views/apps/nginx/NginxIndex.vue:535 #: src/views/apps/postgresql/IndexView.vue:100 -#: src/views/apps/redis/IndexView.vue:68 -#: src/views/environment/PHPView.vue:255 +#: src/views/apps/redis/IndexView.vue:68 src/views/environment/PHPView.vue:255 #: src/views/home/IndexView.vue:490 msgid "Load Status" msgstr "负载状态" @@ -1658,8 +1555,7 @@ msgstr "负载状态" #: src/views/apps/nginx/NginxIndex.vue:545 #: src/views/apps/podman/IndexView.vue:85 #: src/views/apps/postgresql/IndexView.vue:110 -#: src/views/apps/redis/IndexView.vue:78 -#: src/views/apps/rsync/IndexView.vue:240 +#: src/views/apps/redis/IndexView.vue:78 src/views/apps/rsync/IndexView.vue:240 #: src/views/apps/supervisor/IndexView.vue:347 #: src/views/environment/PHPView.vue:265 msgid "Runtime Logs" @@ -1681,8 +1577,11 @@ msgid "Clear Log" msgstr "清除日志" #: src/views/apps/codeserver/IndexView.vue:38 -msgid "This modifies the Code Server configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "这将修改 Code Server 配置文件。如果您不理解每个参数的含义,请不要随意修改!" +msgid "" +"This modifies the Code Server configuration file. If you do not understand " +"the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"这将修改 Code Server 配置文件。如果您不理解每个参数的含义,请不要随意修改!" #: src/views/apps/docker/IndexView.vue:34 msgid "Configuration" @@ -1697,14 +1596,10 @@ msgstr "这将修改 Docker 配置文件 (/etc/docker/daemon.json)" #: src/views/apps/supervisor/IndexView.vue:53 #: src/views/container/ComposeView.vue:84 #: src/views/container/ContainerView.vue:50 -#: src/views/database/ServerList.vue:113 -#: src/views/database/UserList.vue:130 -#: src/views/firewall/RuleView.vue:61 -#: src/views/log/HttpLog.vue:74 -#: src/views/project/ListView.vue:53 -#: src/views/task/TaskView.vue:22 -#: src/views/toolbox/ProcessView.vue:135 -#: src/views/toolbox/ProcessView.vue:392 +#: src/views/database/ServerList.vue:113 src/views/database/UserList.vue:130 +#: src/views/firewall/RuleView.vue:61 src/views/log/HttpLog.vue:74 +#: src/views/project/ListView.vue:56 src/views/task/TaskView.vue:22 +#: src/views/toolbox/ProcessView.vue:137 src/views/toolbox/ProcessView.vue:394 msgid "Status" msgstr "状态" @@ -1723,8 +1618,7 @@ msgstr "封禁时间" msgid "Find Time" msgstr "查找时间" -#: src/views/apps/fail2ban/IndexView.vue:77 -#: src/views/cert/CertView.vue:252 +#: src/views/apps/fail2ban/IndexView.vue:77 src/views/cert/CertView.vue:252 msgid "View" msgstr "查看" @@ -1742,8 +1636,7 @@ msgstr "解封" #: src/views/apps/fail2ban/IndexView.vue:188 #: src/views/apps/pureftpd/IndexView.vue:128 -#: src/views/apps/rsync/IndexView.vue:150 -#: src/views/apps/s3fs/IndexView.vue:82 +#: src/views/apps/rsync/IndexView.vue:150 src/views/apps/s3fs/IndexView.vue:82 #: src/views/apps/supervisor/IndexView.vue:233 #: src/views/database/CreateServerModal.vue:37 msgid "Added successfully" @@ -1780,24 +1673,28 @@ msgid "Add Rule" msgstr "添加规则" #: src/views/apps/fail2ban/IndexView.vue:297 -msgid "If an IP exceeds the maximum retries within the find time (seconds), it will be banned for the ban time (seconds)" -msgstr "如果一个 IP 在查找时间(秒)内超过最大重试次数,它将被禁止访问指定的禁止时间(秒)" +msgid "" +"If an IP exceeds the maximum retries within the find time (seconds), it will " +"be banned for the ban time (seconds)" +msgstr "" +"如果一个 IP 在查找时间(秒)内超过最大重试次数,它将被禁止访问指定的禁止时间" +"(秒)" #: src/views/apps/fail2ban/IndexView.vue:304 -msgid "Protected ports are automatically obtained. If you modify the port corresponding to a rule, please delete and re-add the rule, otherwise protection may not be effective" -msgstr "受保护的端口会自动获取。如果您修改了某个规则对应的端口,请删除并重新添加该规则,否则保护可能无效" +msgid "" +"Protected ports are automatically obtained. If you modify the port " +"corresponding to a rule, please delete and re-add the rule, otherwise " +"protection may not be effective" +msgstr "" +"受保护的端口会自动获取。如果您修改了某个规则对应的端口,请删除并重新添加该规" +"则,否则保护可能无效" -#: src/views/apps/fail2ban/IndexView.vue:311 -#: src/views/cert/CertView.vue:86 -#: src/views/cert/DnsView.vue:38 -#: src/views/cert/ObtainModal.vue:58 +#: src/views/apps/fail2ban/IndexView.vue:311 src/views/cert/CertView.vue:86 +#: src/views/cert/DnsView.vue:38 src/views/cert/ObtainModal.vue:58 #: src/views/database/CreateServerModal.vue:63 -#: src/views/database/DatabaseList.vue:11 -#: src/views/database/ServerList.vue:16 -#: src/views/database/UserList.vue:16 -#: src/views/file/PropertyModal.vue:33 -#: src/views/log/OperationLog.vue:57 -#: src/views/project/ListView.vue:45 +#: src/views/database/DatabaseList.vue:11 src/views/database/ServerList.vue:16 +#: src/views/database/UserList.vue:16 src/views/file/PropertyModal.vue:33 +#: src/views/log/OperationLog.vue:57 src/views/project/ListView.vue:48 msgid "Type" msgstr "类型" @@ -1807,8 +1704,7 @@ msgid "Service" msgstr "服务" #: src/views/apps/fail2ban/IndexView.vue:321 -#: src/views/apps/fail2ban/IndexView.vue:325 -#: src/views/task/CreateModal.vue:132 +#: src/views/apps/fail2ban/IndexView.vue:325 src/views/task/CreateModal.vue:132 #: src/views/task/CreateModal.vue:137 msgid "Select Website" msgstr "选择网站" @@ -1818,8 +1714,7 @@ msgid "Protection Mode" msgstr "保护模式" #: src/views/apps/fail2ban/IndexView.vue:333 -#: src/views/apps/pureftpd/IndexView.vue:39 -#: src/views/log/HttpLog.vue:64 +#: src/views/apps/pureftpd/IndexView.vue:39 src/views/log/HttpLog.vue:64 msgid "Path" msgstr "路径" @@ -1849,59 +1744,46 @@ msgstr "总封禁次数" msgid "Ban List" msgstr "封禁列表" -#: src/views/apps/frp/IndexView.vue:60 -#: src/views/apps/frp/IndexView.vue:88 -#: src/views/project/CreateModal.vue:186 -#: src/views/project/EditModal.vue:232 +#: src/views/apps/frp/IndexView.vue:60 src/views/apps/frp/IndexView.vue:88 +#: src/views/project/CreateModal.vue:190 src/views/project/EditModal.vue:232 msgid "Run User" msgstr "运行用户" -#: src/views/apps/frp/IndexView.vue:67 -#: src/views/apps/frp/IndexView.vue:68 -#: src/views/apps/frp/IndexView.vue:95 -#: src/views/apps/frp/IndexView.vue:96 -#: src/views/apps/rsync/IndexView.vue:53 -#: src/views/apps/rsync/IndexView.vue:272 -#: src/views/apps/rsync/IndexView.vue:326 -#: src/views/database/IndexView.vue:28 -#: src/views/setting/IndexView.vue:92 -#: src/views/toolbox/ProcessView.vue:129 -#: src/views/toolbox/ProcessView.vue:389 -#: src/views/toolbox/WebHookView.vue:335 +#: src/views/apps/frp/IndexView.vue:67 src/views/apps/frp/IndexView.vue:68 +#: src/views/apps/frp/IndexView.vue:95 src/views/apps/frp/IndexView.vue:96 +#: src/views/apps/rsync/IndexView.vue:53 src/views/apps/rsync/IndexView.vue:272 +#: src/views/apps/rsync/IndexView.vue:326 src/views/database/IndexView.vue:28 +#: src/views/setting/IndexView.vue:93 src/views/toolbox/ProcessView.vue:131 +#: src/views/toolbox/ProcessView.vue:391 src/views/toolbox/WebHookView.vue:335 #: src/views/toolbox/WebHookView.vue:370 msgid "User" msgstr "用户" -#: src/views/apps/frp/IndexView.vue:70 -#: src/views/apps/frp/IndexView.vue:71 -#: src/views/apps/frp/IndexView.vue:98 -#: src/views/apps/frp/IndexView.vue:99 +#: src/views/apps/frp/IndexView.vue:70 src/views/apps/frp/IndexView.vue:71 +#: src/views/apps/frp/IndexView.vue:98 src/views/apps/frp/IndexView.vue:99 #: src/views/file/PermissionModal.vue:126 -#: src/views/file/PermissionModal.vue:150 -#: src/views/file/PropertyModal.vue:48 +#: src/views/file/PermissionModal.vue:150 src/views/file/PropertyModal.vue:48 msgid "Group" msgstr "组" #: src/views/apps/gitea/IndexView.vue:36 -msgid "This modifies the Gitea configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" +msgid "" +"This modifies the Gitea configuration file. If you do not understand the " +"meaning of each parameter, please do not modify it randomly!" msgstr "这将修改 Gitea 配置文件。如果您不理解每个参数的含义,请不要随意修改!" #: src/views/apps/memcached/IndexView.vue:54 msgid "Service Configuration" msgstr "服务配置" -#: src/views/apps/minio/IndexView.vue:32 -#: src/views/container/ComposeView.vue:367 -#: src/views/container/ComposeView.vue:393 -#: src/views/container/ContainerCreate.vue:454 -#: src/views/project/EditModal.vue:373 -#: src/views/toolbox/ProcessView.vue:438 -msgid "Environment Variables" -msgstr "环境变量" - #: src/views/apps/minio/IndexView.vue:36 -msgid "This is modifying the Minio environment variable file /etc/default/minio. If you do not understand the meaning of each parameter, please do not modify it arbitrarily!" -msgstr "这将修改 Minio 环境变量文件 /etc/default/minio。如果您不了解每个参数的含义,请不要随意修改!" +msgid "" +"This is modifying the Minio environment variable file /etc/default/minio. If " +"you do not understand the meaning of each parameter, please do not modify it " +"arbitrarily!" +msgstr "" +"这将修改 Minio 环境变量文件 /etc/default/minio。如果您不了解每个参数的含义," +"请不要随意修改!" #: src/views/apps/mysql/MysqlIndex.vue:66 #: src/views/apps/pureftpd/IndexView.vue:138 @@ -1909,56 +1791,44 @@ msgstr "这将修改 Minio 环境变量文件 /etc/default/minio。如果您不 #: src/views/database/ServerList.vue:244 #: src/views/database/UpdateServerModal.vue:21 #: src/views/database/UpdateUserModal.vue:18 -#: src/views/database/UserList.vue:219 -#: src/views/file/PermissionModal.vue:55 -#: src/views/setting/SettingUser.vue:162 -#: src/views/setting/SettingUser.vue:168 -#: src/views/task/CronView.vue:173 -#: src/views/task/CronView.vue:201 -#: src/views/toolbox/WebHookView.vue:211 -#: src/views/toolbox/WebHookView.vue:282 -#: src/views/website/ListView.vue:237 -#: src/views/website/SettingView.vue:36 +#: src/views/database/UserList.vue:219 src/views/file/PermissionModal.vue:55 +#: src/views/setting/SettingUser.vue:162 src/views/setting/SettingUser.vue:168 +#: src/views/task/CronView.vue:173 src/views/task/CronView.vue:201 +#: src/views/toolbox/WebHookView.vue:211 src/views/toolbox/WebHookView.vue:282 +#: src/views/website/ListView.vue:237 src/views/website/SettingView.vue:36 msgid "Modified successfully" msgstr "修改成功" -#: src/views/apps/mysql/MysqlIndex.vue:72 -#: src/views/database/ServerList.vue:75 -#: src/views/database/UserList.vue:69 -#: src/views/file/ListView.vue:718 -#: src/views/file/ListView.vue:738 -#: src/views/file/ToolBar.vue:151 -#: src/views/file/ToolBar.vue:171 -#: src/views/setting/TokenModal.vue:163 +#: src/views/apps/mysql/MysqlIndex.vue:72 src/views/database/ServerList.vue:75 +#: src/views/database/UserList.vue:69 src/views/file/ListView.vue:796 +#: src/views/file/ListView.vue:816 src/views/file/ToolBar.vue:131 +#: src/views/file/ToolBar.vue:151 src/views/setting/TokenModal.vue:163 msgid "Copied successfully" msgstr "复制成功" -#: src/views/apps/mysql/MysqlIndex.vue:83 -#: src/views/toolbox/SshView.vue:263 +#: src/views/apps/mysql/MysqlIndex.vue:83 src/views/toolbox/SshView.vue:263 msgid "Root Password" msgstr "Root 密码" -#: src/views/apps/mysql/MysqlIndex.vue:88 -#: src/views/database/ServerList.vue:79 -#: src/views/database/UserList.vue:73 -#: src/views/file/ListView.vue:181 -#: src/views/file/ListView.vue:215 -#: src/views/file/ListView.vue:814 -#: src/views/file/ToolBar.vue:286 +#: src/views/apps/mysql/MysqlIndex.vue:88 src/views/database/ServerList.vue:79 +#: src/views/database/UserList.vue:73 src/views/file/ListView.vue:259 +#: src/views/file/ListView.vue:293 src/views/file/ListView.vue:892 +#: src/views/file/ToolBar.vue:266 msgid "Copy" msgstr "复制" -#: src/views/apps/mysql/MysqlIndex.vue:92 -#: src/views/website/SettingView.vue:48 -#: src/views/website/SettingView.vue:58 -#: src/views/website/SettingView.vue:68 +#: src/views/apps/mysql/MysqlIndex.vue:92 src/views/website/SettingView.vue:48 +#: src/views/website/SettingView.vue:58 src/views/website/SettingView.vue:68 #: src/views/website/SettingView.vue:116 msgid "Save Changes" msgstr "保存更改" #: src/views/apps/mysql/MysqlIndex.vue:102 -msgid "This modifies the %{ name } main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "这将修改 %{ name } 主配置文件。如果您不了解每个参数的含义,请不要随意修改!" +msgid "" +"This modifies the %{ name } main configuration file. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"这将修改 %{ name } 主配置文件。如果您不了解每个参数的含义,请不要随意修改!" #: src/views/apps/mysql/MysqlIndex.vue:132 msgid "Slow Query Log" @@ -1978,37 +1848,28 @@ msgid "Protocol" msgstr "协议" #: src/views/apps/nginx/NginxIndex.vue:169 -#: src/views/apps/nginx/NginxIndex.vue:588 -#: src/views/website/EditView.vue:655 +#: src/views/apps/nginx/NginxIndex.vue:588 src/views/website/EditView.vue:683 msgid "Proxy Pass" msgstr "代理目标" -#: src/views/apps/nginx/NginxIndex.vue:180 -#: src/views/file/ListView.vue:657 -#: src/views/file/PropertyModal.vue:55 -#: src/views/file/PropertyModal.vue:59 +#: src/views/apps/nginx/NginxIndex.vue:180 src/views/file/ListView.vue:735 +#: src/views/file/PropertyModal.vue:55 src/views/file/PropertyModal.vue:59 #: src/views/toolbox/WebHookView.vue:81 msgid "Yes" msgstr "是" -#: src/views/apps/nginx/NginxIndex.vue:180 -#: src/views/file/ListView.vue:658 -#: src/views/file/PropertyModal.vue:55 -#: src/views/file/PropertyModal.vue:59 +#: src/views/apps/nginx/NginxIndex.vue:180 src/views/file/ListView.vue:736 +#: src/views/file/PropertyModal.vue:55 src/views/file/PropertyModal.vue:59 #: src/views/toolbox/WebHookView.vue:81 msgid "No" msgstr "否" #: src/views/apps/nginx/NginxIndex.vue:197 #: src/views/apps/nginx/NginxIndex.vue:273 -#: src/views/container/ComposeView.vue:122 -#: src/views/file/ListView.vue:206 -#: src/views/file/ListView.vue:1335 -#: src/views/project/ListView.vue:105 -#: src/views/ssh/IndexView.vue:69 -#: src/views/task/CronView.vue:128 -#: src/views/toolbox/WebHookView.vue:158 -#: src/views/website/ListView.vue:138 +#: src/views/container/ComposeView.vue:122 src/views/file/ListView.vue:284 +#: src/views/file/ListView.vue:1462 src/views/project/ListView.vue:121 +#: src/views/ssh/IndexView.vue:69 src/views/task/CronView.vue:128 +#: src/views/toolbox/WebHookView.vue:158 src/views/website/ListView.vue:138 msgid "Edit" msgstr "编辑" @@ -2060,26 +1921,22 @@ msgstr "Stream" #: src/views/apps/nginx/NginxIndex.vue:499 #: src/views/database/CreateDatabaseModal.vue:63 #: src/views/database/CreateUserModal.vue:69 -#: src/views/database/DatabaseList.vue:41 -#: src/views/database/IndexView.vue:29 +#: src/views/database/DatabaseList.vue:41 src/views/database/IndexView.vue:29 #: src/views/database/UserList.vue:90 msgid "Server" msgstr "服务器" #: src/views/apps/nginx/NginxIndex.vue:503 #: src/views/database/CreateServerModal.vue:47 -#: src/views/database/IndexView.vue:49 -#: src/views/website/EditView.vue:595 +#: src/views/database/IndexView.vue:49 src/views/website/EditView.vue:623 msgid "Add Server" msgstr "添加服务器" -#: src/views/apps/nginx/NginxIndex.vue:516 -#: src/views/website/EditView.vue:487 +#: src/views/apps/nginx/NginxIndex.vue:516 src/views/website/EditView.vue:515 msgid "Upstream" msgstr "上游" -#: src/views/apps/nginx/NginxIndex.vue:520 -#: src/views/website/EditView.vue:611 +#: src/views/apps/nginx/NginxIndex.vue:520 src/views/website/EditView.vue:639 msgid "Add Upstream" msgstr "添加上游" @@ -2136,8 +1993,7 @@ msgstr "SSL 私钥路径" msgid "e.g. /path/to/key.pem" msgstr "例如 /path/to/key.pem" -#: src/views/apps/nginx/NginxIndex.vue:658 -#: src/views/website/EditView.vue:498 +#: src/views/apps/nginx/NginxIndex.vue:658 src/views/website/EditView.vue:526 msgid "Load Balancing Algorithm" msgstr "负载均衡算法" @@ -2153,7 +2009,7 @@ msgstr "服务器地址,例如 127.0.0.1:3306" msgid "Options (optional), e.g. weight=5 backup" msgstr "选项(可选),例如 weight=5 backup" -#: src/views/apps/nginx/NginxIndex.vue:688 +#: src/views/apps/nginx/NginxIndex.vue:688 src/views/toolbox/SystemView.vue:297 msgid "Add" msgstr "添加" @@ -2163,8 +2019,7 @@ msgstr "地址" #: src/views/apps/nginx/NginxIndex.vue:695 #: src/views/container/NetworkView.vue:320 -#: src/views/container/VolumeView.vue:220 -#: src/views/toolbox/DiskView.vue:829 +#: src/views/container/VolumeView.vue:220 src/views/toolbox/DiskView.vue:829 msgid "Options" msgstr "选项" @@ -2172,26 +2027,22 @@ msgstr "选项" msgid "No servers added yet" msgstr "尚未添加服务器" -#: src/views/apps/nginx/NginxIndex.vue:722 -#: src/views/website/EditView.vue:526 -#: src/views/website/EditView.vue:684 +#: src/views/apps/nginx/NginxIndex.vue:722 src/views/website/EditView.vue:554 +#: src/views/website/EditView.vue:714 msgid "DNS Resolver" msgstr "DNS 解析器" -#: src/views/apps/nginx/NginxIndex.vue:725 -#: src/views/website/EditView.vue:529 -#: src/views/website/EditView.vue:687 +#: src/views/apps/nginx/NginxIndex.vue:725 src/views/website/EditView.vue:557 +#: src/views/website/EditView.vue:717 msgid "e.g., 8.8.8.8" msgstr "例如 8.8.8.8" -#: src/views/apps/nginx/NginxIndex.vue:731 -#: src/views/website/EditView.vue:535 -#: src/views/website/EditView.vue:693 +#: src/views/apps/nginx/NginxIndex.vue:731 src/views/website/EditView.vue:563 +#: src/views/website/EditView.vue:723 msgid "Resolver Timeout" msgstr "解析超时" -#: src/views/apps/nginx/NginxIndex.vue:744 -#: src/views/website/EditView.vue:344 +#: src/views/apps/nginx/NginxIndex.vue:744 src/views/website/EditView.vue:345 msgid "Seconds" msgstr "秒" @@ -2212,19 +2063,28 @@ msgid "Modify phpMyAdmin access port" msgstr "修改 phpMyAdmin 访问端口" #: src/views/apps/phpmyadmin/IndexView.vue:77 -msgid "This modifies the OpenResty configuration file for phpMyAdmin. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "这将修改 phpMyAdmin 的 OpenResty 配置文件。如果您不了解每个参数的含义,请不要随意修改!" +msgid "" +"This modifies the OpenResty configuration file for phpMyAdmin. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"这将修改 phpMyAdmin 的 OpenResty 配置文件。如果您不了解每个参数的含义,请不要" +"随意修改!" #: src/views/apps/podman/IndexView.vue:43 -msgid "Podman is a daemonless container management tool. Being in a stopped state is normal and does not affect usage!" -msgstr "Podman 是一个无守护进程的容器管理工具。处于停止状态是正常的,不影响使用!" +msgid "" +"Podman is a daemonless container management tool. Being in a stopped state " +"is normal and does not affect usage!" +msgstr "" +"Podman 是一个无守护进程的容器管理工具。处于停止状态是正常的,不影响使用!" #: src/views/apps/podman/IndexView.vue:51 msgid "Registry Configuration" msgstr "注册表配置" #: src/views/apps/podman/IndexView.vue:55 -msgid "This modifies the Podman registry configuration file (/etc/containers/registries.conf)" +msgid "" +"This modifies the Podman registry configuration file (/etc/containers/" +"registries.conf)" msgstr "这会修改 Podman 注册表配置文件 (/etc/containers/registries.conf)" #: src/views/apps/podman/IndexView.vue:68 @@ -2232,28 +2092,36 @@ msgid "Storage Configuration" msgstr "存储配置" #: src/views/apps/podman/IndexView.vue:72 -msgid "This modifies the Podman storage configuration file (/etc/containers/storage.conf)" +msgid "" +"This modifies the Podman storage configuration file (/etc/containers/storage." +"conf)" msgstr "这会修改 Podman 存储配置文件 (/etc/containers/storage.conf)" #: src/views/apps/postgresql/IndexView.vue:66 -#: src/views/apps/redis/IndexView.vue:51 -#: src/views/apps/rsync/IndexView.vue:223 +#: src/views/apps/redis/IndexView.vue:51 src/views/apps/rsync/IndexView.vue:223 #: src/views/apps/supervisor/IndexView.vue:330 #: src/views/environment/PHPView.vue:219 msgid "Main Configuration" msgstr "主配置" #: src/views/apps/postgresql/IndexView.vue:70 -msgid "This modifies the PostgreSQL main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "这将修改 PostgreSQL 主配置文件。如果您不了解每个参数的含义,请不要随意修改!" +msgid "" +"This modifies the PostgreSQL main configuration file. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"这将修改 PostgreSQL 主配置文件。如果您不了解每个参数的含义,请不要随意修改!" #: src/views/apps/postgresql/IndexView.vue:83 msgid "User Configuration" msgstr "用户配置" #: src/views/apps/postgresql/IndexView.vue:87 -msgid "This modifies the PostgreSQL user configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "这将修改 PostgreSQL 用户配置文件。如果您不了解每个参数的含义,请不要随意修改!" +msgid "" +"This modifies the PostgreSQL user configuration file. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"这将修改 PostgreSQL 用户配置文件。如果您不了解每个参数的含义,请不要随意修" +"改!" #: src/views/apps/postgresql/IndexView.vue:120 #: src/views/environment/PHPView.vue:278 @@ -2268,12 +2136,9 @@ msgstr "慢日志" #: src/views/database/CreateUserModal.vue:77 #: src/views/database/ServerList.vue:46 #: src/views/database/UpdateServerModal.vue:86 -#: src/views/database/UserList.vue:39 -#: src/views/login/IndexView.vue:166 -#: src/views/setting/CreateModal.vue:40 -#: src/views/setting/SettingUser.vue:19 -#: src/views/ssh/CreateModal.vue:85 -#: src/views/ssh/UpdateModal.vue:91 +#: src/views/database/UserList.vue:39 src/views/login/IndexView.vue:166 +#: src/views/setting/CreateModal.vue:40 src/views/setting/SettingUser.vue:19 +#: src/views/ssh/CreateModal.vue:85 src/views/ssh/UpdateModal.vue:91 msgid "Username" msgstr "用户名" @@ -2305,9 +2170,8 @@ msgstr "运行日志" #: src/views/apps/pureftpd/IndexView.vue:210 #: src/views/database/CreateDatabaseModal.vue:79 #: src/views/database/CreateUserModal.vue:55 -#: src/views/database/IndexView.vue:42 -#: src/views/setting/CreateModal.vue:32 -#: src/views/setting/IndexView.vue:98 +#: src/views/database/IndexView.vue:42 src/views/setting/CreateModal.vue:32 +#: src/views/setting/IndexView.vue:99 msgid "Create User" msgstr "创建用户" @@ -2321,21 +2185,16 @@ msgstr "输入用户名" #: src/views/apps/pureftpd/IndexView.vue:222 #: src/views/apps/pureftpd/IndexView.vue:253 #: src/views/apps/rsync/IndexView.vue:280 -#: src/views/apps/rsync/IndexView.vue:334 -#: src/views/container/ImageView.vue:394 +#: src/views/apps/rsync/IndexView.vue:334 src/views/container/ImageView.vue:394 #: src/views/database/CreateDatabaseModal.vue:102 #: src/views/database/CreateServerModal.vue:102 #: src/views/database/CreateUserModal.vue:85 #: src/views/database/ServerList.vue:55 #: src/views/database/UpdateServerModal.vue:94 -#: src/views/database/UpdateUserModal.vue:55 -#: src/views/database/UserList.vue:49 -#: src/views/login/IndexView.vue:175 -#: src/views/setting/CreateModal.vue:47 -#: src/views/setting/PasswordModal.vue:34 -#: src/views/ssh/CreateModal.vue:79 -#: src/views/ssh/CreateModal.vue:88 -#: src/views/ssh/UpdateModal.vue:85 +#: src/views/database/UpdateUserModal.vue:55 src/views/database/UserList.vue:49 +#: src/views/login/IndexView.vue:175 src/views/setting/CreateModal.vue:47 +#: src/views/setting/PasswordModal.vue:34 src/views/ssh/CreateModal.vue:79 +#: src/views/ssh/CreateModal.vue:88 src/views/ssh/UpdateModal.vue:85 #: src/views/ssh/UpdateModal.vue:94 msgid "Password" msgstr "密码" @@ -2346,13 +2205,10 @@ msgid "It is recommended to use the generator to generate a random password" msgstr "建议使用生成器生成随机密码" #: src/views/apps/pureftpd/IndexView.vue:233 -#: src/views/apps/rsync/IndexView.vue:46 -#: src/views/apps/rsync/IndexView.vue:264 +#: src/views/apps/rsync/IndexView.vue:46 src/views/apps/rsync/IndexView.vue:264 #: src/views/apps/rsync/IndexView.vue:318 -#: src/views/container/ComposeView.vue:64 -#: src/views/file/PropertyModal.vue:34 -#: src/views/project/ListView.vue:65 -#: src/views/website/CreateModal.vue:227 +#: src/views/container/ComposeView.vue:64 src/views/file/PropertyModal.vue:34 +#: src/views/project/ListView.vue:68 src/views/website/CreateModal.vue:227 #: src/views/website/ListView.vue:41 msgid "Directory" msgstr "目录" @@ -2362,30 +2218,28 @@ msgid "Enter the directory authorized to the user" msgstr "输入授权给用户的目录" #: src/views/apps/redis/IndexView.vue:55 -msgid "This modifies the Redis main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "这将修改 Redis 主配置文件。如果您不了解每个参数的含义,请不要随意修改!" +msgid "" +"This modifies the Redis main configuration file. If you do not understand " +"the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"这将修改 Redis 主配置文件。如果您不了解每个参数的含义,请不要随意修改!" -#: src/views/apps/rsync/IndexView.vue:60 -#: src/views/apps/rsync/IndexView.vue:288 +#: src/views/apps/rsync/IndexView.vue:60 src/views/apps/rsync/IndexView.vue:288 #: src/views/apps/rsync/IndexView.vue:343 #: src/views/database/CreateDatabaseModal.vue:111 #: src/views/database/CreateServerModal.vue:73 #: src/views/database/ServerList.vue:86 #: src/views/database/UpdateServerModal.vue:65 -#: src/views/database/UserList.vue:80 -#: src/views/ssh/CreateModal.vue:64 -#: src/views/ssh/UpdateModal.vue:70 -#: src/views/toolbox/SystemView.vue:139 +#: src/views/database/UserList.vue:80 src/views/ssh/CreateModal.vue:64 +#: src/views/ssh/UpdateModal.vue:70 src/views/toolbox/SystemView.vue:181 msgid "Host" msgstr "主机" -#: src/views/apps/rsync/IndexView.vue:66 -#: src/views/apps/rsync/IndexView.vue:296 +#: src/views/apps/rsync/IndexView.vue:66 src/views/apps/rsync/IndexView.vue:296 #: src/views/apps/rsync/IndexView.vue:351 #: src/views/database/CreateServerModal.vue:111 #: src/views/database/CreateUserModal.vue:116 -#: src/views/database/DatabaseList.vue:56 -#: src/views/database/ServerList.vue:96 +#: src/views/database/DatabaseList.vue:56 src/views/database/ServerList.vue:96 #: src/views/database/UpdateServerModal.vue:103 #: src/views/database/UpdateUserModal.vue:70 #: src/views/database/UserList.vue:113 @@ -2401,8 +2255,7 @@ msgstr "配置" msgid "Are you sure you want to delete module %{ name }?" msgstr "确定要删除模块 %{ name } 吗?" -#: src/views/apps/rsync/IndexView.vue:194 -#: src/views/environment/PHPView.vue:206 +#: src/views/apps/rsync/IndexView.vue:194 src/views/environment/PHPView.vue:206 msgid "Module Management" msgstr "模块管理" @@ -2412,8 +2265,11 @@ msgid "Add Module" msgstr "添加模块" #: src/views/apps/rsync/IndexView.vue:227 -msgid "This modifies the Rsync main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "这将修改 Rsync 主配置文件。如果您不理解每个参数的含义,请不要随意修改!" +msgid "" +"This modifies the Rsync main configuration file. If you do not understand " +"the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"这将修改 Rsync 主配置文件。如果您不理解每个参数的含义,请不要随意修改!" #: src/views/apps/rsync/IndexView.vue:261 #: src/views/apps/supervisor/IndexView.vue:378 @@ -2449,8 +2305,7 @@ msgstr "输入注释" msgid "Module Configuration" msgstr "模块配置" -#: src/views/apps/s3fs/IndexView.vue:24 -#: src/views/toolbox/DiskView.vue:734 +#: src/views/apps/s3fs/IndexView.vue:24 src/views/toolbox/DiskView.vue:734 msgid "Mount Path" msgstr "挂载路径" @@ -2458,13 +2313,11 @@ msgstr "挂载路径" msgid "Are you sure you want to delete mount %{ path }?" msgstr "您确定要删除挂载 %{ path } 吗?" -#: src/views/apps/s3fs/IndexView.vue:57 -#: src/views/toolbox/DiskView.vue:354 +#: src/views/apps/s3fs/IndexView.vue:57 src/views/toolbox/DiskView.vue:354 msgid "Unmount" msgstr "卸载" -#: src/views/apps/s3fs/IndexView.vue:103 -#: src/views/apps/s3fs/IndexView.vue:128 +#: src/views/apps/s3fs/IndexView.vue:103 src/views/apps/s3fs/IndexView.vue:128 #: src/views/apps/s3fs/IndexView.vue:132 msgid "Add Mount" msgstr "添加挂载" @@ -2486,7 +2339,9 @@ msgid "Region Endpoint" msgstr "区域端点" #: src/views/apps/s3fs/IndexView.vue:166 -msgid "Enter complete URL of region endpoint (e.g., https://oss-cn-beijing.aliyuncs.com)" +msgid "" +"Enter complete URL of region endpoint (e.g., https://oss-cn-beijing.aliyuncs." +"com)" msgstr "输入完整的区域端点 URL(例如:https://oss-cn-beijing.aliyuncs.com)" #: src/views/apps/s3fs/IndexView.vue:172 @@ -2523,16 +2378,18 @@ msgid "Add Process" msgstr "添加进程" #: src/views/apps/supervisor/IndexView.vue:334 -msgid "This modifies the Supervisor main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "这将修改 Supervisor 主配置文件。如果您不了解每个参数的含义,请不要随意修改!" +msgid "" +"This modifies the Supervisor main configuration file. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"这将修改 Supervisor 主配置文件。如果您不了解每个参数的含义,请不要随意修改!" #: src/views/apps/supervisor/IndexView.vue:350 msgid "Daemon Logs" msgstr "守护进程日志" #: src/views/apps/supervisor/IndexView.vue:381 -#: src/views/project/CreateModal.vue:204 -#: src/views/project/EditModal.vue:250 +#: src/views/project/CreateModal.vue:208 src/views/project/EditModal.vue:250 msgid "Start Command" msgstr "启动命令" @@ -2541,8 +2398,7 @@ msgid "Please enter absolute path for files in start command" msgstr "请在启动命令中输入文件的绝对路径" #: src/views/apps/supervisor/IndexView.vue:389 -#: src/views/project/EditModal.vue:214 -#: src/views/toolbox/ProcessView.vue:424 +#: src/views/project/EditModal.vue:214 src/views/toolbox/ProcessView.vue:426 msgid "Working Directory" msgstr "工作目录" @@ -2571,8 +2427,7 @@ msgstr "进程配置" msgid "Filename" msgstr "文件名" -#: src/views/backup/ListView.vue:48 -#: src/views/database/ServerList.vue:125 +#: src/views/backup/ListView.vue:48 src/views/database/ServerList.vue:125 #: src/views/database/UserList.vue:142 msgid "Update Date" msgstr "更新日期" @@ -2589,27 +2444,22 @@ msgstr "正在恢复……" msgid "Restored successfully" msgstr "恢复成功" -#: src/views/backup/ListView.vue:194 -#: src/views/backup/ListView.vue:224 +#: src/views/backup/ListView.vue:194 src/views/backup/ListView.vue:224 msgid "Create Backup" msgstr "创建备份" -#: src/views/backup/ListView.vue:197 -#: src/views/backup/UploadModal.vue:39 +#: src/views/backup/ListView.vue:197 src/views/backup/UploadModal.vue:39 msgid "Upload Backup" msgstr "上传备份" -#: src/views/backup/ListView.vue:236 -#: src/views/backup/ListView.vue:273 +#: src/views/backup/ListView.vue:236 src/views/backup/ListView.vue:273 msgid "Select website" msgstr "选择网站" #: src/views/backup/ListView.vue:239 #: src/views/database/CreateDatabaseModal.vue:71 -#: src/views/database/DatabaseList.vue:34 -#: src/views/task/CreateModal.vue:142 -#: src/views/task/CreateModal.vue:144 -#: src/views/website/CreateModal.vue:191 +#: src/views/database/DatabaseList.vue:34 src/views/task/CreateModal.vue:142 +#: src/views/task/CreateModal.vue:144 src/views/website/CreateModal.vue:191 #: src/views/website/CreateModal.vue:196 msgid "Database Name" msgstr "数据库名称" @@ -2621,8 +2471,7 @@ msgstr "数据库名称" msgid "Enter database name" msgstr "输入数据库名称" -#: src/views/backup/ListView.vue:247 -#: src/views/task/CreateModal.vue:146 +#: src/views/backup/ListView.vue:247 src/views/task/CreateModal.vue:146 #: src/views/task/CreateModal.vue:149 msgid "Save Directory" msgstr "保存目录" @@ -2639,43 +2488,35 @@ msgstr "恢复备份" msgid "Upload %{ filename } successfully" msgstr "上传 %{ filename } 成功" -#: src/views/backup/UploadModal.vue:51 -#: src/views/file/UploadModal.vue:50 +#: src/views/backup/UploadModal.vue:51 src/views/file/UploadModal.vue:50 msgid "Click or drag files to this area to upload" msgstr "点击或将文件拖到此区域上传" #: src/views/backup/UploadModal.vue:53 -msgid "For large files, it is recommended to use SFTP or other methods to upload" +msgid "" +"For large files, it is recommended to use SFTP or other methods to upload" msgstr "对于大文件,建议使用 SFTP 或其他方法上传" -#: src/views/cert/AccountView.vue:44 -#: src/views/cert/AccountView.vue:243 +#: src/views/cert/AccountView.vue:44 src/views/cert/AccountView.vue:243 #: src/views/cert/CreateAccountModal.vue:100 -#: src/views/setting/CreateModal.vue:56 -#: src/views/setting/SettingUser.vue:36 +#: src/views/setting/CreateModal.vue:56 src/views/setting/SettingUser.vue:36 msgid "Email" msgstr "邮箱" -#: src/views/cert/AccountView.vue:72 -#: src/views/cert/AccountView.vue:235 -#: src/views/cert/CertView.vue:447 -#: src/views/cert/CreateAccountModal.vue:92 +#: src/views/cert/AccountView.vue:72 src/views/cert/AccountView.vue:235 +#: src/views/cert/CertView.vue:447 src/views/cert/CreateAccountModal.vue:92 #: src/views/cert/CreateCertModal.vue:82 msgid "Key Type" msgstr "密钥类型" -#: src/views/cert/AccountView.vue:101 -#: src/views/cert/CertView.vue:277 -#: src/views/cert/DnsView.vue:85 -#: src/views/database/ServerList.vue:182 -#: src/views/database/UserList.vue:168 -#: src/views/file/PermissionModal.vue:154 +#: src/views/cert/AccountView.vue:101 src/views/cert/CertView.vue:277 +#: src/views/cert/DnsView.vue:85 src/views/database/ServerList.vue:182 +#: src/views/database/UserList.vue:168 src/views/file/PermissionModal.vue:154 #: src/views/setting/TokenModal.vue:69 msgid "Modify" msgstr "修改" -#: src/views/cert/AccountView.vue:109 -#: src/views/cert/CertView.vue:286 +#: src/views/cert/AccountView.vue:109 src/views/cert/CertView.vue:286 #: src/views/cert/DnsView.vue:94 msgid "Deletion successful" msgstr "删除成功" @@ -2684,15 +2525,12 @@ msgstr "删除成功" msgid "Are you sure you want to delete the account?" msgstr "您确定要删除该账户吗?" -#: src/views/cert/AccountView.vue:150 -#: src/views/cert/CreateAccountModal.vue:39 +#: src/views/cert/AccountView.vue:150 src/views/cert/CreateAccountModal.vue:39 msgid "Registering account with CA, please wait patiently" msgstr "正在向 CA 注册账户,请耐心等待" -#: src/views/cert/AccountView.vue:162 -#: src/views/cert/CertView.vue:337 -#: src/views/cert/CertView.vue:354 -#: src/views/cert/DnsView.vue:139 +#: src/views/cert/AccountView.vue:162 src/views/cert/CertView.vue:337 +#: src/views/cert/CertView.vue:354 src/views/cert/DnsView.vue:139 #: src/views/container/ComposeView.vue:287 msgid "Update successful" msgstr "更新成功" @@ -2701,61 +2539,53 @@ msgstr "更新成功" msgid "Modify Account" msgstr "修改账户" -#: src/views/cert/AccountView.vue:215 -#: src/views/cert/CreateAccountModal.vue:72 -msgid "Google and SSL.com require obtaining KID and HMAC from their official websites first" +#: src/views/cert/AccountView.vue:215 src/views/cert/CreateAccountModal.vue:72 +msgid "" +"Google and SSL.com require obtaining KID and HMAC from their official " +"websites first" msgstr "Google 和 SSL.com 需要先从其官网获取 KID 和 HMAC" -#: src/views/cert/AccountView.vue:221 -#: src/views/cert/CreateAccountModal.vue:78 -msgid "Google is not accessible in mainland China, other CAs depend on network conditions, recommend using Let's Encrypt" -msgstr "Google 在中国大陆无法访问,其他 CA 取决于网络条件,建议使用 Let's Encrypt" +#: src/views/cert/AccountView.vue:221 src/views/cert/CreateAccountModal.vue:78 +msgid "" +"Google is not accessible in mainland China, other CAs depend on network " +"conditions, recommend using Let's Encrypt" +msgstr "" +"Google 在中国大陆无法访问,其他 CA 取决于网络条件,建议使用 Let's Encrypt" -#: src/views/cert/AccountView.vue:227 -#: src/views/cert/CreateAccountModal.vue:84 +#: src/views/cert/AccountView.vue:227 src/views/cert/CreateAccountModal.vue:84 msgid "CA" msgstr "CA" -#: src/views/cert/AccountView.vue:230 -#: src/views/cert/CreateAccountModal.vue:87 +#: src/views/cert/AccountView.vue:230 src/views/cert/CreateAccountModal.vue:87 msgid "Select CA" msgstr "选择 CA" -#: src/views/cert/AccountView.vue:238 -#: src/views/cert/CertView.vue:450 +#: src/views/cert/AccountView.vue:238 src/views/cert/CertView.vue:450 #: src/views/cert/CreateAccountModal.vue:95 #: src/views/cert/CreateCertModal.vue:85 msgid "Select key type" msgstr "选择密钥类型" -#: src/views/cert/AccountView.vue:248 -#: src/views/cert/CreateAccountModal.vue:105 +#: src/views/cert/AccountView.vue:248 src/views/cert/CreateAccountModal.vue:105 msgid "Enter email address" msgstr "输入电子邮件地址" -#: src/views/cert/AccountView.vue:256 -#: src/views/cert/CreateAccountModal.vue:113 +#: src/views/cert/AccountView.vue:256 src/views/cert/CreateAccountModal.vue:113 msgid "Enter KID" msgstr "输入 KID" -#: src/views/cert/AccountView.vue:264 -#: src/views/cert/CreateAccountModal.vue:121 +#: src/views/cert/AccountView.vue:264 src/views/cert/CreateAccountModal.vue:121 msgid "Enter HMAC" msgstr "输入 HMAC" -#: src/views/cert/CertView.vue:63 -#: src/views/cert/CertView.vue:439 -#: src/views/cert/CreateCertModal.vue:74 -#: src/views/cert/ObtainModal.vue:57 -#: src/views/website/CreateModal.vue:135 -#: src/views/website/EditView.vue:393 +#: src/views/cert/CertView.vue:63 src/views/cert/CertView.vue:439 +#: src/views/cert/CreateCertModal.vue:74 src/views/cert/ObtainModal.vue:57 +#: src/views/website/CreateModal.vue:135 src/views/website/EditView.vue:421 msgid "Domain" msgstr "域名" -#: src/views/cert/CertView.vue:108 -#: src/views/file/ToolBar.vue:253 -#: src/views/file/UploadModal.vue:38 -#: src/views/monitor/IndexView.vue:492 +#: src/views/cert/CertView.vue:108 src/views/file/ToolBar.vue:233 +#: src/views/file/UploadModal.vue:38 src/views/monitor/IndexView.vue:492 msgid "Upload" msgstr "上传" @@ -2763,15 +2593,12 @@ msgstr "上传" msgid "Associated Account" msgstr "关联账户" -#: src/views/cert/CertView.vue:129 -#: src/views/website/EditView.vue:794 +#: src/views/cert/CertView.vue:129 src/views/website/EditView.vue:824 msgid "Issuer" msgstr "颁发者" -#: src/views/cert/CertView.vue:138 -#: src/views/setting/TokenModal.vue:43 -#: src/views/setting/TokenModal.vue:256 -#: src/views/setting/TokenModal.vue:289 +#: src/views/cert/CertView.vue:138 src/views/setting/TokenModal.vue:43 +#: src/views/setting/TokenModal.vue:256 src/views/setting/TokenModal.vue:289 msgid "Expiration Time" msgstr "过期时间" @@ -2783,19 +2610,12 @@ msgstr "下次续签时间" msgid "Auto Renewal" msgstr "自动续签" -#: src/views/cert/CertView.vue:189 -#: src/views/cert/ObtainModal.vue:78 +#: src/views/cert/CertView.vue:189 src/views/cert/ObtainModal.vue:78 msgid "Issue" msgstr "签发" -#: src/views/cert/CertView.vue:208 -msgid "Deploy" -msgstr "部署" - -#: src/views/cert/CertView.vue:220 -#: src/views/cert/ObtainModal.vue:24 -#: src/views/cert/ObtainModal.vue:81 -#: src/views/website/EditView.vue:141 +#: src/views/cert/CertView.vue:220 src/views/cert/ObtainModal.vue:24 +#: src/views/cert/ObtainModal.vue:81 src/views/website/EditView.vue:142 msgid "Please wait..." msgstr "请稍候……" @@ -2820,59 +2640,53 @@ msgid "Modify Certificate" msgstr "修改证书" #: src/views/cert/CertView.vue:433 -msgid "You can automatically issue and deploy certificates by selecting any website/DNS, or manually enter domain names and set DNS resolution to issue certificates, or fill in deployment scripts to automatically deploy certificates." -msgstr "您可以通过选择任何网站 / DNS 自动颁发和部署证书,或手动输入域名并设置 DNS 解析以颁发证书,或填写部署脚本以自动部署证书。" +msgid "" +"You can automatically issue and deploy certificates by selecting any website/" +"DNS, or manually enter domain names and set DNS resolution to issue " +"certificates, or fill in deployment scripts to automatically deploy " +"certificates." +msgstr "" +"您可以通过选择任何网站 / DNS 自动颁发和部署证书,或手动输入域名并设置 DNS 解" +"析以颁发证书,或填写部署脚本以自动部署证书。" -#: src/views/cert/CertView.vue:458 -#: src/views/cert/CreateCertModal.vue:93 +#: src/views/cert/CertView.vue:458 src/views/cert/CreateCertModal.vue:93 msgid "Select website for certificate deployment" msgstr "选择要部署证书的网站" -#: src/views/cert/CertView.vue:466 -#: src/views/cert/CreateCertModal.vue:98 +#: src/views/cert/CertView.vue:466 src/views/cert/CreateCertModal.vue:98 #: src/views/cert/IndexView.vue:97 msgid "Account" msgstr "账户" -#: src/views/cert/CertView.vue:470 -#: src/views/cert/CreateCertModal.vue:101 +#: src/views/cert/CertView.vue:470 src/views/cert/CreateCertModal.vue:101 msgid "Select account for certificate issuance" msgstr "选择用于证书颁发的账户" -#: src/views/cert/CertView.vue:475 -#: src/views/cert/CreateCertModal.vue:106 -#: src/views/cert/CreateDnsModal.vue:59 -#: src/views/cert/DnsView.vue:196 +#: src/views/cert/CertView.vue:475 src/views/cert/CreateCertModal.vue:106 +#: src/views/cert/CreateDnsModal.vue:59 src/views/cert/DnsView.vue:196 #: src/views/cert/IndexView.vue:98 msgid "DNS" msgstr "DNS" -#: src/views/cert/CertView.vue:478 -#: src/views/cert/CreateCertModal.vue:109 +#: src/views/cert/CertView.vue:478 src/views/cert/CreateCertModal.vue:109 msgid "Select DNS for certificate issuance" msgstr "选择用于证书颁发的 DNS" -#: src/views/cert/CertView.vue:491 -#: src/views/cert/UploadCertModal.vue:42 -#: src/views/website/EditView.vue:867 +#: src/views/cert/CertView.vue:491 src/views/cert/UploadCertModal.vue:42 +#: src/views/website/EditView.vue:897 msgid "Enter the content of the PEM certificate file" msgstr "输入 PEM 证书文件的内容" -#: src/views/cert/CertView.vue:498 -#: src/views/cert/CertView.vue:566 -#: src/views/cert/UploadCertModal.vue:46 -#: src/views/setting/SettingSafe.vue:297 -#: src/views/ssh/CreateModal.vue:80 -#: src/views/ssh/CreateModal.vue:91 -#: src/views/ssh/UpdateModal.vue:86 -#: src/views/ssh/UpdateModal.vue:97 -#: src/views/website/EditView.vue:871 +#: src/views/cert/CertView.vue:498 src/views/cert/CertView.vue:566 +#: src/views/cert/UploadCertModal.vue:46 src/views/setting/SettingSafe.vue:297 +#: src/views/ssh/CreateModal.vue:80 src/views/ssh/CreateModal.vue:91 +#: src/views/ssh/UpdateModal.vue:86 src/views/ssh/UpdateModal.vue:97 +#: src/views/website/EditView.vue:901 msgid "Private Key" msgstr "私钥" -#: src/views/cert/CertView.vue:503 -#: src/views/cert/UploadCertModal.vue:50 -#: src/views/website/EditView.vue:875 +#: src/views/cert/CertView.vue:503 src/views/cert/UploadCertModal.vue:50 +#: src/views/website/EditView.vue:905 msgid "Enter the content of the KEY private key file" msgstr "输入 KEY 私钥文件的内容" @@ -2881,7 +2695,9 @@ msgid "Deployment Script" msgstr "部署脚本" #: src/views/cert/CertView.vue:516 -msgid "The {cert} and {key} in the script will be replaced with the certificate and private key content" +msgid "" +"The {cert} and {key} in the script will be replaced with the certificate and " +"private key content" msgstr "脚本中的 {cert} 和 {key} 将被替换为证书和私钥内容" #: src/views/cert/CertView.vue:530 @@ -2896,22 +2712,24 @@ msgstr "选择要部署证书的网站" msgid "View Certificate" msgstr "查看证书" -#: src/views/cert/CreateAccountModal.vue:64 -#: src/views/cert/IndexView.vue:110 +#: src/views/cert/CreateAccountModal.vue:64 src/views/cert/IndexView.vue:110 msgid "Create Account" msgstr "创建账户" -#: src/views/cert/CreateCertModal.vue:59 -#: src/views/cert/IndexView.vue:107 +#: src/views/cert/CreateCertModal.vue:59 src/views/cert/IndexView.vue:107 msgid "Create Certificate" msgstr "创建证书" #: src/views/cert/CreateCertModal.vue:68 -msgid "You can automatically issue and deploy certificates by selecting either Website or DNS, or you can manually enter domain names and set up DNS resolution to issue certificates" -msgstr "您可以通过选择网站或 DNS 来自动颁发和部署证书,或者手动输入域名并设置 DNS 解析以颁发证书" +msgid "" +"You can automatically issue and deploy certificates by selecting either " +"Website or DNS, or you can manually enter domain names and set up DNS " +"resolution to issue certificates" +msgstr "" +"您可以通过选择网站或 DNS 来自动颁发和部署证书,或者手动输入域名并设置 DNS 解" +"析以颁发证书" -#: src/views/cert/CreateDnsModal.vue:44 -#: src/views/cert/IndexView.vue:113 +#: src/views/cert/CreateDnsModal.vue:44 src/views/cert/IndexView.vue:113 msgid "Create DNS" msgstr "创建 DNS" @@ -2923,88 +2741,71 @@ msgstr "备注名称" msgid "Enter comment name" msgstr "输入备注名称" -#: src/views/cert/CreateDnsModal.vue:62 -#: src/views/cert/DnsView.vue:199 +#: src/views/cert/CreateDnsModal.vue:62 src/views/cert/DnsView.vue:199 msgid "Select DNS" msgstr "选择 DNS" -#: src/views/cert/CreateDnsModal.vue:71 -#: src/views/cert/DnsView.vue:208 +#: src/views/cert/CreateDnsModal.vue:71 src/views/cert/DnsView.vue:208 msgid "Enter Aliyun Access Key" msgstr "输入阿里云 Access Key" -#: src/views/cert/CreateDnsModal.vue:78 -#: src/views/cert/DnsView.vue:215 +#: src/views/cert/CreateDnsModal.vue:78 src/views/cert/DnsView.vue:215 msgid "Enter Aliyun Secret Key" msgstr "输入阿里云 Secret Key" -#: src/views/cert/CreateDnsModal.vue:85 -#: src/views/cert/DnsView.vue:222 +#: src/views/cert/CreateDnsModal.vue:85 src/views/cert/DnsView.vue:222 msgid "Enter Tencent Cloud SecretId" msgstr "输入腾讯云 SecretId" -#: src/views/cert/CreateDnsModal.vue:92 -#: src/views/cert/DnsView.vue:229 +#: src/views/cert/CreateDnsModal.vue:92 src/views/cert/DnsView.vue:229 msgid "Enter Tencent Cloud SecretKey" msgstr "输入腾讯云 SecretKey" -#: src/views/cert/CreateDnsModal.vue:99 -#: src/views/cert/DnsView.vue:236 +#: src/views/cert/CreateDnsModal.vue:99 src/views/cert/DnsView.vue:236 msgid "Enter Huawei Cloud AccessKeyId" msgstr "输入华为云 AccessKeyId" -#: src/views/cert/CreateDnsModal.vue:106 -#: src/views/cert/DnsView.vue:243 +#: src/views/cert/CreateDnsModal.vue:106 src/views/cert/DnsView.vue:243 msgid "Enter Huawei Cloud SecretAccessKey" msgstr "输入华为云 SecretAccessKey" -#: src/views/cert/CreateDnsModal.vue:113 -#: src/views/cert/DnsView.vue:250 +#: src/views/cert/CreateDnsModal.vue:113 src/views/cert/DnsView.vue:250 msgid "Enter West.cn Username" msgstr "输入西部数码用户名" -#: src/views/cert/CreateDnsModal.vue:120 -#: src/views/cert/DnsView.vue:257 +#: src/views/cert/CreateDnsModal.vue:120 src/views/cert/DnsView.vue:257 msgid "Enter West.cn API Password" msgstr "输入西部数码 API 密码" -#: src/views/cert/CreateDnsModal.vue:127 -#: src/views/cert/DnsView.vue:264 +#: src/views/cert/CreateDnsModal.vue:127 src/views/cert/DnsView.vue:264 msgid "Enter Cloudflare API Key" msgstr "输入 Cloudflare API 密钥" -#: src/views/cert/CreateDnsModal.vue:134 -#: src/views/cert/DnsView.vue:271 +#: src/views/cert/CreateDnsModal.vue:134 src/views/cert/DnsView.vue:271 msgid "Enter G-Core API Key" msgstr "输入 G-Core API 密钥" -#: src/views/cert/CreateDnsModal.vue:141 -#: src/views/cert/DnsView.vue:278 +#: src/views/cert/CreateDnsModal.vue:141 src/views/cert/DnsView.vue:278 msgid "Enter Porkbun API Key" msgstr "输入 Porkbun API 密钥" -#: src/views/cert/CreateDnsModal.vue:148 -#: src/views/cert/DnsView.vue:285 +#: src/views/cert/CreateDnsModal.vue:148 src/views/cert/DnsView.vue:285 msgid "Enter Porkbun Secret Key" msgstr "输入 Porkbun 密钥" -#: src/views/cert/CreateDnsModal.vue:155 -#: src/views/cert/DnsView.vue:292 +#: src/views/cert/CreateDnsModal.vue:155 src/views/cert/DnsView.vue:292 msgid "Enter NameSilo API Token" msgstr "输入 NameSilo API 令牌" -#: src/views/cert/CreateDnsModal.vue:162 -#: src/views/cert/DnsView.vue:299 +#: src/views/cert/CreateDnsModal.vue:162 src/views/cert/DnsView.vue:299 msgid "Enter ClouDNS Auth ID (use Sub Auth ID by adding sub-prefix)" msgstr "输入 ClouDNS 认证 ID(使用子认证 ID 时添加 sub- 前缀)" -#: src/views/cert/CreateDnsModal.vue:169 -#: src/views/cert/DnsView.vue:306 +#: src/views/cert/CreateDnsModal.vue:169 src/views/cert/DnsView.vue:306 msgid "Enter ClouDNS Auth Password" msgstr "输入 ClouDNS 认证密码" -#: src/views/cert/DnsView.vue:31 -#: src/views/cert/DnsView.vue:189 +#: src/views/cert/DnsView.vue:31 src/views/cert/DnsView.vue:189 msgid "Note Name" msgstr "备注名称" @@ -3020,8 +2821,7 @@ msgstr "修改 DNS" msgid "Enter note name" msgstr "输入备注名称" -#: src/views/cert/IndexView.vue:104 -#: src/views/cert/UploadCertModal.vue:30 +#: src/views/cert/IndexView.vue:104 src/views/cert/UploadCertModal.vue:30 msgid "Upload Certificate" msgstr "上传证书" @@ -3037,14 +2837,15 @@ msgstr "手动" msgid "Self-signed" msgstr "自签名" -#: src/views/cert/ObtainModal.vue:33 -#: src/views/cert/ObtainModal.vue:89 +#: src/views/cert/ObtainModal.vue:33 src/views/cert/ObtainModal.vue:89 #: src/views/cert/ObtainModal.vue:107 msgid "Issuance successful" msgstr "签发成功" #: src/views/cert/ObtainModal.vue:42 -msgid "Please set up DNS resolution for the domain first, then continue with the issuance" +msgid "" +"Please set up DNS resolution for the domain first, then continue with the " +"issuance" msgstr "请先为域名设置 DNS 解析,然后继续签发" #: src/views/cert/ObtainModal.vue:48 @@ -3067,15 +2868,11 @@ msgstr "签发证书" msgid "Issuance Mode" msgstr "签发模式" -#: src/views/container/ComposeView.vue:91 -#: src/views/container/ImageView.vue:81 +#: src/views/container/ComposeView.vue:91 src/views/container/ImageView.vue:81 #: src/views/container/NetworkView.vue:100 -#: src/views/container/VolumeView.vue:54 -#: src/views/setting/SettingUser.vue:76 -#: src/views/setting/TokenModal.vue:34 -#: src/views/task/CronView.vue:79 -#: src/views/task/TaskView.vue:37 -#: src/views/toolbox/WebHookView.vue:121 +#: src/views/container/VolumeView.vue:54 src/views/setting/SettingUser.vue:76 +#: src/views/setting/TokenModal.vue:34 src/views/task/CronView.vue:79 +#: src/views/task/TaskView.vue:37 src/views/toolbox/WebHookView.vue:121 msgid "Creation Time" msgstr "创建时间" @@ -3120,13 +2917,8 @@ msgstr "创建编排" msgid "Are you sure you want to delete the selected composes?" msgstr "您确定要删除所选的编排吗?" -#: src/views/container/ComposeView.vue:361 -msgid "Compose Name" -msgstr "编排名称" - #: src/views/container/ComposeView.vue:364 -#: src/views/container/ComposeView.vue:390 -#: src/views/container/IndexView.vue:23 +#: src/views/container/ComposeView.vue:390 src/views/container/IndexView.vue:23 msgid "Compose" msgstr "编排" @@ -3144,10 +2936,6 @@ msgstr "变量值" msgid "Edit Compose" msgstr "编辑编排" -#: src/views/container/ComposeView.vue:408 -msgid "Starting Compose" -msgstr "正在启动编排" - #: src/views/container/ContainerCreate.vue:52 msgid "Always" msgstr "总是" @@ -3178,12 +2966,6 @@ msgstr "请输入镜像名" msgid "Create Container" msgstr "创建容器" -#: src/views/container/ContainerCreate.vue:191 -#: src/views/project/EditModal.vue:177 -#: src/views/website/EditView.vue:434 -msgid "Basic Settings" -msgstr "基本设置" - #: src/views/container/ContainerCreate.vue:193 #: src/views/container/ContainerView.vue:43 msgid "Container Name" @@ -3203,10 +2985,8 @@ msgstr "镜像" msgid "e.g., nginx:latest, mysql:8.0" msgstr "例如 nginx:latest,mysql:8.0" -#: src/views/container/ContainerCreate.vue:211 -#: src/views/home/IndexView.vue:147 -#: src/views/home/IndexView.vue:834 -#: src/views/monitor/IndexView.vue:851 +#: src/views/container/ContainerCreate.vue:211 src/views/home/IndexView.vue:147 +#: src/views/home/IndexView.vue:834 src/views/monitor/IndexView.vue:851 msgid "Network" msgstr "网络" @@ -3281,7 +3061,9 @@ msgid "Container End" msgstr "容器结束" #: src/views/container/ContainerCreate.vue:329 -msgid "All exposed ports in the image will be automatically mapped to random host ports." +msgid "" +"All exposed ports in the image will be automatically mapped to random host " +"ports." msgstr "镜像中的所有暴露端口将自动映射到随机主机端口。" #: src/views/container/ContainerCreate.vue:338 @@ -3302,7 +3084,9 @@ msgid "Container path" msgstr "容器路径" #: src/views/container/ContainerCreate.vue:371 -msgid "Mount host directories or volumes into the container. Use absolute paths for host directories." +msgid "" +"Mount host directories or volumes into the container. Use absolute paths for " +"host directories." msgstr "将主机目录或卷挂载到容器中。主机目录需使用绝对路径。" #: src/views/container/ContainerCreate.vue:380 @@ -3311,7 +3095,9 @@ msgid "Resource Limits" msgstr "资源限制" #: src/views/container/ContainerCreate.vue:384 -msgid "Set resource limits to prevent the container from consuming too many system resources. Set to 0 for no limit." +msgid "" +"Set resource limits to prevent the container from consuming too many system " +"resources. Set to 0 for no limit." msgstr "设置资源限制以防止容器消耗过多系统资源。设置为 0 表示无限制。" #: src/views/container/ContainerCreate.vue:392 @@ -3337,13 +3123,10 @@ msgstr "CPU 份额" msgid "Resource Limit Description" msgstr "资源限制描述" -#: src/views/container/ContainerCreate.vue:428 -#: src/views/home/IndexView.vue:565 -#: src/views/monitor/IndexView.vue:435 -#: src/views/monitor/IndexView.vue:451 -#: src/views/monitor/IndexView.vue:728 -#: src/views/toolbox/BenchmarkView.vue:177 -#: src/views/toolbox/ProcessView.vue:153 +#: src/views/container/ContainerCreate.vue:428 src/views/home/IndexView.vue:565 +#: src/views/monitor/IndexView.vue:435 src/views/monitor/IndexView.vue:451 +#: src/views/monitor/IndexView.vue:728 src/views/toolbox/BenchmarkView.vue:177 +#: src/views/toolbox/ProcessView.vue:155 msgid "Memory" msgstr "内存" @@ -3352,12 +3135,17 @@ msgid "Maximum memory the container can use, in MB. 0 means no limit." msgstr "容器可以使用的最大内存,单位为 MB。0 表示无限制。" #: src/views/container/ContainerCreate.vue:433 -msgid "Number of CPU cores the container can use. 0.5 means half a core, 2 means 2 cores." +msgid "" +"Number of CPU cores the container can use. 0.5 means half a core, 2 means 2 " +"cores." msgstr "容器可以使用的 CPU 核心数。0.5 意味着半个核心,2 意味着 2 个核心。" #: src/views/container/ContainerCreate.vue:440 -msgid "Relative CPU weight. Default is 1024. Higher values get more CPU time when competing." -msgstr "相对 CPU 权重。默认值为 1024。当竞争时,更高的值会获得更多的 CPU 时间。" +msgid "" +"Relative CPU weight. Default is 1024. Higher values get more CPU time when " +"competing." +msgstr "" +"相对 CPU 权重。默认值为 1024。当竞争时,更高的值会获得更多的 CPU 时间。" #: src/views/container/ContainerCreate.vue:452 msgid "Environment" @@ -3438,8 +3226,7 @@ msgstr "暂停" msgid "Resume" msgstr "恢复" -#: src/views/container/ContainerView.vue:231 -#: src/views/file/ListView.vue:1366 +#: src/views/container/ContainerView.vue:231 src/views/file/ListView.vue:1493 msgid "More" msgstr "更多" @@ -3534,10 +3321,8 @@ msgstr "容器数量" #: src/views/container/ImageView.vue:105 #: src/views/container/NetworkView.vue:124 -#: src/views/container/VolumeView.vue:78 -#: src/views/firewall/ForwardView.vue:92 -#: src/views/firewall/IpRuleView.vue:134 -#: src/views/firewall/RuleView.vue:171 +#: src/views/container/VolumeView.vue:78 src/views/firewall/ForwardView.vue:92 +#: src/views/firewall/IpRuleView.vue:134 src/views/firewall/RuleView.vue:171 #: src/views/task/TaskView.vue:86 msgid "Are you sure you want to delete?" msgstr "您确定要删除吗?" @@ -3546,8 +3331,7 @@ msgstr "您确定要删除吗?" msgid "Pull successful" msgstr "拉取成功" -#: src/views/container/ImageView.vue:268 -#: src/views/container/ImageView.vue:306 +#: src/views/container/ImageView.vue:268 src/views/container/ImageView.vue:306 msgid "Pull Image" msgstr "拉取镜像" @@ -3592,13 +3376,12 @@ msgstr "网络" #: src/views/container/NetworkView.vue:52 #: src/views/container/NetworkView.vue:249 -#: src/views/container/VolumeView.vue:33 -#: src/views/container/VolumeView.vue:203 +#: src/views/container/VolumeView.vue:33 src/views/container/VolumeView.vue:203 msgid "Driver" msgstr "驱动" -#: src/views/container/NetworkView.vue:59 -#: src/views/container/VolumeView.vue:40 +#: src/views/container/NetworkView.vue:59 src/views/container/VolumeView.vue:40 +#: src/views/website/EditView.vue:959 msgid "Scope" msgstr "范围" @@ -3677,10 +3460,8 @@ msgstr "选项名称" msgid "Option Value" msgstr "选项值" -#: src/views/container/VolumeView.vue:47 -#: src/views/home/IndexView.vue:680 -#: src/views/toolbox/DiskView.vue:324 -#: src/views/toolbox/DiskView.vue:827 +#: src/views/container/VolumeView.vue:47 src/views/home/IndexView.vue:680 +#: src/views/toolbox/DiskView.vue:324 src/views/toolbox/DiskView.vue:827 msgid "Mount Point" msgstr "挂载点" @@ -3765,12 +3546,9 @@ msgstr "输入数据库服务器主机" #: src/views/database/CreateServerModal.vue:84 #: src/views/database/UpdateServerModal.vue:76 -#: src/views/firewall/ForwardView.vue:31 -#: src/views/firewall/RuleView.vue:48 -#: src/views/setting/SettingBase.vue:110 -#: src/views/ssh/CreateModal.vue:70 -#: src/views/ssh/UpdateModal.vue:76 -#: src/views/website/CreateModal.vue:146 +#: src/views/firewall/ForwardView.vue:31 src/views/firewall/RuleView.vue:48 +#: src/views/setting/SettingBase.vue:123 src/views/ssh/CreateModal.vue:70 +#: src/views/ssh/UpdateModal.vue:76 src/views/website/CreateModal.vue:146 msgid "Port" msgstr "端口" @@ -3796,7 +3574,8 @@ msgstr "输入数据库服务器备注" #: src/views/database/CreateUserModal.vue:65 #: src/views/database/UpdateUserModal.vue:51 -msgid "If the privilege databases does not exist, it will be created automatically." +msgid "" +"If the privilege databases does not exist, it will be created automatically." msgstr "如果特权数据库不存在,将会自动创建。" #: src/views/database/CreateUserModal.vue:94 @@ -3804,8 +3583,7 @@ msgid "Host (MySQL only)" msgstr "主机(仅限MySQL)" #: src/views/database/CreateUserModal.vue:110 -#: src/views/database/UpdateUserModal.vue:64 -#: src/views/database/UserList.vue:98 +#: src/views/database/UpdateUserModal.vue:64 src/views/database/UserList.vue:98 msgid "Privileges" msgstr "权限" @@ -3822,23 +3600,22 @@ msgstr "MySQL 不支持数据库注释" msgid "Are you sure you want to delete this database?" msgstr "您确定要删除这个数据库吗?" -#: src/views/database/ServerList.vue:120 -#: src/views/database/UserList.vue:137 +#: src/views/database/ServerList.vue:120 src/views/database/UserList.vue:137 msgid "Valid" msgstr "有效" -#: src/views/database/ServerList.vue:120 -#: src/views/database/UserList.vue:137 +#: src/views/database/ServerList.vue:120 src/views/database/UserList.vue:137 msgid "Invalid" msgstr "无效" -#: src/views/database/ServerList.vue:146 -#: src/views/toolbox/SystemView.vue:81 +#: src/views/database/ServerList.vue:146 src/views/toolbox/SystemView.vue:92 msgid "Synchronized successfully" msgstr "同步成功" #: src/views/database/ServerList.vue:152 -msgid "Are you sure you want to synchronize database users (excluding password) to the panel?" +msgid "" +"Are you sure you want to synchronize database users (excluding password) to " +"the panel?" msgstr "您确定要将数据库用户(不包括密码)同步到面板吗?" #: src/views/database/ServerList.vue:164 @@ -3846,7 +3623,9 @@ msgid "Sync" msgstr "同步" #: src/views/database/ServerList.vue:192 -msgid "Built-in servers cannot be deleted. If you need to delete them, please uninstall the corresponding app" +msgid "" +"Built-in servers cannot be deleted. If you need to delete them, please " +"uninstall the corresponding app" msgstr "内置服务器无法删除。如果需要删除它们,请卸载相应的应用" #: src/views/database/ServerList.vue:203 @@ -3885,8 +3664,7 @@ msgstr "您确定要卸载 %{ name } 吗?" msgid "Set successfully" msgstr "设置成功" -#: src/views/environment/PHPView.vue:178 -#: src/views/environment/PHPView.vue:184 +#: src/views/environment/PHPView.vue:178 src/views/environment/PHPView.vue:184 msgid "Task submitted, please check progress in background tasks" msgstr "任务已提交,请在后台任务中查看进度" @@ -3899,16 +3677,24 @@ msgid "View PHPInfo" msgstr "查看 PHPInfo" #: src/views/environment/PHPView.vue:223 -msgid "This modifies the PHP %{ version } main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "这将修改 PHP %{ version } 的主配置文件。如果您不了解每个参数的含义,请不要随意修改!" +msgid "" +"This modifies the PHP %{ version } main configuration file. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"这将修改 PHP %{ version } 的主配置文件。如果您不了解每个参数的含义,请不要随" +"意修改!" #: src/views/environment/PHPView.vue:237 msgid "FPM Configuration" msgstr "FPM 配置" #: src/views/environment/PHPView.vue:241 -msgid "This modifies the PHP %{ version } FPM configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "这将修改 PHP %{ version } 的 FPM 配置文件。如果您不了解每个参数的含义,请不要随意修改!" +msgid "" +"This modifies the PHP %{ version } FPM configuration file. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"这将修改 PHP %{ version } 的 FPM 配置文件。如果您不了解每个参数的含义,请不要" +"随意修改!" #: src/views/environment/PHPView.vue:294 msgid "PHPInfo" @@ -3930,13 +3716,10 @@ msgstr "压缩中……" msgid "Compressed successfully" msgstr "压缩成功" -#: src/views/file/CompressModal.vue:73 -#: src/views/file/CompressModal.vue:105 -#: src/views/file/ListView.vue:183 -#: src/views/file/ListView.vue:219 -#: src/views/file/ListView.vue:817 -#: src/views/file/ListView.vue:1329 -#: src/views/file/ToolBar.vue:288 +#: src/views/file/CompressModal.vue:73 src/views/file/CompressModal.vue:105 +#: src/views/file/ListView.vue:261 src/views/file/ListView.vue:297 +#: src/views/file/ListView.vue:895 src/views/file/ListView.vue:1456 +#: src/views/file/ToolBar.vue:268 msgid "Compress" msgstr "压缩" @@ -3956,161 +3739,144 @@ msgstr "格式" msgid "File Editor" msgstr "文件编辑器" -#: src/views/file/ListView.vue:160 -#: src/views/file/ListView.vue:585 -#: src/views/file/ListView.vue:653 -#: src/views/file/ListView.vue:701 -#: src/views/file/ToolBar.vue:134 +#: src/views/file/ListView.vue:238 src/views/file/ListView.vue:663 +#: src/views/file/ListView.vue:731 src/views/file/ListView.vue:779 +#: src/views/file/ToolBar.vue:114 msgid "Warning" msgstr "警告" -#: src/views/file/ListView.vue:161 -msgid "%{ name } has immutable attribute. The panel will temporarily remove the immutable attribute, perform the operation, and then restore the immutable attribute. Do you want to continue?" -msgstr "%{ name } 具有不可变属性。面板将暂时移除不可变属性,执行操作,然后恢复不可变属性。您要继续吗?" +#: src/views/file/ListView.vue:239 +msgid "" +"%{ name } has immutable attribute. The panel will temporarily remove the " +"immutable attribute, perform the operation, and then restore the immutable " +"attribute. Do you want to continue?" +msgstr "" +"%{ name } 具有不可变属性。面板将暂时移除不可变属性,执行操作,然后恢复不可变" +"属性。您要继续吗?" -#: src/views/file/ListView.vue:165 +#: src/views/file/ListView.vue:243 msgid "Continue" msgstr "继续" -#: src/views/file/ListView.vue:182 -#: src/views/file/ListView.vue:216 -#: src/views/file/ListView.vue:815 -#: src/views/file/ToolBar.vue:287 +#: src/views/file/ListView.vue:260 src/views/file/ListView.vue:294 +#: src/views/file/ListView.vue:893 src/views/file/ToolBar.vue:267 msgid "Move" msgstr "移动" -#: src/views/file/ListView.vue:184 -#: src/views/file/ListView.vue:217 -#: src/views/file/ListView.vue:816 -#: src/views/file/ListView.vue:1197 -#: src/views/file/PermissionModal.vue:144 -#: src/views/file/PropertyModal.vue:42 -#: src/views/file/ToolBar.vue:289 +#: src/views/file/ListView.vue:262 src/views/file/ListView.vue:295 +#: src/views/file/ListView.vue:894 src/views/file/ListView.vue:1277 +#: src/views/file/PermissionModal.vue:144 src/views/file/PropertyModal.vue:42 +#: src/views/file/ToolBar.vue:269 msgid "Permission" msgstr "权限" -#: src/views/file/ListView.vue:189 -#: src/views/file/ListView.vue:239 -#: src/views/file/ToolBar.vue:283 +#: src/views/file/ListView.vue:267 src/views/file/ListView.vue:317 +#: src/views/file/ToolBar.vue:263 msgid "Paste" msgstr "粘贴" -#: src/views/file/ListView.vue:201 -#: src/views/file/ListView.vue:1316 +#: src/views/file/ListView.vue:279 src/views/file/ListView.vue:1443 msgid "Open" msgstr "打开" -#: src/views/file/ListView.vue:203 -#: src/views/file/ListView.vue:1335 +#: src/views/file/ListView.vue:281 src/views/file/ListView.vue:1462 msgid "Preview" msgstr "预览" -#: src/views/file/ListView.vue:205 -#: src/views/file/ListView.vue:223 -#: src/views/file/ListView.vue:822 -#: src/views/file/ListView.vue:1442 +#: src/views/file/ListView.vue:283 src/views/file/ListView.vue:301 +#: src/views/file/ListView.vue:900 src/views/file/ListView.vue:1569 msgid "Uncompress" msgstr "解压" -#: src/views/file/ListView.vue:234 -#: src/views/file/ListView.vue:832 +#: src/views/file/ListView.vue:312 src/views/file/ListView.vue:910 #: src/views/file/PropertyModal.vue:11 msgid "Properties" msgstr "属性" -#: src/views/file/ListView.vue:496 -#: src/views/file/ToolBar.vue:83 -#: src/views/file/ToolBar.vue:100 +#: src/views/file/ListView.vue:574 src/views/file/ToolBar.vue:63 +#: src/views/file/ToolBar.vue:80 msgid "Marked successfully, please navigate to the destination path to paste" msgstr "标记成功,请导航到目标路径进行粘贴" -#: src/views/file/ListView.vue:586 +#: src/views/file/ListView.vue:664 msgid "There are items with the same name. Do you want to overwrite?" msgstr "存在同名项目。您要覆盖吗?" -#: src/views/file/ListView.vue:587 -#: src/views/file/ListView.vue:711 -#: src/views/file/ToolBar.vue:144 +#: src/views/file/ListView.vue:665 src/views/file/ListView.vue:789 +#: src/views/file/ToolBar.vue:124 msgid "Overwrite" msgstr "覆盖" -#: src/views/file/ListView.vue:594 -#: src/views/file/ListView.vue:613 +#: src/views/file/ListView.vue:672 src/views/file/ListView.vue:691 msgid "Renamed %{ source } to %{ target } successfully" msgstr "成功将 %{ source } 重命名为 %{ target }" -#: src/views/file/ListView.vue:649 +#: src/views/file/ListView.vue:727 msgid "Some files are immutable and cannot be deleted" msgstr "某些文件是不可变的,无法删除" -#: src/views/file/ListView.vue:654 +#: src/views/file/ListView.vue:732 msgid "Are you sure you want to delete %{count} items?" msgstr "您确定要删除 %{count} 项吗?" -#: src/views/file/ListView.vue:673 +#: src/views/file/ListView.vue:751 msgid "Path copied to clipboard" msgstr "路径已复制到剪贴板" -#: src/views/file/ListView.vue:680 -#: src/views/file/ToolBar.vue:110 +#: src/views/file/ListView.vue:758 src/views/file/ToolBar.vue:90 msgid "Please mark the files/folders to copy or move first" msgstr "请先标记要复制或移动的文件/文件夹" -#: src/views/file/ListView.vue:702 -#: src/views/file/ToolBar.vue:135 +#: src/views/file/ListView.vue:780 src/views/file/ToolBar.vue:115 msgid "There are items with the same name %{ items } Do you want to overwrite?" msgstr "存在同名项目 %{ items } 是否要覆盖?" -#: src/views/file/ListView.vue:724 -#: src/views/file/ListView.vue:744 -#: src/views/file/ToolBar.vue:157 -#: src/views/file/ToolBar.vue:177 +#: src/views/file/ListView.vue:802 src/views/file/ListView.vue:822 +#: src/views/file/ToolBar.vue:137 src/views/file/ToolBar.vue:157 msgid "Moved successfully" msgstr "移动成功" -#: src/views/file/ListView.vue:730 -#: src/views/file/ToolBar.vue:163 +#: src/views/file/ListView.vue:808 src/views/file/ToolBar.vue:143 msgid "Canceled" msgstr "已取消" -#: src/views/file/ListView.vue:825 +#: src/views/file/ListView.vue:903 msgid "Copy Path" msgstr "复制路径" -#: src/views/file/ListView.vue:1063 +#: src/views/file/ListView.vue:1141 msgid "Uncompressing..." msgstr "解压中……" -#: src/views/file/ListView.vue:1070 +#: src/views/file/ListView.vue:1148 msgid "Uncompressed successfully" msgstr "解压成功" -#: src/views/file/ListView.vue:1377 +#: src/views/file/ListView.vue:1504 msgid "No files" msgstr "没有文件" -#: src/views/file/ListView.vue:1387 +#: src/views/file/ListView.vue:1514 msgid "%{count} item(s) selected" msgstr "选择了 %{count} 项" -#: src/views/file/ListView.vue:1390 +#: src/views/file/ListView.vue:1517 msgid "Clear" msgstr "清除" -#: src/views/file/ListView.vue:1395 +#: src/views/file/ListView.vue:1522 msgid "%{count} item(s)" msgstr "共 %{count} 项" -#: src/views/file/ListView.vue:1430 +#: src/views/file/ListView.vue:1557 msgid "Uncompress - %{ file }" msgstr "解压 - %{ file }" -#: src/views/file/ListView.vue:1438 +#: src/views/file/ListView.vue:1565 msgid "Uncompress to" msgstr "解压到" -#: src/views/file/ListView.vue:1450 -#: src/views/file/ToolBar.vue:345 +#: src/views/file/ListView.vue:1577 src/views/file/ToolBar.vue:307 msgid "Terminal - %{ path }" msgstr "终端 - %{ path }" @@ -4143,27 +3909,22 @@ msgid "Modify permissions - %{ path }" msgstr "修改权限 - %{ path }" #: src/views/file/PermissionModal.vue:117 -#: src/views/file/PermissionModal.vue:147 -#: src/views/file/PropertyModal.vue:45 +#: src/views/file/PermissionModal.vue:147 src/views/file/PropertyModal.vue:45 msgid "Owner" msgstr "所有者" #: src/views/file/PermissionModal.vue:119 #: src/views/file/PermissionModal.vue:128 -#: src/views/file/PermissionModal.vue:137 -#: src/views/home/IndexView.vue:171 -#: src/views/home/IndexView.vue:187 -#: src/views/home/IndexView.vue:879 +#: src/views/file/PermissionModal.vue:137 src/views/home/IndexView.vue:171 +#: src/views/home/IndexView.vue:187 src/views/home/IndexView.vue:879 #: src/views/monitor/IndexView.vue:535 msgid "Read" msgstr "读取" #: src/views/file/PermissionModal.vue:120 #: src/views/file/PermissionModal.vue:129 -#: src/views/file/PermissionModal.vue:138 -#: src/views/home/IndexView.vue:171 -#: src/views/home/IndexView.vue:211 -#: src/views/home/IndexView.vue:880 +#: src/views/file/PermissionModal.vue:138 src/views/home/IndexView.vue:171 +#: src/views/home/IndexView.vue:211 src/views/home/IndexView.vue:880 #: src/views/monitor/IndexView.vue:544 msgid "Write" msgstr "写入" @@ -4202,44 +3963,43 @@ msgstr "隐藏" msgid "Immutable" msgstr "不可变" -#: src/views/file/ToolBar.vue:66 +#: src/views/file/ToolBar.vue:46 msgid "Download task created successfully" msgstr "下载任务创建成功" -#: src/views/file/ToolBar.vue:72 +#: src/views/file/ToolBar.vue:52 msgid "Please select files/folders to copy" msgstr "请选择要复制的文件/文件夹" -#: src/views/file/ToolBar.vue:89 +#: src/views/file/ToolBar.vue:69 msgid "Please select files/folders to move" msgstr "请选择要移动的文件/文件夹" -#: src/views/file/ToolBar.vue:229 +#: src/views/file/ToolBar.vue:209 msgid "Sort" msgstr "排序" -#: src/views/file/ToolBar.vue:254 -#: src/views/file/ToolBar.vue:323 +#: src/views/file/ToolBar.vue:234 src/views/file/ToolBar.vue:285 msgid "Remote Download" msgstr "远程下载" -#: src/views/file/ToolBar.vue:273 +#: src/views/file/ToolBar.vue:253 msgid "Switch to grid view" msgstr "切换为网格视图" -#: src/views/file/ToolBar.vue:274 +#: src/views/file/ToolBar.vue:254 msgid "Switch to list view" msgstr "切换为列表视图" -#: src/views/file/ToolBar.vue:296 +#: src/views/file/ToolBar.vue:276 msgid "Are you sure you want to delete in bulk?" msgstr "您确定要批量删除吗?" -#: src/views/file/ToolBar.vue:331 +#: src/views/file/ToolBar.vue:293 msgid "Download URL" msgstr "下载 URL" -#: src/views/file/ToolBar.vue:334 +#: src/views/file/ToolBar.vue:296 msgid "Save as" msgstr "另存为" @@ -4248,7 +4008,8 @@ msgid "Upload %{ fileName } successful" msgstr "上传 %{ fileName } 成功" #: src/views/file/UploadModal.vue:53 -msgid "For large files, it is recommended to use SFTP and other methods to upload" +msgid "" +"For large files, it is recommended to use SFTP and other methods to upload" msgstr "对于大文件,建议使用 SFTP 等方法上传" #: src/views/firewall/CreateForwardModal.vue:50 @@ -4258,10 +4019,8 @@ msgstr "创建转发" #: src/views/firewall/CreateForwardModal.vue:58 #: src/views/firewall/CreateIpModal.vue:100 -#: src/views/firewall/CreateModal.vue:112 -#: src/views/firewall/ForwardView.vue:14 -#: src/views/firewall/IpRuleView.vue:14 -#: src/views/firewall/RuleView.vue:14 +#: src/views/firewall/CreateModal.vue:112 src/views/firewall/ForwardView.vue:14 +#: src/views/firewall/IpRuleView.vue:14 src/views/firewall/RuleView.vue:14 msgid "Transport Protocol" msgstr "传输协议" @@ -4280,36 +4039,31 @@ msgid "Target Port" msgstr "目标端口" #: src/views/firewall/CreateIpModal.vue:38 -#: src/views/firewall/CreateModal.vue:38 -#: src/views/firewall/IpRuleView.vue:68 +#: src/views/firewall/CreateModal.vue:38 src/views/firewall/IpRuleView.vue:68 #: src/views/firewall/RuleView.vue:102 msgid "Accept" msgstr "接受" #: src/views/firewall/CreateIpModal.vue:42 -#: src/views/firewall/CreateModal.vue:42 -#: src/views/firewall/IpRuleView.vue:70 +#: src/views/firewall/CreateModal.vue:42 src/views/firewall/IpRuleView.vue:70 #: src/views/firewall/RuleView.vue:104 msgid "Drop" msgstr "丢弃" #: src/views/firewall/CreateIpModal.vue:46 -#: src/views/firewall/CreateModal.vue:46 -#: src/views/firewall/IpRuleView.vue:72 +#: src/views/firewall/CreateModal.vue:46 src/views/firewall/IpRuleView.vue:72 #: src/views/firewall/RuleView.vue:106 msgid "Reject" msgstr "拒绝" #: src/views/firewall/CreateIpModal.vue:53 -#: src/views/firewall/CreateModal.vue:53 -#: src/views/firewall/IpRuleView.vue:97 +#: src/views/firewall/CreateModal.vue:53 src/views/firewall/IpRuleView.vue:97 #: src/views/firewall/RuleView.vue:131 msgid "Inbound" msgstr "入站" #: src/views/firewall/CreateIpModal.vue:57 -#: src/views/firewall/CreateModal.vue:57 -#: src/views/firewall/IpRuleView.vue:99 +#: src/views/firewall/CreateModal.vue:57 src/views/firewall/IpRuleView.vue:99 #: src/views/firewall/RuleView.vue:133 msgid "Outbound" msgstr "出站" @@ -4320,15 +4074,13 @@ msgid "%{ address } created successfully" msgstr "%{ address } 创建成功" #: src/views/firewall/CreateIpModal.vue:92 -#: src/views/firewall/CreateModal.vue:104 -#: src/views/firewall/IpRuleView.vue:205 +#: src/views/firewall/CreateModal.vue:104 src/views/firewall/IpRuleView.vue:205 #: src/views/firewall/RuleView.vue:242 msgid "Create Rule" msgstr "创建规则" #: src/views/firewall/CreateIpModal.vue:103 -#: src/views/firewall/CreateModal.vue:115 -#: src/views/firewall/IpRuleView.vue:31 +#: src/views/firewall/CreateModal.vue:115 src/views/firewall/IpRuleView.vue:31 #: src/views/firewall/RuleView.vue:31 msgid "Network Protocol" msgstr "网络协议" @@ -4343,15 +4095,13 @@ msgid "IP or IP range: 172.16.0.1 or 172.16.0.0/16" msgstr "IP 或 IP 范围:172.16.0.1 或 172.16.0.0/16" #: src/views/firewall/CreateIpModal.vue:113 -#: src/views/firewall/CreateModal.vue:147 -#: src/views/firewall/IpRuleView.vue:48 +#: src/views/firewall/CreateModal.vue:147 src/views/firewall/IpRuleView.vue:48 #: src/views/firewall/RuleView.vue:82 msgid "Strategy" msgstr "策略" #: src/views/firewall/CreateIpModal.vue:116 -#: src/views/firewall/CreateModal.vue:150 -#: src/views/firewall/IpRuleView.vue:84 +#: src/views/firewall/CreateModal.vue:150 src/views/firewall/IpRuleView.vue:84 #: src/views/firewall/RuleView.vue:118 msgid "Direction" msgstr "方向" @@ -4364,26 +4114,22 @@ msgstr "起始端口" msgid "End Port" msgstr "结束端口" -#: src/views/firewall/CreateModal.vue:140 -#: src/views/firewall/IpRuleView.vue:109 +#: src/views/firewall/CreateModal.vue:140 src/views/firewall/IpRuleView.vue:109 #: src/views/firewall/RuleView.vue:143 msgid "Target" msgstr "目标" -#: src/views/firewall/ForwardView.vue:135 -#: src/views/firewall/IpRuleView.vue:177 +#: src/views/firewall/ForwardView.vue:135 src/views/firewall/IpRuleView.vue:177 #: src/views/firewall/RuleView.vue:214 msgid "Please select rules to delete" msgstr "请选择要删除的规则" -#: src/views/firewall/ForwardView.vue:168 -#: src/views/firewall/IpRuleView.vue:210 +#: src/views/firewall/ForwardView.vue:168 src/views/firewall/IpRuleView.vue:210 #: src/views/firewall/RuleView.vue:247 msgid "Batch Delete" msgstr "批量删除" -#: src/views/firewall/ForwardView.vue:171 -#: src/views/firewall/IpRuleView.vue:213 +#: src/views/firewall/ForwardView.vue:171 src/views/firewall/IpRuleView.vue:213 #: src/views/firewall/RuleView.vue:250 msgid "Are you sure you want to batch delete?" msgstr "您确定要批量删除吗?" @@ -4400,8 +4146,7 @@ msgstr "IP 规则" msgid "Port Forwarding" msgstr "端口转发" -#: src/views/firewall/IpRuleView.vue:74 -#: src/views/firewall/RuleView.vue:108 +#: src/views/firewall/IpRuleView.vue:74 src/views/firewall/RuleView.vue:108 msgid "Mark" msgstr "标记" @@ -4413,8 +4158,7 @@ msgstr "使用中" msgid "Not Used" msgstr "未使用" -#: src/views/firewall/SettingView.vue:27 -#: src/views/firewall/SettingView.vue:33 +#: src/views/firewall/SettingView.vue:27 src/views/firewall/SettingView.vue:33 #: src/views/firewall/SettingView.vue:39 msgid "Settings saved successfully" msgstr "设置保存成功" @@ -4431,8 +4175,7 @@ msgstr "SSH 开关" msgid "Allow Ping" msgstr "允许 Ping" -#: src/views/firewall/SettingView.vue:55 -#: src/views/toolbox/SshView.vue:231 +#: src/views/firewall/SettingView.vue:55 src/views/toolbox/SshView.vue:231 msgid "SSH Port" msgstr "SSH 端口" @@ -4456,22 +4199,17 @@ msgstr "运行正常" msgid "Running smoothly" msgstr "运行流畅" -#: src/views/home/IndexView.vue:147 -#: src/views/home/IndexView.vue:835 -#: src/views/home/IndexView.vue:855 -#: src/views/toolbox/BenchmarkView.vue:203 -#: src/views/toolbox/DiskView.vue:803 -#: src/views/toolbox/IndexView.vue:26 +#: src/views/home/IndexView.vue:147 src/views/home/IndexView.vue:835 +#: src/views/home/IndexView.vue:855 src/views/toolbox/BenchmarkView.vue:203 +#: src/views/toolbox/DiskView.vue:803 src/views/toolbox/IndexView.vue:26 msgid "Disk" msgstr "磁盘" -#: src/views/home/IndexView.vue:170 -#: src/views/home/IndexView.vue:187 +#: src/views/home/IndexView.vue:170 src/views/home/IndexView.vue:187 msgid "Send" msgstr "发送" -#: src/views/home/IndexView.vue:170 -#: src/views/home/IndexView.vue:211 +#: src/views/home/IndexView.vue:170 src/views/home/IndexView.vue:211 msgid "Receive" msgstr "接收" @@ -4479,26 +4217,20 @@ msgstr "接收" msgid "Unit %{unit}" msgstr "单位 %{unit}" -#: src/views/home/IndexView.vue:193 -#: src/views/home/IndexView.vue:217 -#: src/views/monitor/IndexView.vue:361 -#: src/views/monitor/IndexView.vue:414 +#: src/views/home/IndexView.vue:193 src/views/home/IndexView.vue:217 +#: src/views/monitor/IndexView.vue:361 src/views/monitor/IndexView.vue:414 #: src/views/monitor/IndexView.vue:460 msgid "Maximum" msgstr "最大值" -#: src/views/home/IndexView.vue:194 -#: src/views/home/IndexView.vue:218 -#: src/views/monitor/IndexView.vue:362 -#: src/views/monitor/IndexView.vue:415 +#: src/views/home/IndexView.vue:194 src/views/home/IndexView.vue:218 +#: src/views/monitor/IndexView.vue:362 src/views/monitor/IndexView.vue:415 #: src/views/monitor/IndexView.vue:461 msgid "Minimum" msgstr "最小值" -#: src/views/home/IndexView.vue:198 -#: src/views/home/IndexView.vue:222 -#: src/views/monitor/IndexView.vue:366 -#: src/views/monitor/IndexView.vue:419 +#: src/views/home/IndexView.vue:198 src/views/home/IndexView.vue:222 +#: src/views/monitor/IndexView.vue:366 src/views/monitor/IndexView.vue:419 #: src/views/monitor/IndexView.vue:465 msgid "Average" msgstr "平均值" @@ -4516,15 +4248,24 @@ msgid "Current version is the latest" msgstr "当前版本是最新版本" #: src/views/home/IndexView.vue:426 -msgid "Your operating system %{ os_name } has reached its end-of-life. Please consider upgrading to a supported version to ensure optimal performance and security." -msgstr "您的操作系统 %{ os_name } 已经结束生命周期。请考虑升级到受支持的版本,以确保最佳的性能和安全性。" +msgid "" +"Your operating system %{ os_name } has reached its end-of-life. Please " +"consider upgrading to a supported version to ensure optimal performance and " +"security." +msgstr "" +"您的操作系统 %{ os_name } 已经结束生命周期。请考虑升级到受支持的版本,以确保" +"最佳的性能和安全性。" #: src/views/home/IndexView.vue:437 -msgid "Your operating system %{ os_name } is not officially supported. Some features may not work as expected. Please consider using a supported operating system for the best experience." -msgstr "您的操作系统 %{ os_name } 不受官方支持。某些功能可能无法按预期工作。请考虑使用受支持的操作系统以获得最佳体验。" +msgid "" +"Your operating system %{ os_name } is not officially supported. Some " +"features may not work as expected. Please consider using a supported " +"operating system for the best experience." +msgstr "" +"您的操作系统 %{ os_name } 不受官方支持。某些功能可能无法按预期工作。请考虑使" +"用受支持的操作系统以获得最佳体验。" -#: src/views/home/IndexView.vue:462 -#: src/views/task/IndexView.vue:23 +#: src/views/home/IndexView.vue:462 src/views/task/IndexView.vue:23 msgid "Scheduled Tasks" msgstr "计划任务" @@ -4552,8 +4293,7 @@ msgstr "最近 5 分钟" msgid "Last 15 minutes" msgstr "最近 15 分钟" -#: src/views/home/IndexView.vue:536 -#: src/views/home/IndexView.vue:548 +#: src/views/home/IndexView.vue:536 src/views/home/IndexView.vue:548 msgid "cores" msgstr "核心" @@ -4569,8 +4309,7 @@ msgstr "参数" msgid "cache" msgstr "缓存" -#: src/views/home/IndexView.vue:555 -#: src/views/monitor/IndexView.vue:405 +#: src/views/home/IndexView.vue:555 src/views/monitor/IndexView.vue:405 #: src/views/toolbox/DiskView.vue:301 msgid "Usage" msgstr "使用率" @@ -4587,8 +4326,7 @@ msgstr "活跃" msgid "Inactive" msgstr "非活跃" -#: src/views/home/IndexView.vue:590 -#: src/views/toolbox/DiskView.vue:254 +#: src/views/home/IndexView.vue:590 src/views/toolbox/DiskView.vue:254 msgid "Free" msgstr "空闲" @@ -4660,8 +4398,7 @@ msgstr "您尚未设置任何要在此处显示的应用!" msgid "Environment Information" msgstr "环境信息" -#: src/views/home/IndexView.vue:768 -#: src/views/toolbox/SystemView.vue:141 +#: src/views/home/IndexView.vue:768 src/views/toolbox/SystemView.vue:183 msgid "System Hostname" msgstr "系统主机名" @@ -4749,15 +4486,12 @@ msgstr "立即更新" msgid "Loading update information, please wait a moment" msgstr "正在加载更新信息,请稍候" -#: src/views/log/DatabaseLog.vue:31 -#: src/views/log/HttpLog.vue:39 -#: src/views/log/OperationLog.vue:34 -#: src/views/toolbox/SystemView.vue:155 +#: src/views/log/DatabaseLog.vue:31 src/views/log/HttpLog.vue:39 +#: src/views/log/OperationLog.vue:34 src/views/toolbox/SystemView.vue:197 msgid "Time" msgstr "时间" -#: src/views/log/DatabaseLog.vue:40 -#: src/views/log/OperationLog.vue:43 +#: src/views/log/DatabaseLog.vue:40 src/views/log/OperationLog.vue:43 msgid "Level" msgstr "级别" @@ -4765,8 +4499,7 @@ msgstr "级别" msgid "Query" msgstr "查询" -#: src/views/log/DatabaseLog.vue:64 -#: src/views/log/HttpLog.vue:86 +#: src/views/log/DatabaseLog.vue:64 src/views/log/HttpLog.vue:86 msgid "Duration" msgstr "持续时间" @@ -4774,8 +4507,7 @@ msgstr "持续时间" msgid "Rows" msgstr "行" -#: src/views/log/DatabaseLog.vue:95 -#: src/views/log/HttpLog.vue:120 +#: src/views/log/DatabaseLog.vue:95 src/views/log/HttpLog.vue:120 #: src/views/log/OperationLog.vue:93 msgid "Show entries" msgstr "显示条目" @@ -4804,8 +4536,7 @@ msgstr "HTTP 日志" msgid "Operator" msgstr "操作员" -#: src/views/log/OperationLog.vue:70 -#: src/views/toolbox/IndexView.vue:24 +#: src/views/log/OperationLog.vue:70 src/views/toolbox/IndexView.vue:24 msgid "System" msgstr "系统" @@ -4822,7 +4553,8 @@ msgid "Please enter captcha code" msgstr "请输入验证码" #: src/views/login/IndexView.vue:77 -msgid "Failed to get encryption public key, please refresh the page and try again" +msgid "" +"Failed to get encryption public key, please refresh the page and try again" msgstr "获取加密公钥失败,请刷新页面后重试" #: src/views/login/IndexView.vue:92 @@ -4865,8 +4597,7 @@ msgstr "使用率 %" msgid "Unit MB" msgstr "单位 MB" -#: src/views/monitor/IndexView.vue:573 -#: src/views/monitor/IndexView.vue:579 +#: src/views/monitor/IndexView.vue:573 src/views/monitor/IndexView.vue:579 msgid "Operation successful" msgstr "操作成功" @@ -4886,8 +4617,7 @@ msgstr "天" msgid "Clear Monitoring Records" msgstr "清除监控记录" -#: src/views/monitor/IndexView.vue:611 -#: src/views/website/EditView.vue:912 +#: src/views/monitor/IndexView.vue:611 src/views/website/EditView.vue:1024 msgid "Are you sure you want to clear?" msgstr "确定要清除吗?" @@ -4895,26 +4625,20 @@ msgstr "确定要清除吗?" msgid "Load" msgstr "负载" -#: src/views/monitor/IndexView.vue:628 -#: src/views/monitor/IndexView.vue:682 -#: src/views/monitor/IndexView.vue:734 -#: src/views/monitor/IndexView.vue:790 +#: src/views/monitor/IndexView.vue:628 src/views/monitor/IndexView.vue:682 +#: src/views/monitor/IndexView.vue:734 src/views/monitor/IndexView.vue:790 #: src/views/monitor/IndexView.vue:857 msgid "Yesterday" msgstr "昨天" -#: src/views/monitor/IndexView.vue:634 -#: src/views/monitor/IndexView.vue:688 -#: src/views/monitor/IndexView.vue:740 -#: src/views/monitor/IndexView.vue:796 +#: src/views/monitor/IndexView.vue:634 src/views/monitor/IndexView.vue:688 +#: src/views/monitor/IndexView.vue:740 src/views/monitor/IndexView.vue:796 #: src/views/monitor/IndexView.vue:863 msgid "Today" msgstr "今天" -#: src/views/monitor/IndexView.vue:640 -#: src/views/monitor/IndexView.vue:694 -#: src/views/monitor/IndexView.vue:746 -#: src/views/monitor/IndexView.vue:802 +#: src/views/monitor/IndexView.vue:640 src/views/monitor/IndexView.vue:694 +#: src/views/monitor/IndexView.vue:746 src/views/monitor/IndexView.vue:802 #: src/views/monitor/IndexView.vue:869 msgid "Last 7 Days" msgstr "近 7 天" @@ -4935,62 +4659,56 @@ msgstr "创建通用项目" msgid "Create PHP Project" msgstr "创建 PHP 项目" -#: src/views/project/CreateModal.vue:119 -#: src/views/project/ListView.vue:197 +#: src/views/project/CreateModal.vue:119 src/views/project/ListView.vue:213 msgid "Create Project" msgstr "创建项目" -#: src/views/project/CreateModal.vue:135 -#: src/views/project/EditModal.vue:179 +#: src/views/project/CreateModal.vue:135 src/views/project/EditModal.vue:179 msgid "Project Name" msgstr "项目名" -#: src/views/project/CreateModal.vue:140 -#: src/views/project/EditModal.vue:184 +#: src/views/project/CreateModal.vue:140 src/views/project/EditModal.vue:184 msgid "Project name, used as service identifier" msgstr "项目名称,用作服务标识符" -#: src/views/project/CreateModal.vue:144 -#: src/views/project/EditModal.vue:198 +#: src/views/project/CreateModal.vue:144 src/views/project/EditModal.vue:198 msgid "Project Directory" msgstr "项目目录" -#: src/views/project/CreateModal.vue:150 -#: src/views/project/EditModal.vue:204 -msgid "Project root directory" -msgstr "项目根目录" +#: src/views/project/CreateModal.vue:151 +#, fuzzy +msgid "" +"Project root directory (if left empty, defaults to project directory/project " +"name)" +msgstr "网站根目录(如果留空,默认为网站目录/网站名称/public)" -#: src/views/project/CreateModal.vue:164 -#: src/views/website/CreateModal.vue:158 -#: src/views/website/EditView.vue:453 +#: src/views/project/CreateModal.vue:168 src/views/website/CreateModal.vue:158 +#: src/views/website/EditView.vue:481 msgid "PHP Version" msgstr "PHP 版本" -#: src/views/project/CreateModal.vue:168 -#: src/views/website/CreateModal.vue:162 -#: src/views/website/EditView.vue:458 +#: src/views/project/CreateModal.vue:172 src/views/website/CreateModal.vue:162 +#: src/views/website/EditView.vue:486 msgid "Select PHP Version" msgstr "选择 PHP 版本" -#: src/views/project/CreateModal.vue:174 +#: src/views/project/CreateModal.vue:178 msgid "Framework" msgstr "框架" -#: src/views/project/CreateModal.vue:178 +#: src/views/project/CreateModal.vue:182 msgid "Select Framework" msgstr "选择框架" -#: src/views/project/CreateModal.vue:194 -#: src/views/project/EditModal.vue:240 +#: src/views/project/CreateModal.vue:198 src/views/project/EditModal.vue:240 msgid "Select User" msgstr "选择用户" -#: src/views/project/CreateModal.vue:199 +#: src/views/project/CreateModal.vue:203 msgid "Select www user if no special requirements" msgstr "如果没有特殊要求,请选择 www 用户" -#: src/views/project/CreateModal.vue:209 -#: src/views/project/EditModal.vue:255 +#: src/views/project/CreateModal.vue:213 src/views/project/EditModal.vue:255 msgid "e.g., php artisan serve, node app.js" msgstr "例如,php artisan serve、node app.js" @@ -5026,8 +4744,7 @@ msgstr "文件(附加)" msgid "File (truncate)" msgstr "文件(截断)" -#: src/views/project/EditModal.vue:72 -#: src/views/setting/SettingSafe.vue:262 +#: src/views/project/EditModal.vue:72 src/views/setting/SettingSafe.vue:262 msgid "Disabled" msgstr "禁用" @@ -5039,6 +4756,10 @@ msgstr "编辑项目 - %{ name }" msgid "Project description" msgstr "项目描述" +#: src/views/project/EditModal.vue:204 +msgid "Project root directory" +msgstr "项目根目录" + #: src/views/project/EditModal.vue:221 msgid "Working directory (optional, defaults to project directory)" msgstr "工作目录(可选,默认为项目目录)" @@ -5120,8 +4841,12 @@ msgid "Dependencies" msgstr "依赖" #: src/views/project/EditModal.vue:404 -msgid "Configure service dependencies to control startup order. Common services: network.target, mysql.service, redis.service" -msgstr "配置服务依赖关系以控制启动顺序。常见服务:network.target、mysql.service、redis.service" +msgid "" +"Configure service dependencies to control startup order. Common services: " +"network.target, mysql.service, redis.service" +msgstr "" +"配置服务依赖关系以控制启动顺序。常见服务:network.target、mysql.service、" +"redis.service" #: src/views/project/EditModal.vue:410 msgid "Requires" @@ -5156,7 +4881,9 @@ msgid "Start this service before the specified services" msgstr "在指定的服务之前启动此服务" #: src/views/project/EditModal.vue:455 -msgid "Set resource limits to prevent the service from consuming too many system resources" +msgid "" +"Set resource limits to prevent the service from consuming too many system " +"resources" msgstr "设置资源限制以防止服务消耗过多系统资源" #: src/views/project/EditModal.vue:463 @@ -5188,7 +4915,9 @@ msgid "Security Settings" msgstr "安全设置" #: src/views/project/EditModal.vue:502 -msgid "Security settings can enhance service isolation but may affect functionality. Please test thoroughly before enabling." +msgid "" +"Security settings can enhance service isolation but may affect " +"functionality. Please test thoroughly before enabling." msgstr "安全设置可以增强服务隔离,但可能会影响功能。请在启用之前进行充分测试。" #: src/views/project/EditModal.vue:508 @@ -5212,8 +4941,11 @@ msgid "Protect System" msgstr "保护系统" #: src/views/project/EditModal.vue:537 -msgid "true: /usr, /boot read-only; full: + /etc read-only; strict: entire filesystem read-only" -msgstr "true:/usr,/boot 为只读;full:+ /etc 为只读;strict:整个文件系统为只读" +msgid "" +"true: /usr, /boot read-only; full: + /etc read-only; strict: entire " +"filesystem read-only" +msgstr "" +"true:/usr,/boot 为只读;full:+ /etc 为只读;strict:整个文件系统为只读" #: src/views/project/EditModal.vue:545 msgid "Path Access Control" @@ -5235,13 +4967,11 @@ msgstr "只读路径" msgid "Paths that the service can only read from" msgstr "服务只能读取的路径" -#: src/views/project/IndexView.vue:22 -#: src/views/project/ListView.vue:20 +#: src/views/project/IndexView.vue:22 src/views/project/ListView.vue:23 msgid "General" msgstr "通用" -#: src/views/project/IndexView.vue:23 -#: src/views/website/IndexView.vue:22 +#: src/views/project/IndexView.vue:23 src/views/website/IndexView.vue:22 msgid "PHP" msgstr "PHP" @@ -5261,11 +4991,11 @@ msgstr "Python" msgid "Node.js" msgstr "Node.js" -#: src/views/project/ListView.vue:115 +#: src/views/project/ListView.vue:131 msgid "Are you sure you want to delete project %{ name }?" msgstr "您确定要删除项目 %{ name } 吗?" -#: src/views/project/ListView.vue:205 +#: src/views/project/ListView.vue:221 msgid "Are you sure you want to delete the selected projects?" msgstr "您确定要删除所选项目吗?" @@ -5273,8 +5003,7 @@ msgstr "您确定要删除所选项目吗?" msgid "Enter user name" msgstr "输入用户名" -#: src/views/setting/CreateModal.vue:53 -#: src/views/setting/PasswordModal.vue:40 +#: src/views/setting/CreateModal.vue:53 src/views/setting/PasswordModal.vue:40 msgid "Enter user password" msgstr "输入用户密码" @@ -5282,67 +5011,74 @@ msgstr "输入用户密码" msgid "Enter user email" msgstr "输入用户邮箱" -#: src/views/setting/IndexView.vue:68 +#: src/views/setting/IndexView.vue:69 msgid "Panel is restarting, page will refresh in 5 seconds" msgstr "面板正在重启,页面将在 5 秒后刷新" -#: src/views/setting/IndexView.vue:91 +#: src/views/setting/IndexView.vue:92 msgid "Safe" msgstr "安全" -#: src/views/setting/PasswordModal.vue:16 -#: src/views/setting/TokenModal.vue:181 -#: src/views/setting/TwoFaModal.vue:24 -#: src/views/ssh/UpdateModal.vue:31 +#: src/views/setting/PasswordModal.vue:16 src/views/setting/TokenModal.vue:181 +#: src/views/setting/TwoFaModal.vue:24 src/views/ssh/UpdateModal.vue:31 msgid "Updated successfully" msgstr "更新成功" -#: src/views/setting/SettingBase.vue:51 +#: src/views/setting/SettingBase.vue:56 msgid "Stable" msgstr "稳定版" -#: src/views/setting/SettingBase.vue:55 +#: src/views/setting/SettingBase.vue:60 msgid "Beta" msgstr "测试版" -#: src/views/setting/SettingBase.vue:101 -#: src/views/setting/SettingBase.vue:102 +#: src/views/setting/SettingBase.vue:114 src/views/setting/SettingBase.vue:115 msgid "Panel Name" msgstr "面板名称" -#: src/views/setting/SettingBase.vue:107 +#: src/views/setting/SettingBase.vue:120 msgid "Update Channel" msgstr "更新渠道" -#: src/views/setting/SettingBase.vue:111 +#: src/views/setting/SettingBase.vue:124 msgid "8888" msgstr "8888" -#: src/views/setting/SettingBase.vue:113 +#: src/views/setting/SettingBase.vue:126 msgid "Default Website Directory" msgstr "默认网站目录" -#: src/views/setting/SettingBase.vue:115 +#: src/views/setting/SettingBase.vue:128 msgid "/opt/ace/sites" msgstr "/opt/ace/sites" -#: src/views/setting/SettingBase.vue:123 +#: src/views/setting/SettingBase.vue:136 msgid "Default Backup Directory" msgstr "默认备份目录" -#: src/views/setting/SettingBase.vue:125 +#: src/views/setting/SettingBase.vue:138 msgid "/opt/ace/backup" msgstr "/opt/ace/backup" -#: src/views/setting/SettingBase.vue:133 +#: src/views/setting/SettingBase.vue:146 +#, fuzzy +msgid "Default Project Directory" +msgstr "项目目录" + +#: src/views/setting/SettingBase.vue:150 +#, fuzzy +msgid "/opt/ace/projects" +msgstr "/opt/ace/sites" + +#: src/views/setting/SettingBase.vue:159 msgid "Custom Logo" msgstr "自定义 Logo" -#: src/views/setting/SettingBase.vue:136 +#: src/views/setting/SettingBase.vue:162 msgid "Please enter the complete URL" msgstr "请输入完整的 URL" -#: src/views/setting/SettingBase.vue:139 +#: src/views/setting/SettingBase.vue:165 msgid "Hide Menu" msgstr "隐藏菜单" @@ -5351,7 +5087,9 @@ msgid "Login Timeout" msgstr "登录超时" #: src/views/setting/SettingSafe.vue:47 -msgid "Set the maximum lifetime (in minutes) of the login state, after which you need to log in again" +msgid "" +"Set the maximum lifetime (in minutes) of the login state, after which you " +"need to log in again" msgstr "设置登录状态的最长生命周期(单位:分钟),超过该时间后需要重新登录" #: src/views/setting/SettingSafe.vue:55 @@ -5367,19 +5105,26 @@ msgid "Access Entrance" msgstr "访问入口" #: src/views/setting/SettingSafe.vue:75 -msgid "Set the access entrance of the panel (e.g. /mypanel) to prevent some malicious access. Leave blank to disable (not recommended)" -msgstr "设置面板的访问入口(例如 /mypanel)以防止恶意访问。留空以禁用(不推荐)" +msgid "" +"Set the access entrance of the panel (e.g. /mypanel) to prevent some " +"malicious access. Leave blank to disable (not recommended)" +msgstr "" +"设置面板的访问入口(例如 /mypanel)以防止恶意访问。留空以禁用(不推荐)" #: src/views/setting/SettingSafe.vue:88 msgid "Entrance Error Page" msgstr "入口错误页" #: src/views/setting/SettingSafe.vue:93 -msgid "Set the error page to display when accessing with wrong entrance. 418 shows teapot page, Nginx 404 shows nginx style 404 page, Close Connection will close the connection immediately" -msgstr "设置当通过错误入口访问时显示的错误页面。418 显示茶壶页面,Nginx 404 显示 Nginx 风格的 404 页面,关闭连接将立即关闭连接" +msgid "" +"Set the error page to display when accessing with wrong entrance. 418 shows " +"teapot page, Nginx 404 shows nginx style 404 page, Close Connection will " +"close the connection immediately" +msgstr "" +"设置当通过错误入口访问时显示的错误页面。418 显示茶壶页面,Nginx 404 显示 " +"Nginx 风格的 404 页面,关闭连接将立即关闭连接" -#: src/views/setting/SettingSafe.vue:102 -#: src/views/setting/SettingSafe.vue:106 +#: src/views/setting/SettingSafe.vue:102 src/views/setting/SettingSafe.vue:106 msgid "418 I'm a teapot" msgstr "418 I'm a teapot" @@ -5396,7 +5141,9 @@ msgid "Login Captcha" msgstr "登录验证码" #: src/views/setting/SettingSafe.vue:119 -msgid "When enabled, a captcha will be required after 3 failed login attempts to prevent brute force attacks" +msgid "" +"When enabled, a captcha will be required after 3 failed login attempts to " +"prevent brute force attacks" msgstr "启用后,在 3 次登录失败后将要求输入验证码,以防止暴力破解攻击" #: src/views/setting/SettingSafe.vue:132 @@ -5404,8 +5151,12 @@ msgid "Request IP Header" msgstr "请求 IP 头" #: src/views/setting/SettingSafe.vue:137 -msgid "Set the header that carries the real IP of the client, useful when using CDN or reverse proxy. Leave blank to use the client IP directly" -msgstr "设置承载客户端真实 IP 的请求头,在使用 CDN 或反向代理时非常有用。留空以直接使用客户端 IP" +msgid "" +"Set the header that carries the real IP of the client, useful when using CDN " +"or reverse proxy. Leave blank to use the client IP directly" +msgstr "" +"设置承载客户端真实 IP 的请求头,在使用 CDN 或反向代理时非常有用。留空以直接使" +"用客户端 IP" #: src/views/setting/SettingSafe.vue:143 msgid "X-Real-IP" @@ -5416,7 +5167,9 @@ msgid "Bind Domain" msgstr "绑定域名" #: src/views/setting/SettingSafe.vue:155 -msgid "Restrict panel access to the specified domain names. Leave blank to allow access from any domain" +msgid "" +"Restrict panel access to the specified domain names. Leave blank to allow " +"access from any domain" msgstr "限制面板访问为指定的域名。留空以允许来自任何域名的访问" #: src/views/setting/SettingSafe.vue:172 @@ -5424,7 +5177,9 @@ msgid "Bind IP" msgstr "绑定 IP" #: src/views/setting/SettingSafe.vue:177 -msgid "Restrict panel access to the specified IP addresses. Leave blank to allow access from any IP" +msgid "" +"Restrict panel access to the specified IP addresses. Leave blank to allow " +"access from any IP" msgstr "限制面板访问为指定的 IP 地址。留空以允许来自任何 IP 的访问" #: src/views/setting/SettingSafe.vue:190 @@ -5432,7 +5187,9 @@ msgid "Bind UA" msgstr "绑定 UA" #: src/views/setting/SettingSafe.vue:195 -msgid "Restrict panel access to the specified User-Agent strings. Leave blank to allow access from any User-Agent" +msgid "" +"Restrict panel access to the specified User-Agent strings. Leave blank to " +"allow access from any User-Agent" msgstr "限制面板访问为指定的用户代理字符串。留空以允许任何用户代理的访问" #: src/views/setting/SettingSafe.vue:212 @@ -5440,24 +5197,37 @@ msgid "Offline Mode" msgstr "离线模式" #: src/views/setting/SettingSafe.vue:217 -msgid "When enabled, the panel will not attempt to connect to external services for updates or other features. This may limit some functionalities" -msgstr "启用后,面板将不会尝试连接外部服务以获取更新或其他功能。这可能会限制某些功能" +msgid "" +"When enabled, the panel will not attempt to connect to external services for " +"updates or other features. This may limit some functionalities" +msgstr "" +"启用后,面板将不会尝试连接外部服务以获取更新或其他功能。这可能会限制某些功能" #: src/views/setting/SettingSafe.vue:230 msgid "Auto Update" msgstr "自动更新" #: src/views/setting/SettingSafe.vue:235 -msgid "When enabled, the panel will automatically check for and install updates when they are available. It is recommended to keep this enabled to ensure you have the latest features and security patches" -msgstr "启用后,面板将自动检查并安装可用的更新。建议保持此功能启用,以确保您拥有最新的功能和安全补丁" +msgid "" +"When enabled, the panel will automatically check for and install updates " +"when they are available. It is recommended to keep this enabled to ensure " +"you have the latest features and security patches" +msgstr "" +"启用后,面板将自动检查并安装可用的更新。建议保持此功能启用,以确保您拥有最新" +"的功能和安全补丁" #: src/views/setting/SettingSafe.vue:248 msgid "Panel HTTPS" msgstr "面板 HTTPS" #: src/views/setting/SettingSafe.vue:253 -msgid "Enable HTTPS for the panel. ACME will automatically obtain and renew certificates (requires panel accessible via public IP). Custom allows you to provide your own certificate" -msgstr "为面板启用 HTTPS。ACME 将自动获取并更新证书(需支持通过公网 IP 访问面板)。自定义允许您提供自己的证书" +msgid "" +"Enable HTTPS for the panel. ACME will automatically obtain and renew " +"certificates (requires panel accessible via public IP). Custom allows you to " +"provide your own certificate" +msgstr "" +"为面板启用 HTTPS。ACME 将自动获取并更新证书(需支持通过公网 IP 访问面板)。自" +"定义允许您提供自己的证书" #: src/views/setting/SettingSafe.vue:263 msgid "ACME (Auto)" @@ -5467,14 +5237,16 @@ msgstr "ACME(自动)" msgid "Custom Certificate" msgstr "自定义证书" -#: src/views/setting/SettingSafe.vue:272 -#: src/views/setting/SettingSafe.vue:277 +#: src/views/setting/SettingSafe.vue:272 src/views/setting/SettingSafe.vue:277 msgid "Panel Public IP" msgstr "面板公网 IP" #: src/views/setting/SettingSafe.vue:282 -msgid "Panel public IP is used to issue HTTPS certificates using ACME. Ensure that the entered IP address is accessible from the public network." -msgstr "面板公网 IP 用于使用 ACME 颁发 HTTPS 证书。确保输入的 IP 地址可以从公网访问。" +msgid "" +"Panel public IP is used to issue HTTPS certificates using ACME. Ensure that " +"the entered IP address is accessible from the public network." +msgstr "" +"面板公网 IP 用于使用 ACME 颁发 HTTPS 证书。确保输入的 IP 地址可以从公网访问。" #: src/views/setting/SettingUser.vue:53 msgid "2FA" @@ -5484,8 +5256,7 @@ msgstr "两步验证" msgid "Disabled successfully" msgstr "禁用成功" -#: src/views/setting/SettingUser.vue:102 -#: src/views/setting/TokenModal.vue:202 +#: src/views/setting/SettingUser.vue:102 src/views/setting/TokenModal.vue:202 msgid "Access Tokens" msgstr "访问令牌" @@ -5513,23 +5284,19 @@ msgstr "复制并关闭" msgid "Copy failed" msgstr "复制失败" -#: src/views/setting/TokenModal.vue:212 -#: src/views/setting/TokenModal.vue:240 +#: src/views/setting/TokenModal.vue:212 src/views/setting/TokenModal.vue:240 msgid "Create Access Token" msgstr "创建访问令牌" -#: src/views/setting/TokenModal.vue:249 -#: src/views/setting/TokenModal.vue:282 +#: src/views/setting/TokenModal.vue:249 src/views/setting/TokenModal.vue:282 msgid "IP White List" msgstr "IP 白名单" -#: src/views/setting/TokenModal.vue:252 -#: src/views/setting/TokenModal.vue:285 +#: src/views/setting/TokenModal.vue:252 src/views/setting/TokenModal.vue:285 msgid "127.0.0.1" msgstr "127.0.0.1" -#: src/views/setting/TokenModal.vue:260 -#: src/views/setting/TokenModal.vue:293 +#: src/views/setting/TokenModal.vue:260 src/views/setting/TokenModal.vue:293 msgid "Please select the expiration time" msgstr "请选择到期时间" @@ -5550,7 +5317,8 @@ msgid "Scan the QR code with your 2FA app and enter the code below" msgstr "用您的两步验证应用扫描二维码并在下方输入代码" #: src/views/setting/TwoFaModal.vue:66 -msgid "If you cannot scan the QR code, please enter the URL below in your 2FA app" +msgid "" +"If you cannot scan the QR code, please enter the URL below in your 2FA app" msgstr "如果您不能扫描二维码,请在您的两步验证应用中输入下面的 URL" #: src/views/setting/TwoFaModal.vue:79 @@ -5561,28 +5329,23 @@ msgstr "代码" msgid "Enter the code" msgstr "输入代码" -#: src/views/ssh/CreateModal.vue:52 -#: src/views/ssh/IndexView.vue:281 +#: src/views/ssh/CreateModal.vue:52 src/views/ssh/IndexView.vue:281 msgid "Create Host" msgstr "创建主机" -#: src/views/ssh/CreateModal.vue:75 -#: src/views/ssh/UpdateModal.vue:81 +#: src/views/ssh/CreateModal.vue:75 src/views/ssh/UpdateModal.vue:81 msgid "Authentication Method" msgstr "认证方式" -#: src/views/ssh/CreateModal.vue:94 -#: src/views/ssh/UpdateModal.vue:100 +#: src/views/ssh/CreateModal.vue:94 src/views/ssh/UpdateModal.vue:100 msgid "Passphrase" msgstr "密码短语" -#: src/views/ssh/CreateModal.vue:99 -#: src/views/ssh/UpdateModal.vue:105 +#: src/views/ssh/CreateModal.vue:99 src/views/ssh/UpdateModal.vue:105 msgid "Leave empty if key has no passphrase" msgstr "如果密钥没有密码短语,请留空" -#: src/views/ssh/CreateModal.vue:102 -#: src/views/ssh/UpdateModal.vue:108 +#: src/views/ssh/CreateModal.vue:102 src/views/ssh/UpdateModal.vue:108 msgid "Remarks" msgstr "备注" @@ -5614,37 +5377,29 @@ msgstr "# 在此处输入您的脚本内容" msgid "Create Scheduled Task" msgstr "创建计划任务" -#: src/views/task/CreateModal.vue:95 -#: src/views/task/CronView.vue:32 +#: src/views/task/CreateModal.vue:95 src/views/task/CronView.vue:32 msgid "Task Type" msgstr "任务类型" -#: src/views/task/CreateModal.vue:99 -#: src/views/task/CronView.vue:45 +#: src/views/task/CreateModal.vue:99 src/views/task/CronView.vue:45 msgid "Run Script" msgstr "运行脚本" -#: src/views/task/CreateModal.vue:100 -#: src/views/task/CronView.vue:47 +#: src/views/task/CreateModal.vue:100 src/views/task/CronView.vue:47 msgid "Backup Data" msgstr "备份数据" -#: src/views/task/CreateModal.vue:101 -#: src/views/task/CronView.vue:48 +#: src/views/task/CreateModal.vue:101 src/views/task/CronView.vue:48 msgid "Log Rotation" msgstr "日志切割" -#: src/views/task/CreateModal.vue:106 -#: src/views/task/CreateModal.vue:107 -#: src/views/task/CronView.vue:25 -#: src/views/task/CronView.vue:250 -#: src/views/task/CronView.vue:251 -#: src/views/task/TaskView.vue:15 +#: src/views/task/CreateModal.vue:106 src/views/task/CreateModal.vue:107 +#: src/views/task/CronView.vue:25 src/views/task/CronView.vue:250 +#: src/views/task/CronView.vue:251 src/views/task/TaskView.vue:15 msgid "Task Name" msgstr "任务名称" -#: src/views/task/CreateModal.vue:109 -#: src/views/task/CronView.vue:69 +#: src/views/task/CreateModal.vue:109 src/views/task/CronView.vue:69 #: src/views/task/CronView.vue:253 msgid "Task Schedule" msgstr "任务周期" @@ -5669,8 +5424,7 @@ msgstr "PostgreSQL 数据库" msgid "Retention Count" msgstr "保留数量" -#: src/views/task/CronView.vue:55 -#: src/views/toolbox/WebHookView.vue:87 +#: src/views/task/CronView.vue:55 src/views/toolbox/WebHookView.vue:87 #: src/views/toolbox/WebHookView.vue:382 msgid "Enabled" msgstr "已启用" @@ -5695,9 +5449,8 @@ msgstr "创建任务" msgid "Completed" msgstr "已完成" -#: src/views/task/TaskView.vue:30 -#: src/views/toolbox/ProcessView.vue:53 -#: src/views/toolbox/ProcessView.vue:90 +#: src/views/task/TaskView.vue:30 src/views/toolbox/ProcessView.vue:53 +#: src/views/toolbox/ProcessView.vue:92 msgid "Waiting" msgstr "等待中" @@ -5733,8 +5486,11 @@ msgid "Pending benchmark" msgstr "待跑分" #: src/views/toolbox/BenchmarkView.vue:89 -msgid "Benchmark results are for reference only and may differ from actual performance due to system resource scheduling, caching, and other factors!" -msgstr "跑分结果仅供参考,由于系统资源调度、缓存和其他因素,可能与实际性能有所不同!" +msgid "" +"Benchmark results are for reference only and may differ from actual " +"performance due to system resource scheduling, caching, and other factors!" +msgstr "" +"跑分结果仅供参考,由于系统资源调度、缓存和其他因素,可能与实际性能有所不同!" #: src/views/toolbox/BenchmarkView.vue:96 msgid "Benchmarking in progress, it may take some time..." @@ -5832,21 +5588,21 @@ msgstr "可用" msgid "Not Mounted" msgstr "未挂载" -#: src/views/toolbox/DiskView.vue:332 -#: src/views/toolbox/DiskView.vue:828 +#: src/views/toolbox/DiskView.vue:332 src/views/toolbox/DiskView.vue:828 msgid "Filesystem" msgstr "文件系统" -#: src/views/toolbox/DiskView.vue:385 -#: src/views/toolbox/DiskView.vue:537 -#: src/views/toolbox/DiskView.vue:581 -#: src/views/toolbox/DiskView.vue:630 +#: src/views/toolbox/DiskView.vue:385 src/views/toolbox/DiskView.vue:537 +#: src/views/toolbox/DiskView.vue:581 src/views/toolbox/DiskView.vue:630 msgid "Please fill in all fields" msgstr "请填写所有字段" #: src/views/toolbox/DiskView.vue:390 -msgid "Are you sure you want to mount %{ device } to %{ path } and write to fstab for auto-mount on boot?" -msgstr "您确定要将 %{ device } 挂载到 %{ path } 并写入 fstab 以在启动时自动挂载吗?" +msgid "" +"Are you sure you want to mount %{ device } to %{ path } and write to fstab " +"for auto-mount on boot?" +msgstr "" +"您确定要将 %{ device } 挂载到 %{ path } 并写入 fstab 以在启动时自动挂载吗?" #: src/views/toolbox/DiskView.vue:397 msgid "Are you sure you want to mount %{ device } to %{ path }?" @@ -5864,22 +5620,20 @@ msgstr "您确定要卸载这个分区吗?" msgid "Unmounted successfully" msgstr "卸载成功" -#: src/views/toolbox/DiskView.vue:444 -#: src/views/toolbox/DiskView.vue:495 +#: src/views/toolbox/DiskView.vue:444 src/views/toolbox/DiskView.vue:495 msgid "Please select a device" msgstr "请选择一个设备" -#: src/views/toolbox/DiskView.vue:449 -#: src/views/toolbox/DiskView.vue:474 -#: src/views/toolbox/DiskView.vue:519 -#: src/views/toolbox/DiskView.vue:562 -#: src/views/toolbox/DiskView.vue:611 -#: src/views/toolbox/DiskView.vue:658 +#: src/views/toolbox/DiskView.vue:449 src/views/toolbox/DiskView.vue:474 +#: src/views/toolbox/DiskView.vue:519 src/views/toolbox/DiskView.vue:562 +#: src/views/toolbox/DiskView.vue:611 src/views/toolbox/DiskView.vue:658 msgid "Dangerous Operation" msgstr "危险操作" #: src/views/toolbox/DiskView.vue:450 -msgid "Formatting will erase all data on the partition. This operation is irreversible. Are you sure?" +msgid "" +"Formatting will erase all data on the partition. This operation is " +"irreversible. Are you sure?" msgstr "格式化将删除分区上的所有数据。此操作是不可逆的。您确定吗?" #: src/views/toolbox/DiskView.vue:453 @@ -5895,8 +5649,12 @@ msgid "Please enter disk name" msgstr "请输入磁盘名称" #: src/views/toolbox/DiskView.vue:475 -msgid "This will delete all partitions on %{ device } and create a single partition. All data will be permanently lost. Are you absolutely sure?" -msgstr "这将删除 %{ device } 上的所有分区并创建一个单一的分区。所有数据将永久丢失。您确定吗?" +msgid "" +"This will delete all partitions on %{ device } and create a single " +"partition. All data will be permanently lost. Are you absolutely sure?" +msgstr "" +"这将删除 %{ device } 上的所有分区并创建一个单一的分区。所有数据将永久丢失。您" +"确定吗?" #: src/views/toolbox/DiskView.vue:479 msgid "Confirm Initialize" @@ -5931,7 +5689,9 @@ msgid "Volume group created successfully" msgstr "卷组创建成功" #: src/views/toolbox/DiskView.vue:563 -msgid "Are you sure you want to remove the volume group %{ name }? All logical volumes in this group will be deleted!" +msgid "" +"Are you sure you want to remove the volume group %{ name }? All logical " +"volumes in this group will be deleted!" msgstr "您确定要删除卷组 %{ name } 吗?此组中的所有逻辑卷将被删除!" #: src/views/toolbox/DiskView.vue:571 @@ -5939,7 +5699,8 @@ msgid "Volume group removed successfully" msgstr "卷组删除成功" #: src/views/toolbox/DiskView.vue:587 -msgid "Are you sure you want to create logical volume %{ name } with %{ size }GB?" +msgid "" +"Are you sure you want to create logical volume %{ name } with %{ size }GB?" msgstr "您确定要创建逻辑卷 %{ name },大小为 %{ size }GB 吗?" #: src/views/toolbox/DiskView.vue:598 @@ -5947,7 +5708,9 @@ msgid "Logical volume created successfully" msgstr "逻辑卷创建成功" #: src/views/toolbox/DiskView.vue:612 -msgid "Are you sure you want to remove the logical volume %{ path }? All data on this volume will be lost!" +msgid "" +"Are you sure you want to remove the logical volume %{ path }? All data on " +"this volume will be lost!" msgstr "您确定要删除逻辑卷 %{ path } 吗?该卷上的所有数据将丢失!" #: src/views/toolbox/DiskView.vue:620 @@ -5963,8 +5726,11 @@ msgid "Logical volume extended successfully" msgstr "逻辑卷扩展成功" #: src/views/toolbox/DiskView.vue:659 -msgid "Are you sure you want to remove the fstab entry for %{ mountPoint }? This will prevent auto-mount on boot." -msgstr "您确定要删除 %{ mountPoint } 的 fstab 条目吗?这将阻止在启动时自动挂载。" +msgid "" +"Are you sure you want to remove the fstab entry for %{ mountPoint }? This " +"will prevent auto-mount on boot." +msgstr "" +"您确定要删除 %{ mountPoint } 的 fstab 条目吗?这将阻止在启动时自动挂载。" #: src/views/toolbox/DiskView.vue:667 msgid "Fstab entry removed successfully" @@ -6006,13 +5772,11 @@ msgstr "未找到磁盘" msgid "Mount Partition" msgstr "挂载分区" -#: src/views/toolbox/DiskView.vue:725 -#: src/views/toolbox/DiskView.vue:770 +#: src/views/toolbox/DiskView.vue:725 src/views/toolbox/DiskView.vue:770 msgid "Partition" msgstr "分区" -#: src/views/toolbox/DiskView.vue:729 -#: src/views/toolbox/DiskView.vue:774 +#: src/views/toolbox/DiskView.vue:729 src/views/toolbox/DiskView.vue:774 msgid "Select partition" msgstr "选择分区" @@ -6037,7 +5801,9 @@ msgid "Mount" msgstr "挂载" #: src/views/toolbox/DiskView.vue:758 -msgid "When enabled, the partition UUID will be written to /etc/fstab for automatic mounting on system boot." +msgid "" +"When enabled, the partition UUID will be written to /etc/fstab for automatic " +"mounting on system boot." msgstr "启用后,分区 UUID 将被写入 /etc/fstab,以便在系统启动时自动挂载。" #: src/views/toolbox/DiskView.vue:765 @@ -6048,8 +5814,7 @@ msgstr "格式化分区" msgid "Warning: Formatting will erase all data!" msgstr "警告:格式化将清除所有数据!" -#: src/views/toolbox/DiskView.vue:779 -#: src/views/toolbox/DiskView.vue:812 +#: src/views/toolbox/DiskView.vue:779 src/views/toolbox/DiskView.vue:812 msgid "Filesystem Type" msgstr "文件系统类型" @@ -6063,7 +5828,9 @@ msgid "Initialize Disk" msgstr "初始化磁盘" #: src/views/toolbox/DiskView.vue:797 -msgid "Warning: This will delete all partitions and create a single partition. All data will be lost!" +msgid "" +"Warning: This will delete all partitions and create a single partition. All " +"data will be lost!" msgstr "警告:这将删除所有分区并创建一个单分区。所有数据将丢失!" #: src/views/toolbox/DiskView.vue:807 @@ -6078,17 +5845,13 @@ msgstr "初始化" msgid "Auto-mount Configuration (fstab)" msgstr "自动挂载配置(fstab)" -#: src/views/toolbox/DiskView.vue:826 -#: src/views/toolbox/DiskView.vue:884 +#: src/views/toolbox/DiskView.vue:826 src/views/toolbox/DiskView.vue:884 msgid "Device" msgstr "设备" -#: src/views/toolbox/DiskView.vue:844 -#: src/views/toolbox/DiskView.vue:874 -#: src/views/toolbox/DiskView.vue:912 -#: src/views/toolbox/DiskView.vue:957 -#: src/views/website/EditView.vue:591 -#: src/views/website/EditView.vue:749 +#: src/views/toolbox/DiskView.vue:844 src/views/toolbox/DiskView.vue:874 +#: src/views/toolbox/DiskView.vue:912 src/views/toolbox/DiskView.vue:957 +#: src/views/website/EditView.vue:619 src/views/website/EditView.vue:779 msgid "Remove" msgstr "移除" @@ -6100,8 +5863,7 @@ msgstr "无 fstab 条目" msgid "LVM Management" msgstr "LVM 管理" -#: src/views/toolbox/DiskView.vue:863 -#: src/views/toolbox/DiskView.vue:929 +#: src/views/toolbox/DiskView.vue:863 src/views/toolbox/DiskView.vue:929 msgid "Physical Volumes" msgstr "物理卷" @@ -6297,23 +6059,19 @@ msgstr "点击扫描以检查日志" msgid "All Status" msgstr "所有状态" -#: src/views/toolbox/ProcessView.vue:49 -#: src/views/toolbox/ProcessView.vue:82 +#: src/views/toolbox/ProcessView.vue:49 src/views/toolbox/ProcessView.vue:84 msgid "Sleeping" msgstr "睡眠" -#: src/views/toolbox/ProcessView.vue:51 -#: src/views/toolbox/ProcessView.vue:86 +#: src/views/toolbox/ProcessView.vue:51 src/views/toolbox/ProcessView.vue:88 msgid "Idle" msgstr "空闲" -#: src/views/toolbox/ProcessView.vue:52 -#: src/views/toolbox/ProcessView.vue:88 +#: src/views/toolbox/ProcessView.vue:52 src/views/toolbox/ProcessView.vue:90 msgid "Zombie" msgstr "僵尸进程" -#: src/views/toolbox/ProcessView.vue:54 -#: src/views/toolbox/ProcessView.vue:92 +#: src/views/toolbox/ProcessView.vue:54 src/views/toolbox/ProcessView.vue:94 msgid "Locked" msgstr "已锁定" @@ -6353,82 +6111,84 @@ msgstr "用户信号 1(SIGUSR1)" msgid "User Signal 2 (SIGUSR2)" msgstr "用户信号 2(SIGUSR2)" -#: src/views/toolbox/ProcessView.vue:115 -#: src/views/toolbox/ProcessView.vue:383 +#: src/views/toolbox/ProcessView.vue:82 +#, fuzzy +msgid "Blocked" +msgstr "块" + +#: src/views/toolbox/ProcessView.vue:117 src/views/toolbox/ProcessView.vue:385 msgid "Parent PID" msgstr "父进程 PID" -#: src/views/toolbox/ProcessView.vue:122 -#: src/views/toolbox/ProcessView.vue:395 +#: src/views/toolbox/ProcessView.vue:124 src/views/toolbox/ProcessView.vue:397 msgid "Threads" msgstr "线程" -#: src/views/toolbox/ProcessView.vue:163 -#: src/views/toolbox/ProcessView.vue:416 +#: src/views/toolbox/ProcessView.vue:165 src/views/toolbox/ProcessView.vue:418 msgid "Start Time" msgstr "启动时间" -#: src/views/toolbox/ProcessView.vue:235 +#: src/views/toolbox/ProcessView.vue:237 msgid "Are you sure you want to send %{ signal } to process %{ pid }?" msgstr "您确定要将 %{ signal } 发送到进程 %{ pid } 吗?" -#: src/views/toolbox/ProcessView.vue:245 +#: src/views/toolbox/ProcessView.vue:247 msgid "Signal %{ signal } has been sent to process %{ pid }" msgstr "信号 %{ signal } 已发送到进程 %{ pid }" -#: src/views/toolbox/ProcessView.vue:313 +#: src/views/toolbox/ProcessView.vue:315 msgid "Search by PID or name" msgstr "按 PID 或名称搜索" -#: src/views/toolbox/ProcessView.vue:372 +#: src/views/toolbox/ProcessView.vue:374 msgid "Process Details" msgstr "进程详情" -#: src/views/toolbox/ProcessView.vue:401 +#: src/views/toolbox/ProcessView.vue:403 msgid "Memory (RSS)" msgstr "内存(RSS)" -#: src/views/toolbox/ProcessView.vue:404 +#: src/views/toolbox/ProcessView.vue:406 msgid "Virtual Memory" msgstr "虚拟内存" -#: src/views/toolbox/ProcessView.vue:407 +#: src/views/toolbox/ProcessView.vue:409 msgid "Swap" msgstr "交换(SWAP)" -#: src/views/toolbox/ProcessView.vue:410 +#: src/views/toolbox/ProcessView.vue:412 msgid "Disk Read" msgstr "磁盘读取" -#: src/views/toolbox/ProcessView.vue:413 +#: src/views/toolbox/ProcessView.vue:415 msgid "Disk Write" msgstr "磁盘写入" -#: src/views/toolbox/ProcessView.vue:419 +#: src/views/toolbox/ProcessView.vue:421 msgid "Executable Path" msgstr "可执行路径" -#: src/views/toolbox/ProcessView.vue:429 +#: src/views/toolbox/ProcessView.vue:431 msgid "Command Line" msgstr "命令行" -#: src/views/toolbox/ProcessView.vue:446 +#: src/views/toolbox/ProcessView.vue:448 msgid "No environment variables" msgstr "无环境变量" -#: src/views/toolbox/ProcessView.vue:454 +#: src/views/toolbox/ProcessView.vue:456 msgid "Open Files" msgstr "已打开文件" -#: src/views/toolbox/ProcessView.vue:462 +#: src/views/toolbox/ProcessView.vue:464 msgid "No open files" msgstr "无已打开文件" -#: src/views/toolbox/ProcessView.vue:470 +#: src/views/toolbox/ProcessView.vue:472 msgid "Network Connections" msgstr "网络连接" -#: src/views/toolbox/ProcessView.vue:483 +#: src/views/toolbox/ProcessView.vue:485 msgid "No network connections" msgstr "无网络连接" @@ -6472,8 +6232,7 @@ msgstr "请输入密码" msgid "Root password updated" msgstr "Root 密码已更新" -#: src/views/toolbox/SshView.vue:150 -#: src/views/toolbox/SshView.vue:164 +#: src/views/toolbox/SshView.vue:150 src/views/toolbox/SshView.vue:164 msgid "SSH key generated" msgstr "SSH 密钥已生成" @@ -6522,7 +6281,9 @@ msgid "Reset" msgstr "重置" #: src/views/toolbox/SshView.vue:287 -msgid "It is recommended to use a complex password. Refresh will clear the password field." +msgid "" +"It is recommended to use a complex password. Refresh will clear the password " +"field." msgstr "建议使用复杂密码。刷新页面将清除密码字段。" #: src/views/toolbox/SshView.vue:296 @@ -6542,7 +6303,9 @@ msgid "Root Private Key" msgstr "Root 私钥" #: src/views/toolbox/SshView.vue:326 -msgid "This is the private key of the root user. Keep it safe and use it to login to this server." +msgid "" +"This is the private key of the root user. Keep it safe and use it to login " +"to this server." msgstr "这是 root 用户的私钥。请妥善保管,并用它登录到此服务器。" #: src/views/toolbox/SshView.vue:336 @@ -6557,60 +6320,106 @@ msgstr "重新生成" msgid "Download Private Key" msgstr "下载私钥" -#: src/views/toolbox/SystemView.vue:92 +#: src/views/toolbox/SystemView.vue:117 +msgid "At least one NTP server is required" +msgstr "" + +#: src/views/toolbox/SystemView.vue:134 msgid "Current DNS manager: %{ manager }" msgstr "当前 DNS 管理器:%{ manager }" -#: src/views/toolbox/SystemView.vue:98 +#: src/views/toolbox/SystemView.vue:140 msgid "DNS modifications will revert to default after system restart." msgstr "DNS 修改将在系统重启后恢复为默认设置。" -#: src/views/toolbox/SystemView.vue:102 +#: src/views/toolbox/SystemView.vue:144 msgid "Enter primary DNS server" msgstr "输入主 DNS 服务器" -#: src/views/toolbox/SystemView.vue:105 +#: src/views/toolbox/SystemView.vue:147 msgid "Enter secondary DNS server" msgstr "输入辅 DNS 服务器" -#: src/views/toolbox/SystemView.vue:119 +#: src/views/toolbox/SystemView.vue:161 msgid "System total %{ total }, used %{ used }, free %{ free }" msgstr "系统总计 %{ total },已使用 %{ used },可用 %{ free }" -#: src/views/toolbox/SystemView.vue:127 +#: src/views/toolbox/SystemView.vue:169 msgid "Panel SWAP Size" msgstr "面板 SWAP 大小" -#: src/views/toolbox/SystemView.vue:144 +#: src/views/toolbox/SystemView.vue:186 msgid "Enter hostname, e.g. myserver" msgstr "输入主机名,例如 myserver" -#: src/views/toolbox/SystemView.vue:147 +#: src/views/toolbox/SystemView.vue:189 msgid "Hosts" msgstr "Hosts" -#: src/views/toolbox/SystemView.vue:159 -msgid "After manually changing the time, it may still be overwritten by system automatic time synchronization." +#: src/views/toolbox/SystemView.vue:201 +msgid "" +"After manually changing the time, it may still be overwritten by system " +"automatic time synchronization." msgstr "手动更改时间后,系统自动时间同步可能仍会覆盖设置。" -#: src/views/toolbox/SystemView.vue:165 +#: src/views/toolbox/SystemView.vue:207 msgid "Select Timezone" msgstr "选择时区" -#: src/views/toolbox/SystemView.vue:168 +#: src/views/toolbox/SystemView.vue:210 msgid "Please select a timezone" msgstr "请选择时区" -#: src/views/toolbox/SystemView.vue:172 +#: src/views/toolbox/SystemView.vue:214 msgid "Modify Time" msgstr "修改时间" -#: src/views/toolbox/SystemView.vue:181 +#: src/views/toolbox/SystemView.vue:217 +#, fuzzy +msgid "NTP Server" +msgstr "服务器" + +#: src/views/toolbox/SystemView.vue:221 +#, fuzzy +msgid "Optional, leave empty to use default servers" +msgstr "留空以使用默认路径" + +#: src/views/toolbox/SystemView.vue:225 +#, fuzzy +msgid "Configure Default Servers" +msgstr "失败时(默认重试 5 次)" + +#: src/views/toolbox/SystemView.vue:235 msgid "Synchronize Time" msgstr "同步时间" -#: src/views/toolbox/WebHookView.vue:69 -#: src/views/toolbox/WebHookView.vue:341 +#: src/views/toolbox/SystemView.vue:246 +#, fuzzy +msgid "System NTP Server Configuration" +msgstr "服务配置" + +#: src/views/toolbox/SystemView.vue:255 +msgid "" +"Unable to detect NTP service. Please ensure chrony or systemd-timesyncd is " +"installed." +msgstr "" + +#: src/views/toolbox/SystemView.vue:262 +msgid "" +"Current NTP service: %{ service }. Changes will be applied to system " +"configuration." +msgstr "" + +#: src/views/toolbox/SystemView.vue:275 +#, fuzzy +msgid "Enter NTP server address" +msgstr "请输入服务器地址" + +#: src/views/toolbox/SystemView.vue:300 +msgid "Reset to Default" +msgstr "" + +#: src/views/toolbox/WebHookView.vue:69 src/views/toolbox/WebHookView.vue:341 #: src/views/toolbox/WebHookView.vue:376 msgid "Raw Output" msgstr "原始输出" @@ -6635,38 +6444,31 @@ msgstr "您确定要删除此 Web 钩子吗?" msgid "URL copied to clipboard" msgstr "URL 已复制到剪贴板" -#: src/views/toolbox/WebHookView.vue:243 -#: src/views/toolbox/WebHookView.vue:265 +#: src/views/toolbox/WebHookView.vue:243 src/views/toolbox/WebHookView.vue:265 msgid "Please enter a name" msgstr "请输入名称" -#: src/views/toolbox/WebHookView.vue:247 -#: src/views/toolbox/WebHookView.vue:269 +#: src/views/toolbox/WebHookView.vue:247 src/views/toolbox/WebHookView.vue:269 msgid "Please enter a script" msgstr "请输入脚本" -#: src/views/toolbox/WebHookView.vue:296 -#: src/views/toolbox/WebHookView.vue:325 +#: src/views/toolbox/WebHookView.vue:296 src/views/toolbox/WebHookView.vue:325 msgid "Create WebHook" msgstr "创建 Web 钩子" -#: src/views/toolbox/WebHookView.vue:333 -#: src/views/toolbox/WebHookView.vue:368 +#: src/views/toolbox/WebHookView.vue:333 src/views/toolbox/WebHookView.vue:368 msgid "Enter WebHook name" msgstr "输入 Web 钩子名称" -#: src/views/toolbox/WebHookView.vue:338 -#: src/views/toolbox/WebHookView.vue:373 +#: src/views/toolbox/WebHookView.vue:338 src/views/toolbox/WebHookView.vue:373 msgid "User to run the script (default: root)" msgstr "运行脚本用户(默认:root)" -#: src/views/toolbox/WebHookView.vue:344 -#: src/views/toolbox/WebHookView.vue:379 +#: src/views/toolbox/WebHookView.vue:344 src/views/toolbox/WebHookView.vue:379 msgid "Return script output as raw text instead of JSON" msgstr "将脚本输出作为原始文本而非 JSON 返回" -#: src/views/toolbox/WebHookView.vue:347 -#: src/views/toolbox/WebHookView.vue:385 +#: src/views/toolbox/WebHookView.vue:347 src/views/toolbox/WebHookView.vue:385 msgid "Script" msgstr "脚本" @@ -6683,13 +6485,14 @@ msgstr "格式不正确,请检查" msgid "Website %{ name } created successfully" msgstr "网站 %{ name } 创建成功" -#: src/views/website/BulkCreateModal.vue:79 -#: src/views/website/ListView.vue:284 +#: src/views/website/BulkCreateModal.vue:79 src/views/website/ListView.vue:284 msgid "Bulk Create Website" msgstr "批量创建网站" #: src/views/website/BulkCreateModal.vue:90 -msgid "Please enter the website name, domain, port, path, and remark in the text area below, one per line." +msgid "" +"Please enter the website name, domain, port, path, and remark in the text " +"area below, one per line." msgstr "请在下面的文本区域输入网站名称、域名、端口、路径和注释,每行一个。" #: src/views/website/BulkCreateModal.vue:98 @@ -6697,15 +6500,21 @@ msgid "name|domain|port|path|remark" msgstr "名称|域名|端口|路径|备注" #: src/views/website/BulkCreateModal.vue:103 -msgid "Name: The name of the website, which will be displayed in the website list, must be unique." +msgid "" +"Name: The name of the website, which will be displayed in the website list, " +"must be unique." msgstr "名称:网站的名称,将显示在网站列表中,必须是唯一的。" #: src/views/website/BulkCreateModal.vue:110 -msgid "Domain: The domain name of the website, multiple domains can be separated by commas." +msgid "" +"Domain: The domain name of the website, multiple domains can be separated by " +"commas." msgstr "域名:网站的域名,多个域名可以用英文逗号分隔。" #: src/views/website/BulkCreateModal.vue:117 -msgid "Port: The port number of the website, multiple ports can be separated by commas." +msgid "" +"Port: The port number of the website, multiple ports can be separated by " +"commas." msgstr "端口:网站的端口号,多个端口可以用英文逗号分隔。" #: src/views/website/BulkCreateModal.vue:123 @@ -6716,36 +6525,35 @@ msgstr "路径:网站的根目录,可以为空以使用默认路径。" msgid "Remark: The remark of the website, can be empty." msgstr "备注:网站的备注,可以为空。" -#: src/views/website/CreateModal.vue:39 -#: src/views/website/EditView.vue:58 +#: src/views/website/CreateModal.vue:39 src/views/website/EditView.vue:59 msgid "Not used" msgstr "未使用" -#: src/views/website/CreateModal.vue:114 -#: src/views/website/ListView.vue:281 +#: src/views/website/CreateModal.vue:114 src/views/website/ListView.vue:281 msgid "Create Website" msgstr "创建网站" #: src/views/website/CreateModal.vue:129 -msgid "Must use English for the website name, it cannot be modified after setting" +msgid "" +"Must use English for the website name, it cannot be modified after setting" msgstr "网站名称必须使用英文,设置后将无法修改" #: src/views/website/CreateModal.vue:174 msgid "Select Database" msgstr "选择数据库" -#: src/views/website/CreateModal.vue:202 -#: src/views/website/CreateModal.vue:207 +#: src/views/website/CreateModal.vue:202 src/views/website/CreateModal.vue:207 msgid "Database User" msgstr "数据库用户" -#: src/views/website/CreateModal.vue:216 -#: src/views/website/CreateModal.vue:222 +#: src/views/website/CreateModal.vue:216 src/views/website/CreateModal.vue:222 msgid "Database Password" msgstr "数据库密码" #: src/views/website/CreateModal.vue:234 -msgid "Website root directory (if left empty, defaults to website directory/website name/public)" +msgid "" +"Website root directory (if left empty, defaults to website directory/website " +"name/public)" msgstr "网站根目录(如果留空,默认为网站目录/网站名称/public)" #: src/views/website/CreateModal.vue:246 @@ -6756,276 +6564,312 @@ msgstr "代理目标" msgid "Proxy target address (e.g., http://127.0.0.1:3000)" msgstr "代理目标地址(如:http://127.0.0.1:3000)" -#: src/views/website/CreateModal.vue:254 -#: src/views/website/CreateModal.vue:259 +#: src/views/website/CreateModal.vue:254 src/views/website/CreateModal.vue:259 #: src/views/website/ListView.vue:106 msgid "Remark" msgstr "备注" -#: src/views/website/EditView.vue:89 +#: src/views/website/EditView.vue:90 msgid "Edit Website - %{ name }" msgstr "编辑网站 - %{ name }" -#: src/views/website/EditView.vue:91 +#: src/views/website/EditView.vue:92 msgid "Edit Website" msgstr "编辑网站" -#: src/views/website/EditView.vue:130 +#: src/views/website/EditView.vue:131 msgid "Reset successfully" msgstr "重置成功" -#: src/views/website/EditView.vue:147 +#: src/views/website/EditView.vue:148 msgid "Issued successfully" msgstr "签发成功" -#: src/views/website/EditView.vue:161 +#: src/views/website/EditView.vue:162 msgid "The selected certificate is invalid" msgstr "所选证书无效" -#: src/views/website/EditView.vue:240 +#: src/views/website/EditView.vue:241 msgid "Exact Match (=)" msgstr "精确匹配 (=)" -#: src/views/website/EditView.vue:241 +#: src/views/website/EditView.vue:242 msgid "Priority Prefix Match (^~)" msgstr "优先前缀匹配 (^~)" -#: src/views/website/EditView.vue:242 +#: src/views/website/EditView.vue:243 msgid "Prefix Match" msgstr "前缀匹配" -#: src/views/website/EditView.vue:243 +#: src/views/website/EditView.vue:244 msgid "Case-sensitive Regex (~)" msgstr "区分大小写的正则匹配 (~)" -#: src/views/website/EditView.vue:244 +#: src/views/website/EditView.vue:245 msgid "Case-insensitive Regex (~*)" msgstr "不区分大小写的正则匹配 (~*)" #: src/views/website/EditView.vue:391 +#, fuzzy +msgid "This Website" +msgstr "编辑网站" + +#: src/views/website/EditView.vue:392 +msgid "Global" +msgstr "" + +#: src/views/website/EditView.vue:419 msgid "Domain & Listening" msgstr "域名和监听" -#: src/views/website/EditView.vue:401 +#: src/views/website/EditView.vue:429 msgid "Listening Address" msgstr "监听地址" -#: src/views/website/EditView.vue:436 +#: src/views/website/EditView.vue:464 msgid "Website Directory" msgstr "网站目录" -#: src/views/website/EditView.vue:439 +#: src/views/website/EditView.vue:467 msgid "Enter website directory (absolute path)" msgstr "输入网站目录(绝对路径)" -#: src/views/website/EditView.vue:442 +#: src/views/website/EditView.vue:470 msgid "Running Directory" msgstr "运行目录" -#: src/views/website/EditView.vue:446 +#: src/views/website/EditView.vue:474 msgid "Enter running directory (needed for Laravel etc.) (absolute path)" msgstr "输入运行目录(Laravel等需要)(绝对路径)" -#: src/views/website/EditView.vue:450 +#: src/views/website/EditView.vue:478 msgid "Default Document" msgstr "默认文档" -#: src/views/website/EditView.vue:463 +#: src/views/website/EditView.vue:491 msgid "Anti-cross-site Attack" msgstr "防跨站攻击" -#: src/views/website/EditView.vue:469 +#: src/views/website/EditView.vue:497 msgid "Upstreams" msgstr "上游" -#: src/views/website/EditView.vue:490 +#: src/views/website/EditView.vue:518 msgid "Upstream name" msgstr "上游名称" -#: src/views/website/EditView.vue:504 -#: src/views/website/EditView.vue:511 +#: src/views/website/EditView.vue:532 src/views/website/EditView.vue:539 msgid "Round Robin (default)" msgstr "轮询(默认)" -#: src/views/website/EditView.vue:512 +#: src/views/website/EditView.vue:540 msgid "Least Busy" msgstr "最少繁忙" -#: src/views/website/EditView.vue:513 +#: src/views/website/EditView.vue:541 msgid "By Traffic" msgstr "按流量" -#: src/views/website/EditView.vue:518 +#: src/views/website/EditView.vue:546 msgid "Keepalive Connections" msgstr "保持活动连接" -#: src/views/website/EditView.vue:556 +#: src/views/website/EditView.vue:584 msgid "Backend Servers" msgstr "后端服务器" -#: src/views/website/EditView.vue:566 +#: src/views/website/EditView.vue:594 msgid "Server address, e.g., 127.0.0.1:8080" msgstr "服务器地址,例如 127.0.0.1:8080" -#: src/views/website/EditView.vue:580 +#: src/views/website/EditView.vue:608 msgid "Options, e.g., weight=5 backup" msgstr "选项,例如 weight=5 backup" -#: src/views/website/EditView.vue:606 +#: src/views/website/EditView.vue:634 msgid "No upstreams configured" msgstr "未配置上游" -#: src/views/website/EditView.vue:615 +#: src/views/website/EditView.vue:643 msgid "Proxies" msgstr "代理" -#: src/views/website/EditView.vue:633 +#: src/views/website/EditView.vue:661 msgid "Rule" msgstr "规则" -#: src/views/website/EditView.vue:641 +#: src/views/website/EditView.vue:669 msgid "Match Type" msgstr "匹配类型" -#: src/views/website/EditView.vue:648 +#: src/views/website/EditView.vue:676 msgid "Match Expression" msgstr "匹配表达式" -#: src/views/website/EditView.vue:651 +#: src/views/website/EditView.vue:679 msgid "e.g., /, /api, ^/api/v[0-9]+/" msgstr "例如 /, /api, ^/api/v[0-9]+/" -#: src/views/website/EditView.vue:659 +#: src/views/website/EditView.vue:687 msgid "Backend address, e.g., http://127.0.0.1:8080 or http://upstream_name" msgstr "后端地址,例如 http://127.0.0.1:8080 或 http://upstream_name" -#: src/views/website/EditView.vue:666 +#: src/views/website/EditView.vue:694 msgid "Proxy Host" msgstr "代理主机名" -#: src/views/website/EditView.vue:669 -msgid "Default: $host, or extracted from Proxy Pass" +#: src/views/website/EditView.vue:698 +#, fuzzy +msgid "Default: $proxy_host, or extracted from Proxy Pass" msgstr "默认:$host 或从代理目标中提取" -#: src/views/website/EditView.vue:672 +#: src/views/website/EditView.vue:702 msgid "Proxy SNI" msgstr "代理 SNI" -#: src/views/website/EditView.vue:675 +#: src/views/website/EditView.vue:705 msgid "Optional, for HTTPS backends" msgstr "可选,用于 HTTPS 后端" -#: src/views/website/EditView.vue:678 +#: src/views/website/EditView.vue:708 msgid "Enable Cache" msgstr "启用缓存" -#: src/views/website/EditView.vue:681 +#: src/views/website/EditView.vue:711 msgid "Enable Buffering" msgstr "启用缓冲区" -#: src/views/website/EditView.vue:712 +#: src/views/website/EditView.vue:742 msgid "Response Content Replacement" msgstr "响应内容替换" -#: src/views/website/EditView.vue:722 +#: src/views/website/EditView.vue:752 msgid "Original content" msgstr "原始内容" -#: src/views/website/EditView.vue:738 +#: src/views/website/EditView.vue:768 msgid "Replacement content" msgstr "替换内容" -#: src/views/website/EditView.vue:762 +#: src/views/website/EditView.vue:792 msgid "Add Replacement Rule" msgstr "添加替换规则" -#: src/views/website/EditView.vue:772 +#: src/views/website/EditView.vue:802 msgid "No proxy rules configured" msgstr "未配置代理规则" -#: src/views/website/EditView.vue:777 +#: src/views/website/EditView.vue:807 msgid "Add Proxy Rule" msgstr "添加代理规则" -#: src/views/website/EditView.vue:784 +#: src/views/website/EditView.vue:814 msgid "Certificate Information" msgstr "证书信息" -#: src/views/website/EditView.vue:786 +#: src/views/website/EditView.vue:816 msgid "Certificate Validity" msgstr "证书有效期" -#: src/views/website/EditView.vue:800 +#: src/views/website/EditView.vue:830 msgid "Domains" msgstr "域名" -#: src/views/website/EditView.vue:815 +#: src/views/website/EditView.vue:845 msgid "Main Switch" msgstr "主开关" -#: src/views/website/EditView.vue:821 +#: src/views/website/EditView.vue:851 msgid "Use Existing Certificate" msgstr "使用现有证书" -#: src/views/website/EditView.vue:835 +#: src/views/website/EditView.vue:865 msgid "HTTP Redirect" msgstr "HTTP 重定向" -#: src/views/website/EditView.vue:838 +#: src/views/website/EditView.vue:868 msgid "OCSP Stapling" msgstr "OCSP 装订" -#: src/views/website/EditView.vue:843 +#: src/views/website/EditView.vue:873 msgid "TLS Version" msgstr "TLS 版本" -#: src/views/website/EditView.vue:855 +#: src/views/website/EditView.vue:885 msgid "Cipher Suites" msgstr "密码套件" -#: src/views/website/EditView.vue:859 +#: src/views/website/EditView.vue:889 msgid "Enter the cipher suite, leave blank to reset to default" msgstr "输入密码套件,留空以重置为默认值" -#: src/views/website/EditView.vue:883 +#: src/views/website/EditView.vue:913 msgid "Rewrite" msgstr "伪静态" -#: src/views/website/EditView.vue:886 +#: src/views/website/EditView.vue:916 msgid "Presets" msgstr "预设" -#: src/views/website/EditView.vue:898 +#: src/views/website/EditView.vue:928 +#, fuzzy +msgid "Custom Configs" +msgstr "自定义 Logo" + +#: src/views/website/EditView.vue:946 +#, fuzzy +msgid "Config" +msgstr "配置" + +#: src/views/website/EditView.vue:955 +#, fuzzy +msgid "Config name (letters, numbers, underscore, hyphen)" +msgstr "只能包含字母、数字、下划线和破折号" + +#: src/views/website/EditView.vue:963 +#, fuzzy +msgid "Content" +msgstr "脚本内容" + +#: src/views/website/EditView.vue:977 +#, fuzzy +msgid "No custom configs" +msgstr "未配置上游" + +#: src/views/website/EditView.vue:982 +#, fuzzy +msgid "Add Custom Config" +msgstr "自定义 Logo" + +#: src/views/website/EditView.vue:986 msgid "Access Log" msgstr "访问日志" -#: src/views/website/EditView.vue:902 -#: src/views/website/EditView.vue:922 +#: src/views/website/EditView.vue:990 src/views/website/EditView.vue:1002 msgid "All logs can be viewed by downloading the file" msgstr "所有日志可通过下载文件查看" -#: src/views/website/EditView.vue:904 -#: src/views/website/EditView.vue:924 +#: src/views/website/EditView.vue:992 src/views/website/EditView.vue:1004 msgid "view" msgstr "查看" -#: src/views/website/EditView.vue:909 -msgid "Clear Logs" -msgstr "清除日志" - -#: src/views/website/EditView.vue:918 +#: src/views/website/EditView.vue:998 msgid "Error Log" msgstr "错误日志" -#: src/views/website/EditView.vue:942 +#: src/views/website/EditView.vue:1021 +msgid "Clear Logs" +msgstr "清除日志" + +#: src/views/website/EditView.vue:1034 msgid "One-click Certificate Issuance" msgstr "一键签发证书" -#: src/views/website/EditView.vue:947 +#: src/views/website/EditView.vue:1039 msgid "Reset Configuration" msgstr "重置配置" -#: src/views/website/EditView.vue:950 +#: src/views/website/EditView.vue:1042 msgid "Are you sure you want to reset the configuration?" msgstr "您确定要重置配置吗?" @@ -7070,7 +6914,9 @@ msgid "Delete local database with the same name" msgstr "删除同名的本地数据库" #: src/views/website/ListView.vue:293 -msgid "This will delete the website directory but not the database with the same name. Are you sure you want to delete the selected websites?" +msgid "" +"This will delete the website directory but not the database with the same " +"name. Are you sure you want to delete the selected websites?" msgstr "这将删除网站目录,但不会删除同名的数据库。您确定要删除所选网站吗?" #: src/views/website/SettingView.vue:43 @@ -7094,11 +6940,16 @@ msgid "Default Settings" msgstr "默认设置" #: src/views/website/SettingView.vue:80 -msgid "Modifying the default TLS version and cipher suites will affect all newly created websites. Existing websites will not be affected." -msgstr "修改默认的 TLS 版本和密码套件将影响所有新创建的网站。现有网站不受影响。" +msgid "" +"Modifying the default TLS version and cipher suites will affect all newly " +"created websites. Existing websites will not be affected." +msgstr "" +"修改默认的 TLS 版本和密码套件将影响所有新创建的网站。现有网站不受影响。" #: src/views/website/SettingView.vue:87 -msgid "Please adjust the settings carefully, improper configuration may lead to website inaccessible." +msgid "" +"Please adjust the settings carefully, improper configuration may lead to " +"website inaccessible." msgstr "请小心调整设置,配置不当可能导致网站无法访问。" #: src/views/website/SettingView.vue:93 @@ -7112,4 +6963,3 @@ msgstr "默认密码套件" #: src/views/website/SettingView.vue:110 msgid "Enter the default cipher suite, leave blank to reset to default" msgstr "输入默认密码套件,留空以重置为默认值" - diff --git a/web/src/locales/zh_TW.po b/web/src/locales/zh_TW.po index 7d13fcc0..54be7598 100644 --- a/web/src/locales/zh_TW.po +++ b/web/src/locales/zh_TW.po @@ -1,5 +1,9 @@ msgid "" msgstr "" +"Project-Id-Version: acepanel\n" +"PO-Revision-Date: 2026-01-12 19:04\n" +"Language-Team: Chinese Traditional\n" +"Language: zh_TW\n" "Content-Type: text/plain; charset=UTF-8\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: acepanel\n" @@ -7,13 +11,8 @@ msgstr "" "X-Crowdin-Language: zh-TW\n" "X-Crowdin-File: frontend.pot\n" "X-Crowdin-File-ID: 1168\n" -"Project-Id-Version: acepanel\n" -"Language-Team: Chinese Traditional\n" -"Language: zh_TW\n" -"PO-Revision-Date: 2026-01-12 19:04\n" -#: src/components/common/AppFooter.vue:13 -#: src/views/home/IndexView.vue:467 +#: src/components/common/AppFooter.vue:13 src/views/home/IndexView.vue:467 msgid "AcePanel" msgstr "AcePanel" @@ -148,12 +147,9 @@ msgid "Yearly" msgstr "" #: src/components/common/CronSelector.vue:44 -#: src/views/monitor/IndexView.vue:650 -#: src/views/monitor/IndexView.vue:704 -#: src/views/monitor/IndexView.vue:756 -#: src/views/monitor/IndexView.vue:812 -#: src/views/monitor/IndexView.vue:879 -#: src/views/project/CreateModal.vue:15 +#: src/views/monitor/IndexView.vue:650 src/views/monitor/IndexView.vue:704 +#: src/views/monitor/IndexView.vue:756 src/views/monitor/IndexView.vue:812 +#: src/views/monitor/IndexView.vue:879 src/views/project/CreateModal.vue:15 msgid "Custom" msgstr "" @@ -162,14 +158,12 @@ msgid "Month %{month}" msgstr "" #: src/components/common/CronSelector.vue:170 -#: src/views/apps/nginx/NginxIndex.vue:745 -#: src/views/website/EditView.vue:345 +#: src/views/apps/nginx/NginxIndex.vue:745 src/views/website/EditView.vue:346 msgid "Minutes" msgstr "" #: src/components/common/CronSelector.vue:181 -#: src/views/apps/nginx/NginxIndex.vue:746 -#: src/views/website/EditView.vue:346 +#: src/views/apps/nginx/NginxIndex.vue:746 src/views/website/EditView.vue:347 msgid "Hours" msgstr "" @@ -227,12 +221,10 @@ msgstr "當前狀態無法保存" #: src/views/apps/codeserver/IndexView.vue:23 #: src/views/apps/docker/IndexView.vue:23 #: src/views/apps/fail2ban/IndexView.vue:160 -#: src/views/apps/frp/IndexView.vue:36 -#: src/views/apps/frp/IndexView.vue:44 +#: src/views/apps/frp/IndexView.vue:36 src/views/apps/frp/IndexView.vue:44 #: src/views/apps/gitea/IndexView.vue:21 #: src/views/apps/memcached/IndexView.vue:43 -#: src/views/apps/minio/IndexView.vue:21 -#: src/views/apps/mysql/MysqlIndex.vue:48 +#: src/views/apps/minio/IndexView.vue:21 src/views/apps/mysql/MysqlIndex.vue:48 #: src/views/apps/nginx/NginxIndex.vue:323 #: src/views/apps/nginx/NginxIndex.vue:382 #: src/views/apps/nginx/NginxIndex.vue:459 @@ -243,20 +235,15 @@ msgstr "當前狀態無法保存" #: src/views/apps/postgresql/IndexView.vue:46 #: src/views/apps/postgresql/IndexView.vue:51 #: src/views/apps/pureftpd/IndexView.vue:115 -#: src/views/apps/redis/IndexView.vue:40 -#: src/views/apps/rsync/IndexView.vue:133 +#: src/views/apps/redis/IndexView.vue:40 src/views/apps/rsync/IndexView.vue:133 #: src/views/apps/rsync/IndexView.vue:177 #: src/views/apps/supervisor/IndexView.vue:219 #: src/views/apps/supervisor/IndexView.vue:284 -#: src/views/environment/PHPView.vue:154 -#: src/views/environment/PHPView.vue:160 -#: src/views/project/EditModal.vue:157 -#: src/views/setting/IndexView.vue:55 -#: src/views/toolbox/SystemView.vue:51 -#: src/views/toolbox/SystemView.vue:57 -#: src/views/toolbox/SystemView.vue:66 -#: src/views/toolbox/SystemView.vue:75 -#: src/views/website/EditView.vue:123 +#: src/views/environment/PHPView.vue:154 src/views/environment/PHPView.vue:160 +#: src/views/project/EditModal.vue:157 src/views/setting/IndexView.vue:56 +#: src/views/toolbox/SystemView.vue:62 src/views/toolbox/SystemView.vue:68 +#: src/views/toolbox/SystemView.vue:77 src/views/toolbox/SystemView.vue:86 +#: src/views/toolbox/SystemView.vue:123 src/views/website/EditView.vue:124 msgid "Saved successfully" msgstr "儲存成功" @@ -276,30 +263,21 @@ msgstr "選擇文件" #: src/views/apps/nginx/NginxIndex.vue:232 #: src/views/apps/nginx/NginxIndex.vue:572 #: src/views/apps/nginx/NginxIndex.vue:650 -#: src/views/apps/rsync/IndexView.vue:39 -#: src/views/apps/rsync/IndexView.vue:256 +#: src/views/apps/rsync/IndexView.vue:39 src/views/apps/rsync/IndexView.vue:256 #: src/views/apps/supervisor/IndexView.vue:46 #: src/views/apps/supervisor/IndexView.vue:373 #: src/views/container/ComposeView.vue:57 -#: src/views/container/NetworkView.vue:45 -#: src/views/container/VolumeView.vue:26 +#: src/views/container/NetworkView.vue:45 src/views/container/VolumeView.vue:26 #: src/views/database/CreateServerModal.vue:55 #: src/views/database/ServerList.vue:39 -#: src/views/database/UpdateServerModal.vue:55 -#: src/views/file/ListView.vue:1187 -#: src/views/file/PropertyModal.vue:27 -#: src/views/file/ToolBar.vue:222 -#: src/views/file/ToolBar.vue:313 -#: src/views/project/ListView.vue:31 -#: src/views/ssh/CreateModal.vue:59 -#: src/views/ssh/UpdateModal.vue:65 -#: src/views/toolbox/LogView.vue:206 -#: src/views/toolbox/ProcessView.vue:107 -#: src/views/toolbox/ProcessView.vue:386 -#: src/views/toolbox/WebHookView.vue:33 -#: src/views/toolbox/WebHookView.vue:332 -#: src/views/toolbox/WebHookView.vue:367 -#: src/views/website/CreateModal.vue:123 +#: src/views/database/UpdateServerModal.vue:55 src/views/file/ListView.vue:1267 +#: src/views/file/PropertyModal.vue:27 src/views/file/ToolBar.vue:202 +#: src/views/project/ListView.vue:34 src/views/ssh/CreateModal.vue:59 +#: src/views/ssh/UpdateModal.vue:65 src/views/toolbox/LogView.vue:206 +#: src/views/toolbox/ProcessView.vue:109 src/views/toolbox/ProcessView.vue:388 +#: src/views/toolbox/WebHookView.vue:33 src/views/toolbox/WebHookView.vue:332 +#: src/views/toolbox/WebHookView.vue:367 src/views/website/CreateModal.vue:123 +#: src/views/website/EditView.vue:951 msgid "Name" msgstr "名稱" @@ -307,94 +285,75 @@ msgstr "名稱" msgid "Permissions" msgstr "權限" -#: src/components/common/PathSelector.vue:100 -#: src/views/file/ListView.vue:1198 +#: src/components/common/PathSelector.vue:100 src/views/file/ListView.vue:1278 msgid "Owner / Group" msgstr "所有者 / 群組" -#: src/components/common/PathSelector.vue:112 -#: src/views/backup/ListView.vue:42 -#: src/views/container/ImageView.vue:74 -#: src/views/file/ListView.vue:1194 -#: src/views/file/PropertyModal.vue:39 -#: src/views/file/ToolBar.vue:223 -#: src/views/toolbox/DiskView.vue:275 -#: src/views/toolbox/LogView.vue:207 +#: src/components/common/PathSelector.vue:112 src/views/backup/ListView.vue:42 +#: src/views/container/ImageView.vue:74 src/views/file/ListView.vue:1274 +#: src/views/file/PropertyModal.vue:39 src/views/file/ToolBar.vue:203 +#: src/views/toolbox/DiskView.vue:275 src/views/toolbox/LogView.vue:207 msgid "Size" msgstr "大小" -#: src/components/common/PathSelector.vue:147 -#: src/views/file/ListView.vue:1287 +#: src/components/common/PathSelector.vue:147 src/views/file/ListView.vue:1414 msgid "Calculate" msgstr "" -#: src/components/common/PathSelector.vue:152 -#: src/views/file/ListView.vue:1203 -#: src/views/file/PropertyModal.vue:51 -#: src/views/file/ToolBar.vue:224 +#: src/components/common/PathSelector.vue:152 src/views/file/ListView.vue:1283 +#: src/views/file/PropertyModal.vue:51 src/views/file/ToolBar.vue:204 msgid "Modification Time" msgstr "修改時間" -#: src/components/common/PathSelector.vue:186 -#: src/views/file/ListView.vue:1060 +#: src/components/common/PathSelector.vue:186 src/views/file/ListView.vue:1138 #: src/views/file/PathInput.vue:30 msgid "Invalid path" msgstr "無效路徑" -#: src/components/common/PathSelector.vue:246 -#: src/views/file/ListView.vue:575 -#: src/views/file/ToolBar.vue:43 -#: src/views/file/ToolBar.vue:57 +#: src/components/common/PathSelector.vue:246 src/views/file/ListView.vue:131 +#: src/views/file/ListView.vue:653 src/views/file/ToolBar.vue:37 msgid "Invalid name" msgstr "無效的名稱" #: src/components/common/PathSelector.vue:254 #: src/components/file-editor/FileTree.vue:284 -#: src/views/backup/ListView.vue:122 +#: src/views/app/TemplateDeployModal.vue:79 src/views/backup/ListView.vue:122 #: src/views/cert/CreateAccountModal.vue:52 -#: src/views/cert/CreateCertModal.vue:50 -#: src/views/cert/CreateDnsModal.vue:35 +#: src/views/cert/CreateCertModal.vue:50 src/views/cert/CreateDnsModal.vue:35 #: src/views/cert/UploadCertModal.vue:21 #: src/views/container/ComposeView.vue:269 #: src/views/container/ContainerCreate.vue:107 #: src/views/container/NetworkView.vue:183 #: src/views/container/VolumeView.vue:137 #: src/views/database/CreateDatabaseModal.vue:28 -#: src/views/database/CreateUserModal.vue:28 -#: src/views/file/ToolBar.vue:51 +#: src/views/database/CreateUserModal.vue:28 src/views/file/ListView.vue:140 #: src/views/firewall/CreateForwardModal.vue:41 -#: src/views/setting/CreateModal.vue:19 -#: src/views/setting/TokenModal.vue:125 -#: src/views/ssh/CreateModal.vue:40 -#: src/views/task/CreateModal.vue:50 +#: src/views/setting/CreateModal.vue:19 src/views/setting/TokenModal.vue:125 +#: src/views/ssh/CreateModal.vue:40 src/views/task/CreateModal.vue:50 #: src/views/toolbox/WebHookView.vue:258 msgid "Created successfully" msgstr "創建成功" #: src/components/common/PathSelector.vue:312 -#: src/views/file/PropertyModal.vue:34 -#: src/views/file/ToolBar.vue:246 +#: src/views/file/PropertyModal.vue:34 src/views/file/ToolBar.vue:226 msgid "File" msgstr "文件" -#: src/components/common/PathSelector.vue:313 -#: src/views/file/ToolBar.vue:247 +#: src/components/common/PathSelector.vue:313 src/views/file/ToolBar.vue:227 msgid "Folder" msgstr "文件夾" #: src/components/common/PathSelector.vue:317 #: src/components/common/PathSelector.vue:380 #: src/views/container/ContainerCreate.vue:539 -#: src/views/project/CreateModal.vue:215 -#: src/views/setting/TokenModal.vue:266 +#: src/views/project/CreateModal.vue:219 src/views/setting/TokenModal.vue:266 #: src/views/toolbox/WebHookView.vue:352 #: src/views/website/BulkCreateModal.vue:129 #: src/views/website/CreateModal.vue:264 msgid "Create" msgstr "創建" -#: src/components/common/PathSelector.vue:326 -#: src/views/file/PathInput.vue:146 +#: src/components/common/PathSelector.vue:326 src/views/file/PathInput.vue:146 msgid "Root Directory" msgstr "根目錄" @@ -404,19 +363,13 @@ msgstr "根目錄" #: src/views/apps/nginx/NginxIndex.vue:755 #: src/views/apps/pureftpd/IndexView.vue:242 #: src/views/apps/pureftpd/IndexView.vue:264 -#: src/views/apps/rsync/IndexView.vue:305 -#: src/views/apps/s3fs/IndexView.vue:181 +#: src/views/apps/rsync/IndexView.vue:305 src/views/apps/s3fs/IndexView.vue:181 #: src/views/apps/supervisor/IndexView.vue:409 -#: src/views/backup/ListView.vue:256 -#: src/views/backup/ListView.vue:280 -#: src/views/cert/AccountView.vue:268 -#: src/views/cert/CertView.vue:524 -#: src/views/cert/CertView.vue:548 -#: src/views/cert/CreateAccountModal.vue:125 -#: src/views/cert/CreateCertModal.vue:115 -#: src/views/cert/CreateDnsModal.vue:173 -#: src/views/cert/DnsView.vue:310 -#: src/views/cert/ObtainModal.vue:130 +#: src/views/backup/ListView.vue:256 src/views/backup/ListView.vue:280 +#: src/views/cert/AccountView.vue:268 src/views/cert/CertView.vue:524 +#: src/views/cert/CertView.vue:548 src/views/cert/CreateAccountModal.vue:125 +#: src/views/cert/CreateCertModal.vue:115 src/views/cert/CreateDnsModal.vue:173 +#: src/views/cert/DnsView.vue:310 src/views/cert/ObtainModal.vue:130 #: src/views/cert/UploadCertModal.vue:55 #: src/views/container/ComposeView.vue:377 #: src/views/container/ComposeView.vue:403 @@ -428,17 +381,12 @@ msgstr "根目錄" #: src/views/database/CreateServerModal.vue:120 #: src/views/database/CreateUserModal.vue:125 #: src/views/database/UpdateServerModal.vue:112 -#: src/views/database/UpdateUserModal.vue:79 -#: src/views/file/ToolBar.vue:317 -#: src/views/file/ToolBar.vue:338 +#: src/views/database/UpdateUserModal.vue:79 src/views/file/ToolBar.vue:300 #: src/views/firewall/CreateForwardModal.vue:88 #: src/views/firewall/CreateIpModal.vue:121 -#: src/views/firewall/CreateModal.vue:155 -#: src/views/setting/CreateModal.vue:64 -#: src/views/setting/PasswordModal.vue:44 -#: src/views/setting/TwoFaModal.vue:87 -#: src/views/ssh/CreateModal.vue:109 -#: src/views/ssh/UpdateModal.vue:115 +#: src/views/firewall/CreateModal.vue:155 src/views/setting/CreateModal.vue:64 +#: src/views/setting/PasswordModal.vue:44 src/views/setting/TwoFaModal.vue:87 +#: src/views/ssh/CreateModal.vue:109 src/views/ssh/UpdateModal.vue:115 #: src/views/task/CreateModal.vue:157 msgid "Submit" msgstr "提交" @@ -468,31 +416,23 @@ msgstr "" #: src/components/common/PtyTerminalModal.vue:195 #: src/components/common/PtyTerminalModal.vue:199 #: src/layout/header/components/UserAvatar.vue:29 -#: src/views/home/UpdateView.vue:26 -#: src/views/monitor/IndexView.vue:600 -#: src/views/toolbox/DiskView.vue:403 -#: src/views/toolbox/DiskView.vue:405 -#: src/views/toolbox/DiskView.vue:428 -#: src/views/toolbox/DiskView.vue:430 -#: src/views/toolbox/DiskView.vue:500 -#: src/views/toolbox/DiskView.vue:504 -#: src/views/toolbox/DiskView.vue:523 -#: src/views/toolbox/DiskView.vue:542 -#: src/views/toolbox/DiskView.vue:546 -#: src/views/toolbox/DiskView.vue:567 -#: src/views/toolbox/DiskView.vue:586 -#: src/views/toolbox/DiskView.vue:594 -#: src/views/toolbox/DiskView.vue:616 -#: src/views/toolbox/DiskView.vue:635 -#: src/views/toolbox/DiskView.vue:640 -#: src/views/toolbox/DiskView.vue:663 -#: src/views/toolbox/ProcessView.vue:234 -#: src/views/toolbox/ProcessView.vue:239 +#: src/views/home/UpdateView.vue:26 src/views/monitor/IndexView.vue:600 +#: src/views/toolbox/DiskView.vue:403 src/views/toolbox/DiskView.vue:405 +#: src/views/toolbox/DiskView.vue:428 src/views/toolbox/DiskView.vue:430 +#: src/views/toolbox/DiskView.vue:500 src/views/toolbox/DiskView.vue:504 +#: src/views/toolbox/DiskView.vue:523 src/views/toolbox/DiskView.vue:542 +#: src/views/toolbox/DiskView.vue:546 src/views/toolbox/DiskView.vue:567 +#: src/views/toolbox/DiskView.vue:586 src/views/toolbox/DiskView.vue:594 +#: src/views/toolbox/DiskView.vue:616 src/views/toolbox/DiskView.vue:635 +#: src/views/toolbox/DiskView.vue:640 src/views/toolbox/DiskView.vue:663 +#: src/views/toolbox/ProcessView.vue:236 src/views/toolbox/ProcessView.vue:241 msgid "Confirm" msgstr "確認" #: src/components/common/PtyTerminalModal.vue:196 -msgid "Command may still running. Closing the window will terminate the command. Are you sure?" +msgid "" +"Command may still running. Closing the window will terminate the command. " +"Are you sure?" msgstr "" #: src/components/common/PtyTerminalModal.vue:200 @@ -500,88 +440,70 @@ msgstr "" #: src/components/file-editor/EditorToolbar.vue:101 #: src/components/file-editor/FileTree.vue:603 #: src/layout/header/components/UserAvatar.vue:30 +#: src/views/app/TemplateDeployModal.vue:227 #: src/views/container/ContainerCreate.vue:536 #: src/views/container/ImagePullModal.vue:184 #: src/views/container/ImagePullModal.vue:198 -#: src/views/container/ImageView.vue:351 -#: src/views/container/ImageView.vue:366 -#: src/views/file/ListView.vue:166 -#: src/views/file/ListView.vue:588 -#: src/views/file/ListView.vue:712 -#: src/views/file/ToolBar.vue:145 -#: src/views/file/ToolBar.vue:280 -#: src/views/home/UpdateView.vue:27 -#: src/views/project/EditModal.vue:572 -#: src/views/toolbox/DiskView.vue:406 -#: src/views/toolbox/DiskView.vue:431 -#: src/views/toolbox/DiskView.vue:454 -#: src/views/toolbox/DiskView.vue:480 -#: src/views/toolbox/DiskView.vue:505 -#: src/views/toolbox/DiskView.vue:524 -#: src/views/toolbox/DiskView.vue:547 -#: src/views/toolbox/DiskView.vue:568 -#: src/views/toolbox/DiskView.vue:595 -#: src/views/toolbox/DiskView.vue:617 -#: src/views/toolbox/DiskView.vue:641 -#: src/views/toolbox/DiskView.vue:664 -#: src/views/toolbox/ProcessView.vue:240 +#: src/views/container/ImageView.vue:351 src/views/container/ImageView.vue:366 +#: src/views/file/ListView.vue:244 src/views/file/ListView.vue:666 +#: src/views/file/ListView.vue:790 src/views/file/ToolBar.vue:125 +#: src/views/file/ToolBar.vue:260 src/views/home/UpdateView.vue:27 +#: src/views/project/EditModal.vue:572 src/views/toolbox/DiskView.vue:406 +#: src/views/toolbox/DiskView.vue:431 src/views/toolbox/DiskView.vue:454 +#: src/views/toolbox/DiskView.vue:480 src/views/toolbox/DiskView.vue:505 +#: src/views/toolbox/DiskView.vue:524 src/views/toolbox/DiskView.vue:547 +#: src/views/toolbox/DiskView.vue:568 src/views/toolbox/DiskView.vue:595 +#: src/views/toolbox/DiskView.vue:617 src/views/toolbox/DiskView.vue:641 +#: src/views/toolbox/DiskView.vue:664 src/views/toolbox/ProcessView.vue:242 msgid "Cancel" msgstr "取消" -#: src/components/common/PtyTerminalModal.vue:252 -#: src/locales/menu.ts:19 +#: src/components/common/PtyTerminalModal.vue:252 src/locales/menu.ts:19 #: src/views/container/ContainerView.vue:124 -#: src/views/container/ContainerView.vue:637 -#: src/views/file/ListView.vue:230 -#: src/views/file/ListView.vue:829 -#: src/views/file/ToolBar.vue:255 +#: src/views/container/ContainerView.vue:637 src/views/file/ListView.vue:308 +#: src/views/file/ListView.vue:907 src/views/file/ToolBar.vue:235 msgid "Terminal" msgstr "終端機" -#: src/components/common/RealtimeLog.vue:29 +#: src/components/common/RealtimeLog.vue:34 msgid "Path or service cannot be empty" msgstr "路徑或服務不能為空" -#: src/components/common/RealtimeLog.vue:44 -#: src/components/common/RealtimeLogModal.vue:33 +#: src/components/common/RealtimeLog.vue:49 +#: src/components/common/RealtimeLogModal.vue:38 msgid "Failed to get log stream" msgstr "獲取日誌流失敗" -#: src/components/common/RealtimeLogModal.vue:67 -#: src/locales/menu.ts:15 +#: src/components/common/RealtimeLog.vue:91 +#: src/components/common/RealtimeLogModal.vue:81 +#, fuzzy +msgid "No logs available" +msgstr "可用 Inodes" + +#: src/components/common/RealtimeLogModal.vue:72 src/locales/menu.ts:15 #: src/views/apps/supervisor/IndexView.vue:89 #: src/views/container/ContainerView.vue:137 -#: src/views/container/ContainerView.vue:605 -#: src/views/project/ListView.vue:95 -#: src/views/project/ListView.vue:233 -#: src/views/task/CronView.vue:116 +#: src/views/container/ContainerView.vue:605 src/views/project/ListView.vue:111 +#: src/views/project/ListView.vue:249 src/views/task/CronView.vue:116 #: src/views/task/TaskView.vue:74 msgid "Logs" msgstr "日誌" -#: src/components/common/ServiceStatus.vue:25 -#: src/views/home/IndexView.vue:770 -#: src/views/home/IndexView.vue:778 -#: src/views/home/IndexView.vue:785 -#: src/views/home/IndexView.vue:791 -#: src/views/home/IndexView.vue:802 +#: src/components/common/ServiceStatus.vue:25 src/views/home/IndexView.vue:770 +#: src/views/home/IndexView.vue:778 src/views/home/IndexView.vue:785 +#: src/views/home/IndexView.vue:791 src/views/home/IndexView.vue:802 #: src/views/home/IndexView.vue:814 msgid "Loading..." msgstr "載入中……" -#: src/components/common/ServiceStatus.vue:26 -#: src/views/project/ListView.vue:60 -#: src/views/task/TaskView.vue:33 -#: src/views/toolbox/ProcessView.vue:48 -#: src/views/toolbox/ProcessView.vue:80 -#: src/views/website/ListView.vue:28 +#: src/components/common/ServiceStatus.vue:26 src/views/project/ListView.vue:63 +#: src/views/task/TaskView.vue:33 src/views/toolbox/ProcessView.vue:48 +#: src/views/toolbox/ProcessView.vue:80 src/views/website/ListView.vue:28 msgid "Running" msgstr "運行中" -#: src/components/common/ServiceStatus.vue:26 -#: src/views/project/ListView.vue:60 -#: src/views/toolbox/ProcessView.vue:50 -#: src/views/toolbox/ProcessView.vue:84 +#: src/components/common/ServiceStatus.vue:26 src/views/project/ListView.vue:63 +#: src/views/toolbox/ProcessView.vue:50 src/views/toolbox/ProcessView.vue:86 msgid "Stopped" msgstr "已停止" @@ -591,8 +513,7 @@ msgstr "正在啟動……" #: src/components/common/ServiceStatus.vue:48 #: src/views/apps/supervisor/IndexView.vue:240 -#: src/views/project/ListView.vue:152 -#: src/views/website/ListView.vue:228 +#: src/views/project/ListView.vue:168 src/views/website/ListView.vue:228 msgid "Started successfully" msgstr "啟動成功" @@ -603,8 +524,7 @@ msgstr "停止中..." #: src/components/common/ServiceStatus.vue:63 #: src/views/apps/supervisor/IndexView.vue:247 -#: src/views/project/ListView.vue:147 -#: src/views/website/ListView.vue:230 +#: src/views/project/ListView.vue:163 src/views/website/ListView.vue:230 msgid "Stopped successfully" msgstr "停止成功" @@ -644,14 +564,12 @@ msgstr "自啟動已成功禁用" #: src/views/apps/fail2ban/IndexView.vue:228 #: src/views/apps/gitea/IndexView.vue:29 #: src/views/apps/memcached/IndexView.vue:51 -#: src/views/apps/minio/IndexView.vue:29 -#: src/views/apps/mysql/MysqlIndex.vue:80 +#: src/views/apps/minio/IndexView.vue:29 src/views/apps/mysql/MysqlIndex.vue:80 #: src/views/apps/nginx/NginxIndex.vue:476 #: src/views/apps/podman/IndexView.vue:39 #: src/views/apps/postgresql/IndexView.vue:63 #: src/views/apps/pureftpd/IndexView.vue:158 -#: src/views/apps/redis/IndexView.vue:48 -#: src/views/apps/rsync/IndexView.vue:191 +#: src/views/apps/redis/IndexView.vue:48 src/views/apps/rsync/IndexView.vue:191 #: src/views/apps/supervisor/IndexView.vue:298 #: src/views/container/ContainerView.vue:102 #: src/views/environment/PHPView.vue:192 @@ -670,8 +588,7 @@ msgstr "自動啟動關閉" #: src/views/apps/supervisor/IndexView.vue:115 #: src/views/container/ComposeView.vue:173 #: src/views/container/ContainerView.vue:161 -#: src/views/container/ContainerView.vue:558 -#: src/views/project/ListView.vue:85 +#: src/views/container/ContainerView.vue:558 src/views/project/ListView.vue:101 msgid "Start" msgstr "開始" @@ -679,8 +596,7 @@ msgstr "開始" #: src/views/apps/supervisor/IndexView.vue:140 #: src/views/container/ComposeView.vue:212 #: src/views/container/ContainerView.vue:166 -#: src/views/container/ContainerView.vue:561 -#: src/views/project/ListView.vue:85 +#: src/views/container/ContainerView.vue:561 src/views/project/ListView.vue:101 msgid "Stop" msgstr "停止" @@ -691,8 +607,7 @@ msgstr "您確定要停止 %{ service } 嗎?" #: src/components/common/ServiceStatus.vue:162 #: src/views/apps/supervisor/IndexView.vue:168 #: src/views/container/ContainerView.vue:171 -#: src/views/container/ContainerView.vue:564 -#: src/views/home/IndexView.vue:475 +#: src/views/container/ContainerView.vue:564 src/views/home/IndexView.vue:475 msgid "Restart" msgstr "重啟" @@ -753,7 +668,7 @@ msgid "Encoding" msgstr "編碼" #: src/components/file-editor/EditorStatusBar.vue:144 -#: src/views/setting/SettingBase.vue:104 +#: src/views/setting/SettingBase.vue:117 msgid "Language" msgstr "語言" @@ -786,10 +701,8 @@ msgstr "" #: src/components/file-editor/EditorToolbar.vue:200 #: src/components/file-editor/EditorToolbar.vue:205 #: src/components/file-editor/FileTree.vue:695 -#: src/views/log/DatabaseLog.vue:108 -#: src/views/log/HttpLog.vue:133 -#: src/views/log/OperationLog.vue:106 -#: src/views/toolbox/ProcessView.vue:327 +#: src/views/log/DatabaseLog.vue:108 src/views/log/HttpLog.vue:133 +#: src/views/log/OperationLog.vue:106 src/views/toolbox/ProcessView.vue:329 msgid "Refresh" msgstr "重新整理" @@ -804,12 +717,9 @@ msgstr "" #: src/components/file-editor/EditorToolbar.vue:184 #: src/views/apps/apache/IndexView.vue:72 #: src/views/apps/codeserver/IndexView.vue:46 -#: src/views/apps/docker/IndexView.vue:42 -#: src/views/apps/frp/IndexView.vue:63 -#: src/views/apps/frp/IndexView.vue:78 -#: src/views/apps/frp/IndexView.vue:91 -#: src/views/apps/frp/IndexView.vue:106 -#: src/views/apps/gitea/IndexView.vue:44 +#: src/views/apps/docker/IndexView.vue:42 src/views/apps/frp/IndexView.vue:63 +#: src/views/apps/frp/IndexView.vue:78 src/views/apps/frp/IndexView.vue:91 +#: src/views/apps/frp/IndexView.vue:106 src/views/apps/gitea/IndexView.vue:44 #: src/views/apps/memcached/IndexView.vue:59 #: src/views/apps/minio/IndexView.vue:44 #: src/views/apps/mysql/MysqlIndex.vue:111 @@ -821,21 +731,15 @@ msgstr "" #: src/views/apps/postgresql/IndexView.vue:78 #: src/views/apps/postgresql/IndexView.vue:95 #: src/views/apps/pureftpd/IndexView.vue:165 -#: src/views/apps/redis/IndexView.vue:63 -#: src/views/apps/rsync/IndexView.vue:235 +#: src/views/apps/redis/IndexView.vue:63 src/views/apps/rsync/IndexView.vue:235 #: src/views/apps/supervisor/IndexView.vue:342 -#: src/views/environment/PHPView.vue:232 -#: src/views/environment/PHPView.vue:250 -#: src/views/project/EditModal.vue:575 -#: src/views/setting/IndexView.vue:106 -#: src/views/task/CronView.vue:259 -#: src/views/toolbox/SshView.vue:239 -#: src/views/toolbox/SystemView.vue:110 -#: src/views/toolbox/SystemView.vue:134 -#: src/views/toolbox/SystemView.vue:152 -#: src/views/toolbox/SystemView.vue:178 -#: src/views/toolbox/WebHookView.vue:390 -#: src/views/website/EditView.vue:932 +#: src/views/environment/PHPView.vue:232 src/views/environment/PHPView.vue:250 +#: src/views/project/EditModal.vue:575 src/views/setting/IndexView.vue:107 +#: src/views/task/CronView.vue:259 src/views/toolbox/SshView.vue:239 +#: src/views/toolbox/SystemView.vue:152 src/views/toolbox/SystemView.vue:176 +#: src/views/toolbox/SystemView.vue:194 src/views/toolbox/SystemView.vue:232 +#: src/views/toolbox/SystemView.vue:304 src/views/toolbox/WebHookView.vue:390 +#: src/views/website/EditView.vue:1016 msgid "Save" msgstr "儲存" @@ -881,8 +785,7 @@ msgid "Toggle Minimap" msgstr "" #: src/components/file-editor/EditorToolbar.vue:291 -#: src/views/firewall/IndexView.vue:23 -#: src/views/website/IndexView.vue:24 +#: src/views/firewall/IndexView.vue:23 src/views/website/IndexView.vue:24 msgid "Settings" msgstr "設置" @@ -891,7 +794,7 @@ msgid "Editor Settings" msgstr "" #: src/components/file-editor/FileEditorView.vue:145 -#: src/views/setting/IndexView.vue:90 +#: src/views/setting/IndexView.vue:91 msgid "Basic" msgstr "基本" @@ -954,19 +857,13 @@ msgid "Render Whitespace" msgstr "" #: src/components/file-editor/FileEditorView.vue:207 -#: src/views/cert/CertView.vue:69 -#: src/views/cert/CertView.vue:123 -#: src/views/cert/CertView.vue:134 -#: src/views/cert/CertView.vue:152 +#: src/views/cert/CertView.vue:69 src/views/cert/CertView.vue:123 +#: src/views/cert/CertView.vue:134 src/views/cert/CertView.vue:152 #: src/views/container/ContainerCreate.vue:51 -#: src/views/database/ServerList.vue:51 -#: src/views/database/ServerList.vue:66 -#: src/views/database/UserList.vue:45 -#: src/views/database/UserList.vue:85 -#: src/views/firewall/ForwardView.vue:25 -#: src/views/firewall/IpRuleView.vue:25 -#: src/views/firewall/IpRuleView.vue:42 -#: src/views/firewall/RuleView.vue:25 +#: src/views/database/ServerList.vue:51 src/views/database/ServerList.vue:66 +#: src/views/database/UserList.vue:45 src/views/database/UserList.vue:85 +#: src/views/firewall/ForwardView.vue:25 src/views/firewall/IpRuleView.vue:25 +#: src/views/firewall/IpRuleView.vue:42 src/views/firewall/RuleView.vue:25 #: src/views/firewall/RuleView.vue:42 msgid "None" msgstr "無" @@ -984,9 +881,8 @@ msgid "Trailing" msgstr "" #: src/components/file-editor/FileEditorView.vue:211 -#: src/views/app/AppView.vue:229 -#: src/views/app/EnvironmentView.vue:217 -#: src/views/firewall/RuleView.vue:150 +#: src/views/app/AppView.vue:229 src/views/app/EnvironmentView.vue:217 +#: src/views/app/TemplateView.vue:59 src/views/firewall/RuleView.vue:150 #: src/views/project/IndexView.vue:21 msgid "All" msgstr "全部" @@ -1079,8 +975,7 @@ msgstr "" msgid "Format On Type" msgstr "" -#: src/components/file-editor/FileTree.vue:154 -#: src/views/file/EditModal.vue:50 +#: src/components/file-editor/FileTree.vue:154 src/views/file/EditModal.vue:50 msgid "Failed to load file" msgstr "" @@ -1088,19 +983,20 @@ msgstr "" msgid "Failed to create" msgstr "" -#: src/components/file-editor/FileTree.vue:378 +#: src/components/file-editor/FileTree.vue:378 src/views/file/ListView.vue:1304 +#: src/views/file/ListView.vue:1322 msgid "Folder name" msgstr "" -#: src/components/file-editor/FileTree.vue:378 +#: src/components/file-editor/FileTree.vue:378 src/views/file/ListView.vue:1304 +#: src/views/file/ListView.vue:1322 msgid "File name" msgstr "" #: src/components/file-editor/FileTree.vue:477 #: src/views/container/ContainerView.vue:153 -#: src/views/container/ContainerView.vue:616 -#: src/views/file/ListView.vue:228 -#: src/views/file/ListView.vue:1350 +#: src/views/container/ContainerView.vue:616 src/views/file/ListView.vue:306 +#: src/views/file/ListView.vue:1477 msgid "Rename" msgstr "重新命名" @@ -1113,49 +1009,32 @@ msgstr "重新命名" #: src/views/apps/nginx/NginxIndex.vue:709 #: src/views/apps/pureftpd/IndexView.vue:88 #: src/views/apps/rsync/IndexView.vue:105 -#: src/views/apps/supervisor/IndexView.vue:195 -#: src/views/backup/ListView.vue:96 -#: src/views/cert/AccountView.vue:127 -#: src/views/cert/CertView.vue:303 -#: src/views/cert/DnsView.vue:111 -#: src/views/container/ComposeView.vue:243 +#: src/views/apps/supervisor/IndexView.vue:195 src/views/backup/ListView.vue:96 +#: src/views/cert/AccountView.vue:127 src/views/cert/CertView.vue:303 +#: src/views/cert/DnsView.vue:111 src/views/container/ComposeView.vue:243 #: src/views/container/ComposeView.vue:323 #: src/views/container/ContainerView.vue:191 #: src/views/container/ContainerView.vue:576 -#: src/views/container/ImageView.vue:115 -#: src/views/container/ImageView.vue:275 +#: src/views/container/ImageView.vue:115 src/views/container/ImageView.vue:275 #: src/views/container/NetworkView.vue:134 #: src/views/container/NetworkView.vue:208 -#: src/views/container/VolumeView.vue:88 -#: src/views/container/VolumeView.vue:162 +#: src/views/container/VolumeView.vue:88 src/views/container/VolumeView.vue:162 #: src/views/database/DatabaseList.vue:101 -#: src/views/database/ServerList.vue:214 -#: src/views/database/UserList.vue:189 -#: src/views/environment/PHPView.vue:106 -#: src/views/file/ListView.vue:185 -#: src/views/file/ListView.vue:235 -#: src/views/file/ListView.vue:1355 -#: src/views/file/ToolBar.vue:293 -#: src/views/firewall/ForwardView.vue:103 -#: src/views/firewall/IpRuleView.vue:145 -#: src/views/firewall/RuleView.vue:182 -#: src/views/project/ListView.vue:124 -#: src/views/project/ListView.vue:202 -#: src/views/setting/SettingUser.vue:139 -#: src/views/setting/TokenModal.vue:91 -#: src/views/ssh/IndexView.vue:91 -#: src/views/task/CronView.vue:149 -#: src/views/task/TaskView.vue:97 -#: src/views/toolbox/WebHookView.vue:179 -#: src/views/website/ListView.vue:195 -#: src/views/website/ListView.vue:289 +#: src/views/database/ServerList.vue:214 src/views/database/UserList.vue:189 +#: src/views/environment/PHPView.vue:106 src/views/file/ListView.vue:263 +#: src/views/file/ListView.vue:313 src/views/file/ListView.vue:1482 +#: src/views/file/ToolBar.vue:273 src/views/firewall/ForwardView.vue:103 +#: src/views/firewall/IpRuleView.vue:145 src/views/firewall/RuleView.vue:182 +#: src/views/project/ListView.vue:140 src/views/project/ListView.vue:218 +#: src/views/setting/SettingUser.vue:139 src/views/setting/TokenModal.vue:91 +#: src/views/ssh/IndexView.vue:91 src/views/task/CronView.vue:149 +#: src/views/task/TaskView.vue:97 src/views/toolbox/WebHookView.vue:179 +#: src/views/website/ListView.vue:195 src/views/website/ListView.vue:289 msgid "Delete" msgstr "刪除" -#: src/components/file-editor/FileTree.vue:481 -#: src/views/file/ListView.vue:219 -#: src/views/file/ListView.vue:1345 -#: src/views/monitor/IndexView.vue:498 +#: src/components/file-editor/FileTree.vue:481 src/views/file/ListView.vue:297 +#: src/views/file/ListView.vue:1472 src/views/monitor/IndexView.vue:498 #: src/views/toolbox/SshView.vue:301 msgid "Download" msgstr "下載" @@ -1170,8 +1049,7 @@ msgstr "" #: src/components/file-editor/FileTree.vue:601 #: src/views/apps/nginx/NginxIndex.vue:207 -#: src/views/apps/nginx/NginxIndex.vue:283 -#: src/views/file/ListView.vue:1358 +#: src/views/apps/nginx/NginxIndex.vue:283 src/views/file/ListView.vue:1485 msgid "Are you sure you want to delete %{ name }?" msgstr "您確定要刪除 %{ name } 嗎?" @@ -1180,34 +1058,22 @@ msgstr "您確定要刪除 %{ name } 嗎?" #: src/views/apps/nginx/NginxIndex.vue:390 #: src/views/apps/nginx/NginxIndex.vue:467 #: src/views/apps/pureftpd/IndexView.vue:145 -#: src/views/apps/rsync/IndexView.vue:158 -#: src/views/apps/s3fs/IndexView.vue:89 +#: src/views/apps/rsync/IndexView.vue:158 src/views/apps/s3fs/IndexView.vue:89 #: src/views/apps/supervisor/IndexView.vue:261 -#: src/views/backup/ListView.vue:145 -#: src/views/container/ImageView.vue:156 +#: src/views/backup/ListView.vue:145 src/views/container/ImageView.vue:156 #: src/views/container/NetworkView.vue:175 #: src/views/container/VolumeView.vue:129 #: src/views/database/DatabaseList.vue:125 -#: src/views/database/ServerList.vue:238 -#: src/views/database/UserList.vue:213 -#: src/views/file/ListView.vue:643 -#: src/views/file/ListView.vue:663 -#: src/views/file/ToolBar.vue:190 -#: src/views/firewall/ForwardView.vue:129 -#: src/views/firewall/ForwardView.vue:147 -#: src/views/firewall/IpRuleView.vue:171 -#: src/views/firewall/IpRuleView.vue:189 -#: src/views/firewall/RuleView.vue:208 -#: src/views/firewall/RuleView.vue:226 -#: src/views/project/ListView.vue:170 -#: src/views/project/ListView.vue:180 -#: src/views/setting/SettingUser.vue:174 -#: src/views/setting/TokenModal.vue:114 -#: src/views/task/CronView.vue:191 -#: src/views/task/TaskView.vue:122 -#: src/views/toolbox/WebHookView.vue:236 -#: src/views/website/ListView.vue:254 -#: src/views/website/ListView.vue:264 +#: src/views/database/ServerList.vue:238 src/views/database/UserList.vue:213 +#: src/views/file/ListView.vue:721 src/views/file/ListView.vue:741 +#: src/views/file/ToolBar.vue:170 src/views/firewall/ForwardView.vue:129 +#: src/views/firewall/ForwardView.vue:147 src/views/firewall/IpRuleView.vue:171 +#: src/views/firewall/IpRuleView.vue:189 src/views/firewall/RuleView.vue:208 +#: src/views/firewall/RuleView.vue:226 src/views/project/ListView.vue:186 +#: src/views/project/ListView.vue:196 src/views/setting/SettingUser.vue:174 +#: src/views/setting/TokenModal.vue:114 src/views/task/CronView.vue:191 +#: src/views/task/TaskView.vue:122 src/views/toolbox/WebHookView.vue:236 +#: src/views/website/ListView.vue:254 src/views/website/ListView.vue:264 msgid "Deleted successfully" msgstr "刪除成功" @@ -1227,9 +1093,7 @@ msgstr "" msgid "New Folder" msgstr "" -#: src/components/file-editor/FileTree.vue:707 -#: src/views/file/ToolBar.vue:251 -#: src/views/file/ToolBar.vue:305 +#: src/components/file-editor/FileTree.vue:707 src/views/file/ToolBar.vue:231 msgid "New" msgstr "新建" @@ -1273,8 +1137,7 @@ msgstr "切換主題" #: src/layout/header/components/UserAvatar.vue:13 #: src/views/apps/pureftpd/IndexView.vue:65 #: src/views/apps/pureftpd/IndexView.vue:249 -#: src/views/setting/PasswordModal.vue:26 -#: src/views/setting/SettingUser.vue:117 +#: src/views/setting/PasswordModal.vue:26 src/views/setting/SettingUser.vue:117 msgid "Change Password" msgstr "更改密碼" @@ -1294,12 +1157,9 @@ msgstr "提示" msgid "Logged out successfully!" msgstr "成功登出!" -#: src/layout/header/components/UserAvatar.vue:48 -#: src/views/cert/DnsView.vue:56 -#: src/views/firewall/IpRuleView.vue:76 -#: src/views/firewall/IpRuleView.vue:101 -#: src/views/firewall/RuleView.vue:110 -#: src/views/firewall/RuleView.vue:135 +#: src/layout/header/components/UserAvatar.vue:48 src/views/cert/DnsView.vue:56 +#: src/views/firewall/IpRuleView.vue:76 src/views/firewall/IpRuleView.vue:101 +#: src/views/firewall/RuleView.vue:110 src/views/firewall/RuleView.vue:135 #: src/views/toolbox/DiskView.vue:172 msgid "Unknown" msgstr "未知" @@ -1328,13 +1188,10 @@ msgstr "應用程式" msgid "Backup" msgstr "備份" -#: src/locales/menu.ts:9 -#: src/views/cert/CertView.vue:486 -#: src/views/cert/CertView.vue:563 -#: src/views/cert/IndexView.vue:96 -#: src/views/cert/UploadCertModal.vue:38 -#: src/views/setting/SettingSafe.vue:290 -#: src/views/website/EditView.vue:863 +#: src/locales/menu.ts:9 src/views/cert/CertView.vue:486 +#: src/views/cert/CertView.vue:563 src/views/cert/IndexView.vue:96 +#: src/views/cert/UploadCertModal.vue:38 src/views/setting/SettingSafe.vue:290 +#: src/views/website/EditView.vue:893 msgid "Certificate" msgstr "證書" @@ -1342,10 +1199,8 @@ msgstr "證書" msgid "Container" msgstr "容器" -#: src/locales/menu.ts:11 -#: src/views/backup/ListView.vue:276 -#: src/views/database/IndexView.vue:27 -#: src/views/home/IndexView.vue:453 +#: src/locales/menu.ts:11 src/views/backup/ListView.vue:276 +#: src/views/database/IndexView.vue:27 src/views/home/IndexView.vue:453 #: src/views/website/CreateModal.vue:170 msgid "Database" msgstr "數據庫" @@ -1382,24 +1237,17 @@ msgstr "" msgid "Toolbox" msgstr "工具箱" -#: src/locales/menu.ts:22 -#: src/views/app/AppView.vue:93 -#: src/views/app/EnvironmentView.vue:78 -#: src/views/home/IndexView.vue:479 +#: src/locales/menu.ts:22 src/views/app/AppView.vue:93 +#: src/views/app/EnvironmentView.vue:78 src/views/home/IndexView.vue:479 #: src/views/setting/TokenModal.vue:299 msgid "Update" msgstr "更新" -#: src/locales/menu.ts:23 -#: src/views/apps/fail2ban/IndexView.vue:315 -#: src/views/backup/IndexView.vue:37 -#: src/views/backup/ListView.vue:232 -#: src/views/backup/ListView.vue:269 -#: src/views/cert/CertView.vue:455 -#: src/views/cert/CertView.vue:538 -#: src/views/cert/CreateCertModal.vue:90 -#: src/views/home/IndexView.vue:449 -#: src/views/task/CreateModal.vue:118 +#: src/locales/menu.ts:23 src/views/apps/fail2ban/IndexView.vue:315 +#: src/views/backup/IndexView.vue:37 src/views/backup/ListView.vue:232 +#: src/views/backup/ListView.vue:269 src/views/cert/CertView.vue:455 +#: src/views/cert/CertView.vue:538 src/views/cert/CreateCertModal.vue:90 +#: src/views/home/IndexView.vue:449 src/views/task/CreateModal.vue:118 msgid "Website" msgstr "網站" @@ -1427,15 +1275,12 @@ msgstr "Rsync 管理器" msgid "Frp Manager" msgstr "Frp 管理器" -#: src/router/routes/index.ts:18 -#: src/views/login/IndexView.vue:229 +#: src/router/routes/index.ts:18 src/views/login/IndexView.vue:229 msgid "Login" msgstr "登錄" -#: src/views/app/AppView.vue:17 -#: src/views/app/AppView.vue:152 -#: src/views/app/AppView.vue:157 -#: src/views/app/EnvironmentView.vue:145 +#: src/views/app/AppView.vue:17 src/views/app/AppView.vue:152 +#: src/views/app/AppView.vue:157 src/views/app/EnvironmentView.vue:145 #: src/views/environment/PHPView.vue:79 msgid "Install" msgstr "安裝" @@ -1444,16 +1289,13 @@ msgstr "安裝" msgid "App Name" msgstr "應用名稱" -#: src/views/app/AppView.vue:40 -#: src/views/app/EnvironmentView.vue:33 -#: src/views/environment/PHPView.vue:48 -#: src/views/project/EditModal.vue:188 -#: src/views/project/ListView.vue:38 +#: src/views/app/AppView.vue:40 src/views/app/EnvironmentView.vue:33 +#: src/views/environment/PHPView.vue:48 src/views/project/EditModal.vue:188 +#: src/views/project/ListView.vue:41 msgid "Description" msgstr "描述" -#: src/views/app/AppView.vue:46 -#: src/views/app/EnvironmentView.vue:45 +#: src/views/app/AppView.vue:46 src/views/app/EnvironmentView.vue:45 msgid "Installed Version" msgstr "已安裝版本" @@ -1461,65 +1303,52 @@ msgstr "已安裝版本" msgid "Show in Home" msgstr "在主頁顯示" -#: src/views/app/AppView.vue:65 -#: src/views/app/EnvironmentView.vue:51 +#: src/views/app/AppView.vue:65 src/views/app/EnvironmentView.vue:51 #: src/views/apps/fail2ban/IndexView.vue:59 #: src/views/apps/fail2ban/IndexView.vue:118 #: src/views/apps/nginx/NginxIndex.vue:184 #: src/views/apps/nginx/NginxIndex.vue:260 #: src/views/apps/nginx/NginxIndex.vue:696 #: src/views/apps/pureftpd/IndexView.vue:46 -#: src/views/apps/rsync/IndexView.vue:68 -#: src/views/apps/s3fs/IndexView.vue:32 -#: src/views/apps/supervisor/IndexView.vue:74 -#: src/views/backup/ListView.vue:57 -#: src/views/cert/AccountView.vue:79 -#: src/views/cert/CertView.vue:170 -#: src/views/cert/DnsView.vue:64 -#: src/views/container/ComposeView.vue:100 +#: src/views/apps/rsync/IndexView.vue:68 src/views/apps/s3fs/IndexView.vue:32 +#: src/views/apps/supervisor/IndexView.vue:74 src/views/backup/ListView.vue:57 +#: src/views/cert/AccountView.vue:79 src/views/cert/CertView.vue:170 +#: src/views/cert/DnsView.vue:64 src/views/container/ComposeView.vue:100 #: src/views/container/ContainerView.vue:109 -#: src/views/container/ImageView.vue:90 -#: src/views/container/NetworkView.vue:109 -#: src/views/container/VolumeView.vue:63 -#: src/views/database/DatabaseList.vue:77 -#: src/views/database/ServerList.vue:134 -#: src/views/database/UserList.vue:151 -#: src/views/environment/PHPView.vue:55 -#: src/views/file/ListView.vue:1206 -#: src/views/firewall/ForwardView.vue:79 -#: src/views/firewall/IpRuleView.vue:121 -#: src/views/firewall/RuleView.vue:158 -#: src/views/project/ListView.vue:72 -#: src/views/setting/SettingUser.vue:85 -#: src/views/setting/TokenModal.vue:52 -#: src/views/task/CronView.vue:98 -#: src/views/task/TaskView.vue:55 -#: src/views/toolbox/DiskView.vue:340 -#: src/views/toolbox/DiskView.vue:831 -#: src/views/toolbox/WebHookView.vue:131 -#: src/views/website/ListView.vue:123 +#: src/views/container/ImageView.vue:90 src/views/container/NetworkView.vue:109 +#: src/views/container/VolumeView.vue:63 src/views/database/DatabaseList.vue:77 +#: src/views/database/ServerList.vue:134 src/views/database/UserList.vue:151 +#: src/views/environment/PHPView.vue:55 src/views/file/ListView.vue:1286 +#: src/views/firewall/ForwardView.vue:79 src/views/firewall/IpRuleView.vue:121 +#: src/views/firewall/RuleView.vue:158 src/views/project/ListView.vue:88 +#: src/views/setting/SettingUser.vue:85 src/views/setting/TokenModal.vue:52 +#: src/views/task/CronView.vue:98 src/views/task/TaskView.vue:55 +#: src/views/toolbox/DiskView.vue:340 src/views/toolbox/DiskView.vue:831 +#: src/views/toolbox/WebHookView.vue:131 src/views/website/ListView.vue:123 msgid "Actions" msgstr "操作" #: src/views/app/AppView.vue:80 -msgid "Updating app %{ app } may reset related configurations to default state, are you sure to continue?" +msgid "" +"Updating app %{ app } may reset related configurations to default state, are " +"you sure to continue?" msgstr "更新應用程式 %{ app } 可能會將相關配置重置為默認狀態,您確定要繼續嗎?" -#: src/views/app/AppView.vue:109 -#: src/views/app/EnvironmentView.vue:94 +#: src/views/app/AppView.vue:109 src/views/app/EnvironmentView.vue:94 msgid "Manage" msgstr "管理" #: src/views/app/AppView.vue:123 -msgid "Reinstalling/Switching to a different web server will reset the configuration of all websites, are you sure to continue?" +msgid "" +"Reinstalling/Switching to a different web server will reset the " +"configuration of all websites, are you sure to continue?" msgstr "" #: src/views/app/AppView.vue:127 msgid "Are you sure to uninstall app %{ app }?" msgstr "您確定要卸載應用程式 %{ app } 嗎?" -#: src/views/app/AppView.vue:137 -#: src/views/app/EnvironmentView.vue:118 +#: src/views/app/AppView.vue:137 src/views/app/EnvironmentView.vue:118 msgid "Uninstall" msgstr "卸載" @@ -1527,12 +1356,9 @@ msgstr "卸載" msgid "Setup successfully" msgstr "設置成功" -#: src/views/app/AppView.vue:198 -#: src/views/app/AppView.vue:206 -#: src/views/app/EnvironmentView.vue:178 -#: src/views/app/EnvironmentView.vue:186 -#: src/views/app/EnvironmentView.vue:194 -#: src/views/app/VersionModal.vue:34 +#: src/views/app/AppView.vue:198 src/views/app/AppView.vue:206 +#: src/views/app/EnvironmentView.vue:178 src/views/app/EnvironmentView.vue:186 +#: src/views/app/EnvironmentView.vue:194 src/views/app/VersionModal.vue:34 msgid "Task submitted, please check the progress in background tasks" msgstr "任務已提交,請在後台任務中查看進度" @@ -1572,6 +1398,80 @@ msgstr "" msgid "Update Cache" msgstr "更新快取" +#: src/views/app/TemplateDeployModal.vue:58 +#, fuzzy +msgid "Please enter compose name" +msgstr "請輸入完整的 URL" + +#: src/views/app/TemplateDeployModal.vue:128 +#, fuzzy +msgid "Deploy Template" +msgstr "部署證書" + +#: src/views/app/TemplateDeployModal.vue:139 +#: src/views/container/ContainerCreate.vue:191 +#: src/views/project/EditModal.vue:177 src/views/website/EditView.vue:462 +msgid "Basic Settings" +msgstr "基本設置" + +#: src/views/app/TemplateDeployModal.vue:141 +#: src/views/container/ComposeView.vue:361 +msgid "Compose Name" +msgstr "編排名稱" + +#: src/views/app/TemplateDeployModal.vue:146 +#, fuzzy +msgid "Enter compose name" +msgstr "輸入備註名稱" + +#: src/views/app/TemplateDeployModal.vue:150 +#, fuzzy +msgid "Deploy Options" +msgstr "選項" + +#: src/views/app/TemplateDeployModal.vue:154 +#, fuzzy +msgid "Auto Start" +msgstr "自啟動開啟" + +#: src/views/app/TemplateDeployModal.vue:159 +#, fuzzy +msgid "Auto Firewall" +msgstr "防火牆" + +#: src/views/app/TemplateDeployModal.vue:163 +msgid "Automatically allow ports defined in compose" +msgstr "" + +#: src/views/app/TemplateDeployModal.vue:176 +#: src/views/apps/minio/IndexView.vue:32 +#: src/views/container/ComposeView.vue:367 +#: src/views/container/ComposeView.vue:393 +#: src/views/container/ContainerCreate.vue:454 +#: src/views/project/EditModal.vue:373 src/views/toolbox/ProcessView.vue:440 +msgid "Environment Variables" +msgstr "環境變數" + +#: src/views/app/TemplateDeployModal.vue:189 +#, fuzzy +msgid "Select value" +msgstr "選擇文件" + +#: src/views/app/TemplateDeployModal.vue:219 +#, fuzzy +msgid "Compose Preview" +msgstr "編排名稱" + +#: src/views/app/TemplateDeployModal.vue:230 src/views/app/TemplateView.vue:94 +#: src/views/cert/CertView.vue:208 +msgid "Deploy" +msgstr "部署" + +#: src/views/app/TemplateDeployModal.vue:238 +#: src/views/container/ComposeView.vue:408 +msgid "Starting Compose" +msgstr "" + #: src/views/app/VersionModal.vue:79 msgid "Channel" msgstr "渠道" @@ -1593,8 +1493,7 @@ msgstr "" #: src/views/apps/mysql/MysqlIndex.vue:32 #: src/views/apps/nginx/NginxIndex.vue:130 #: src/views/apps/postgresql/IndexView.vue:30 -#: src/views/apps/redis/IndexView.vue:24 -#: src/views/environment/PHPView.vue:120 +#: src/views/apps/redis/IndexView.vue:24 src/views/environment/PHPView.vue:120 msgid "Property" msgstr "屬性" @@ -1603,8 +1502,7 @@ msgstr "屬性" #: src/views/apps/mysql/MysqlIndex.vue:39 #: src/views/apps/nginx/NginxIndex.vue:137 #: src/views/apps/postgresql/IndexView.vue:37 -#: src/views/apps/redis/IndexView.vue:31 -#: src/views/environment/PHPView.vue:127 +#: src/views/apps/redis/IndexView.vue:31 src/views/environment/PHPView.vue:127 msgid "Current Value" msgstr "當前值" @@ -1614,18 +1512,15 @@ msgstr "當前值" #: src/views/apps/nginx/NginxIndex.vue:329 #: src/views/apps/postgresql/IndexView.vue:56 #: src/views/apps/supervisor/IndexView.vue:225 -#: src/views/environment/PHPView.vue:166 -#: src/views/environment/PHPView.vue:172 -#: src/views/website/EditView.vue:168 +#: src/views/environment/PHPView.vue:166 src/views/environment/PHPView.vue:172 +#: src/views/website/EditView.vue:169 msgid "Cleared successfully" msgstr "清除成功" #: src/views/apps/apache/IndexView.vue:59 #: src/views/apps/codeserver/IndexView.vue:34 -#: src/views/apps/frp/IndexView.vue:75 -#: src/views/apps/frp/IndexView.vue:103 -#: src/views/apps/gitea/IndexView.vue:32 -#: src/views/apps/mysql/MysqlIndex.vue:98 +#: src/views/apps/frp/IndexView.vue:75 src/views/apps/frp/IndexView.vue:103 +#: src/views/apps/gitea/IndexView.vue:32 src/views/apps/mysql/MysqlIndex.vue:98 #: src/views/apps/nginx/NginxIndex.vue:479 #: src/views/apps/phpmyadmin/IndexView.vue:73 msgid "Modify Configuration" @@ -1633,7 +1528,9 @@ msgstr "修改配置" #: src/views/apps/apache/IndexView.vue:63 #: src/views/apps/nginx/NginxIndex.vue:483 -msgid "This modifies the %{name} main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" +msgid "" +"This modifies the %{name} main configuration file. If you do not understand " +"the meaning of each parameter, please do not modify it randomly!" msgstr "" #: src/views/apps/apache/IndexView.vue:77 @@ -1641,8 +1538,7 @@ msgstr "" #: src/views/apps/mysql/MysqlIndex.vue:116 #: src/views/apps/nginx/NginxIndex.vue:535 #: src/views/apps/postgresql/IndexView.vue:100 -#: src/views/apps/redis/IndexView.vue:68 -#: src/views/environment/PHPView.vue:255 +#: src/views/apps/redis/IndexView.vue:68 src/views/environment/PHPView.vue:255 #: src/views/home/IndexView.vue:490 msgid "Load Status" msgstr "負載狀態" @@ -1658,8 +1554,7 @@ msgstr "負載狀態" #: src/views/apps/nginx/NginxIndex.vue:545 #: src/views/apps/podman/IndexView.vue:85 #: src/views/apps/postgresql/IndexView.vue:110 -#: src/views/apps/redis/IndexView.vue:78 -#: src/views/apps/rsync/IndexView.vue:240 +#: src/views/apps/redis/IndexView.vue:78 src/views/apps/rsync/IndexView.vue:240 #: src/views/apps/supervisor/IndexView.vue:347 #: src/views/environment/PHPView.vue:265 msgid "Runtime Logs" @@ -1681,8 +1576,11 @@ msgid "Clear Log" msgstr "清除日誌" #: src/views/apps/codeserver/IndexView.vue:38 -msgid "This modifies the Code Server configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "這將修改 Code Server 的配置文件。如果您不理解每個參數的含義,請不要隨意修改!" +msgid "" +"This modifies the Code Server configuration file. If you do not understand " +"the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"這將修改 Code Server 的配置文件。如果您不理解每個參數的含義,請不要隨意修改!" #: src/views/apps/docker/IndexView.vue:34 msgid "Configuration" @@ -1697,14 +1595,10 @@ msgstr "這將修改 Docker 配置文件 (/etc/docker/daemon.json)" #: src/views/apps/supervisor/IndexView.vue:53 #: src/views/container/ComposeView.vue:84 #: src/views/container/ContainerView.vue:50 -#: src/views/database/ServerList.vue:113 -#: src/views/database/UserList.vue:130 -#: src/views/firewall/RuleView.vue:61 -#: src/views/log/HttpLog.vue:74 -#: src/views/project/ListView.vue:53 -#: src/views/task/TaskView.vue:22 -#: src/views/toolbox/ProcessView.vue:135 -#: src/views/toolbox/ProcessView.vue:392 +#: src/views/database/ServerList.vue:113 src/views/database/UserList.vue:130 +#: src/views/firewall/RuleView.vue:61 src/views/log/HttpLog.vue:74 +#: src/views/project/ListView.vue:56 src/views/task/TaskView.vue:22 +#: src/views/toolbox/ProcessView.vue:137 src/views/toolbox/ProcessView.vue:394 msgid "Status" msgstr "狀態" @@ -1723,8 +1617,7 @@ msgstr "封禁時間" msgid "Find Time" msgstr "查找時間" -#: src/views/apps/fail2ban/IndexView.vue:77 -#: src/views/cert/CertView.vue:252 +#: src/views/apps/fail2ban/IndexView.vue:77 src/views/cert/CertView.vue:252 msgid "View" msgstr "查看" @@ -1742,8 +1635,7 @@ msgstr "解封" #: src/views/apps/fail2ban/IndexView.vue:188 #: src/views/apps/pureftpd/IndexView.vue:128 -#: src/views/apps/rsync/IndexView.vue:150 -#: src/views/apps/s3fs/IndexView.vue:82 +#: src/views/apps/rsync/IndexView.vue:150 src/views/apps/s3fs/IndexView.vue:82 #: src/views/apps/supervisor/IndexView.vue:233 #: src/views/database/CreateServerModal.vue:37 msgid "Added successfully" @@ -1780,24 +1672,28 @@ msgid "Add Rule" msgstr "新增規則" #: src/views/apps/fail2ban/IndexView.vue:297 -msgid "If an IP exceeds the maximum retries within the find time (seconds), it will be banned for the ban time (seconds)" -msgstr "如果一個 IP 在查找時間(秒)內超過最大重試次數,它將被禁止訪問指定的禁止時間(秒)" +msgid "" +"If an IP exceeds the maximum retries within the find time (seconds), it will " +"be banned for the ban time (seconds)" +msgstr "" +"如果一個 IP 在查找時間(秒)內超過最大重試次數,它將被禁止訪問指定的禁止時間" +"(秒)" #: src/views/apps/fail2ban/IndexView.vue:304 -msgid "Protected ports are automatically obtained. If you modify the port corresponding to a rule, please delete and re-add the rule, otherwise protection may not be effective" -msgstr "受保護的連接埠會自動獲取。如果您修改了某個規則對應的連接埠,請刪除並重新添加該規則,否則保護可能無效" +msgid "" +"Protected ports are automatically obtained. If you modify the port " +"corresponding to a rule, please delete and re-add the rule, otherwise " +"protection may not be effective" +msgstr "" +"受保護的連接埠會自動獲取。如果您修改了某個規則對應的連接埠,請刪除並重新添加" +"該規則,否則保護可能無效" -#: src/views/apps/fail2ban/IndexView.vue:311 -#: src/views/cert/CertView.vue:86 -#: src/views/cert/DnsView.vue:38 -#: src/views/cert/ObtainModal.vue:58 +#: src/views/apps/fail2ban/IndexView.vue:311 src/views/cert/CertView.vue:86 +#: src/views/cert/DnsView.vue:38 src/views/cert/ObtainModal.vue:58 #: src/views/database/CreateServerModal.vue:63 -#: src/views/database/DatabaseList.vue:11 -#: src/views/database/ServerList.vue:16 -#: src/views/database/UserList.vue:16 -#: src/views/file/PropertyModal.vue:33 -#: src/views/log/OperationLog.vue:57 -#: src/views/project/ListView.vue:45 +#: src/views/database/DatabaseList.vue:11 src/views/database/ServerList.vue:16 +#: src/views/database/UserList.vue:16 src/views/file/PropertyModal.vue:33 +#: src/views/log/OperationLog.vue:57 src/views/project/ListView.vue:48 msgid "Type" msgstr "類型" @@ -1807,8 +1703,7 @@ msgid "Service" msgstr "服務" #: src/views/apps/fail2ban/IndexView.vue:321 -#: src/views/apps/fail2ban/IndexView.vue:325 -#: src/views/task/CreateModal.vue:132 +#: src/views/apps/fail2ban/IndexView.vue:325 src/views/task/CreateModal.vue:132 #: src/views/task/CreateModal.vue:137 msgid "Select Website" msgstr "選擇網站" @@ -1818,8 +1713,7 @@ msgid "Protection Mode" msgstr "保護模式" #: src/views/apps/fail2ban/IndexView.vue:333 -#: src/views/apps/pureftpd/IndexView.vue:39 -#: src/views/log/HttpLog.vue:64 +#: src/views/apps/pureftpd/IndexView.vue:39 src/views/log/HttpLog.vue:64 msgid "Path" msgstr "路徑" @@ -1849,59 +1743,46 @@ msgstr "總封禁次數" msgid "Ban List" msgstr "封禁列表" -#: src/views/apps/frp/IndexView.vue:60 -#: src/views/apps/frp/IndexView.vue:88 -#: src/views/project/CreateModal.vue:186 -#: src/views/project/EditModal.vue:232 +#: src/views/apps/frp/IndexView.vue:60 src/views/apps/frp/IndexView.vue:88 +#: src/views/project/CreateModal.vue:190 src/views/project/EditModal.vue:232 msgid "Run User" msgstr "" -#: src/views/apps/frp/IndexView.vue:67 -#: src/views/apps/frp/IndexView.vue:68 -#: src/views/apps/frp/IndexView.vue:95 -#: src/views/apps/frp/IndexView.vue:96 -#: src/views/apps/rsync/IndexView.vue:53 -#: src/views/apps/rsync/IndexView.vue:272 -#: src/views/apps/rsync/IndexView.vue:326 -#: src/views/database/IndexView.vue:28 -#: src/views/setting/IndexView.vue:92 -#: src/views/toolbox/ProcessView.vue:129 -#: src/views/toolbox/ProcessView.vue:389 -#: src/views/toolbox/WebHookView.vue:335 +#: src/views/apps/frp/IndexView.vue:67 src/views/apps/frp/IndexView.vue:68 +#: src/views/apps/frp/IndexView.vue:95 src/views/apps/frp/IndexView.vue:96 +#: src/views/apps/rsync/IndexView.vue:53 src/views/apps/rsync/IndexView.vue:272 +#: src/views/apps/rsync/IndexView.vue:326 src/views/database/IndexView.vue:28 +#: src/views/setting/IndexView.vue:93 src/views/toolbox/ProcessView.vue:131 +#: src/views/toolbox/ProcessView.vue:391 src/views/toolbox/WebHookView.vue:335 #: src/views/toolbox/WebHookView.vue:370 msgid "User" msgstr "用戶" -#: src/views/apps/frp/IndexView.vue:70 -#: src/views/apps/frp/IndexView.vue:71 -#: src/views/apps/frp/IndexView.vue:98 -#: src/views/apps/frp/IndexView.vue:99 +#: src/views/apps/frp/IndexView.vue:70 src/views/apps/frp/IndexView.vue:71 +#: src/views/apps/frp/IndexView.vue:98 src/views/apps/frp/IndexView.vue:99 #: src/views/file/PermissionModal.vue:126 -#: src/views/file/PermissionModal.vue:150 -#: src/views/file/PropertyModal.vue:48 +#: src/views/file/PermissionModal.vue:150 src/views/file/PropertyModal.vue:48 msgid "Group" msgstr "群組" #: src/views/apps/gitea/IndexView.vue:36 -msgid "This modifies the Gitea configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" +msgid "" +"This modifies the Gitea configuration file. If you do not understand the " +"meaning of each parameter, please do not modify it randomly!" msgstr "這將修改 Gitea 配置文件。如果您不理解每個參數的含義,請不要隨意修改!" #: src/views/apps/memcached/IndexView.vue:54 msgid "Service Configuration" msgstr "服務配置" -#: src/views/apps/minio/IndexView.vue:32 -#: src/views/container/ComposeView.vue:367 -#: src/views/container/ComposeView.vue:393 -#: src/views/container/ContainerCreate.vue:454 -#: src/views/project/EditModal.vue:373 -#: src/views/toolbox/ProcessView.vue:438 -msgid "Environment Variables" -msgstr "環境變數" - #: src/views/apps/minio/IndexView.vue:36 -msgid "This is modifying the Minio environment variable file /etc/default/minio. If you do not understand the meaning of each parameter, please do not modify it arbitrarily!" -msgstr "這將修改 Minio 環境變量文件 /etc/default/minio。如果您不了解每個參數的含義,請不要隨意修改!" +msgid "" +"This is modifying the Minio environment variable file /etc/default/minio. If " +"you do not understand the meaning of each parameter, please do not modify it " +"arbitrarily!" +msgstr "" +"這將修改 Minio 環境變量文件 /etc/default/minio。如果您不了解每個參數的含義," +"請不要隨意修改!" #: src/views/apps/mysql/MysqlIndex.vue:66 #: src/views/apps/pureftpd/IndexView.vue:138 @@ -1909,55 +1790,42 @@ msgstr "這將修改 Minio 環境變量文件 /etc/default/minio。如果您不 #: src/views/database/ServerList.vue:244 #: src/views/database/UpdateServerModal.vue:21 #: src/views/database/UpdateUserModal.vue:18 -#: src/views/database/UserList.vue:219 -#: src/views/file/PermissionModal.vue:55 -#: src/views/setting/SettingUser.vue:162 -#: src/views/setting/SettingUser.vue:168 -#: src/views/task/CronView.vue:173 -#: src/views/task/CronView.vue:201 -#: src/views/toolbox/WebHookView.vue:211 -#: src/views/toolbox/WebHookView.vue:282 -#: src/views/website/ListView.vue:237 -#: src/views/website/SettingView.vue:36 +#: src/views/database/UserList.vue:219 src/views/file/PermissionModal.vue:55 +#: src/views/setting/SettingUser.vue:162 src/views/setting/SettingUser.vue:168 +#: src/views/task/CronView.vue:173 src/views/task/CronView.vue:201 +#: src/views/toolbox/WebHookView.vue:211 src/views/toolbox/WebHookView.vue:282 +#: src/views/website/ListView.vue:237 src/views/website/SettingView.vue:36 msgid "Modified successfully" msgstr "修改成功" -#: src/views/apps/mysql/MysqlIndex.vue:72 -#: src/views/database/ServerList.vue:75 -#: src/views/database/UserList.vue:69 -#: src/views/file/ListView.vue:718 -#: src/views/file/ListView.vue:738 -#: src/views/file/ToolBar.vue:151 -#: src/views/file/ToolBar.vue:171 -#: src/views/setting/TokenModal.vue:163 +#: src/views/apps/mysql/MysqlIndex.vue:72 src/views/database/ServerList.vue:75 +#: src/views/database/UserList.vue:69 src/views/file/ListView.vue:796 +#: src/views/file/ListView.vue:816 src/views/file/ToolBar.vue:131 +#: src/views/file/ToolBar.vue:151 src/views/setting/TokenModal.vue:163 msgid "Copied successfully" msgstr "複製成功" -#: src/views/apps/mysql/MysqlIndex.vue:83 -#: src/views/toolbox/SshView.vue:263 +#: src/views/apps/mysql/MysqlIndex.vue:83 src/views/toolbox/SshView.vue:263 msgid "Root Password" msgstr "Root 密碼" -#: src/views/apps/mysql/MysqlIndex.vue:88 -#: src/views/database/ServerList.vue:79 -#: src/views/database/UserList.vue:73 -#: src/views/file/ListView.vue:181 -#: src/views/file/ListView.vue:215 -#: src/views/file/ListView.vue:814 -#: src/views/file/ToolBar.vue:286 +#: src/views/apps/mysql/MysqlIndex.vue:88 src/views/database/ServerList.vue:79 +#: src/views/database/UserList.vue:73 src/views/file/ListView.vue:259 +#: src/views/file/ListView.vue:293 src/views/file/ListView.vue:892 +#: src/views/file/ToolBar.vue:266 msgid "Copy" msgstr "複製" -#: src/views/apps/mysql/MysqlIndex.vue:92 -#: src/views/website/SettingView.vue:48 -#: src/views/website/SettingView.vue:58 -#: src/views/website/SettingView.vue:68 +#: src/views/apps/mysql/MysqlIndex.vue:92 src/views/website/SettingView.vue:48 +#: src/views/website/SettingView.vue:58 src/views/website/SettingView.vue:68 #: src/views/website/SettingView.vue:116 msgid "Save Changes" msgstr "保存更改" #: src/views/apps/mysql/MysqlIndex.vue:102 -msgid "This modifies the %{ name } main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" +msgid "" +"This modifies the %{ name } main configuration file. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" msgstr "" #: src/views/apps/mysql/MysqlIndex.vue:132 @@ -1978,37 +1846,28 @@ msgid "Protocol" msgstr "協議" #: src/views/apps/nginx/NginxIndex.vue:169 -#: src/views/apps/nginx/NginxIndex.vue:588 -#: src/views/website/EditView.vue:655 +#: src/views/apps/nginx/NginxIndex.vue:588 src/views/website/EditView.vue:683 msgid "Proxy Pass" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:180 -#: src/views/file/ListView.vue:657 -#: src/views/file/PropertyModal.vue:55 -#: src/views/file/PropertyModal.vue:59 +#: src/views/apps/nginx/NginxIndex.vue:180 src/views/file/ListView.vue:735 +#: src/views/file/PropertyModal.vue:55 src/views/file/PropertyModal.vue:59 #: src/views/toolbox/WebHookView.vue:81 msgid "Yes" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:180 -#: src/views/file/ListView.vue:658 -#: src/views/file/PropertyModal.vue:55 -#: src/views/file/PropertyModal.vue:59 +#: src/views/apps/nginx/NginxIndex.vue:180 src/views/file/ListView.vue:736 +#: src/views/file/PropertyModal.vue:55 src/views/file/PropertyModal.vue:59 #: src/views/toolbox/WebHookView.vue:81 msgid "No" msgstr "" #: src/views/apps/nginx/NginxIndex.vue:197 #: src/views/apps/nginx/NginxIndex.vue:273 -#: src/views/container/ComposeView.vue:122 -#: src/views/file/ListView.vue:206 -#: src/views/file/ListView.vue:1335 -#: src/views/project/ListView.vue:105 -#: src/views/ssh/IndexView.vue:69 -#: src/views/task/CronView.vue:128 -#: src/views/toolbox/WebHookView.vue:158 -#: src/views/website/ListView.vue:138 +#: src/views/container/ComposeView.vue:122 src/views/file/ListView.vue:284 +#: src/views/file/ListView.vue:1462 src/views/project/ListView.vue:121 +#: src/views/ssh/IndexView.vue:69 src/views/task/CronView.vue:128 +#: src/views/toolbox/WebHookView.vue:158 src/views/website/ListView.vue:138 msgid "Edit" msgstr "編輯" @@ -2060,26 +1919,22 @@ msgstr "" #: src/views/apps/nginx/NginxIndex.vue:499 #: src/views/database/CreateDatabaseModal.vue:63 #: src/views/database/CreateUserModal.vue:69 -#: src/views/database/DatabaseList.vue:41 -#: src/views/database/IndexView.vue:29 +#: src/views/database/DatabaseList.vue:41 src/views/database/IndexView.vue:29 #: src/views/database/UserList.vue:90 msgid "Server" msgstr "伺服器" #: src/views/apps/nginx/NginxIndex.vue:503 #: src/views/database/CreateServerModal.vue:47 -#: src/views/database/IndexView.vue:49 -#: src/views/website/EditView.vue:595 +#: src/views/database/IndexView.vue:49 src/views/website/EditView.vue:623 msgid "Add Server" msgstr "添加伺服器" -#: src/views/apps/nginx/NginxIndex.vue:516 -#: src/views/website/EditView.vue:487 +#: src/views/apps/nginx/NginxIndex.vue:516 src/views/website/EditView.vue:515 msgid "Upstream" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:520 -#: src/views/website/EditView.vue:611 +#: src/views/apps/nginx/NginxIndex.vue:520 src/views/website/EditView.vue:639 msgid "Add Upstream" msgstr "" @@ -2136,8 +1991,7 @@ msgstr "" msgid "e.g. /path/to/key.pem" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:658 -#: src/views/website/EditView.vue:498 +#: src/views/apps/nginx/NginxIndex.vue:658 src/views/website/EditView.vue:526 msgid "Load Balancing Algorithm" msgstr "" @@ -2153,7 +2007,7 @@ msgstr "" msgid "Options (optional), e.g. weight=5 backup" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:688 +#: src/views/apps/nginx/NginxIndex.vue:688 src/views/toolbox/SystemView.vue:297 msgid "Add" msgstr "添加" @@ -2163,8 +2017,7 @@ msgstr "" #: src/views/apps/nginx/NginxIndex.vue:695 #: src/views/container/NetworkView.vue:320 -#: src/views/container/VolumeView.vue:220 -#: src/views/toolbox/DiskView.vue:829 +#: src/views/container/VolumeView.vue:220 src/views/toolbox/DiskView.vue:829 msgid "Options" msgstr "選項" @@ -2172,26 +2025,22 @@ msgstr "選項" msgid "No servers added yet" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:722 -#: src/views/website/EditView.vue:526 -#: src/views/website/EditView.vue:684 +#: src/views/apps/nginx/NginxIndex.vue:722 src/views/website/EditView.vue:554 +#: src/views/website/EditView.vue:714 msgid "DNS Resolver" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:725 -#: src/views/website/EditView.vue:529 -#: src/views/website/EditView.vue:687 +#: src/views/apps/nginx/NginxIndex.vue:725 src/views/website/EditView.vue:557 +#: src/views/website/EditView.vue:717 msgid "e.g., 8.8.8.8" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:731 -#: src/views/website/EditView.vue:535 -#: src/views/website/EditView.vue:693 +#: src/views/apps/nginx/NginxIndex.vue:731 src/views/website/EditView.vue:563 +#: src/views/website/EditView.vue:723 msgid "Resolver Timeout" msgstr "" -#: src/views/apps/nginx/NginxIndex.vue:744 -#: src/views/website/EditView.vue:344 +#: src/views/apps/nginx/NginxIndex.vue:744 src/views/website/EditView.vue:345 msgid "Seconds" msgstr "" @@ -2212,19 +2061,28 @@ msgid "Modify phpMyAdmin access port" msgstr "修改 phpMyAdmin 訪問連接埠" #: src/views/apps/phpmyadmin/IndexView.vue:77 -msgid "This modifies the OpenResty configuration file for phpMyAdmin. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "這將修改 phpMyAdmin 的 OpenResty 配置文件。如果您不了解每個參數的含義,請不要隨意修改!" +msgid "" +"This modifies the OpenResty configuration file for phpMyAdmin. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"這將修改 phpMyAdmin 的 OpenResty 配置文件。如果您不了解每個參數的含義,請不要" +"隨意修改!" #: src/views/apps/podman/IndexView.vue:43 -msgid "Podman is a daemonless container management tool. Being in a stopped state is normal and does not affect usage!" -msgstr "Podman 是一個無守護進程的容器管理工具。處於停止狀態是正常的,不影響使用!" +msgid "" +"Podman is a daemonless container management tool. Being in a stopped state " +"is normal and does not affect usage!" +msgstr "" +"Podman 是一個無守護進程的容器管理工具。處於停止狀態是正常的,不影響使用!" #: src/views/apps/podman/IndexView.vue:51 msgid "Registry Configuration" msgstr "註冊表配置" #: src/views/apps/podman/IndexView.vue:55 -msgid "This modifies the Podman registry configuration file (/etc/containers/registries.conf)" +msgid "" +"This modifies the Podman registry configuration file (/etc/containers/" +"registries.conf)" msgstr "這會修改 Podman 註冊表配置文件 (/etc/containers/registries.conf)" #: src/views/apps/podman/IndexView.vue:68 @@ -2232,28 +2090,36 @@ msgid "Storage Configuration" msgstr "儲存配置" #: src/views/apps/podman/IndexView.vue:72 -msgid "This modifies the Podman storage configuration file (/etc/containers/storage.conf)" +msgid "" +"This modifies the Podman storage configuration file (/etc/containers/storage." +"conf)" msgstr "這會修改 Podman 儲存配置文件 (/etc/containers/storage.conf)" #: src/views/apps/postgresql/IndexView.vue:66 -#: src/views/apps/redis/IndexView.vue:51 -#: src/views/apps/rsync/IndexView.vue:223 +#: src/views/apps/redis/IndexView.vue:51 src/views/apps/rsync/IndexView.vue:223 #: src/views/apps/supervisor/IndexView.vue:330 #: src/views/environment/PHPView.vue:219 msgid "Main Configuration" msgstr "主配置" #: src/views/apps/postgresql/IndexView.vue:70 -msgid "This modifies the PostgreSQL main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "這將修改 PostgreSQL 主配置文件。如果您不了解每個參數的含義,請不要隨意修改!" +msgid "" +"This modifies the PostgreSQL main configuration file. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"這將修改 PostgreSQL 主配置文件。如果您不了解每個參數的含義,請不要隨意修改!" #: src/views/apps/postgresql/IndexView.vue:83 msgid "User Configuration" msgstr "用戶配置" #: src/views/apps/postgresql/IndexView.vue:87 -msgid "This modifies the PostgreSQL user configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "這將修改 PostgreSQL 用戶配置文件。如果您不了解每個參數的含義,請不要隨意修改!" +msgid "" +"This modifies the PostgreSQL user configuration file. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"這將修改 PostgreSQL 用戶配置文件。如果您不了解每個參數的含義,請不要隨意修" +"改!" #: src/views/apps/postgresql/IndexView.vue:120 #: src/views/environment/PHPView.vue:278 @@ -2268,12 +2134,9 @@ msgstr "慢日誌" #: src/views/database/CreateUserModal.vue:77 #: src/views/database/ServerList.vue:46 #: src/views/database/UpdateServerModal.vue:86 -#: src/views/database/UserList.vue:39 -#: src/views/login/IndexView.vue:166 -#: src/views/setting/CreateModal.vue:40 -#: src/views/setting/SettingUser.vue:19 -#: src/views/ssh/CreateModal.vue:85 -#: src/views/ssh/UpdateModal.vue:91 +#: src/views/database/UserList.vue:39 src/views/login/IndexView.vue:166 +#: src/views/setting/CreateModal.vue:40 src/views/setting/SettingUser.vue:19 +#: src/views/ssh/CreateModal.vue:85 src/views/ssh/UpdateModal.vue:91 msgid "Username" msgstr "使用者名稱" @@ -2305,9 +2168,8 @@ msgstr "運行日誌" #: src/views/apps/pureftpd/IndexView.vue:210 #: src/views/database/CreateDatabaseModal.vue:79 #: src/views/database/CreateUserModal.vue:55 -#: src/views/database/IndexView.vue:42 -#: src/views/setting/CreateModal.vue:32 -#: src/views/setting/IndexView.vue:98 +#: src/views/database/IndexView.vue:42 src/views/setting/CreateModal.vue:32 +#: src/views/setting/IndexView.vue:99 msgid "Create User" msgstr "建立使用者" @@ -2321,21 +2183,16 @@ msgstr "輸入使用者名稱" #: src/views/apps/pureftpd/IndexView.vue:222 #: src/views/apps/pureftpd/IndexView.vue:253 #: src/views/apps/rsync/IndexView.vue:280 -#: src/views/apps/rsync/IndexView.vue:334 -#: src/views/container/ImageView.vue:394 +#: src/views/apps/rsync/IndexView.vue:334 src/views/container/ImageView.vue:394 #: src/views/database/CreateDatabaseModal.vue:102 #: src/views/database/CreateServerModal.vue:102 #: src/views/database/CreateUserModal.vue:85 #: src/views/database/ServerList.vue:55 #: src/views/database/UpdateServerModal.vue:94 -#: src/views/database/UpdateUserModal.vue:55 -#: src/views/database/UserList.vue:49 -#: src/views/login/IndexView.vue:175 -#: src/views/setting/CreateModal.vue:47 -#: src/views/setting/PasswordModal.vue:34 -#: src/views/ssh/CreateModal.vue:79 -#: src/views/ssh/CreateModal.vue:88 -#: src/views/ssh/UpdateModal.vue:85 +#: src/views/database/UpdateUserModal.vue:55 src/views/database/UserList.vue:49 +#: src/views/login/IndexView.vue:175 src/views/setting/CreateModal.vue:47 +#: src/views/setting/PasswordModal.vue:34 src/views/ssh/CreateModal.vue:79 +#: src/views/ssh/CreateModal.vue:88 src/views/ssh/UpdateModal.vue:85 #: src/views/ssh/UpdateModal.vue:94 msgid "Password" msgstr "密碼" @@ -2346,13 +2203,10 @@ msgid "It is recommended to use the generator to generate a random password" msgstr "建議使用生成器生成隨機密碼" #: src/views/apps/pureftpd/IndexView.vue:233 -#: src/views/apps/rsync/IndexView.vue:46 -#: src/views/apps/rsync/IndexView.vue:264 +#: src/views/apps/rsync/IndexView.vue:46 src/views/apps/rsync/IndexView.vue:264 #: src/views/apps/rsync/IndexView.vue:318 -#: src/views/container/ComposeView.vue:64 -#: src/views/file/PropertyModal.vue:34 -#: src/views/project/ListView.vue:65 -#: src/views/website/CreateModal.vue:227 +#: src/views/container/ComposeView.vue:64 src/views/file/PropertyModal.vue:34 +#: src/views/project/ListView.vue:68 src/views/website/CreateModal.vue:227 #: src/views/website/ListView.vue:41 msgid "Directory" msgstr "目錄" @@ -2362,30 +2216,28 @@ msgid "Enter the directory authorized to the user" msgstr "輸入授權給用戶的目錄" #: src/views/apps/redis/IndexView.vue:55 -msgid "This modifies the Redis main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "這將修改 Redis 主配置文件。如果您不了解每個參數的含義,請不要隨意修改!" +msgid "" +"This modifies the Redis main configuration file. If you do not understand " +"the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"這將修改 Redis 主配置文件。如果您不了解每個參數的含義,請不要隨意修改!" -#: src/views/apps/rsync/IndexView.vue:60 -#: src/views/apps/rsync/IndexView.vue:288 +#: src/views/apps/rsync/IndexView.vue:60 src/views/apps/rsync/IndexView.vue:288 #: src/views/apps/rsync/IndexView.vue:343 #: src/views/database/CreateDatabaseModal.vue:111 #: src/views/database/CreateServerModal.vue:73 #: src/views/database/ServerList.vue:86 #: src/views/database/UpdateServerModal.vue:65 -#: src/views/database/UserList.vue:80 -#: src/views/ssh/CreateModal.vue:64 -#: src/views/ssh/UpdateModal.vue:70 -#: src/views/toolbox/SystemView.vue:139 +#: src/views/database/UserList.vue:80 src/views/ssh/CreateModal.vue:64 +#: src/views/ssh/UpdateModal.vue:70 src/views/toolbox/SystemView.vue:181 msgid "Host" msgstr "主機" -#: src/views/apps/rsync/IndexView.vue:66 -#: src/views/apps/rsync/IndexView.vue:296 +#: src/views/apps/rsync/IndexView.vue:66 src/views/apps/rsync/IndexView.vue:296 #: src/views/apps/rsync/IndexView.vue:351 #: src/views/database/CreateServerModal.vue:111 #: src/views/database/CreateUserModal.vue:116 -#: src/views/database/DatabaseList.vue:56 -#: src/views/database/ServerList.vue:96 +#: src/views/database/DatabaseList.vue:56 src/views/database/ServerList.vue:96 #: src/views/database/UpdateServerModal.vue:103 #: src/views/database/UpdateUserModal.vue:70 #: src/views/database/UserList.vue:113 @@ -2401,8 +2253,7 @@ msgstr "配置" msgid "Are you sure you want to delete module %{ name }?" msgstr "您確定要刪除模組 %{ name } 嗎?" -#: src/views/apps/rsync/IndexView.vue:194 -#: src/views/environment/PHPView.vue:206 +#: src/views/apps/rsync/IndexView.vue:194 src/views/environment/PHPView.vue:206 msgid "Module Management" msgstr "模組管理" @@ -2412,8 +2263,11 @@ msgid "Add Module" msgstr "添加模組" #: src/views/apps/rsync/IndexView.vue:227 -msgid "This modifies the Rsync main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "這將修改 Rsync 主配置文件。如果您不理解每個參數的含義,請不要隨意修改!" +msgid "" +"This modifies the Rsync main configuration file. If you do not understand " +"the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"這將修改 Rsync 主配置文件。如果您不理解每個參數的含義,請不要隨意修改!" #: src/views/apps/rsync/IndexView.vue:261 #: src/views/apps/supervisor/IndexView.vue:378 @@ -2449,8 +2303,7 @@ msgstr "輸入註釋" msgid "Module Configuration" msgstr "模組配置" -#: src/views/apps/s3fs/IndexView.vue:24 -#: src/views/toolbox/DiskView.vue:734 +#: src/views/apps/s3fs/IndexView.vue:24 src/views/toolbox/DiskView.vue:734 msgid "Mount Path" msgstr "掛載路徑" @@ -2458,13 +2311,11 @@ msgstr "掛載路徑" msgid "Are you sure you want to delete mount %{ path }?" msgstr "您確定要刪除掛載 %{ path } 嗎?" -#: src/views/apps/s3fs/IndexView.vue:57 -#: src/views/toolbox/DiskView.vue:354 +#: src/views/apps/s3fs/IndexView.vue:57 src/views/toolbox/DiskView.vue:354 msgid "Unmount" msgstr "卸載" -#: src/views/apps/s3fs/IndexView.vue:103 -#: src/views/apps/s3fs/IndexView.vue:128 +#: src/views/apps/s3fs/IndexView.vue:103 src/views/apps/s3fs/IndexView.vue:128 #: src/views/apps/s3fs/IndexView.vue:132 msgid "Add Mount" msgstr "添加掛載" @@ -2486,7 +2337,9 @@ msgid "Region Endpoint" msgstr "區域端點" #: src/views/apps/s3fs/IndexView.vue:166 -msgid "Enter complete URL of region endpoint (e.g., https://oss-cn-beijing.aliyuncs.com)" +msgid "" +"Enter complete URL of region endpoint (e.g., https://oss-cn-beijing.aliyuncs." +"com)" msgstr "輸入完整的區域端點 URL(例如:https://oss-cn-beijing.aliyuncs.com)" #: src/views/apps/s3fs/IndexView.vue:172 @@ -2523,16 +2376,18 @@ msgid "Add Process" msgstr "添加進程" #: src/views/apps/supervisor/IndexView.vue:334 -msgid "This modifies the Supervisor main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "這將修改 Supervisor 主配置文件。如果您不了解每個參數的含義,請不要隨意修改!" +msgid "" +"This modifies the Supervisor main configuration file. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"這將修改 Supervisor 主配置文件。如果您不了解每個參數的含義,請不要隨意修改!" #: src/views/apps/supervisor/IndexView.vue:350 msgid "Daemon Logs" msgstr "守護進程日誌" #: src/views/apps/supervisor/IndexView.vue:381 -#: src/views/project/CreateModal.vue:204 -#: src/views/project/EditModal.vue:250 +#: src/views/project/CreateModal.vue:208 src/views/project/EditModal.vue:250 msgid "Start Command" msgstr "啟動命令" @@ -2541,8 +2396,7 @@ msgid "Please enter absolute path for files in start command" msgstr "請在啟動命令中輸入文件的絕對路徑" #: src/views/apps/supervisor/IndexView.vue:389 -#: src/views/project/EditModal.vue:214 -#: src/views/toolbox/ProcessView.vue:424 +#: src/views/project/EditModal.vue:214 src/views/toolbox/ProcessView.vue:426 msgid "Working Directory" msgstr "工作目錄" @@ -2571,8 +2425,7 @@ msgstr "進程配置" msgid "Filename" msgstr "檔案名稱" -#: src/views/backup/ListView.vue:48 -#: src/views/database/ServerList.vue:125 +#: src/views/backup/ListView.vue:48 src/views/database/ServerList.vue:125 #: src/views/database/UserList.vue:142 msgid "Update Date" msgstr "更新日期" @@ -2589,27 +2442,22 @@ msgstr "正在恢復……" msgid "Restored successfully" msgstr "恢復成功" -#: src/views/backup/ListView.vue:194 -#: src/views/backup/ListView.vue:224 +#: src/views/backup/ListView.vue:194 src/views/backup/ListView.vue:224 msgid "Create Backup" msgstr "創建備份" -#: src/views/backup/ListView.vue:197 -#: src/views/backup/UploadModal.vue:39 +#: src/views/backup/ListView.vue:197 src/views/backup/UploadModal.vue:39 msgid "Upload Backup" msgstr "上傳備份" -#: src/views/backup/ListView.vue:236 -#: src/views/backup/ListView.vue:273 +#: src/views/backup/ListView.vue:236 src/views/backup/ListView.vue:273 msgid "Select website" msgstr "選擇網站" #: src/views/backup/ListView.vue:239 #: src/views/database/CreateDatabaseModal.vue:71 -#: src/views/database/DatabaseList.vue:34 -#: src/views/task/CreateModal.vue:142 -#: src/views/task/CreateModal.vue:144 -#: src/views/website/CreateModal.vue:191 +#: src/views/database/DatabaseList.vue:34 src/views/task/CreateModal.vue:142 +#: src/views/task/CreateModal.vue:144 src/views/website/CreateModal.vue:191 #: src/views/website/CreateModal.vue:196 msgid "Database Name" msgstr "數據庫名稱" @@ -2621,8 +2469,7 @@ msgstr "數據庫名稱" msgid "Enter database name" msgstr "輸入數據庫名稱" -#: src/views/backup/ListView.vue:247 -#: src/views/task/CreateModal.vue:146 +#: src/views/backup/ListView.vue:247 src/views/task/CreateModal.vue:146 #: src/views/task/CreateModal.vue:149 msgid "Save Directory" msgstr "保存目錄" @@ -2639,43 +2486,35 @@ msgstr "恢復備份" msgid "Upload %{ filename } successfully" msgstr "上傳 %{ filename } 成功" -#: src/views/backup/UploadModal.vue:51 -#: src/views/file/UploadModal.vue:50 +#: src/views/backup/UploadModal.vue:51 src/views/file/UploadModal.vue:50 msgid "Click or drag files to this area to upload" msgstr "點擊或將文件拖到此區域上傳" #: src/views/backup/UploadModal.vue:53 -msgid "For large files, it is recommended to use SFTP or other methods to upload" +msgid "" +"For large files, it is recommended to use SFTP or other methods to upload" msgstr "對於大文件,建議使用 SFTP 或其他方法上傳" -#: src/views/cert/AccountView.vue:44 -#: src/views/cert/AccountView.vue:243 +#: src/views/cert/AccountView.vue:44 src/views/cert/AccountView.vue:243 #: src/views/cert/CreateAccountModal.vue:100 -#: src/views/setting/CreateModal.vue:56 -#: src/views/setting/SettingUser.vue:36 +#: src/views/setting/CreateModal.vue:56 src/views/setting/SettingUser.vue:36 msgid "Email" msgstr "電子郵件" -#: src/views/cert/AccountView.vue:72 -#: src/views/cert/AccountView.vue:235 -#: src/views/cert/CertView.vue:447 -#: src/views/cert/CreateAccountModal.vue:92 +#: src/views/cert/AccountView.vue:72 src/views/cert/AccountView.vue:235 +#: src/views/cert/CertView.vue:447 src/views/cert/CreateAccountModal.vue:92 #: src/views/cert/CreateCertModal.vue:82 msgid "Key Type" msgstr "密鑰類型" -#: src/views/cert/AccountView.vue:101 -#: src/views/cert/CertView.vue:277 -#: src/views/cert/DnsView.vue:85 -#: src/views/database/ServerList.vue:182 -#: src/views/database/UserList.vue:168 -#: src/views/file/PermissionModal.vue:154 +#: src/views/cert/AccountView.vue:101 src/views/cert/CertView.vue:277 +#: src/views/cert/DnsView.vue:85 src/views/database/ServerList.vue:182 +#: src/views/database/UserList.vue:168 src/views/file/PermissionModal.vue:154 #: src/views/setting/TokenModal.vue:69 msgid "Modify" msgstr "修改" -#: src/views/cert/AccountView.vue:109 -#: src/views/cert/CertView.vue:286 +#: src/views/cert/AccountView.vue:109 src/views/cert/CertView.vue:286 #: src/views/cert/DnsView.vue:94 msgid "Deletion successful" msgstr "刪除成功" @@ -2684,15 +2523,12 @@ msgstr "刪除成功" msgid "Are you sure you want to delete the account?" msgstr "您確定要刪除該賬戶嗎?" -#: src/views/cert/AccountView.vue:150 -#: src/views/cert/CreateAccountModal.vue:39 +#: src/views/cert/AccountView.vue:150 src/views/cert/CreateAccountModal.vue:39 msgid "Registering account with CA, please wait patiently" msgstr "正在向 CA 註冊賬戶,請耐心等待" -#: src/views/cert/AccountView.vue:162 -#: src/views/cert/CertView.vue:337 -#: src/views/cert/CertView.vue:354 -#: src/views/cert/DnsView.vue:139 +#: src/views/cert/AccountView.vue:162 src/views/cert/CertView.vue:337 +#: src/views/cert/CertView.vue:354 src/views/cert/DnsView.vue:139 #: src/views/container/ComposeView.vue:287 msgid "Update successful" msgstr "更新成功" @@ -2701,61 +2537,53 @@ msgstr "更新成功" msgid "Modify Account" msgstr "修改帳戶" -#: src/views/cert/AccountView.vue:215 -#: src/views/cert/CreateAccountModal.vue:72 -msgid "Google and SSL.com require obtaining KID and HMAC from their official websites first" +#: src/views/cert/AccountView.vue:215 src/views/cert/CreateAccountModal.vue:72 +msgid "" +"Google and SSL.com require obtaining KID and HMAC from their official " +"websites first" msgstr "Google 和 SSL.com 需要先從其官網獲取 KID 和 HMAC" -#: src/views/cert/AccountView.vue:221 -#: src/views/cert/CreateAccountModal.vue:78 -msgid "Google is not accessible in mainland China, other CAs depend on network conditions, recommend using Let's Encrypt" -msgstr "Google 在中國大陸無法訪問,其他 CA 取決於網絡條件,建議使用 Let's Encrypt" +#: src/views/cert/AccountView.vue:221 src/views/cert/CreateAccountModal.vue:78 +msgid "" +"Google is not accessible in mainland China, other CAs depend on network " +"conditions, recommend using Let's Encrypt" +msgstr "" +"Google 在中國大陸無法訪問,其他 CA 取決於網絡條件,建議使用 Let's Encrypt" -#: src/views/cert/AccountView.vue:227 -#: src/views/cert/CreateAccountModal.vue:84 +#: src/views/cert/AccountView.vue:227 src/views/cert/CreateAccountModal.vue:84 msgid "CA" msgstr "CA" -#: src/views/cert/AccountView.vue:230 -#: src/views/cert/CreateAccountModal.vue:87 +#: src/views/cert/AccountView.vue:230 src/views/cert/CreateAccountModal.vue:87 msgid "Select CA" msgstr "選擇 CA" -#: src/views/cert/AccountView.vue:238 -#: src/views/cert/CertView.vue:450 +#: src/views/cert/AccountView.vue:238 src/views/cert/CertView.vue:450 #: src/views/cert/CreateAccountModal.vue:95 #: src/views/cert/CreateCertModal.vue:85 msgid "Select key type" msgstr "選擇密鑰類型" -#: src/views/cert/AccountView.vue:248 -#: src/views/cert/CreateAccountModal.vue:105 +#: src/views/cert/AccountView.vue:248 src/views/cert/CreateAccountModal.vue:105 msgid "Enter email address" msgstr "輸入電子郵件地址" -#: src/views/cert/AccountView.vue:256 -#: src/views/cert/CreateAccountModal.vue:113 +#: src/views/cert/AccountView.vue:256 src/views/cert/CreateAccountModal.vue:113 msgid "Enter KID" msgstr "輸入 KID" -#: src/views/cert/AccountView.vue:264 -#: src/views/cert/CreateAccountModal.vue:121 +#: src/views/cert/AccountView.vue:264 src/views/cert/CreateAccountModal.vue:121 msgid "Enter HMAC" msgstr "輸入 HMAC" -#: src/views/cert/CertView.vue:63 -#: src/views/cert/CertView.vue:439 -#: src/views/cert/CreateCertModal.vue:74 -#: src/views/cert/ObtainModal.vue:57 -#: src/views/website/CreateModal.vue:135 -#: src/views/website/EditView.vue:393 +#: src/views/cert/CertView.vue:63 src/views/cert/CertView.vue:439 +#: src/views/cert/CreateCertModal.vue:74 src/views/cert/ObtainModal.vue:57 +#: src/views/website/CreateModal.vue:135 src/views/website/EditView.vue:421 msgid "Domain" msgstr "域名" -#: src/views/cert/CertView.vue:108 -#: src/views/file/ToolBar.vue:253 -#: src/views/file/UploadModal.vue:38 -#: src/views/monitor/IndexView.vue:492 +#: src/views/cert/CertView.vue:108 src/views/file/ToolBar.vue:233 +#: src/views/file/UploadModal.vue:38 src/views/monitor/IndexView.vue:492 msgid "Upload" msgstr "上傳" @@ -2763,15 +2591,12 @@ msgstr "上傳" msgid "Associated Account" msgstr "關聯帳戶" -#: src/views/cert/CertView.vue:129 -#: src/views/website/EditView.vue:794 +#: src/views/cert/CertView.vue:129 src/views/website/EditView.vue:824 msgid "Issuer" msgstr "頒發者" -#: src/views/cert/CertView.vue:138 -#: src/views/setting/TokenModal.vue:43 -#: src/views/setting/TokenModal.vue:256 -#: src/views/setting/TokenModal.vue:289 +#: src/views/cert/CertView.vue:138 src/views/setting/TokenModal.vue:43 +#: src/views/setting/TokenModal.vue:256 src/views/setting/TokenModal.vue:289 msgid "Expiration Time" msgstr "過期時間" @@ -2783,19 +2608,12 @@ msgstr "" msgid "Auto Renewal" msgstr "" -#: src/views/cert/CertView.vue:189 -#: src/views/cert/ObtainModal.vue:78 +#: src/views/cert/CertView.vue:189 src/views/cert/ObtainModal.vue:78 msgid "Issue" msgstr "簽發" -#: src/views/cert/CertView.vue:208 -msgid "Deploy" -msgstr "部署" - -#: src/views/cert/CertView.vue:220 -#: src/views/cert/ObtainModal.vue:24 -#: src/views/cert/ObtainModal.vue:81 -#: src/views/website/EditView.vue:141 +#: src/views/cert/CertView.vue:220 src/views/cert/ObtainModal.vue:24 +#: src/views/cert/ObtainModal.vue:81 src/views/website/EditView.vue:142 msgid "Please wait..." msgstr "請稍候……" @@ -2820,59 +2638,53 @@ msgid "Modify Certificate" msgstr "修改證書" #: src/views/cert/CertView.vue:433 -msgid "You can automatically issue and deploy certificates by selecting any website/DNS, or manually enter domain names and set DNS resolution to issue certificates, or fill in deployment scripts to automatically deploy certificates." -msgstr "您可以通過選擇任何網站 / DNS 自動頒發和部署證書,或手動輸入域名並設置 DNS 解析以頒發證書,或填寫部署腳本以自動部署證書。" +msgid "" +"You can automatically issue and deploy certificates by selecting any website/" +"DNS, or manually enter domain names and set DNS resolution to issue " +"certificates, or fill in deployment scripts to automatically deploy " +"certificates." +msgstr "" +"您可以通過選擇任何網站 / DNS 自動頒發和部署證書,或手動輸入域名並設置 DNS 解" +"析以頒發證書,或填寫部署腳本以自動部署證書。" -#: src/views/cert/CertView.vue:458 -#: src/views/cert/CreateCertModal.vue:93 +#: src/views/cert/CertView.vue:458 src/views/cert/CreateCertModal.vue:93 msgid "Select website for certificate deployment" msgstr "選擇要部署憑證的網站" -#: src/views/cert/CertView.vue:466 -#: src/views/cert/CreateCertModal.vue:98 +#: src/views/cert/CertView.vue:466 src/views/cert/CreateCertModal.vue:98 #: src/views/cert/IndexView.vue:97 msgid "Account" msgstr "帳戶" -#: src/views/cert/CertView.vue:470 -#: src/views/cert/CreateCertModal.vue:101 +#: src/views/cert/CertView.vue:470 src/views/cert/CreateCertModal.vue:101 msgid "Select account for certificate issuance" msgstr "選擇用於憑證頒發的帳戶" -#: src/views/cert/CertView.vue:475 -#: src/views/cert/CreateCertModal.vue:106 -#: src/views/cert/CreateDnsModal.vue:59 -#: src/views/cert/DnsView.vue:196 +#: src/views/cert/CertView.vue:475 src/views/cert/CreateCertModal.vue:106 +#: src/views/cert/CreateDnsModal.vue:59 src/views/cert/DnsView.vue:196 #: src/views/cert/IndexView.vue:98 msgid "DNS" msgstr "DNS" -#: src/views/cert/CertView.vue:478 -#: src/views/cert/CreateCertModal.vue:109 +#: src/views/cert/CertView.vue:478 src/views/cert/CreateCertModal.vue:109 msgid "Select DNS for certificate issuance" msgstr "選擇用於證書頒發的 DNS" -#: src/views/cert/CertView.vue:491 -#: src/views/cert/UploadCertModal.vue:42 -#: src/views/website/EditView.vue:867 +#: src/views/cert/CertView.vue:491 src/views/cert/UploadCertModal.vue:42 +#: src/views/website/EditView.vue:897 msgid "Enter the content of the PEM certificate file" msgstr "輸入 PEM 證書文件的內容" -#: src/views/cert/CertView.vue:498 -#: src/views/cert/CertView.vue:566 -#: src/views/cert/UploadCertModal.vue:46 -#: src/views/setting/SettingSafe.vue:297 -#: src/views/ssh/CreateModal.vue:80 -#: src/views/ssh/CreateModal.vue:91 -#: src/views/ssh/UpdateModal.vue:86 -#: src/views/ssh/UpdateModal.vue:97 -#: src/views/website/EditView.vue:871 +#: src/views/cert/CertView.vue:498 src/views/cert/CertView.vue:566 +#: src/views/cert/UploadCertModal.vue:46 src/views/setting/SettingSafe.vue:297 +#: src/views/ssh/CreateModal.vue:80 src/views/ssh/CreateModal.vue:91 +#: src/views/ssh/UpdateModal.vue:86 src/views/ssh/UpdateModal.vue:97 +#: src/views/website/EditView.vue:901 msgid "Private Key" msgstr "私鑰" -#: src/views/cert/CertView.vue:503 -#: src/views/cert/UploadCertModal.vue:50 -#: src/views/website/EditView.vue:875 +#: src/views/cert/CertView.vue:503 src/views/cert/UploadCertModal.vue:50 +#: src/views/website/EditView.vue:905 msgid "Enter the content of the KEY private key file" msgstr "輸入 KEY 私鑰文件的內容" @@ -2881,7 +2693,9 @@ msgid "Deployment Script" msgstr "部署腳本" #: src/views/cert/CertView.vue:516 -msgid "The {cert} and {key} in the script will be replaced with the certificate and private key content" +msgid "" +"The {cert} and {key} in the script will be replaced with the certificate and " +"private key content" msgstr "腳本中的 {cert} 和 {key} 將被替換為證書和私鑰內容" #: src/views/cert/CertView.vue:530 @@ -2896,22 +2710,24 @@ msgstr "選擇要部署證書的網站" msgid "View Certificate" msgstr "查看證書" -#: src/views/cert/CreateAccountModal.vue:64 -#: src/views/cert/IndexView.vue:110 +#: src/views/cert/CreateAccountModal.vue:64 src/views/cert/IndexView.vue:110 msgid "Create Account" msgstr "創建賬戶" -#: src/views/cert/CreateCertModal.vue:59 -#: src/views/cert/IndexView.vue:107 +#: src/views/cert/CreateCertModal.vue:59 src/views/cert/IndexView.vue:107 msgid "Create Certificate" msgstr "建立憑證" #: src/views/cert/CreateCertModal.vue:68 -msgid "You can automatically issue and deploy certificates by selecting either Website or DNS, or you can manually enter domain names and set up DNS resolution to issue certificates" -msgstr "您可以通過選擇網站或 DNS 來自動頒發和部署憑證,或者手動輸入域名並設置 DNS 解析以頒發憑證" +msgid "" +"You can automatically issue and deploy certificates by selecting either " +"Website or DNS, or you can manually enter domain names and set up DNS " +"resolution to issue certificates" +msgstr "" +"您可以通過選擇網站或 DNS 來自動頒發和部署憑證,或者手動輸入域名並設置 DNS 解" +"析以頒發憑證" -#: src/views/cert/CreateDnsModal.vue:44 -#: src/views/cert/IndexView.vue:113 +#: src/views/cert/CreateDnsModal.vue:44 src/views/cert/IndexView.vue:113 msgid "Create DNS" msgstr "創建 DNS" @@ -2923,88 +2739,71 @@ msgstr "備註名稱" msgid "Enter comment name" msgstr "輸入備註名稱" -#: src/views/cert/CreateDnsModal.vue:62 -#: src/views/cert/DnsView.vue:199 +#: src/views/cert/CreateDnsModal.vue:62 src/views/cert/DnsView.vue:199 msgid "Select DNS" msgstr "選擇 DNS" -#: src/views/cert/CreateDnsModal.vue:71 -#: src/views/cert/DnsView.vue:208 +#: src/views/cert/CreateDnsModal.vue:71 src/views/cert/DnsView.vue:208 msgid "Enter Aliyun Access Key" msgstr "輸入阿里雲 Access Key" -#: src/views/cert/CreateDnsModal.vue:78 -#: src/views/cert/DnsView.vue:215 +#: src/views/cert/CreateDnsModal.vue:78 src/views/cert/DnsView.vue:215 msgid "Enter Aliyun Secret Key" msgstr "輸入阿里雲 Secret Key" -#: src/views/cert/CreateDnsModal.vue:85 -#: src/views/cert/DnsView.vue:222 +#: src/views/cert/CreateDnsModal.vue:85 src/views/cert/DnsView.vue:222 msgid "Enter Tencent Cloud SecretId" msgstr "輸入騰訊雲 SecretId" -#: src/views/cert/CreateDnsModal.vue:92 -#: src/views/cert/DnsView.vue:229 +#: src/views/cert/CreateDnsModal.vue:92 src/views/cert/DnsView.vue:229 msgid "Enter Tencent Cloud SecretKey" msgstr "輸入騰訊雲 SecretKey" -#: src/views/cert/CreateDnsModal.vue:99 -#: src/views/cert/DnsView.vue:236 +#: src/views/cert/CreateDnsModal.vue:99 src/views/cert/DnsView.vue:236 msgid "Enter Huawei Cloud AccessKeyId" msgstr "輸入華為雲 AccessKeyId" -#: src/views/cert/CreateDnsModal.vue:106 -#: src/views/cert/DnsView.vue:243 +#: src/views/cert/CreateDnsModal.vue:106 src/views/cert/DnsView.vue:243 msgid "Enter Huawei Cloud SecretAccessKey" msgstr "輸入華為雲 SecretAccessKey" -#: src/views/cert/CreateDnsModal.vue:113 -#: src/views/cert/DnsView.vue:250 +#: src/views/cert/CreateDnsModal.vue:113 src/views/cert/DnsView.vue:250 msgid "Enter West.cn Username" msgstr "輸入西部數碼用戶名" -#: src/views/cert/CreateDnsModal.vue:120 -#: src/views/cert/DnsView.vue:257 +#: src/views/cert/CreateDnsModal.vue:120 src/views/cert/DnsView.vue:257 msgid "Enter West.cn API Password" msgstr "輸入西部數碼 API 密碼" -#: src/views/cert/CreateDnsModal.vue:127 -#: src/views/cert/DnsView.vue:264 +#: src/views/cert/CreateDnsModal.vue:127 src/views/cert/DnsView.vue:264 msgid "Enter Cloudflare API Key" msgstr "輸入 Cloudflare API 金鑰" -#: src/views/cert/CreateDnsModal.vue:134 -#: src/views/cert/DnsView.vue:271 +#: src/views/cert/CreateDnsModal.vue:134 src/views/cert/DnsView.vue:271 msgid "Enter G-Core API Key" msgstr "輸入 G-Core API 金鑰" -#: src/views/cert/CreateDnsModal.vue:141 -#: src/views/cert/DnsView.vue:278 +#: src/views/cert/CreateDnsModal.vue:141 src/views/cert/DnsView.vue:278 msgid "Enter Porkbun API Key" msgstr "輸入 Porkbun API 金鑰" -#: src/views/cert/CreateDnsModal.vue:148 -#: src/views/cert/DnsView.vue:285 +#: src/views/cert/CreateDnsModal.vue:148 src/views/cert/DnsView.vue:285 msgid "Enter Porkbun Secret Key" msgstr "輸入 Porkbun 密鑰" -#: src/views/cert/CreateDnsModal.vue:155 -#: src/views/cert/DnsView.vue:292 +#: src/views/cert/CreateDnsModal.vue:155 src/views/cert/DnsView.vue:292 msgid "Enter NameSilo API Token" msgstr "輸入 NameSilo API 令牌" -#: src/views/cert/CreateDnsModal.vue:162 -#: src/views/cert/DnsView.vue:299 +#: src/views/cert/CreateDnsModal.vue:162 src/views/cert/DnsView.vue:299 msgid "Enter ClouDNS Auth ID (use Sub Auth ID by adding sub-prefix)" msgstr "輸入 ClouDNS 認證 ID(使用子認證 ID 時添加 sub- 前綴)" -#: src/views/cert/CreateDnsModal.vue:169 -#: src/views/cert/DnsView.vue:306 +#: src/views/cert/CreateDnsModal.vue:169 src/views/cert/DnsView.vue:306 msgid "Enter ClouDNS Auth Password" msgstr "輸入 ClouDNS 認證密碼" -#: src/views/cert/DnsView.vue:31 -#: src/views/cert/DnsView.vue:189 +#: src/views/cert/DnsView.vue:31 src/views/cert/DnsView.vue:189 msgid "Note Name" msgstr "備註名稱" @@ -3020,8 +2819,7 @@ msgstr "修改 DNS" msgid "Enter note name" msgstr "輸入備註名稱" -#: src/views/cert/IndexView.vue:104 -#: src/views/cert/UploadCertModal.vue:30 +#: src/views/cert/IndexView.vue:104 src/views/cert/UploadCertModal.vue:30 msgid "Upload Certificate" msgstr "上傳證書" @@ -3037,14 +2835,15 @@ msgstr "手動" msgid "Self-signed" msgstr "自簽名" -#: src/views/cert/ObtainModal.vue:33 -#: src/views/cert/ObtainModal.vue:89 +#: src/views/cert/ObtainModal.vue:33 src/views/cert/ObtainModal.vue:89 #: src/views/cert/ObtainModal.vue:107 msgid "Issuance successful" msgstr "簽發成功" #: src/views/cert/ObtainModal.vue:42 -msgid "Please set up DNS resolution for the domain first, then continue with the issuance" +msgid "" +"Please set up DNS resolution for the domain first, then continue with the " +"issuance" msgstr "請先為域名設置 DNS 解析,然後繼續簽發" #: src/views/cert/ObtainModal.vue:48 @@ -3067,15 +2866,11 @@ msgstr "簽發證書" msgid "Issuance Mode" msgstr "簽發模式" -#: src/views/container/ComposeView.vue:91 -#: src/views/container/ImageView.vue:81 +#: src/views/container/ComposeView.vue:91 src/views/container/ImageView.vue:81 #: src/views/container/NetworkView.vue:100 -#: src/views/container/VolumeView.vue:54 -#: src/views/setting/SettingUser.vue:76 -#: src/views/setting/TokenModal.vue:34 -#: src/views/task/CronView.vue:79 -#: src/views/task/TaskView.vue:37 -#: src/views/toolbox/WebHookView.vue:121 +#: src/views/container/VolumeView.vue:54 src/views/setting/SettingUser.vue:76 +#: src/views/setting/TokenModal.vue:34 src/views/task/CronView.vue:79 +#: src/views/task/TaskView.vue:37 src/views/toolbox/WebHookView.vue:121 msgid "Creation Time" msgstr "創建時間" @@ -3120,13 +2915,8 @@ msgstr "創建編排" msgid "Are you sure you want to delete the selected composes?" msgstr "" -#: src/views/container/ComposeView.vue:361 -msgid "Compose Name" -msgstr "編排名稱" - #: src/views/container/ComposeView.vue:364 -#: src/views/container/ComposeView.vue:390 -#: src/views/container/IndexView.vue:23 +#: src/views/container/ComposeView.vue:390 src/views/container/IndexView.vue:23 msgid "Compose" msgstr "編排" @@ -3144,10 +2934,6 @@ msgstr "變數值" msgid "Edit Compose" msgstr "編輯編排" -#: src/views/container/ComposeView.vue:408 -msgid "Starting Compose" -msgstr "" - #: src/views/container/ContainerCreate.vue:52 msgid "Always" msgstr "總是" @@ -3178,12 +2964,6 @@ msgstr "" msgid "Create Container" msgstr "創建容器" -#: src/views/container/ContainerCreate.vue:191 -#: src/views/project/EditModal.vue:177 -#: src/views/website/EditView.vue:434 -msgid "Basic Settings" -msgstr "基本設置" - #: src/views/container/ContainerCreate.vue:193 #: src/views/container/ContainerView.vue:43 msgid "Container Name" @@ -3203,10 +2983,8 @@ msgstr "鏡像" msgid "e.g., nginx:latest, mysql:8.0" msgstr "" -#: src/views/container/ContainerCreate.vue:211 -#: src/views/home/IndexView.vue:147 -#: src/views/home/IndexView.vue:834 -#: src/views/monitor/IndexView.vue:851 +#: src/views/container/ContainerCreate.vue:211 src/views/home/IndexView.vue:147 +#: src/views/home/IndexView.vue:834 src/views/monitor/IndexView.vue:851 msgid "Network" msgstr "網絡" @@ -3281,7 +3059,9 @@ msgid "Container End" msgstr "" #: src/views/container/ContainerCreate.vue:329 -msgid "All exposed ports in the image will be automatically mapped to random host ports." +msgid "" +"All exposed ports in the image will be automatically mapped to random host " +"ports." msgstr "" #: src/views/container/ContainerCreate.vue:338 @@ -3302,7 +3082,9 @@ msgid "Container path" msgstr "" #: src/views/container/ContainerCreate.vue:371 -msgid "Mount host directories or volumes into the container. Use absolute paths for host directories." +msgid "" +"Mount host directories or volumes into the container. Use absolute paths for " +"host directories." msgstr "" #: src/views/container/ContainerCreate.vue:380 @@ -3311,7 +3093,9 @@ msgid "Resource Limits" msgstr "" #: src/views/container/ContainerCreate.vue:384 -msgid "Set resource limits to prevent the container from consuming too many system resources. Set to 0 for no limit." +msgid "" +"Set resource limits to prevent the container from consuming too many system " +"resources. Set to 0 for no limit." msgstr "" #: src/views/container/ContainerCreate.vue:392 @@ -3337,13 +3121,10 @@ msgstr "CPU 份額" msgid "Resource Limit Description" msgstr "" -#: src/views/container/ContainerCreate.vue:428 -#: src/views/home/IndexView.vue:565 -#: src/views/monitor/IndexView.vue:435 -#: src/views/monitor/IndexView.vue:451 -#: src/views/monitor/IndexView.vue:728 -#: src/views/toolbox/BenchmarkView.vue:177 -#: src/views/toolbox/ProcessView.vue:153 +#: src/views/container/ContainerCreate.vue:428 src/views/home/IndexView.vue:565 +#: src/views/monitor/IndexView.vue:435 src/views/monitor/IndexView.vue:451 +#: src/views/monitor/IndexView.vue:728 src/views/toolbox/BenchmarkView.vue:177 +#: src/views/toolbox/ProcessView.vue:155 msgid "Memory" msgstr "記憶體" @@ -3352,11 +3133,15 @@ msgid "Maximum memory the container can use, in MB. 0 means no limit." msgstr "" #: src/views/container/ContainerCreate.vue:433 -msgid "Number of CPU cores the container can use. 0.5 means half a core, 2 means 2 cores." +msgid "" +"Number of CPU cores the container can use. 0.5 means half a core, 2 means 2 " +"cores." msgstr "" #: src/views/container/ContainerCreate.vue:440 -msgid "Relative CPU weight. Default is 1024. Higher values get more CPU time when competing." +msgid "" +"Relative CPU weight. Default is 1024. Higher values get more CPU time when " +"competing." msgstr "" #: src/views/container/ContainerCreate.vue:452 @@ -3438,8 +3223,7 @@ msgstr "暫停" msgid "Resume" msgstr "恢復" -#: src/views/container/ContainerView.vue:231 -#: src/views/file/ListView.vue:1366 +#: src/views/container/ContainerView.vue:231 src/views/file/ListView.vue:1493 msgid "More" msgstr "更多" @@ -3534,10 +3318,8 @@ msgstr "容器數量" #: src/views/container/ImageView.vue:105 #: src/views/container/NetworkView.vue:124 -#: src/views/container/VolumeView.vue:78 -#: src/views/firewall/ForwardView.vue:92 -#: src/views/firewall/IpRuleView.vue:134 -#: src/views/firewall/RuleView.vue:171 +#: src/views/container/VolumeView.vue:78 src/views/firewall/ForwardView.vue:92 +#: src/views/firewall/IpRuleView.vue:134 src/views/firewall/RuleView.vue:171 #: src/views/task/TaskView.vue:86 msgid "Are you sure you want to delete?" msgstr "您確定要刪除嗎?" @@ -3546,8 +3328,7 @@ msgstr "您確定要刪除嗎?" msgid "Pull successful" msgstr "拉取成功" -#: src/views/container/ImageView.vue:268 -#: src/views/container/ImageView.vue:306 +#: src/views/container/ImageView.vue:268 src/views/container/ImageView.vue:306 msgid "Pull Image" msgstr "拉取鏡像" @@ -3592,13 +3373,12 @@ msgstr "網絡" #: src/views/container/NetworkView.vue:52 #: src/views/container/NetworkView.vue:249 -#: src/views/container/VolumeView.vue:33 -#: src/views/container/VolumeView.vue:203 +#: src/views/container/VolumeView.vue:33 src/views/container/VolumeView.vue:203 msgid "Driver" msgstr "驅動程式" -#: src/views/container/NetworkView.vue:59 -#: src/views/container/VolumeView.vue:40 +#: src/views/container/NetworkView.vue:59 src/views/container/VolumeView.vue:40 +#: src/views/website/EditView.vue:959 msgid "Scope" msgstr "範圍" @@ -3677,10 +3457,8 @@ msgstr "選項名稱" msgid "Option Value" msgstr "選項值" -#: src/views/container/VolumeView.vue:47 -#: src/views/home/IndexView.vue:680 -#: src/views/toolbox/DiskView.vue:324 -#: src/views/toolbox/DiskView.vue:827 +#: src/views/container/VolumeView.vue:47 src/views/home/IndexView.vue:680 +#: src/views/toolbox/DiskView.vue:324 src/views/toolbox/DiskView.vue:827 msgid "Mount Point" msgstr "掛載點" @@ -3765,12 +3543,9 @@ msgstr "輸入數據庫伺服器主機" #: src/views/database/CreateServerModal.vue:84 #: src/views/database/UpdateServerModal.vue:76 -#: src/views/firewall/ForwardView.vue:31 -#: src/views/firewall/RuleView.vue:48 -#: src/views/setting/SettingBase.vue:110 -#: src/views/ssh/CreateModal.vue:70 -#: src/views/ssh/UpdateModal.vue:76 -#: src/views/website/CreateModal.vue:146 +#: src/views/firewall/ForwardView.vue:31 src/views/firewall/RuleView.vue:48 +#: src/views/setting/SettingBase.vue:123 src/views/ssh/CreateModal.vue:70 +#: src/views/ssh/UpdateModal.vue:76 src/views/website/CreateModal.vue:146 msgid "Port" msgstr "端口" @@ -3796,7 +3571,8 @@ msgstr "輸入數據庫伺服器備註" #: src/views/database/CreateUserModal.vue:65 #: src/views/database/UpdateUserModal.vue:51 -msgid "If the privilege databases does not exist, it will be created automatically." +msgid "" +"If the privilege databases does not exist, it will be created automatically." msgstr "如果特權數據庫不存在,將會自動創建。" #: src/views/database/CreateUserModal.vue:94 @@ -3804,8 +3580,7 @@ msgid "Host (MySQL only)" msgstr "主機(僅限MySQL)" #: src/views/database/CreateUserModal.vue:110 -#: src/views/database/UpdateUserModal.vue:64 -#: src/views/database/UserList.vue:98 +#: src/views/database/UpdateUserModal.vue:64 src/views/database/UserList.vue:98 msgid "Privileges" msgstr "權限" @@ -3822,23 +3597,22 @@ msgstr "" msgid "Are you sure you want to delete this database?" msgstr "您確定要刪除這個數據庫嗎?" -#: src/views/database/ServerList.vue:120 -#: src/views/database/UserList.vue:137 +#: src/views/database/ServerList.vue:120 src/views/database/UserList.vue:137 msgid "Valid" msgstr "有效" -#: src/views/database/ServerList.vue:120 -#: src/views/database/UserList.vue:137 +#: src/views/database/ServerList.vue:120 src/views/database/UserList.vue:137 msgid "Invalid" msgstr "無效" -#: src/views/database/ServerList.vue:146 -#: src/views/toolbox/SystemView.vue:81 +#: src/views/database/ServerList.vue:146 src/views/toolbox/SystemView.vue:92 msgid "Synchronized successfully" msgstr "同步成功" #: src/views/database/ServerList.vue:152 -msgid "Are you sure you want to synchronize database users (excluding password) to the panel?" +msgid "" +"Are you sure you want to synchronize database users (excluding password) to " +"the panel?" msgstr "您確定要將數據庫用戶(不包括密碼)同步到面板嗎?" #: src/views/database/ServerList.vue:164 @@ -3846,7 +3620,9 @@ msgid "Sync" msgstr "同步" #: src/views/database/ServerList.vue:192 -msgid "Built-in servers cannot be deleted. If you need to delete them, please uninstall the corresponding app" +msgid "" +"Built-in servers cannot be deleted. If you need to delete them, please " +"uninstall the corresponding app" msgstr "內置服務器無法刪除。如果需要刪除它們,請卸載相應的應用" #: src/views/database/ServerList.vue:203 @@ -3885,8 +3661,7 @@ msgstr "您確定要卸載 %{ name } 嗎?" msgid "Set successfully" msgstr "設置成功" -#: src/views/environment/PHPView.vue:178 -#: src/views/environment/PHPView.vue:184 +#: src/views/environment/PHPView.vue:178 src/views/environment/PHPView.vue:184 msgid "Task submitted, please check progress in background tasks" msgstr "任務已提交,請在後台任務中查看進度" @@ -3899,16 +3674,24 @@ msgid "View PHPInfo" msgstr "" #: src/views/environment/PHPView.vue:223 -msgid "This modifies the PHP %{ version } main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "這將修改 PHP %{ version } 的主配置文件。如果您不了解每個參數的含義,請不要隨意修改!" +msgid "" +"This modifies the PHP %{ version } main configuration file. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"這將修改 PHP %{ version } 的主配置文件。如果您不了解每個參數的含義,請不要隨" +"意修改!" #: src/views/environment/PHPView.vue:237 msgid "FPM Configuration" msgstr "FPM 配置" #: src/views/environment/PHPView.vue:241 -msgid "This modifies the PHP %{ version } FPM configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" -msgstr "這將修改 PHP %{ version } 的 FPM 配置文件。如果您不了解每個參數的含義,請不要隨意修改!" +msgid "" +"This modifies the PHP %{ version } FPM configuration file. If you do not " +"understand the meaning of each parameter, please do not modify it randomly!" +msgstr "" +"這將修改 PHP %{ version } 的 FPM 配置文件。如果您不了解每個參數的含義,請不要" +"隨意修改!" #: src/views/environment/PHPView.vue:294 msgid "PHPInfo" @@ -3930,13 +3713,10 @@ msgstr "壓縮中……" msgid "Compressed successfully" msgstr "壓縮成功" -#: src/views/file/CompressModal.vue:73 -#: src/views/file/CompressModal.vue:105 -#: src/views/file/ListView.vue:183 -#: src/views/file/ListView.vue:219 -#: src/views/file/ListView.vue:817 -#: src/views/file/ListView.vue:1329 -#: src/views/file/ToolBar.vue:288 +#: src/views/file/CompressModal.vue:73 src/views/file/CompressModal.vue:105 +#: src/views/file/ListView.vue:261 src/views/file/ListView.vue:297 +#: src/views/file/ListView.vue:895 src/views/file/ListView.vue:1456 +#: src/views/file/ToolBar.vue:268 msgid "Compress" msgstr "壓縮" @@ -3956,161 +3736,142 @@ msgstr "格式" msgid "File Editor" msgstr "" -#: src/views/file/ListView.vue:160 -#: src/views/file/ListView.vue:585 -#: src/views/file/ListView.vue:653 -#: src/views/file/ListView.vue:701 -#: src/views/file/ToolBar.vue:134 +#: src/views/file/ListView.vue:238 src/views/file/ListView.vue:663 +#: src/views/file/ListView.vue:731 src/views/file/ListView.vue:779 +#: src/views/file/ToolBar.vue:114 msgid "Warning" msgstr "警告" -#: src/views/file/ListView.vue:161 -msgid "%{ name } has immutable attribute. The panel will temporarily remove the immutable attribute, perform the operation, and then restore the immutable attribute. Do you want to continue?" +#: src/views/file/ListView.vue:239 +msgid "" +"%{ name } has immutable attribute. The panel will temporarily remove the " +"immutable attribute, perform the operation, and then restore the immutable " +"attribute. Do you want to continue?" msgstr "" -#: src/views/file/ListView.vue:165 +#: src/views/file/ListView.vue:243 msgid "Continue" msgstr "" -#: src/views/file/ListView.vue:182 -#: src/views/file/ListView.vue:216 -#: src/views/file/ListView.vue:815 -#: src/views/file/ToolBar.vue:287 +#: src/views/file/ListView.vue:260 src/views/file/ListView.vue:294 +#: src/views/file/ListView.vue:893 src/views/file/ToolBar.vue:267 msgid "Move" msgstr "移動" -#: src/views/file/ListView.vue:184 -#: src/views/file/ListView.vue:217 -#: src/views/file/ListView.vue:816 -#: src/views/file/ListView.vue:1197 -#: src/views/file/PermissionModal.vue:144 -#: src/views/file/PropertyModal.vue:42 -#: src/views/file/ToolBar.vue:289 +#: src/views/file/ListView.vue:262 src/views/file/ListView.vue:295 +#: src/views/file/ListView.vue:894 src/views/file/ListView.vue:1277 +#: src/views/file/PermissionModal.vue:144 src/views/file/PropertyModal.vue:42 +#: src/views/file/ToolBar.vue:269 msgid "Permission" msgstr "權限" -#: src/views/file/ListView.vue:189 -#: src/views/file/ListView.vue:239 -#: src/views/file/ToolBar.vue:283 +#: src/views/file/ListView.vue:267 src/views/file/ListView.vue:317 +#: src/views/file/ToolBar.vue:263 msgid "Paste" msgstr "貼上" -#: src/views/file/ListView.vue:201 -#: src/views/file/ListView.vue:1316 +#: src/views/file/ListView.vue:279 src/views/file/ListView.vue:1443 msgid "Open" msgstr "開啟" -#: src/views/file/ListView.vue:203 -#: src/views/file/ListView.vue:1335 +#: src/views/file/ListView.vue:281 src/views/file/ListView.vue:1462 msgid "Preview" msgstr "預覽" -#: src/views/file/ListView.vue:205 -#: src/views/file/ListView.vue:223 -#: src/views/file/ListView.vue:822 -#: src/views/file/ListView.vue:1442 +#: src/views/file/ListView.vue:283 src/views/file/ListView.vue:301 +#: src/views/file/ListView.vue:900 src/views/file/ListView.vue:1569 msgid "Uncompress" msgstr "解壓縮" -#: src/views/file/ListView.vue:234 -#: src/views/file/ListView.vue:832 +#: src/views/file/ListView.vue:312 src/views/file/ListView.vue:910 #: src/views/file/PropertyModal.vue:11 msgid "Properties" msgstr "" -#: src/views/file/ListView.vue:496 -#: src/views/file/ToolBar.vue:83 -#: src/views/file/ToolBar.vue:100 +#: src/views/file/ListView.vue:574 src/views/file/ToolBar.vue:63 +#: src/views/file/ToolBar.vue:80 msgid "Marked successfully, please navigate to the destination path to paste" msgstr "標記成功,請導航到目標路徑進行粘貼" -#: src/views/file/ListView.vue:586 +#: src/views/file/ListView.vue:664 msgid "There are items with the same name. Do you want to overwrite?" msgstr "存在同名項目。您要覆蓋嗎?" -#: src/views/file/ListView.vue:587 -#: src/views/file/ListView.vue:711 -#: src/views/file/ToolBar.vue:144 +#: src/views/file/ListView.vue:665 src/views/file/ListView.vue:789 +#: src/views/file/ToolBar.vue:124 msgid "Overwrite" msgstr "覆蓋" -#: src/views/file/ListView.vue:594 -#: src/views/file/ListView.vue:613 +#: src/views/file/ListView.vue:672 src/views/file/ListView.vue:691 msgid "Renamed %{ source } to %{ target } successfully" msgstr "成功將 %{ source } 重命名為 %{ target }" -#: src/views/file/ListView.vue:649 +#: src/views/file/ListView.vue:727 msgid "Some files are immutable and cannot be deleted" msgstr "" -#: src/views/file/ListView.vue:654 +#: src/views/file/ListView.vue:732 msgid "Are you sure you want to delete %{count} items?" msgstr "" -#: src/views/file/ListView.vue:673 +#: src/views/file/ListView.vue:751 msgid "Path copied to clipboard" msgstr "" -#: src/views/file/ListView.vue:680 -#: src/views/file/ToolBar.vue:110 +#: src/views/file/ListView.vue:758 src/views/file/ToolBar.vue:90 msgid "Please mark the files/folders to copy or move first" msgstr "請先標記要複製或移動的文件/文件夾" -#: src/views/file/ListView.vue:702 -#: src/views/file/ToolBar.vue:135 +#: src/views/file/ListView.vue:780 src/views/file/ToolBar.vue:115 msgid "There are items with the same name %{ items } Do you want to overwrite?" msgstr "" -#: src/views/file/ListView.vue:724 -#: src/views/file/ListView.vue:744 -#: src/views/file/ToolBar.vue:157 -#: src/views/file/ToolBar.vue:177 +#: src/views/file/ListView.vue:802 src/views/file/ListView.vue:822 +#: src/views/file/ToolBar.vue:137 src/views/file/ToolBar.vue:157 msgid "Moved successfully" msgstr "移動成功" -#: src/views/file/ListView.vue:730 -#: src/views/file/ToolBar.vue:163 +#: src/views/file/ListView.vue:808 src/views/file/ToolBar.vue:143 msgid "Canceled" msgstr "已取消" -#: src/views/file/ListView.vue:825 +#: src/views/file/ListView.vue:903 msgid "Copy Path" msgstr "" -#: src/views/file/ListView.vue:1063 +#: src/views/file/ListView.vue:1141 msgid "Uncompressing..." msgstr "解壓中……" -#: src/views/file/ListView.vue:1070 +#: src/views/file/ListView.vue:1148 msgid "Uncompressed successfully" msgstr "解壓成功" -#: src/views/file/ListView.vue:1377 +#: src/views/file/ListView.vue:1504 msgid "No files" msgstr "" -#: src/views/file/ListView.vue:1387 +#: src/views/file/ListView.vue:1514 msgid "%{count} item(s) selected" msgstr "" -#: src/views/file/ListView.vue:1390 +#: src/views/file/ListView.vue:1517 msgid "Clear" msgstr "" -#: src/views/file/ListView.vue:1395 +#: src/views/file/ListView.vue:1522 msgid "%{count} item(s)" msgstr "" -#: src/views/file/ListView.vue:1430 +#: src/views/file/ListView.vue:1557 msgid "Uncompress - %{ file }" msgstr "解壓 - %{ file }" -#: src/views/file/ListView.vue:1438 +#: src/views/file/ListView.vue:1565 msgid "Uncompress to" msgstr "解壓到" -#: src/views/file/ListView.vue:1450 -#: src/views/file/ToolBar.vue:345 +#: src/views/file/ListView.vue:1577 src/views/file/ToolBar.vue:307 msgid "Terminal - %{ path }" msgstr "" @@ -4143,27 +3904,22 @@ msgid "Modify permissions - %{ path }" msgstr "修改權限 - %{ path }" #: src/views/file/PermissionModal.vue:117 -#: src/views/file/PermissionModal.vue:147 -#: src/views/file/PropertyModal.vue:45 +#: src/views/file/PermissionModal.vue:147 src/views/file/PropertyModal.vue:45 msgid "Owner" msgstr "擁有者" #: src/views/file/PermissionModal.vue:119 #: src/views/file/PermissionModal.vue:128 -#: src/views/file/PermissionModal.vue:137 -#: src/views/home/IndexView.vue:171 -#: src/views/home/IndexView.vue:187 -#: src/views/home/IndexView.vue:879 +#: src/views/file/PermissionModal.vue:137 src/views/home/IndexView.vue:171 +#: src/views/home/IndexView.vue:187 src/views/home/IndexView.vue:879 #: src/views/monitor/IndexView.vue:535 msgid "Read" msgstr "讀取" #: src/views/file/PermissionModal.vue:120 #: src/views/file/PermissionModal.vue:129 -#: src/views/file/PermissionModal.vue:138 -#: src/views/home/IndexView.vue:171 -#: src/views/home/IndexView.vue:211 -#: src/views/home/IndexView.vue:880 +#: src/views/file/PermissionModal.vue:138 src/views/home/IndexView.vue:171 +#: src/views/home/IndexView.vue:211 src/views/home/IndexView.vue:880 #: src/views/monitor/IndexView.vue:544 msgid "Write" msgstr "寫入" @@ -4202,44 +3958,43 @@ msgstr "" msgid "Immutable" msgstr "" -#: src/views/file/ToolBar.vue:66 +#: src/views/file/ToolBar.vue:46 msgid "Download task created successfully" msgstr "下載任務創建成功" -#: src/views/file/ToolBar.vue:72 +#: src/views/file/ToolBar.vue:52 msgid "Please select files/folders to copy" msgstr "請選擇要複製的文件/文件夾" -#: src/views/file/ToolBar.vue:89 +#: src/views/file/ToolBar.vue:69 msgid "Please select files/folders to move" msgstr "請選擇要移動的文件/文件夾" -#: src/views/file/ToolBar.vue:229 +#: src/views/file/ToolBar.vue:209 msgid "Sort" msgstr "" -#: src/views/file/ToolBar.vue:254 -#: src/views/file/ToolBar.vue:323 +#: src/views/file/ToolBar.vue:234 src/views/file/ToolBar.vue:285 msgid "Remote Download" msgstr "遠程下載" -#: src/views/file/ToolBar.vue:273 +#: src/views/file/ToolBar.vue:253 msgid "Switch to grid view" msgstr "" -#: src/views/file/ToolBar.vue:274 +#: src/views/file/ToolBar.vue:254 msgid "Switch to list view" msgstr "" -#: src/views/file/ToolBar.vue:296 +#: src/views/file/ToolBar.vue:276 msgid "Are you sure you want to delete in bulk?" msgstr "您確定要批量刪除嗎?" -#: src/views/file/ToolBar.vue:331 +#: src/views/file/ToolBar.vue:293 msgid "Download URL" msgstr "下載 URL" -#: src/views/file/ToolBar.vue:334 +#: src/views/file/ToolBar.vue:296 msgid "Save as" msgstr "另存為" @@ -4248,7 +4003,8 @@ msgid "Upload %{ fileName } successful" msgstr "上傳 %{ fileName } 成功" #: src/views/file/UploadModal.vue:53 -msgid "For large files, it is recommended to use SFTP and other methods to upload" +msgid "" +"For large files, it is recommended to use SFTP and other methods to upload" msgstr "對於大檔案,建議使用 SFTP 等方法上傳" #: src/views/firewall/CreateForwardModal.vue:50 @@ -4258,10 +4014,8 @@ msgstr "創建轉發" #: src/views/firewall/CreateForwardModal.vue:58 #: src/views/firewall/CreateIpModal.vue:100 -#: src/views/firewall/CreateModal.vue:112 -#: src/views/firewall/ForwardView.vue:14 -#: src/views/firewall/IpRuleView.vue:14 -#: src/views/firewall/RuleView.vue:14 +#: src/views/firewall/CreateModal.vue:112 src/views/firewall/ForwardView.vue:14 +#: src/views/firewall/IpRuleView.vue:14 src/views/firewall/RuleView.vue:14 msgid "Transport Protocol" msgstr "傳輸協議" @@ -4280,36 +4034,31 @@ msgid "Target Port" msgstr "目標端口" #: src/views/firewall/CreateIpModal.vue:38 -#: src/views/firewall/CreateModal.vue:38 -#: src/views/firewall/IpRuleView.vue:68 +#: src/views/firewall/CreateModal.vue:38 src/views/firewall/IpRuleView.vue:68 #: src/views/firewall/RuleView.vue:102 msgid "Accept" msgstr "接受" #: src/views/firewall/CreateIpModal.vue:42 -#: src/views/firewall/CreateModal.vue:42 -#: src/views/firewall/IpRuleView.vue:70 +#: src/views/firewall/CreateModal.vue:42 src/views/firewall/IpRuleView.vue:70 #: src/views/firewall/RuleView.vue:104 msgid "Drop" msgstr "丟棄" #: src/views/firewall/CreateIpModal.vue:46 -#: src/views/firewall/CreateModal.vue:46 -#: src/views/firewall/IpRuleView.vue:72 +#: src/views/firewall/CreateModal.vue:46 src/views/firewall/IpRuleView.vue:72 #: src/views/firewall/RuleView.vue:106 msgid "Reject" msgstr "拒絕" #: src/views/firewall/CreateIpModal.vue:53 -#: src/views/firewall/CreateModal.vue:53 -#: src/views/firewall/IpRuleView.vue:97 +#: src/views/firewall/CreateModal.vue:53 src/views/firewall/IpRuleView.vue:97 #: src/views/firewall/RuleView.vue:131 msgid "Inbound" msgstr "入站" #: src/views/firewall/CreateIpModal.vue:57 -#: src/views/firewall/CreateModal.vue:57 -#: src/views/firewall/IpRuleView.vue:99 +#: src/views/firewall/CreateModal.vue:57 src/views/firewall/IpRuleView.vue:99 #: src/views/firewall/RuleView.vue:133 msgid "Outbound" msgstr "出站" @@ -4320,15 +4069,13 @@ msgid "%{ address } created successfully" msgstr "%{ address } 創建成功" #: src/views/firewall/CreateIpModal.vue:92 -#: src/views/firewall/CreateModal.vue:104 -#: src/views/firewall/IpRuleView.vue:205 +#: src/views/firewall/CreateModal.vue:104 src/views/firewall/IpRuleView.vue:205 #: src/views/firewall/RuleView.vue:242 msgid "Create Rule" msgstr "創建規則" #: src/views/firewall/CreateIpModal.vue:103 -#: src/views/firewall/CreateModal.vue:115 -#: src/views/firewall/IpRuleView.vue:31 +#: src/views/firewall/CreateModal.vue:115 src/views/firewall/IpRuleView.vue:31 #: src/views/firewall/RuleView.vue:31 msgid "Network Protocol" msgstr "網路協議" @@ -4343,15 +4090,13 @@ msgid "IP or IP range: 172.16.0.1 or 172.16.0.0/16" msgstr "IP 或 IP 範圍:172.16.0.1 或 172.16.0.0/16" #: src/views/firewall/CreateIpModal.vue:113 -#: src/views/firewall/CreateModal.vue:147 -#: src/views/firewall/IpRuleView.vue:48 +#: src/views/firewall/CreateModal.vue:147 src/views/firewall/IpRuleView.vue:48 #: src/views/firewall/RuleView.vue:82 msgid "Strategy" msgstr "策略" #: src/views/firewall/CreateIpModal.vue:116 -#: src/views/firewall/CreateModal.vue:150 -#: src/views/firewall/IpRuleView.vue:84 +#: src/views/firewall/CreateModal.vue:150 src/views/firewall/IpRuleView.vue:84 #: src/views/firewall/RuleView.vue:118 msgid "Direction" msgstr "方向" @@ -4364,26 +4109,22 @@ msgstr "起始端口" msgid "End Port" msgstr "結束連接埠" -#: src/views/firewall/CreateModal.vue:140 -#: src/views/firewall/IpRuleView.vue:109 +#: src/views/firewall/CreateModal.vue:140 src/views/firewall/IpRuleView.vue:109 #: src/views/firewall/RuleView.vue:143 msgid "Target" msgstr "目標" -#: src/views/firewall/ForwardView.vue:135 -#: src/views/firewall/IpRuleView.vue:177 +#: src/views/firewall/ForwardView.vue:135 src/views/firewall/IpRuleView.vue:177 #: src/views/firewall/RuleView.vue:214 msgid "Please select rules to delete" msgstr "請選擇要刪除的規則" -#: src/views/firewall/ForwardView.vue:168 -#: src/views/firewall/IpRuleView.vue:210 +#: src/views/firewall/ForwardView.vue:168 src/views/firewall/IpRuleView.vue:210 #: src/views/firewall/RuleView.vue:247 msgid "Batch Delete" msgstr "批量刪除" -#: src/views/firewall/ForwardView.vue:171 -#: src/views/firewall/IpRuleView.vue:213 +#: src/views/firewall/ForwardView.vue:171 src/views/firewall/IpRuleView.vue:213 #: src/views/firewall/RuleView.vue:250 msgid "Are you sure you want to batch delete?" msgstr "您確定要批量刪除嗎?" @@ -4400,8 +4141,7 @@ msgstr "IP 規則" msgid "Port Forwarding" msgstr "連接埠轉發" -#: src/views/firewall/IpRuleView.vue:74 -#: src/views/firewall/RuleView.vue:108 +#: src/views/firewall/IpRuleView.vue:74 src/views/firewall/RuleView.vue:108 msgid "Mark" msgstr "標記" @@ -4413,8 +4153,7 @@ msgstr "使用中" msgid "Not Used" msgstr "未使用" -#: src/views/firewall/SettingView.vue:27 -#: src/views/firewall/SettingView.vue:33 +#: src/views/firewall/SettingView.vue:27 src/views/firewall/SettingView.vue:33 #: src/views/firewall/SettingView.vue:39 msgid "Settings saved successfully" msgstr "設置保存成功" @@ -4431,8 +4170,7 @@ msgstr "SSH 開關" msgid "Allow Ping" msgstr "允許 Ping" -#: src/views/firewall/SettingView.vue:55 -#: src/views/toolbox/SshView.vue:231 +#: src/views/firewall/SettingView.vue:55 src/views/toolbox/SshView.vue:231 msgid "SSH Port" msgstr "SSH 連接埠" @@ -4456,22 +4194,17 @@ msgstr "運行正常" msgid "Running smoothly" msgstr "運行流暢" -#: src/views/home/IndexView.vue:147 -#: src/views/home/IndexView.vue:835 -#: src/views/home/IndexView.vue:855 -#: src/views/toolbox/BenchmarkView.vue:203 -#: src/views/toolbox/DiskView.vue:803 -#: src/views/toolbox/IndexView.vue:26 +#: src/views/home/IndexView.vue:147 src/views/home/IndexView.vue:835 +#: src/views/home/IndexView.vue:855 src/views/toolbox/BenchmarkView.vue:203 +#: src/views/toolbox/DiskView.vue:803 src/views/toolbox/IndexView.vue:26 msgid "Disk" msgstr "磁碟" -#: src/views/home/IndexView.vue:170 -#: src/views/home/IndexView.vue:187 +#: src/views/home/IndexView.vue:170 src/views/home/IndexView.vue:187 msgid "Send" msgstr "發送" -#: src/views/home/IndexView.vue:170 -#: src/views/home/IndexView.vue:211 +#: src/views/home/IndexView.vue:170 src/views/home/IndexView.vue:211 msgid "Receive" msgstr "接收" @@ -4479,26 +4212,20 @@ msgstr "接收" msgid "Unit %{unit}" msgstr "單位 %{unit}" -#: src/views/home/IndexView.vue:193 -#: src/views/home/IndexView.vue:217 -#: src/views/monitor/IndexView.vue:361 -#: src/views/monitor/IndexView.vue:414 +#: src/views/home/IndexView.vue:193 src/views/home/IndexView.vue:217 +#: src/views/monitor/IndexView.vue:361 src/views/monitor/IndexView.vue:414 #: src/views/monitor/IndexView.vue:460 msgid "Maximum" msgstr "最大值" -#: src/views/home/IndexView.vue:194 -#: src/views/home/IndexView.vue:218 -#: src/views/monitor/IndexView.vue:362 -#: src/views/monitor/IndexView.vue:415 +#: src/views/home/IndexView.vue:194 src/views/home/IndexView.vue:218 +#: src/views/monitor/IndexView.vue:362 src/views/monitor/IndexView.vue:415 #: src/views/monitor/IndexView.vue:461 msgid "Minimum" msgstr "最小值" -#: src/views/home/IndexView.vue:198 -#: src/views/home/IndexView.vue:222 -#: src/views/monitor/IndexView.vue:366 -#: src/views/monitor/IndexView.vue:419 +#: src/views/home/IndexView.vue:198 src/views/home/IndexView.vue:222 +#: src/views/monitor/IndexView.vue:366 src/views/monitor/IndexView.vue:419 #: src/views/monitor/IndexView.vue:465 msgid "Average" msgstr "平均值" @@ -4516,15 +4243,20 @@ msgid "Current version is the latest" msgstr "當前版本是最新版本" #: src/views/home/IndexView.vue:426 -msgid "Your operating system %{ os_name } has reached its end-of-life. Please consider upgrading to a supported version to ensure optimal performance and security." +msgid "" +"Your operating system %{ os_name } has reached its end-of-life. Please " +"consider upgrading to a supported version to ensure optimal performance and " +"security." msgstr "" #: src/views/home/IndexView.vue:437 -msgid "Your operating system %{ os_name } is not officially supported. Some features may not work as expected. Please consider using a supported operating system for the best experience." +msgid "" +"Your operating system %{ os_name } is not officially supported. Some " +"features may not work as expected. Please consider using a supported " +"operating system for the best experience." msgstr "" -#: src/views/home/IndexView.vue:462 -#: src/views/task/IndexView.vue:23 +#: src/views/home/IndexView.vue:462 src/views/task/IndexView.vue:23 msgid "Scheduled Tasks" msgstr "計劃任務" @@ -4552,8 +4284,7 @@ msgstr "最近 5 分鐘" msgid "Last 15 minutes" msgstr "最近 15 分鐘" -#: src/views/home/IndexView.vue:536 -#: src/views/home/IndexView.vue:548 +#: src/views/home/IndexView.vue:536 src/views/home/IndexView.vue:548 msgid "cores" msgstr "核心" @@ -4569,8 +4300,7 @@ msgstr "參數" msgid "cache" msgstr "快取" -#: src/views/home/IndexView.vue:555 -#: src/views/monitor/IndexView.vue:405 +#: src/views/home/IndexView.vue:555 src/views/monitor/IndexView.vue:405 #: src/views/toolbox/DiskView.vue:301 msgid "Usage" msgstr "使用率" @@ -4587,8 +4317,7 @@ msgstr "活躍" msgid "Inactive" msgstr "非活躍" -#: src/views/home/IndexView.vue:590 -#: src/views/toolbox/DiskView.vue:254 +#: src/views/home/IndexView.vue:590 src/views/toolbox/DiskView.vue:254 msgid "Free" msgstr "空閒" @@ -4660,8 +4389,7 @@ msgstr "您尚未設置任何要在此處顯示的應用!" msgid "Environment Information" msgstr "環境資訊" -#: src/views/home/IndexView.vue:768 -#: src/views/toolbox/SystemView.vue:141 +#: src/views/home/IndexView.vue:768 src/views/toolbox/SystemView.vue:183 msgid "System Hostname" msgstr "系統主機名" @@ -4749,15 +4477,12 @@ msgstr "立即更新" msgid "Loading update information, please wait a moment" msgstr "正在加載更新資訊,請稍候" -#: src/views/log/DatabaseLog.vue:31 -#: src/views/log/HttpLog.vue:39 -#: src/views/log/OperationLog.vue:34 -#: src/views/toolbox/SystemView.vue:155 +#: src/views/log/DatabaseLog.vue:31 src/views/log/HttpLog.vue:39 +#: src/views/log/OperationLog.vue:34 src/views/toolbox/SystemView.vue:197 msgid "Time" msgstr "時間" -#: src/views/log/DatabaseLog.vue:40 -#: src/views/log/OperationLog.vue:43 +#: src/views/log/DatabaseLog.vue:40 src/views/log/OperationLog.vue:43 msgid "Level" msgstr "" @@ -4765,8 +4490,7 @@ msgstr "" msgid "Query" msgstr "" -#: src/views/log/DatabaseLog.vue:64 -#: src/views/log/HttpLog.vue:86 +#: src/views/log/DatabaseLog.vue:64 src/views/log/HttpLog.vue:86 msgid "Duration" msgstr "" @@ -4774,8 +4498,7 @@ msgstr "" msgid "Rows" msgstr "" -#: src/views/log/DatabaseLog.vue:95 -#: src/views/log/HttpLog.vue:120 +#: src/views/log/DatabaseLog.vue:95 src/views/log/HttpLog.vue:120 #: src/views/log/OperationLog.vue:93 msgid "Show entries" msgstr "" @@ -4804,8 +4527,7 @@ msgstr "" msgid "Operator" msgstr "" -#: src/views/log/OperationLog.vue:70 -#: src/views/toolbox/IndexView.vue:24 +#: src/views/log/OperationLog.vue:70 src/views/toolbox/IndexView.vue:24 msgid "System" msgstr "系統" @@ -4822,7 +4544,8 @@ msgid "Please enter captcha code" msgstr "" #: src/views/login/IndexView.vue:77 -msgid "Failed to get encryption public key, please refresh the page and try again" +msgid "" +"Failed to get encryption public key, please refresh the page and try again" msgstr "獲取加密公鑰失敗,請刷新頁面後重試" #: src/views/login/IndexView.vue:92 @@ -4865,8 +4588,7 @@ msgstr "" msgid "Unit MB" msgstr "單位 MB" -#: src/views/monitor/IndexView.vue:573 -#: src/views/monitor/IndexView.vue:579 +#: src/views/monitor/IndexView.vue:573 src/views/monitor/IndexView.vue:579 msgid "Operation successful" msgstr "操作成功" @@ -4886,8 +4608,7 @@ msgstr "天" msgid "Clear Monitoring Records" msgstr "清除監控記錄" -#: src/views/monitor/IndexView.vue:611 -#: src/views/website/EditView.vue:912 +#: src/views/monitor/IndexView.vue:611 src/views/website/EditView.vue:1024 msgid "Are you sure you want to clear?" msgstr "確定要清除嗎?" @@ -4895,26 +4616,20 @@ msgstr "確定要清除嗎?" msgid "Load" msgstr "負載" -#: src/views/monitor/IndexView.vue:628 -#: src/views/monitor/IndexView.vue:682 -#: src/views/monitor/IndexView.vue:734 -#: src/views/monitor/IndexView.vue:790 +#: src/views/monitor/IndexView.vue:628 src/views/monitor/IndexView.vue:682 +#: src/views/monitor/IndexView.vue:734 src/views/monitor/IndexView.vue:790 #: src/views/monitor/IndexView.vue:857 msgid "Yesterday" msgstr "" -#: src/views/monitor/IndexView.vue:634 -#: src/views/monitor/IndexView.vue:688 -#: src/views/monitor/IndexView.vue:740 -#: src/views/monitor/IndexView.vue:796 +#: src/views/monitor/IndexView.vue:634 src/views/monitor/IndexView.vue:688 +#: src/views/monitor/IndexView.vue:740 src/views/monitor/IndexView.vue:796 #: src/views/monitor/IndexView.vue:863 msgid "Today" msgstr "" -#: src/views/monitor/IndexView.vue:640 -#: src/views/monitor/IndexView.vue:694 -#: src/views/monitor/IndexView.vue:746 -#: src/views/monitor/IndexView.vue:802 +#: src/views/monitor/IndexView.vue:640 src/views/monitor/IndexView.vue:694 +#: src/views/monitor/IndexView.vue:746 src/views/monitor/IndexView.vue:802 #: src/views/monitor/IndexView.vue:869 msgid "Last 7 Days" msgstr "" @@ -4935,62 +4650,55 @@ msgstr "" msgid "Create PHP Project" msgstr "" -#: src/views/project/CreateModal.vue:119 -#: src/views/project/ListView.vue:197 +#: src/views/project/CreateModal.vue:119 src/views/project/ListView.vue:213 msgid "Create Project" msgstr "" -#: src/views/project/CreateModal.vue:135 -#: src/views/project/EditModal.vue:179 +#: src/views/project/CreateModal.vue:135 src/views/project/EditModal.vue:179 msgid "Project Name" msgstr "" -#: src/views/project/CreateModal.vue:140 -#: src/views/project/EditModal.vue:184 +#: src/views/project/CreateModal.vue:140 src/views/project/EditModal.vue:184 msgid "Project name, used as service identifier" msgstr "" -#: src/views/project/CreateModal.vue:144 -#: src/views/project/EditModal.vue:198 +#: src/views/project/CreateModal.vue:144 src/views/project/EditModal.vue:198 msgid "Project Directory" msgstr "" -#: src/views/project/CreateModal.vue:150 -#: src/views/project/EditModal.vue:204 -msgid "Project root directory" +#: src/views/project/CreateModal.vue:151 +msgid "" +"Project root directory (if left empty, defaults to project directory/project " +"name)" msgstr "" -#: src/views/project/CreateModal.vue:164 -#: src/views/website/CreateModal.vue:158 -#: src/views/website/EditView.vue:453 +#: src/views/project/CreateModal.vue:168 src/views/website/CreateModal.vue:158 +#: src/views/website/EditView.vue:481 msgid "PHP Version" msgstr "PHP 版本" -#: src/views/project/CreateModal.vue:168 -#: src/views/website/CreateModal.vue:162 -#: src/views/website/EditView.vue:458 +#: src/views/project/CreateModal.vue:172 src/views/website/CreateModal.vue:162 +#: src/views/website/EditView.vue:486 msgid "Select PHP Version" msgstr "選擇 PHP 版本" -#: src/views/project/CreateModal.vue:174 +#: src/views/project/CreateModal.vue:178 msgid "Framework" msgstr "" -#: src/views/project/CreateModal.vue:178 +#: src/views/project/CreateModal.vue:182 msgid "Select Framework" msgstr "" -#: src/views/project/CreateModal.vue:194 -#: src/views/project/EditModal.vue:240 +#: src/views/project/CreateModal.vue:198 src/views/project/EditModal.vue:240 msgid "Select User" msgstr "" -#: src/views/project/CreateModal.vue:199 +#: src/views/project/CreateModal.vue:203 msgid "Select www user if no special requirements" msgstr "" -#: src/views/project/CreateModal.vue:209 -#: src/views/project/EditModal.vue:255 +#: src/views/project/CreateModal.vue:213 src/views/project/EditModal.vue:255 msgid "e.g., php artisan serve, node app.js" msgstr "" @@ -5026,8 +4734,7 @@ msgstr "" msgid "File (truncate)" msgstr "" -#: src/views/project/EditModal.vue:72 -#: src/views/setting/SettingSafe.vue:262 +#: src/views/project/EditModal.vue:72 src/views/setting/SettingSafe.vue:262 msgid "Disabled" msgstr "" @@ -5039,6 +4746,10 @@ msgstr "" msgid "Project description" msgstr "" +#: src/views/project/EditModal.vue:204 +msgid "Project root directory" +msgstr "" + #: src/views/project/EditModal.vue:221 msgid "Working directory (optional, defaults to project directory)" msgstr "" @@ -5120,7 +4831,9 @@ msgid "Dependencies" msgstr "" #: src/views/project/EditModal.vue:404 -msgid "Configure service dependencies to control startup order. Common services: network.target, mysql.service, redis.service" +msgid "" +"Configure service dependencies to control startup order. Common services: " +"network.target, mysql.service, redis.service" msgstr "" #: src/views/project/EditModal.vue:410 @@ -5156,7 +4869,9 @@ msgid "Start this service before the specified services" msgstr "" #: src/views/project/EditModal.vue:455 -msgid "Set resource limits to prevent the service from consuming too many system resources" +msgid "" +"Set resource limits to prevent the service from consuming too many system " +"resources" msgstr "" #: src/views/project/EditModal.vue:463 @@ -5188,7 +4903,9 @@ msgid "Security Settings" msgstr "" #: src/views/project/EditModal.vue:502 -msgid "Security settings can enhance service isolation but may affect functionality. Please test thoroughly before enabling." +msgid "" +"Security settings can enhance service isolation but may affect " +"functionality. Please test thoroughly before enabling." msgstr "" #: src/views/project/EditModal.vue:508 @@ -5212,7 +4929,9 @@ msgid "Protect System" msgstr "" #: src/views/project/EditModal.vue:537 -msgid "true: /usr, /boot read-only; full: + /etc read-only; strict: entire filesystem read-only" +msgid "" +"true: /usr, /boot read-only; full: + /etc read-only; strict: entire " +"filesystem read-only" msgstr "" #: src/views/project/EditModal.vue:545 @@ -5235,13 +4954,11 @@ msgstr "" msgid "Paths that the service can only read from" msgstr "" -#: src/views/project/IndexView.vue:22 -#: src/views/project/ListView.vue:20 +#: src/views/project/IndexView.vue:22 src/views/project/ListView.vue:23 msgid "General" msgstr "" -#: src/views/project/IndexView.vue:23 -#: src/views/website/IndexView.vue:22 +#: src/views/project/IndexView.vue:23 src/views/website/IndexView.vue:22 msgid "PHP" msgstr "" @@ -5261,11 +4978,11 @@ msgstr "" msgid "Node.js" msgstr "" -#: src/views/project/ListView.vue:115 +#: src/views/project/ListView.vue:131 msgid "Are you sure you want to delete project %{ name }?" msgstr "" -#: src/views/project/ListView.vue:205 +#: src/views/project/ListView.vue:221 msgid "Are you sure you want to delete the selected projects?" msgstr "" @@ -5273,8 +4990,7 @@ msgstr "" msgid "Enter user name" msgstr "輸入用戶名" -#: src/views/setting/CreateModal.vue:53 -#: src/views/setting/PasswordModal.vue:40 +#: src/views/setting/CreateModal.vue:53 src/views/setting/PasswordModal.vue:40 msgid "Enter user password" msgstr "輸入用戶密碼" @@ -5282,67 +4998,73 @@ msgstr "輸入用戶密碼" msgid "Enter user email" msgstr "輸入用戶郵箱" -#: src/views/setting/IndexView.vue:68 +#: src/views/setting/IndexView.vue:69 msgid "Panel is restarting, page will refresh in 5 seconds" msgstr "" -#: src/views/setting/IndexView.vue:91 +#: src/views/setting/IndexView.vue:92 msgid "Safe" msgstr "安全" -#: src/views/setting/PasswordModal.vue:16 -#: src/views/setting/TokenModal.vue:181 -#: src/views/setting/TwoFaModal.vue:24 -#: src/views/ssh/UpdateModal.vue:31 +#: src/views/setting/PasswordModal.vue:16 src/views/setting/TokenModal.vue:181 +#: src/views/setting/TwoFaModal.vue:24 src/views/ssh/UpdateModal.vue:31 msgid "Updated successfully" msgstr "更新成功" -#: src/views/setting/SettingBase.vue:51 +#: src/views/setting/SettingBase.vue:56 msgid "Stable" msgstr "穩定版" -#: src/views/setting/SettingBase.vue:55 +#: src/views/setting/SettingBase.vue:60 msgid "Beta" msgstr "測試版" -#: src/views/setting/SettingBase.vue:101 -#: src/views/setting/SettingBase.vue:102 +#: src/views/setting/SettingBase.vue:114 src/views/setting/SettingBase.vue:115 msgid "Panel Name" msgstr "面板名稱" -#: src/views/setting/SettingBase.vue:107 +#: src/views/setting/SettingBase.vue:120 msgid "Update Channel" msgstr "更新渠道" -#: src/views/setting/SettingBase.vue:111 +#: src/views/setting/SettingBase.vue:124 msgid "8888" msgstr "8888" -#: src/views/setting/SettingBase.vue:113 +#: src/views/setting/SettingBase.vue:126 msgid "Default Website Directory" msgstr "預設網站目錄" -#: src/views/setting/SettingBase.vue:115 +#: src/views/setting/SettingBase.vue:128 msgid "/opt/ace/sites" msgstr "" -#: src/views/setting/SettingBase.vue:123 +#: src/views/setting/SettingBase.vue:136 msgid "Default Backup Directory" msgstr "預設備份目錄" -#: src/views/setting/SettingBase.vue:125 +#: src/views/setting/SettingBase.vue:138 msgid "/opt/ace/backup" msgstr "" -#: src/views/setting/SettingBase.vue:133 +#: src/views/setting/SettingBase.vue:146 +#, fuzzy +msgid "Default Project Directory" +msgstr "預設網站目錄" + +#: src/views/setting/SettingBase.vue:150 +msgid "/opt/ace/projects" +msgstr "" + +#: src/views/setting/SettingBase.vue:159 msgid "Custom Logo" msgstr "自定義 Logo" -#: src/views/setting/SettingBase.vue:136 +#: src/views/setting/SettingBase.vue:162 msgid "Please enter the complete URL" msgstr "請輸入完整的 URL" -#: src/views/setting/SettingBase.vue:139 +#: src/views/setting/SettingBase.vue:165 msgid "Hide Menu" msgstr "隱藏菜單" @@ -5351,7 +5073,9 @@ msgid "Login Timeout" msgstr "登錄超時" #: src/views/setting/SettingSafe.vue:47 -msgid "Set the maximum lifetime (in minutes) of the login state, after which you need to log in again" +msgid "" +"Set the maximum lifetime (in minutes) of the login state, after which you " +"need to log in again" msgstr "" #: src/views/setting/SettingSafe.vue:55 @@ -5367,7 +5091,9 @@ msgid "Access Entrance" msgstr "訪問入口" #: src/views/setting/SettingSafe.vue:75 -msgid "Set the access entrance of the panel (e.g. /mypanel) to prevent some malicious access. Leave blank to disable (not recommended)" +msgid "" +"Set the access entrance of the panel (e.g. /mypanel) to prevent some " +"malicious access. Leave blank to disable (not recommended)" msgstr "" #: src/views/setting/SettingSafe.vue:88 @@ -5375,11 +5101,13 @@ msgid "Entrance Error Page" msgstr "" #: src/views/setting/SettingSafe.vue:93 -msgid "Set the error page to display when accessing with wrong entrance. 418 shows teapot page, Nginx 404 shows nginx style 404 page, Close Connection will close the connection immediately" +msgid "" +"Set the error page to display when accessing with wrong entrance. 418 shows " +"teapot page, Nginx 404 shows nginx style 404 page, Close Connection will " +"close the connection immediately" msgstr "" -#: src/views/setting/SettingSafe.vue:102 -#: src/views/setting/SettingSafe.vue:106 +#: src/views/setting/SettingSafe.vue:102 src/views/setting/SettingSafe.vue:106 msgid "418 I'm a teapot" msgstr "" @@ -5396,7 +5124,9 @@ msgid "Login Captcha" msgstr "" #: src/views/setting/SettingSafe.vue:119 -msgid "When enabled, a captcha will be required after 3 failed login attempts to prevent brute force attacks" +msgid "" +"When enabled, a captcha will be required after 3 failed login attempts to " +"prevent brute force attacks" msgstr "" #: src/views/setting/SettingSafe.vue:132 @@ -5404,7 +5134,9 @@ msgid "Request IP Header" msgstr "" #: src/views/setting/SettingSafe.vue:137 -msgid "Set the header that carries the real IP of the client, useful when using CDN or reverse proxy. Leave blank to use the client IP directly" +msgid "" +"Set the header that carries the real IP of the client, useful when using CDN " +"or reverse proxy. Leave blank to use the client IP directly" msgstr "" #: src/views/setting/SettingSafe.vue:143 @@ -5416,7 +5148,9 @@ msgid "Bind Domain" msgstr "綁定域名" #: src/views/setting/SettingSafe.vue:155 -msgid "Restrict panel access to the specified domain names. Leave blank to allow access from any domain" +msgid "" +"Restrict panel access to the specified domain names. Leave blank to allow " +"access from any domain" msgstr "" #: src/views/setting/SettingSafe.vue:172 @@ -5424,7 +5158,9 @@ msgid "Bind IP" msgstr "綁定 IP" #: src/views/setting/SettingSafe.vue:177 -msgid "Restrict panel access to the specified IP addresses. Leave blank to allow access from any IP" +msgid "" +"Restrict panel access to the specified IP addresses. Leave blank to allow " +"access from any IP" msgstr "" #: src/views/setting/SettingSafe.vue:190 @@ -5432,7 +5168,9 @@ msgid "Bind UA" msgstr "綁定 UA" #: src/views/setting/SettingSafe.vue:195 -msgid "Restrict panel access to the specified User-Agent strings. Leave blank to allow access from any User-Agent" +msgid "" +"Restrict panel access to the specified User-Agent strings. Leave blank to " +"allow access from any User-Agent" msgstr "" #: src/views/setting/SettingSafe.vue:212 @@ -5440,7 +5178,9 @@ msgid "Offline Mode" msgstr "離線模式" #: src/views/setting/SettingSafe.vue:217 -msgid "When enabled, the panel will not attempt to connect to external services for updates or other features. This may limit some functionalities" +msgid "" +"When enabled, the panel will not attempt to connect to external services for " +"updates or other features. This may limit some functionalities" msgstr "" #: src/views/setting/SettingSafe.vue:230 @@ -5448,7 +5188,10 @@ msgid "Auto Update" msgstr "自動更新" #: src/views/setting/SettingSafe.vue:235 -msgid "When enabled, the panel will automatically check for and install updates when they are available. It is recommended to keep this enabled to ensure you have the latest features and security patches" +msgid "" +"When enabled, the panel will automatically check for and install updates " +"when they are available. It is recommended to keep this enabled to ensure " +"you have the latest features and security patches" msgstr "" #: src/views/setting/SettingSafe.vue:248 @@ -5456,7 +5199,10 @@ msgid "Panel HTTPS" msgstr "面板 HTTPS" #: src/views/setting/SettingSafe.vue:253 -msgid "Enable HTTPS for the panel. ACME will automatically obtain and renew certificates (requires panel accessible via public IP). Custom allows you to provide your own certificate" +msgid "" +"Enable HTTPS for the panel. ACME will automatically obtain and renew " +"certificates (requires panel accessible via public IP). Custom allows you to " +"provide your own certificate" msgstr "" #: src/views/setting/SettingSafe.vue:263 @@ -5467,13 +5213,14 @@ msgstr "" msgid "Custom Certificate" msgstr "" -#: src/views/setting/SettingSafe.vue:272 -#: src/views/setting/SettingSafe.vue:277 +#: src/views/setting/SettingSafe.vue:272 src/views/setting/SettingSafe.vue:277 msgid "Panel Public IP" msgstr "" #: src/views/setting/SettingSafe.vue:282 -msgid "Panel public IP is used to issue HTTPS certificates using ACME. Ensure that the entered IP address is accessible from the public network." +msgid "" +"Panel public IP is used to issue HTTPS certificates using ACME. Ensure that " +"the entered IP address is accessible from the public network." msgstr "" #: src/views/setting/SettingUser.vue:53 @@ -5484,8 +5231,7 @@ msgstr "兩步驗證" msgid "Disabled successfully" msgstr "禁用成功" -#: src/views/setting/SettingUser.vue:102 -#: src/views/setting/TokenModal.vue:202 +#: src/views/setting/SettingUser.vue:102 src/views/setting/TokenModal.vue:202 msgid "Access Tokens" msgstr "訪問令牌" @@ -5513,23 +5259,19 @@ msgstr "複製並關閉" msgid "Copy failed" msgstr "複製失敗" -#: src/views/setting/TokenModal.vue:212 -#: src/views/setting/TokenModal.vue:240 +#: src/views/setting/TokenModal.vue:212 src/views/setting/TokenModal.vue:240 msgid "Create Access Token" msgstr "創建訪問令牌" -#: src/views/setting/TokenModal.vue:249 -#: src/views/setting/TokenModal.vue:282 +#: src/views/setting/TokenModal.vue:249 src/views/setting/TokenModal.vue:282 msgid "IP White List" msgstr "IP 白名單" -#: src/views/setting/TokenModal.vue:252 -#: src/views/setting/TokenModal.vue:285 +#: src/views/setting/TokenModal.vue:252 src/views/setting/TokenModal.vue:285 msgid "127.0.0.1" msgstr "127.0.0.1" -#: src/views/setting/TokenModal.vue:260 -#: src/views/setting/TokenModal.vue:293 +#: src/views/setting/TokenModal.vue:260 src/views/setting/TokenModal.vue:293 msgid "Please select the expiration time" msgstr "請選擇到期時間" @@ -5550,7 +5292,8 @@ msgid "Scan the QR code with your 2FA app and enter the code below" msgstr "用您的兩步驗證應用掃描二維碼並在下方輸入代碼" #: src/views/setting/TwoFaModal.vue:66 -msgid "If you cannot scan the QR code, please enter the URL below in your 2FA app" +msgid "" +"If you cannot scan the QR code, please enter the URL below in your 2FA app" msgstr "如果您無法掃描二維碼,請在您的兩步驗證應用中輸入下面的 URL" #: src/views/setting/TwoFaModal.vue:79 @@ -5561,28 +5304,23 @@ msgstr "代碼" msgid "Enter the code" msgstr "輸入代碼" -#: src/views/ssh/CreateModal.vue:52 -#: src/views/ssh/IndexView.vue:281 +#: src/views/ssh/CreateModal.vue:52 src/views/ssh/IndexView.vue:281 msgid "Create Host" msgstr "創建主機" -#: src/views/ssh/CreateModal.vue:75 -#: src/views/ssh/UpdateModal.vue:81 +#: src/views/ssh/CreateModal.vue:75 src/views/ssh/UpdateModal.vue:81 msgid "Authentication Method" msgstr "驗證方式" -#: src/views/ssh/CreateModal.vue:94 -#: src/views/ssh/UpdateModal.vue:100 +#: src/views/ssh/CreateModal.vue:94 src/views/ssh/UpdateModal.vue:100 msgid "Passphrase" msgstr "" -#: src/views/ssh/CreateModal.vue:99 -#: src/views/ssh/UpdateModal.vue:105 +#: src/views/ssh/CreateModal.vue:99 src/views/ssh/UpdateModal.vue:105 msgid "Leave empty if key has no passphrase" msgstr "" -#: src/views/ssh/CreateModal.vue:102 -#: src/views/ssh/UpdateModal.vue:108 +#: src/views/ssh/CreateModal.vue:102 src/views/ssh/UpdateModal.vue:108 msgid "Remarks" msgstr "備註" @@ -5614,37 +5352,29 @@ msgstr "# 在此處輸入您的腳本內容" msgid "Create Scheduled Task" msgstr "創建計劃任務" -#: src/views/task/CreateModal.vue:95 -#: src/views/task/CronView.vue:32 +#: src/views/task/CreateModal.vue:95 src/views/task/CronView.vue:32 msgid "Task Type" msgstr "任務類型" -#: src/views/task/CreateModal.vue:99 -#: src/views/task/CronView.vue:45 +#: src/views/task/CreateModal.vue:99 src/views/task/CronView.vue:45 msgid "Run Script" msgstr "運行腳本" -#: src/views/task/CreateModal.vue:100 -#: src/views/task/CronView.vue:47 +#: src/views/task/CreateModal.vue:100 src/views/task/CronView.vue:47 msgid "Backup Data" msgstr "備份數據" -#: src/views/task/CreateModal.vue:101 -#: src/views/task/CronView.vue:48 +#: src/views/task/CreateModal.vue:101 src/views/task/CronView.vue:48 msgid "Log Rotation" msgstr "日誌輪替" -#: src/views/task/CreateModal.vue:106 -#: src/views/task/CreateModal.vue:107 -#: src/views/task/CronView.vue:25 -#: src/views/task/CronView.vue:250 -#: src/views/task/CronView.vue:251 -#: src/views/task/TaskView.vue:15 +#: src/views/task/CreateModal.vue:106 src/views/task/CreateModal.vue:107 +#: src/views/task/CronView.vue:25 src/views/task/CronView.vue:250 +#: src/views/task/CronView.vue:251 src/views/task/TaskView.vue:15 msgid "Task Name" msgstr "任務名稱" -#: src/views/task/CreateModal.vue:109 -#: src/views/task/CronView.vue:69 +#: src/views/task/CreateModal.vue:109 src/views/task/CronView.vue:69 #: src/views/task/CronView.vue:253 msgid "Task Schedule" msgstr "任務週期" @@ -5669,8 +5399,7 @@ msgstr "PostgreSQL 數據庫" msgid "Retention Count" msgstr "保留數量" -#: src/views/task/CronView.vue:55 -#: src/views/toolbox/WebHookView.vue:87 +#: src/views/task/CronView.vue:55 src/views/toolbox/WebHookView.vue:87 #: src/views/toolbox/WebHookView.vue:382 msgid "Enabled" msgstr "已啟用" @@ -5695,9 +5424,8 @@ msgstr "創建任務" msgid "Completed" msgstr "已完成" -#: src/views/task/TaskView.vue:30 -#: src/views/toolbox/ProcessView.vue:53 -#: src/views/toolbox/ProcessView.vue:90 +#: src/views/task/TaskView.vue:30 src/views/toolbox/ProcessView.vue:53 +#: src/views/toolbox/ProcessView.vue:92 msgid "Waiting" msgstr "正在駐留等待" @@ -5733,8 +5461,11 @@ msgid "Pending benchmark" msgstr "待跑分" #: src/views/toolbox/BenchmarkView.vue:89 -msgid "Benchmark results are for reference only and may differ from actual performance due to system resource scheduling, caching, and other factors!" -msgstr "跑分結果僅供參考,由於系統資源調度、快取和其他因素,可能與實際性能有所不同!" +msgid "" +"Benchmark results are for reference only and may differ from actual " +"performance due to system resource scheduling, caching, and other factors!" +msgstr "" +"跑分結果僅供參考,由於系統資源調度、快取和其他因素,可能與實際性能有所不同!" #: src/views/toolbox/BenchmarkView.vue:96 msgid "Benchmarking in progress, it may take some time..." @@ -5832,20 +5563,19 @@ msgstr "" msgid "Not Mounted" msgstr "" -#: src/views/toolbox/DiskView.vue:332 -#: src/views/toolbox/DiskView.vue:828 +#: src/views/toolbox/DiskView.vue:332 src/views/toolbox/DiskView.vue:828 msgid "Filesystem" msgstr "" -#: src/views/toolbox/DiskView.vue:385 -#: src/views/toolbox/DiskView.vue:537 -#: src/views/toolbox/DiskView.vue:581 -#: src/views/toolbox/DiskView.vue:630 +#: src/views/toolbox/DiskView.vue:385 src/views/toolbox/DiskView.vue:537 +#: src/views/toolbox/DiskView.vue:581 src/views/toolbox/DiskView.vue:630 msgid "Please fill in all fields" msgstr "" #: src/views/toolbox/DiskView.vue:390 -msgid "Are you sure you want to mount %{ device } to %{ path } and write to fstab for auto-mount on boot?" +msgid "" +"Are you sure you want to mount %{ device } to %{ path } and write to fstab " +"for auto-mount on boot?" msgstr "" #: src/views/toolbox/DiskView.vue:397 @@ -5864,22 +5594,20 @@ msgstr "" msgid "Unmounted successfully" msgstr "" -#: src/views/toolbox/DiskView.vue:444 -#: src/views/toolbox/DiskView.vue:495 +#: src/views/toolbox/DiskView.vue:444 src/views/toolbox/DiskView.vue:495 msgid "Please select a device" msgstr "" -#: src/views/toolbox/DiskView.vue:449 -#: src/views/toolbox/DiskView.vue:474 -#: src/views/toolbox/DiskView.vue:519 -#: src/views/toolbox/DiskView.vue:562 -#: src/views/toolbox/DiskView.vue:611 -#: src/views/toolbox/DiskView.vue:658 +#: src/views/toolbox/DiskView.vue:449 src/views/toolbox/DiskView.vue:474 +#: src/views/toolbox/DiskView.vue:519 src/views/toolbox/DiskView.vue:562 +#: src/views/toolbox/DiskView.vue:611 src/views/toolbox/DiskView.vue:658 msgid "Dangerous Operation" msgstr "" #: src/views/toolbox/DiskView.vue:450 -msgid "Formatting will erase all data on the partition. This operation is irreversible. Are you sure?" +msgid "" +"Formatting will erase all data on the partition. This operation is " +"irreversible. Are you sure?" msgstr "" #: src/views/toolbox/DiskView.vue:453 @@ -5895,7 +5623,9 @@ msgid "Please enter disk name" msgstr "" #: src/views/toolbox/DiskView.vue:475 -msgid "This will delete all partitions on %{ device } and create a single partition. All data will be permanently lost. Are you absolutely sure?" +msgid "" +"This will delete all partitions on %{ device } and create a single " +"partition. All data will be permanently lost. Are you absolutely sure?" msgstr "" #: src/views/toolbox/DiskView.vue:479 @@ -5931,7 +5661,9 @@ msgid "Volume group created successfully" msgstr "" #: src/views/toolbox/DiskView.vue:563 -msgid "Are you sure you want to remove the volume group %{ name }? All logical volumes in this group will be deleted!" +msgid "" +"Are you sure you want to remove the volume group %{ name }? All logical " +"volumes in this group will be deleted!" msgstr "" #: src/views/toolbox/DiskView.vue:571 @@ -5939,7 +5671,8 @@ msgid "Volume group removed successfully" msgstr "" #: src/views/toolbox/DiskView.vue:587 -msgid "Are you sure you want to create logical volume %{ name } with %{ size }GB?" +msgid "" +"Are you sure you want to create logical volume %{ name } with %{ size }GB?" msgstr "" #: src/views/toolbox/DiskView.vue:598 @@ -5947,7 +5680,9 @@ msgid "Logical volume created successfully" msgstr "" #: src/views/toolbox/DiskView.vue:612 -msgid "Are you sure you want to remove the logical volume %{ path }? All data on this volume will be lost!" +msgid "" +"Are you sure you want to remove the logical volume %{ path }? All data on " +"this volume will be lost!" msgstr "" #: src/views/toolbox/DiskView.vue:620 @@ -5963,7 +5698,9 @@ msgid "Logical volume extended successfully" msgstr "" #: src/views/toolbox/DiskView.vue:659 -msgid "Are you sure you want to remove the fstab entry for %{ mountPoint }? This will prevent auto-mount on boot." +msgid "" +"Are you sure you want to remove the fstab entry for %{ mountPoint }? This " +"will prevent auto-mount on boot." msgstr "" #: src/views/toolbox/DiskView.vue:667 @@ -6006,13 +5743,11 @@ msgstr "" msgid "Mount Partition" msgstr "" -#: src/views/toolbox/DiskView.vue:725 -#: src/views/toolbox/DiskView.vue:770 +#: src/views/toolbox/DiskView.vue:725 src/views/toolbox/DiskView.vue:770 msgid "Partition" msgstr "" -#: src/views/toolbox/DiskView.vue:729 -#: src/views/toolbox/DiskView.vue:774 +#: src/views/toolbox/DiskView.vue:729 src/views/toolbox/DiskView.vue:774 msgid "Select partition" msgstr "" @@ -6037,7 +5772,9 @@ msgid "Mount" msgstr "掛載" #: src/views/toolbox/DiskView.vue:758 -msgid "When enabled, the partition UUID will be written to /etc/fstab for automatic mounting on system boot." +msgid "" +"When enabled, the partition UUID will be written to /etc/fstab for automatic " +"mounting on system boot." msgstr "" #: src/views/toolbox/DiskView.vue:765 @@ -6048,8 +5785,7 @@ msgstr "" msgid "Warning: Formatting will erase all data!" msgstr "" -#: src/views/toolbox/DiskView.vue:779 -#: src/views/toolbox/DiskView.vue:812 +#: src/views/toolbox/DiskView.vue:779 src/views/toolbox/DiskView.vue:812 msgid "Filesystem Type" msgstr "" @@ -6063,7 +5799,9 @@ msgid "Initialize Disk" msgstr "" #: src/views/toolbox/DiskView.vue:797 -msgid "Warning: This will delete all partitions and create a single partition. All data will be lost!" +msgid "" +"Warning: This will delete all partitions and create a single partition. All " +"data will be lost!" msgstr "" #: src/views/toolbox/DiskView.vue:807 @@ -6078,17 +5816,13 @@ msgstr "" msgid "Auto-mount Configuration (fstab)" msgstr "" -#: src/views/toolbox/DiskView.vue:826 -#: src/views/toolbox/DiskView.vue:884 +#: src/views/toolbox/DiskView.vue:826 src/views/toolbox/DiskView.vue:884 msgid "Device" msgstr "" -#: src/views/toolbox/DiskView.vue:844 -#: src/views/toolbox/DiskView.vue:874 -#: src/views/toolbox/DiskView.vue:912 -#: src/views/toolbox/DiskView.vue:957 -#: src/views/website/EditView.vue:591 -#: src/views/website/EditView.vue:749 +#: src/views/toolbox/DiskView.vue:844 src/views/toolbox/DiskView.vue:874 +#: src/views/toolbox/DiskView.vue:912 src/views/toolbox/DiskView.vue:957 +#: src/views/website/EditView.vue:619 src/views/website/EditView.vue:779 msgid "Remove" msgstr "" @@ -6100,8 +5834,7 @@ msgstr "" msgid "LVM Management" msgstr "" -#: src/views/toolbox/DiskView.vue:863 -#: src/views/toolbox/DiskView.vue:929 +#: src/views/toolbox/DiskView.vue:863 src/views/toolbox/DiskView.vue:929 msgid "Physical Volumes" msgstr "" @@ -6297,23 +6030,19 @@ msgstr "" msgid "All Status" msgstr "" -#: src/views/toolbox/ProcessView.vue:49 -#: src/views/toolbox/ProcessView.vue:82 +#: src/views/toolbox/ProcessView.vue:49 src/views/toolbox/ProcessView.vue:84 msgid "Sleeping" msgstr "睡眠" -#: src/views/toolbox/ProcessView.vue:51 -#: src/views/toolbox/ProcessView.vue:86 +#: src/views/toolbox/ProcessView.vue:51 src/views/toolbox/ProcessView.vue:88 msgid "Idle" msgstr "空閒" -#: src/views/toolbox/ProcessView.vue:52 -#: src/views/toolbox/ProcessView.vue:88 +#: src/views/toolbox/ProcessView.vue:52 src/views/toolbox/ProcessView.vue:90 msgid "Zombie" msgstr "僵屍進程" -#: src/views/toolbox/ProcessView.vue:54 -#: src/views/toolbox/ProcessView.vue:92 +#: src/views/toolbox/ProcessView.vue:54 src/views/toolbox/ProcessView.vue:94 msgid "Locked" msgstr "已鎖定" @@ -6353,82 +6082,84 @@ msgstr "" msgid "User Signal 2 (SIGUSR2)" msgstr "" -#: src/views/toolbox/ProcessView.vue:115 -#: src/views/toolbox/ProcessView.vue:383 +#: src/views/toolbox/ProcessView.vue:82 +#, fuzzy +msgid "Blocked" +msgstr "已鎖定" + +#: src/views/toolbox/ProcessView.vue:117 src/views/toolbox/ProcessView.vue:385 msgid "Parent PID" msgstr "父進程 PID" -#: src/views/toolbox/ProcessView.vue:122 -#: src/views/toolbox/ProcessView.vue:395 +#: src/views/toolbox/ProcessView.vue:124 src/views/toolbox/ProcessView.vue:397 msgid "Threads" msgstr "線程" -#: src/views/toolbox/ProcessView.vue:163 -#: src/views/toolbox/ProcessView.vue:416 +#: src/views/toolbox/ProcessView.vue:165 src/views/toolbox/ProcessView.vue:418 msgid "Start Time" msgstr "啟動時間" -#: src/views/toolbox/ProcessView.vue:235 +#: src/views/toolbox/ProcessView.vue:237 msgid "Are you sure you want to send %{ signal } to process %{ pid }?" msgstr "" -#: src/views/toolbox/ProcessView.vue:245 +#: src/views/toolbox/ProcessView.vue:247 msgid "Signal %{ signal } has been sent to process %{ pid }" msgstr "" -#: src/views/toolbox/ProcessView.vue:313 +#: src/views/toolbox/ProcessView.vue:315 msgid "Search by PID or name" msgstr "" -#: src/views/toolbox/ProcessView.vue:372 +#: src/views/toolbox/ProcessView.vue:374 msgid "Process Details" msgstr "" -#: src/views/toolbox/ProcessView.vue:401 +#: src/views/toolbox/ProcessView.vue:403 msgid "Memory (RSS)" msgstr "" -#: src/views/toolbox/ProcessView.vue:404 +#: src/views/toolbox/ProcessView.vue:406 msgid "Virtual Memory" msgstr "" -#: src/views/toolbox/ProcessView.vue:407 +#: src/views/toolbox/ProcessView.vue:409 msgid "Swap" msgstr "" -#: src/views/toolbox/ProcessView.vue:410 +#: src/views/toolbox/ProcessView.vue:412 msgid "Disk Read" msgstr "" -#: src/views/toolbox/ProcessView.vue:413 +#: src/views/toolbox/ProcessView.vue:415 msgid "Disk Write" msgstr "" -#: src/views/toolbox/ProcessView.vue:419 +#: src/views/toolbox/ProcessView.vue:421 msgid "Executable Path" msgstr "" -#: src/views/toolbox/ProcessView.vue:429 +#: src/views/toolbox/ProcessView.vue:431 msgid "Command Line" msgstr "" -#: src/views/toolbox/ProcessView.vue:446 +#: src/views/toolbox/ProcessView.vue:448 msgid "No environment variables" msgstr "" -#: src/views/toolbox/ProcessView.vue:454 +#: src/views/toolbox/ProcessView.vue:456 msgid "Open Files" msgstr "" -#: src/views/toolbox/ProcessView.vue:462 +#: src/views/toolbox/ProcessView.vue:464 msgid "No open files" msgstr "" -#: src/views/toolbox/ProcessView.vue:470 +#: src/views/toolbox/ProcessView.vue:472 msgid "Network Connections" msgstr "" -#: src/views/toolbox/ProcessView.vue:483 +#: src/views/toolbox/ProcessView.vue:485 msgid "No network connections" msgstr "" @@ -6472,8 +6203,7 @@ msgstr "" msgid "Root password updated" msgstr "" -#: src/views/toolbox/SshView.vue:150 -#: src/views/toolbox/SshView.vue:164 +#: src/views/toolbox/SshView.vue:150 src/views/toolbox/SshView.vue:164 msgid "SSH key generated" msgstr "" @@ -6522,7 +6252,9 @@ msgid "Reset" msgstr "" #: src/views/toolbox/SshView.vue:287 -msgid "It is recommended to use a complex password. Refresh will clear the password field." +msgid "" +"It is recommended to use a complex password. Refresh will clear the password " +"field." msgstr "" #: src/views/toolbox/SshView.vue:296 @@ -6542,7 +6274,9 @@ msgid "Root Private Key" msgstr "" #: src/views/toolbox/SshView.vue:326 -msgid "This is the private key of the root user. Keep it safe and use it to login to this server." +msgid "" +"This is the private key of the root user. Keep it safe and use it to login " +"to this server." msgstr "" #: src/views/toolbox/SshView.vue:336 @@ -6557,60 +6291,106 @@ msgstr "" msgid "Download Private Key" msgstr "" -#: src/views/toolbox/SystemView.vue:92 +#: src/views/toolbox/SystemView.vue:117 +msgid "At least one NTP server is required" +msgstr "" + +#: src/views/toolbox/SystemView.vue:134 msgid "Current DNS manager: %{ manager }" msgstr "" -#: src/views/toolbox/SystemView.vue:98 +#: src/views/toolbox/SystemView.vue:140 msgid "DNS modifications will revert to default after system restart." msgstr "DNS 修改將在系統重新啟動後恢復為預設設置。" -#: src/views/toolbox/SystemView.vue:102 +#: src/views/toolbox/SystemView.vue:144 msgid "Enter primary DNS server" msgstr "" -#: src/views/toolbox/SystemView.vue:105 +#: src/views/toolbox/SystemView.vue:147 msgid "Enter secondary DNS server" msgstr "" -#: src/views/toolbox/SystemView.vue:119 +#: src/views/toolbox/SystemView.vue:161 msgid "System total %{ total }, used %{ used }, free %{ free }" msgstr "" -#: src/views/toolbox/SystemView.vue:127 +#: src/views/toolbox/SystemView.vue:169 msgid "Panel SWAP Size" msgstr "" -#: src/views/toolbox/SystemView.vue:144 +#: src/views/toolbox/SystemView.vue:186 msgid "Enter hostname, e.g. myserver" msgstr "" -#: src/views/toolbox/SystemView.vue:147 +#: src/views/toolbox/SystemView.vue:189 msgid "Hosts" msgstr "" -#: src/views/toolbox/SystemView.vue:159 -msgid "After manually changing the time, it may still be overwritten by system automatic time synchronization." +#: src/views/toolbox/SystemView.vue:201 +msgid "" +"After manually changing the time, it may still be overwritten by system " +"automatic time synchronization." msgstr "手動更改時間後,系統自動時間同步可能仍會覆蓋設置。" -#: src/views/toolbox/SystemView.vue:165 +#: src/views/toolbox/SystemView.vue:207 msgid "Select Timezone" msgstr "選擇時區" -#: src/views/toolbox/SystemView.vue:168 +#: src/views/toolbox/SystemView.vue:210 msgid "Please select a timezone" msgstr "請選擇時區" -#: src/views/toolbox/SystemView.vue:172 +#: src/views/toolbox/SystemView.vue:214 msgid "Modify Time" msgstr "修改時間" -#: src/views/toolbox/SystemView.vue:181 +#: src/views/toolbox/SystemView.vue:217 +#, fuzzy +msgid "NTP Server" +msgstr "伺服器" + +#: src/views/toolbox/SystemView.vue:221 +#, fuzzy +msgid "Optional, leave empty to use default servers" +msgstr "留空以使用默認路徑" + +#: src/views/toolbox/SystemView.vue:225 +#, fuzzy +msgid "Configure Default Servers" +msgstr "失敗時(預設重試 5 次)" + +#: src/views/toolbox/SystemView.vue:235 msgid "Synchronize Time" msgstr "同步時間" -#: src/views/toolbox/WebHookView.vue:69 -#: src/views/toolbox/WebHookView.vue:341 +#: src/views/toolbox/SystemView.vue:246 +#, fuzzy +msgid "System NTP Server Configuration" +msgstr "服務配置" + +#: src/views/toolbox/SystemView.vue:255 +msgid "" +"Unable to detect NTP service. Please ensure chrony or systemd-timesyncd is " +"installed." +msgstr "" + +#: src/views/toolbox/SystemView.vue:262 +msgid "" +"Current NTP service: %{ service }. Changes will be applied to system " +"configuration." +msgstr "" + +#: src/views/toolbox/SystemView.vue:275 +#, fuzzy +msgid "Enter NTP server address" +msgstr "輸入電子郵件地址" + +#: src/views/toolbox/SystemView.vue:300 +msgid "Reset to Default" +msgstr "" + +#: src/views/toolbox/WebHookView.vue:69 src/views/toolbox/WebHookView.vue:341 #: src/views/toolbox/WebHookView.vue:376 msgid "Raw Output" msgstr "" @@ -6635,38 +6415,31 @@ msgstr "" msgid "URL copied to clipboard" msgstr "" -#: src/views/toolbox/WebHookView.vue:243 -#: src/views/toolbox/WebHookView.vue:265 +#: src/views/toolbox/WebHookView.vue:243 src/views/toolbox/WebHookView.vue:265 msgid "Please enter a name" msgstr "" -#: src/views/toolbox/WebHookView.vue:247 -#: src/views/toolbox/WebHookView.vue:269 +#: src/views/toolbox/WebHookView.vue:247 src/views/toolbox/WebHookView.vue:269 msgid "Please enter a script" msgstr "" -#: src/views/toolbox/WebHookView.vue:296 -#: src/views/toolbox/WebHookView.vue:325 +#: src/views/toolbox/WebHookView.vue:296 src/views/toolbox/WebHookView.vue:325 msgid "Create WebHook" msgstr "" -#: src/views/toolbox/WebHookView.vue:333 -#: src/views/toolbox/WebHookView.vue:368 +#: src/views/toolbox/WebHookView.vue:333 src/views/toolbox/WebHookView.vue:368 msgid "Enter WebHook name" msgstr "" -#: src/views/toolbox/WebHookView.vue:338 -#: src/views/toolbox/WebHookView.vue:373 +#: src/views/toolbox/WebHookView.vue:338 src/views/toolbox/WebHookView.vue:373 msgid "User to run the script (default: root)" msgstr "" -#: src/views/toolbox/WebHookView.vue:344 -#: src/views/toolbox/WebHookView.vue:379 +#: src/views/toolbox/WebHookView.vue:344 src/views/toolbox/WebHookView.vue:379 msgid "Return script output as raw text instead of JSON" msgstr "" -#: src/views/toolbox/WebHookView.vue:347 -#: src/views/toolbox/WebHookView.vue:385 +#: src/views/toolbox/WebHookView.vue:347 src/views/toolbox/WebHookView.vue:385 msgid "Script" msgstr "" @@ -6683,13 +6456,14 @@ msgstr "格式不正確,請檢查" msgid "Website %{ name } created successfully" msgstr "網站 %{ name } 創建成功" -#: src/views/website/BulkCreateModal.vue:79 -#: src/views/website/ListView.vue:284 +#: src/views/website/BulkCreateModal.vue:79 src/views/website/ListView.vue:284 msgid "Bulk Create Website" msgstr "批量創建網站" #: src/views/website/BulkCreateModal.vue:90 -msgid "Please enter the website name, domain, port, path, and remark in the text area below, one per line." +msgid "" +"Please enter the website name, domain, port, path, and remark in the text " +"area below, one per line." msgstr "請在下面的文本區域輸入網站名稱、域名、端口、路徑和備註,每行一個。" #: src/views/website/BulkCreateModal.vue:98 @@ -6697,15 +6471,21 @@ msgid "name|domain|port|path|remark" msgstr "名稱|域名|端口|路徑|備註" #: src/views/website/BulkCreateModal.vue:103 -msgid "Name: The name of the website, which will be displayed in the website list, must be unique." +msgid "" +"Name: The name of the website, which will be displayed in the website list, " +"must be unique." msgstr "名稱:網站的名稱,將顯示在網站列表中,必須是唯一的。" #: src/views/website/BulkCreateModal.vue:110 -msgid "Domain: The domain name of the website, multiple domains can be separated by commas." +msgid "" +"Domain: The domain name of the website, multiple domains can be separated by " +"commas." msgstr "域名:網站的域名,多個域名可以用英文逗號分隔。" #: src/views/website/BulkCreateModal.vue:117 -msgid "Port: The port number of the website, multiple ports can be separated by commas." +msgid "" +"Port: The port number of the website, multiple ports can be separated by " +"commas." msgstr "端口:網站的端口號,多個端口可以用英文逗號分隔。" #: src/views/website/BulkCreateModal.vue:123 @@ -6716,36 +6496,35 @@ msgstr "路徑:網站的根目錄,可以為空以使用默認路徑。" msgid "Remark: The remark of the website, can be empty." msgstr "備註:網站的備註,可以為空。" -#: src/views/website/CreateModal.vue:39 -#: src/views/website/EditView.vue:58 +#: src/views/website/CreateModal.vue:39 src/views/website/EditView.vue:59 msgid "Not used" msgstr "未使用" -#: src/views/website/CreateModal.vue:114 -#: src/views/website/ListView.vue:281 +#: src/views/website/CreateModal.vue:114 src/views/website/ListView.vue:281 msgid "Create Website" msgstr "創建網站" #: src/views/website/CreateModal.vue:129 -msgid "Must use English for the website name, it cannot be modified after setting" +msgid "" +"Must use English for the website name, it cannot be modified after setting" msgstr "" #: src/views/website/CreateModal.vue:174 msgid "Select Database" msgstr "選擇數據庫" -#: src/views/website/CreateModal.vue:202 -#: src/views/website/CreateModal.vue:207 +#: src/views/website/CreateModal.vue:202 src/views/website/CreateModal.vue:207 msgid "Database User" msgstr "數據庫用戶" -#: src/views/website/CreateModal.vue:216 -#: src/views/website/CreateModal.vue:222 +#: src/views/website/CreateModal.vue:216 src/views/website/CreateModal.vue:222 msgid "Database Password" msgstr "數據庫密碼" #: src/views/website/CreateModal.vue:234 -msgid "Website root directory (if left empty, defaults to website directory/website name/public)" +msgid "" +"Website root directory (if left empty, defaults to website directory/website " +"name/public)" msgstr "" #: src/views/website/CreateModal.vue:246 @@ -6756,276 +6535,310 @@ msgstr "" msgid "Proxy target address (e.g., http://127.0.0.1:3000)" msgstr "" -#: src/views/website/CreateModal.vue:254 -#: src/views/website/CreateModal.vue:259 +#: src/views/website/CreateModal.vue:254 src/views/website/CreateModal.vue:259 #: src/views/website/ListView.vue:106 msgid "Remark" msgstr "備註" -#: src/views/website/EditView.vue:89 +#: src/views/website/EditView.vue:90 msgid "Edit Website - %{ name }" msgstr "編輯網站 - %{ name }" -#: src/views/website/EditView.vue:91 +#: src/views/website/EditView.vue:92 msgid "Edit Website" msgstr "編輯網站" -#: src/views/website/EditView.vue:130 +#: src/views/website/EditView.vue:131 msgid "Reset successfully" msgstr "重置成功" -#: src/views/website/EditView.vue:147 +#: src/views/website/EditView.vue:148 msgid "Issued successfully" msgstr "簽發成功" -#: src/views/website/EditView.vue:161 +#: src/views/website/EditView.vue:162 msgid "The selected certificate is invalid" msgstr "所選證書無效" -#: src/views/website/EditView.vue:240 +#: src/views/website/EditView.vue:241 msgid "Exact Match (=)" msgstr "精確匹配 (=)" -#: src/views/website/EditView.vue:241 +#: src/views/website/EditView.vue:242 msgid "Priority Prefix Match (^~)" msgstr "優先前綴匹配 (^~)" -#: src/views/website/EditView.vue:242 +#: src/views/website/EditView.vue:243 msgid "Prefix Match" msgstr "" -#: src/views/website/EditView.vue:243 +#: src/views/website/EditView.vue:244 msgid "Case-sensitive Regex (~)" msgstr "" -#: src/views/website/EditView.vue:244 +#: src/views/website/EditView.vue:245 msgid "Case-insensitive Regex (~*)" msgstr "" #: src/views/website/EditView.vue:391 +#, fuzzy +msgid "This Website" +msgstr "編輯網站" + +#: src/views/website/EditView.vue:392 +msgid "Global" +msgstr "" + +#: src/views/website/EditView.vue:419 msgid "Domain & Listening" msgstr "域名和監聽" -#: src/views/website/EditView.vue:401 +#: src/views/website/EditView.vue:429 msgid "Listening Address" msgstr "監聽地址" -#: src/views/website/EditView.vue:436 +#: src/views/website/EditView.vue:464 msgid "Website Directory" msgstr "網站目錄" -#: src/views/website/EditView.vue:439 +#: src/views/website/EditView.vue:467 msgid "Enter website directory (absolute path)" msgstr "輸入網站目錄(絕對路徑)" -#: src/views/website/EditView.vue:442 +#: src/views/website/EditView.vue:470 msgid "Running Directory" msgstr "運行目錄" -#: src/views/website/EditView.vue:446 +#: src/views/website/EditView.vue:474 msgid "Enter running directory (needed for Laravel etc.) (absolute path)" msgstr "輸入運行目錄(Laravel等需要)(絕對路徑)" -#: src/views/website/EditView.vue:450 +#: src/views/website/EditView.vue:478 msgid "Default Document" msgstr "預設文件" -#: src/views/website/EditView.vue:463 +#: src/views/website/EditView.vue:491 msgid "Anti-cross-site Attack" msgstr "" -#: src/views/website/EditView.vue:469 +#: src/views/website/EditView.vue:497 msgid "Upstreams" msgstr "" -#: src/views/website/EditView.vue:490 +#: src/views/website/EditView.vue:518 msgid "Upstream name" msgstr "" -#: src/views/website/EditView.vue:504 -#: src/views/website/EditView.vue:511 +#: src/views/website/EditView.vue:532 src/views/website/EditView.vue:539 msgid "Round Robin (default)" msgstr "" -#: src/views/website/EditView.vue:512 +#: src/views/website/EditView.vue:540 msgid "Least Busy" msgstr "" -#: src/views/website/EditView.vue:513 +#: src/views/website/EditView.vue:541 msgid "By Traffic" msgstr "" -#: src/views/website/EditView.vue:518 +#: src/views/website/EditView.vue:546 msgid "Keepalive Connections" msgstr "" -#: src/views/website/EditView.vue:556 +#: src/views/website/EditView.vue:584 msgid "Backend Servers" msgstr "" -#: src/views/website/EditView.vue:566 +#: src/views/website/EditView.vue:594 msgid "Server address, e.g., 127.0.0.1:8080" msgstr "" -#: src/views/website/EditView.vue:580 +#: src/views/website/EditView.vue:608 msgid "Options, e.g., weight=5 backup" msgstr "" -#: src/views/website/EditView.vue:606 +#: src/views/website/EditView.vue:634 msgid "No upstreams configured" msgstr "" -#: src/views/website/EditView.vue:615 +#: src/views/website/EditView.vue:643 msgid "Proxies" msgstr "" -#: src/views/website/EditView.vue:633 +#: src/views/website/EditView.vue:661 msgid "Rule" msgstr "" -#: src/views/website/EditView.vue:641 +#: src/views/website/EditView.vue:669 msgid "Match Type" msgstr "匹配類型" -#: src/views/website/EditView.vue:648 +#: src/views/website/EditView.vue:676 msgid "Match Expression" msgstr "匹配表達式" -#: src/views/website/EditView.vue:651 +#: src/views/website/EditView.vue:679 msgid "e.g., /, /api, ^/api/v[0-9]+/" msgstr "" -#: src/views/website/EditView.vue:659 +#: src/views/website/EditView.vue:687 msgid "Backend address, e.g., http://127.0.0.1:8080 or http://upstream_name" msgstr "" -#: src/views/website/EditView.vue:666 +#: src/views/website/EditView.vue:694 msgid "Proxy Host" msgstr "" -#: src/views/website/EditView.vue:669 -msgid "Default: $host, or extracted from Proxy Pass" +#: src/views/website/EditView.vue:698 +msgid "Default: $proxy_host, or extracted from Proxy Pass" msgstr "" -#: src/views/website/EditView.vue:672 +#: src/views/website/EditView.vue:702 msgid "Proxy SNI" msgstr "" -#: src/views/website/EditView.vue:675 +#: src/views/website/EditView.vue:705 msgid "Optional, for HTTPS backends" msgstr "" -#: src/views/website/EditView.vue:678 +#: src/views/website/EditView.vue:708 msgid "Enable Cache" msgstr "啟用快取" -#: src/views/website/EditView.vue:681 +#: src/views/website/EditView.vue:711 msgid "Enable Buffering" msgstr "" -#: src/views/website/EditView.vue:712 +#: src/views/website/EditView.vue:742 msgid "Response Content Replacement" msgstr "" -#: src/views/website/EditView.vue:722 +#: src/views/website/EditView.vue:752 msgid "Original content" msgstr "" -#: src/views/website/EditView.vue:738 +#: src/views/website/EditView.vue:768 msgid "Replacement content" msgstr "替換內容" -#: src/views/website/EditView.vue:762 +#: src/views/website/EditView.vue:792 msgid "Add Replacement Rule" msgstr "" -#: src/views/website/EditView.vue:772 +#: src/views/website/EditView.vue:802 msgid "No proxy rules configured" msgstr "" -#: src/views/website/EditView.vue:777 +#: src/views/website/EditView.vue:807 msgid "Add Proxy Rule" msgstr "" -#: src/views/website/EditView.vue:784 +#: src/views/website/EditView.vue:814 msgid "Certificate Information" msgstr "證書資訊" -#: src/views/website/EditView.vue:786 +#: src/views/website/EditView.vue:816 msgid "Certificate Validity" msgstr "證書有效期" -#: src/views/website/EditView.vue:800 +#: src/views/website/EditView.vue:830 msgid "Domains" msgstr "域名" -#: src/views/website/EditView.vue:815 +#: src/views/website/EditView.vue:845 msgid "Main Switch" msgstr "主開關" -#: src/views/website/EditView.vue:821 +#: src/views/website/EditView.vue:851 msgid "Use Existing Certificate" msgstr "使用現有證書" -#: src/views/website/EditView.vue:835 +#: src/views/website/EditView.vue:865 msgid "HTTP Redirect" msgstr "HTTP 重定向" -#: src/views/website/EditView.vue:838 +#: src/views/website/EditView.vue:868 msgid "OCSP Stapling" msgstr "OCSP 裝訂" -#: src/views/website/EditView.vue:843 +#: src/views/website/EditView.vue:873 msgid "TLS Version" msgstr "" -#: src/views/website/EditView.vue:855 +#: src/views/website/EditView.vue:885 msgid "Cipher Suites" msgstr "" -#: src/views/website/EditView.vue:859 +#: src/views/website/EditView.vue:889 msgid "Enter the cipher suite, leave blank to reset to default" msgstr "" -#: src/views/website/EditView.vue:883 +#: src/views/website/EditView.vue:913 msgid "Rewrite" msgstr "重寫" -#: src/views/website/EditView.vue:886 +#: src/views/website/EditView.vue:916 msgid "Presets" msgstr "預設" -#: src/views/website/EditView.vue:898 +#: src/views/website/EditView.vue:928 +#, fuzzy +msgid "Custom Configs" +msgstr "自定義 Logo" + +#: src/views/website/EditView.vue:946 +#, fuzzy +msgid "Config" +msgstr "配置" + +#: src/views/website/EditView.vue:955 +msgid "Config name (letters, numbers, underscore, hyphen)" +msgstr "" + +#: src/views/website/EditView.vue:963 +#, fuzzy +msgid "Content" +msgstr "腳本內容" + +#: src/views/website/EditView.vue:977 +#, fuzzy +msgid "No custom configs" +msgstr "未設定" + +#: src/views/website/EditView.vue:982 +#, fuzzy +msgid "Add Custom Config" +msgstr "自定義 Logo" + +#: src/views/website/EditView.vue:986 msgid "Access Log" msgstr "訪問日誌" -#: src/views/website/EditView.vue:902 -#: src/views/website/EditView.vue:922 +#: src/views/website/EditView.vue:990 src/views/website/EditView.vue:1002 msgid "All logs can be viewed by downloading the file" msgstr "所有日誌可通過下載文件查看" -#: src/views/website/EditView.vue:904 -#: src/views/website/EditView.vue:924 +#: src/views/website/EditView.vue:992 src/views/website/EditView.vue:1004 msgid "view" msgstr "查看" -#: src/views/website/EditView.vue:909 -msgid "Clear Logs" -msgstr "清除日誌" - -#: src/views/website/EditView.vue:918 +#: src/views/website/EditView.vue:998 msgid "Error Log" msgstr "錯誤日誌" -#: src/views/website/EditView.vue:942 +#: src/views/website/EditView.vue:1021 +msgid "Clear Logs" +msgstr "清除日誌" + +#: src/views/website/EditView.vue:1034 msgid "One-click Certificate Issuance" msgstr "一鍵簽發證書" -#: src/views/website/EditView.vue:947 +#: src/views/website/EditView.vue:1039 msgid "Reset Configuration" msgstr "重置配置" -#: src/views/website/EditView.vue:950 +#: src/views/website/EditView.vue:1042 msgid "Are you sure you want to reset the configuration?" msgstr "您確定要重置配置嗎?" @@ -7070,7 +6883,9 @@ msgid "Delete local database with the same name" msgstr "刪除同名的本地數據庫" #: src/views/website/ListView.vue:293 -msgid "This will delete the website directory but not the database with the same name. Are you sure you want to delete the selected websites?" +msgid "" +"This will delete the website directory but not the database with the same " +"name. Are you sure you want to delete the selected websites?" msgstr "這將刪除網站目錄,但不會刪除同名的數據庫。您確定要刪除所選網站嗎?" #: src/views/website/SettingView.vue:43 @@ -7094,11 +6909,15 @@ msgid "Default Settings" msgstr "" #: src/views/website/SettingView.vue:80 -msgid "Modifying the default TLS version and cipher suites will affect all newly created websites. Existing websites will not be affected." +msgid "" +"Modifying the default TLS version and cipher suites will affect all newly " +"created websites. Existing websites will not be affected." msgstr "" #: src/views/website/SettingView.vue:87 -msgid "Please adjust the settings carefully, improper configuration may lead to website inaccessible." +msgid "" +"Please adjust the settings carefully, improper configuration may lead to " +"website inaccessible." msgstr "" #: src/views/website/SettingView.vue:93 @@ -7112,4 +6931,3 @@ msgstr "" #: src/views/website/SettingView.vue:110 msgid "Enter the default cipher suite, leave blank to reset to default" msgstr "" -