diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3f3c3db7..6ba08fcb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ jobs: run_install: true package_json_file: web/package.json - name: Setup Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: 22 cache: 'pnpm' diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index ba2429c6..c3812d36 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -24,7 +24,7 @@ jobs: run_install: true package_json_file: web/package.json - name: Setup Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: 22 cache: 'pnpm' diff --git a/.github/workflows/l10n.yml b/.github/workflows/l10n.yml index d3894c81..6da49a5b 100644 --- a/.github/workflows/l10n.yml +++ b/.github/workflows/l10n.yml @@ -19,7 +19,7 @@ jobs: run_install: true package_json_file: web/package.json - name: Setup Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: 22 cache: 'pnpm' @@ -29,6 +29,9 @@ jobs: with: cache: true go-version: 'stable' + - name: Install gettext + run: | + sudo apt-get install -y gettext - name: Install xgotext run: | go install github.com/leonelquinteros/gotext/cli/xgotext@latest @@ -36,7 +39,7 @@ jobs: run: | ~/go/bin/xgotext -default backend -pkg-tree ./cmd/ace -out ./pkg/embed/locales cd web && pnpm run gettext:extract - - uses: stefanzweifel/git-auto-commit-action@v6 + - uses: stefanzweifel/git-auto-commit-action@v7 name: Commit changes with: commit_message: "chore(l10n): update pot files" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 0996c7e6..0225d813 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -49,7 +49,7 @@ jobs: run_install: true package_json_file: web/package.json - name: Setup Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: node-version: 22 cache: 'pnpm' diff --git a/.github/workflows/mockery.yml b/.github/workflows/mockery.yml index 6709dd4d..f78bc1ef 100644 --- a/.github/workflows/mockery.yml +++ b/.github/workflows/mockery.yml @@ -23,7 +23,7 @@ jobs: run: | ~/go/bin/mockery git pull - - uses: stefanzweifel/git-auto-commit-action@v6 + - uses: stefanzweifel/git-auto-commit-action@v7 name: Commit changes with: commit_message: "chore: update mocks" diff --git a/go.mod b/go.mod index c4af3630..cd7d598e 100644 --- a/go.mod +++ b/go.mod @@ -39,10 +39,10 @@ require ( github.com/libdns/porkbun v1.1.0 github.com/libdns/tencentcloud v1.4.2 github.com/libdns/westcn v1.0.2 - github.com/libtnb/chix v1.3.0 + github.com/libtnb/chix v1.3.1 github.com/libtnb/gormstore v1.1.1 github.com/libtnb/sessions v1.2.1 - github.com/libtnb/utils v1.2.0 + github.com/libtnb/utils v1.2.1 github.com/mholt/acmez/v3 v3.1.4 github.com/ncruces/go-sqlite3 v0.29.1 github.com/ncruces/go-sqlite3/gormlite v0.24.0 @@ -110,7 +110,7 @@ require ( github.com/tklauser/numcpus v0.10.0 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - golang.org/x/exp v0.0.0-20250911091902-df9299821621 // indirect + golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b // indirect golang.org/x/sync v0.17.0 // indirect golang.org/x/sys v0.37.0 // indirect golang.org/x/text v0.30.0 // indirect diff --git a/go.sum b/go.sum index fecbd0af..1f3ab362 100644 --- a/go.sum +++ b/go.sum @@ -253,16 +253,16 @@ github.com/libdns/westcn v1.0.2 h1:PA2M3tME5/0T3klPMzSHvGk1EWnGNNkJiKxaJjFalnM= github.com/libdns/westcn v1.0.2/go.mod h1:iKpk8jjOU+793Yp8nHoihPTCR6N1KWtm4/r8BB9mVnk= github.com/libtnb/acmez/v3 v3.0.0-20250926183442-f904007577f7 h1:lyQgUomlXxgp3e/SoK5q8S5PBAdL8P+sZ9iPFx2dhYk= github.com/libtnb/acmez/v3 v3.0.0-20250926183442-f904007577f7/go.mod h1:L1wOU06KKvq7tswuMDwKdcHeKpFFgkppZy/y0DFxagQ= -github.com/libtnb/chix v1.3.0 h1:/U+CyuxI41ooeB6M/762PHOjQlfHRg6BQjHKLZarlrM= -github.com/libtnb/chix v1.3.0/go.mod h1:o8nQLEp/UrUojBKYzw8K8sltU/h0XxI2VLZ/z7AQCQg= +github.com/libtnb/chix v1.3.1 h1:elGvSWWxbzkuXg4Jhq0LXsRREXj1HkBTgTlly9eLkq8= +github.com/libtnb/chix v1.3.1/go.mod h1:o8nQLEp/UrUojBKYzw8K8sltU/h0XxI2VLZ/z7AQCQg= github.com/libtnb/gormstore v1.1.1 h1:FG/3P4PuWM6/vB4weVJ31meiSaoeXns1NQlP66quKeg= github.com/libtnb/gormstore v1.1.1/go.mod h1:8A5QzeZxi1MpSmjUVsHTDAL6KnU84feIXMutFLPawwA= github.com/libtnb/securecookie v1.2.0 h1:2uc0PBDm0foeSTrcZ9QTX1IEjf6kFEwfgEYSIXQSKrA= github.com/libtnb/securecookie v1.2.0/go.mod h1:ja+wNGnQzYqcqXQnJWu6icsaWi5JEBwNEMJ2ReTVDxA= github.com/libtnb/sessions v1.2.1 h1:O9gkEIeZuqyaxopXrUJcGxlNxmNfRBI8BOK43yLJXDI= github.com/libtnb/sessions v1.2.1/go.mod h1:45Bn9d6PseDINLIM1QaJrlCMbzSZ0NWpDbWkdrKJKw0= -github.com/libtnb/utils v1.2.0 h1:6bTZrWn2OkNrODpCY4dhuHwbhsVRV7HICIgmZ31we98= -github.com/libtnb/utils v1.2.0/go.mod h1:9gSEuhkADlvYbM3qJRQUAMC5ypMrhrYpX9YMuYJ6ws8= +github.com/libtnb/utils v1.2.1 h1:LJmReRREnpqfHyy9PZtNgBh3ZaIGct81b8ZaAsolMkM= +github.com/libtnb/utils v1.2.1/go.mod h1:o6LEDeC42PXI21uLWdWJWTVYvR9BtAZfzzTGJVQoQiU= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= @@ -411,8 +411,8 @@ golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20250911091902-df9299821621 h1:2id6c1/gto0kaHYyrixvknJ8tUK/Qs5IsmBtrc+FtgU= -golang.org/x/exp v0.0.0-20250911091902-df9299821621/go.mod h1:TwQYMMnGpvZyc+JpB/UAuTNIsVJifOlSkrZkhcvpVUk= +golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b h1:18qgiDvlvH7kk8Ioa8Ov+K6xCi0GMvmGfGW0sgd/SYA= +golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b/go.mod h1:j/pmGrbnkbPtQfxEe5D0VQhZC6qKbfKifgD0oM7sR70= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= diff --git a/pkg/embed/locales/backend.pot b/pkg/embed/locales/backend.pot index 2fbe6b82..6560a652 100644 --- a/pkg/embed/locales/backend.pot +++ b/pkg/embed/locales/backend.pot @@ -7,8 +7,8 @@ msgstr "" "Language: \n" "X-Generator: xgotext\n" -#: internal/data/website.go:279 -#: internal/data/website.go:652 +#: internal/data/website.go:276 +#: internal/data/website.go:653 msgid "# Rewrite rule" msgstr "" @@ -60,35 +60,35 @@ msgstr "" msgid "Aliyun" msgstr "" -#: internal/service/cli.go:937 +#: internal/service/cli.go:939 msgid "Already initialized" msgstr "" -#: internal/data/app.go:350 +#: internal/data/app.go:363 msgid "App %s %s" msgstr "" -#: internal/service/cli.go:786 +#: internal/service/cli.go:788 msgid "App %s installed successfully" msgstr "" -#: internal/service/cli.go:800 +#: internal/service/cli.go:802 msgid "App %s uninstalled successfully" msgstr "" -#: internal/service/cli.go:814 +#: internal/service/cli.go:816 msgid "App %s updated successfully" msgstr "" -#: internal/service/cli.go:783 +#: internal/service/cli.go:785 msgid "App install failed: %v" msgstr "" -#: internal/service/cli.go:797 +#: internal/service/cli.go:799 msgid "App uninstall failed: %v" msgstr "" -#: internal/service/cli.go:811 +#: internal/service/cli.go:813 msgid "App update failed: %v" msgstr "" @@ -108,9 +108,9 @@ msgstr "" msgid "Backup directory (default path if not filled)" msgstr "" -#: internal/service/cli.go:665 -#: internal/service/cli.go:681 -#: internal/service/cli.go:695 +#: internal/service/cli.go:667 +#: internal/service/cli.go:683 +#: internal/service/cli.go:697 msgid "Backup failed: %v" msgstr "" @@ -189,7 +189,7 @@ msgstr "" msgid "Change username" msgstr "" -#: internal/service/cli.go:719 +#: internal/service/cli.go:721 msgid "Cleaning failed: %v" msgstr "" @@ -237,7 +237,7 @@ msgstr "" msgid "Create new website" msgstr "" -#: internal/service/cli.go:753 +#: internal/service/cli.go:755 msgid "Currently only website log rotation is supported" msgstr "" @@ -262,11 +262,11 @@ msgstr "" msgid "Database name" msgstr "" -#: internal/service/cli.go:640 +#: internal/service/cli.go:642 msgid "Database server %s added successfully" msgstr "" -#: internal/service/cli.go:654 +#: internal/service/cli.go:656 msgid "Database server %s deleted successfully" msgstr "" @@ -315,7 +315,7 @@ msgstr "" msgid "Download file check failed" msgstr "" -#: internal/service/file.go:295 +#: internal/service/file.go:294 msgid "Download remote file %v" msgstr "" @@ -364,15 +364,15 @@ msgstr "" msgid "Failed to change username: %v" msgstr "" -#: internal/service/cli.go:874 +#: internal/service/cli.go:876 msgid "Failed to clear tasks: %v" msgstr "" -#: internal/service/cli.go:849 +#: internal/service/cli.go:851 msgid "Failed to delete app: %v" msgstr "" -#: internal/service/cli.go:928 +#: internal/service/cli.go:930 msgid "Failed to delete setting: %v" msgstr "" @@ -385,7 +385,7 @@ msgstr "" msgid "Failed to generate password: %v" msgstr "" -#: internal/service/cli.go:829 +#: internal/service/cli.go:831 msgid "Failed to get app: %v" msgstr "" @@ -401,8 +401,8 @@ msgstr "" msgid "Failed to get port" msgstr "" -#: internal/service/cli.go:892 -#: internal/service/cli.go:909 +#: internal/service/cli.go:894 +#: internal/service/cli.go:911 msgid "Failed to get setting: %v" msgstr "" @@ -424,11 +424,11 @@ msgstr "" msgid "Failed to read input: %v" msgstr "" -#: internal/service/cli.go:836 +#: internal/service/cli.go:838 msgid "Failed to save app: %v" msgstr "" -#: internal/service/cli.go:915 +#: internal/service/cli.go:917 msgid "Failed to save setting: %v" msgstr "" @@ -548,10 +548,10 @@ msgstr "" msgid "Index Hit Rate" msgstr "" -#: internal/service/cli.go:952 -#: internal/service/cli.go:957 -#: internal/service/cli.go:962 -#: internal/service/cli.go:966 +#: internal/service/cli.go:954 +#: internal/service/cli.go:959 +#: internal/service/cli.go:964 +#: internal/service/cli.go:968 msgid "Initialization failed: %v" msgstr "" @@ -567,7 +567,7 @@ msgstr "" msgid "Install PHP-%d %s extension" msgstr "" -#: internal/data/app.go:194 +#: internal/data/app.go:202 msgid "Install app %s" msgstr "" @@ -690,7 +690,7 @@ msgstr "" msgid "No backup file found, unable to automatically repair" msgstr "" -#: internal/service/cli.go:621 +#: internal/service/cli.go:623 msgid "Not supported" msgstr "" @@ -768,14 +768,14 @@ msgstr "" msgid "Panel service stopped" msgstr "" -#: internal/service/cli.go:779 -#: internal/service/cli.go:793 -#: internal/service/cli.go:807 -#: internal/service/cli.go:823 -#: internal/service/cli.go:845 -#: internal/service/cli.go:884 -#: internal/service/cli.go:903 -#: internal/service/cli.go:924 +#: internal/service/cli.go:781 +#: internal/service/cli.go:795 +#: internal/service/cli.go:809 +#: internal/service/cli.go:825 +#: internal/service/cli.go:847 +#: internal/service/cli.go:886 +#: internal/service/cli.go:905 +#: internal/service/cli.go:926 msgid "Parameters cannot be empty" msgstr "" @@ -823,7 +823,7 @@ msgstr "" msgid "Port already in use" msgstr "" -#: internal/service/cli.go:561 +#: internal/service/cli.go:563 msgid "Port changed to %d" msgstr "" @@ -955,7 +955,7 @@ msgstr "" msgid "Setting management" msgstr "" -#: internal/service/cli.go:890 +#: internal/service/cli.go:892 msgid "Setting not exists" msgstr "" @@ -1024,7 +1024,7 @@ msgstr "" msgid "Table Locks Waited" msgstr "" -#: internal/service/cli.go:877 +#: internal/service/cli.go:879 msgid "Tasks cleared successfully" msgstr "" @@ -1044,7 +1044,7 @@ msgstr "" msgid "The number of files contained in the compressed file is not 1, actual %d" msgstr "" -#: internal/service/cli.go:865 +#: internal/service/cli.go:867 msgid "Time synchronized successfully" msgstr "" @@ -1100,7 +1100,7 @@ msgstr "" msgid "USAGE" msgstr "" -#: internal/service/app.go:173 +#: internal/service/app.go:180 msgid "Unable to update app list cache in offline mode" msgstr "" @@ -1108,7 +1108,7 @@ msgstr "" msgid "Uninstall PHP-%d %s extension" msgstr "" -#: internal/data/app.go:249 +#: internal/data/app.go:257 msgid "Uninstall app %s" msgstr "" @@ -1124,7 +1124,7 @@ msgstr "" msgid "Unzip panel data failed: %v" msgstr "" -#: internal/data/app.go:304 +#: internal/data/app.go:317 msgid "Update app %s" msgstr "" @@ -1186,15 +1186,15 @@ msgstr "" msgid "Website" msgstr "" -#: internal/service/cli.go:580 +#: internal/service/cli.go:582 msgid "Website %s created successfully" msgstr "" -#: internal/service/cli.go:616 +#: internal/service/cli.go:618 msgid "Website %s deleted successfully" msgstr "" -#: internal/service/cli.go:597 +#: internal/service/cli.go:599 msgid "Website %s removed successfully" msgstr "" @@ -1246,28 +1246,28 @@ msgstr "" msgid "Zip is a library for handling ZIP files" msgstr "" -#: internal/data/app.go:162 +#: internal/data/app.go:165 msgid "app %s already installed" msgstr "" -#: internal/data/app.go:59 +#: internal/data/app.go:63 msgid "app %s not found" msgstr "" -#: internal/data/app.go:213 -#: internal/data/app.go:268 +#: internal/data/app.go:221 +#: internal/data/app.go:276 #: internal/http/middleware/must_install.go:38 msgid "app %s not installed" msgstr "" -#: internal/data/app.go:182 -#: internal/data/app.go:292 +#: internal/data/app.go:185 +#: internal/data/app.go:300 msgid "app %s not support current panel version" msgstr "" -#: internal/data/app.go:173 -#: internal/data/app.go:228 -#: internal/data/app.go:283 +#: internal/data/app.go:176 +#: internal/data/app.go:236 +#: internal/data/app.go:291 msgid "app %s requires panel version %s, current version %s" msgstr "" @@ -1275,9 +1275,9 @@ msgstr "" msgid "app not found" msgstr "" -#: internal/data/setting.go:283 -#: internal/data/setting.go:345 -#: internal/data/setting.go:358 +#: internal/data/setting.go:284 +#: internal/data/setting.go:347 +#: internal/data/setting.go:360 msgid "background task is running, modifying some settings is prohibited, please try again later" msgstr "" @@ -1295,11 +1295,11 @@ msgstr "" msgid "backup file %s not exists" msgstr "" -#: internal/service/file.go:277 +#: internal/service/file.go:276 msgid "can't download a directory" msgstr "" -#: internal/data/website.go:380 +#: internal/data/website.go:383 msgid "can't find %s database server, please add it first" msgstr "" @@ -1308,26 +1308,18 @@ msgstr "" msgid "check server connection failed" msgstr "" -#: internal/http/middleware/must_login.go:69 -msgid "client ip/ua changed, please login again" +#: internal/http/middleware/must_login.go:80 +msgid "client ip changed, please login again" msgstr "" #: internal/data/backup.go:569 msgid "could not find .sql backup file" msgstr "" -#: internal/service/file.go:166 +#: internal/service/file.go:165 msgid "create directory error: %v" msgstr "" -#: internal/data/cron.go:95 -msgid "cron directory %s not exists" -msgstr "" - -#: internal/data/cron.go:98 -msgid "cron log directory %s not exists" -msgstr "" - #: internal/data/backup.go:263 #: internal/data/backup.go:309 #: internal/data/backup.go:425 @@ -1335,11 +1327,11 @@ msgstr "" msgid "database does not exist: %s" msgstr "" -#: internal/data/website.go:734 +#: internal/data/website.go:735 msgid "default document comment count is incorrect, expected 1, actual %d" msgstr "" -#: internal/data/website.go:731 +#: internal/data/website.go:732 msgid "default document comment not found" msgstr "" @@ -1407,7 +1399,7 @@ msgstr "" msgid "failed to get %s service running status: %v" msgstr "" -#: internal/data/website.go:315 +#: internal/data/website.go:318 msgid "failed to get 404 template file: %v" msgstr "" @@ -1556,7 +1548,7 @@ msgstr "" msgid "failed to get total banned list" msgstr "" -#: internal/data/app.go:237 +#: internal/data/app.go:245 msgid "failed to get uninstall script for app %s" msgstr "" @@ -1566,18 +1558,18 @@ msgid "failed to load MySQL root password: %v" msgstr "" #: internal/data/cert.go:92 -#: internal/data/setting.go:288 -#: internal/data/setting.go:361 -#: internal/data/website.go:484 -#: internal/data/website.go:773 +#: internal/data/setting.go:289 +#: internal/data/setting.go:363 +#: internal/data/website.go:487 +#: internal/data/website.go:774 msgid "failed to parse certificate: %v" msgstr "" #: internal/data/cert.go:95 -#: internal/data/setting.go:291 -#: internal/data/setting.go:364 -#: internal/data/website.go:487 -#: internal/data/website.go:776 +#: internal/data/setting.go:292 +#: internal/data/setting.go:366 +#: internal/data/website.go:490 +#: internal/data/website.go:777 msgid "failed to parse private key: %v" msgstr "" @@ -1685,7 +1677,7 @@ msgstr "" msgid "failed to write to Memcached: %v" msgstr "" -#: internal/service/file.go:84 +#: internal/service/file.go:83 msgid "file is too large, please download it to view" msgstr "" @@ -1699,19 +1691,19 @@ msgstr "" #: internal/data/user.go:180 #: internal/data/user.go:199 -#: internal/service/user.go:96 +#: internal/service/user.go:97 msgid "invalid 2FA code" msgstr "" -#: internal/http/middleware/entrance.go:110 +#: internal/http/middleware/entrance.go:118 msgid "invalid access entrance" msgstr "" -#: internal/data/user_token.go:101 +#: internal/data/user_token.go:104 msgid "invalid header: %v" msgstr "" -#: internal/service/user.go:82 +#: internal/service/user.go:83 msgid "invalid key, please refresh the page" msgstr "" @@ -1719,22 +1711,22 @@ msgstr "" msgid "invalid request domain: %s" msgstr "" -#: internal/data/user_token.go:167 -#: internal/http/middleware/entrance.go:71 +#: internal/data/user_token.go:176 +#: internal/http/middleware/entrance.go:79 msgid "invalid request ip: %s" msgstr "" -#: internal/http/middleware/entrance.go:76 +#: internal/http/middleware/entrance.go:84 msgid "invalid request user agent: %s" msgstr "" -#: internal/data/user_token.go:104 -#: internal/data/user_token.go:110 -#: internal/data/user_token.go:133 +#: internal/data/user_token.go:107 +#: internal/data/user_token.go:113 +#: internal/data/user_token.go:136 msgid "invalid signature" msgstr "" -#: internal/http/middleware/must_login.go:78 +#: internal/http/middleware/must_login.go:103 msgid "invalid user id, please login again" msgstr "" @@ -1775,11 +1767,11 @@ msgstr "" msgid "mysql not support database comment" msgstr "" -#: internal/data/website.go:804 +#: internal/data/website.go:805 msgid "not support one-key obtain wildcard certificate, please use Cert menu to obtain it with DNS method" msgstr "" -#: internal/service/file.go:174 +#: internal/service/file.go:173 msgid "open file error: %v" msgstr "" @@ -1821,9 +1813,9 @@ msgid "phpMyAdmin port not found" msgstr "" #: internal/data/user.go:106 -#: internal/service/file.go:135 -#: internal/service/file.go:222 -#: internal/service/file.go:251 +#: internal/service/file.go:134 +#: internal/service/file.go:221 +#: internal/service/file.go:250 msgid "please don't do this" msgstr "" @@ -1831,7 +1823,7 @@ msgstr "" msgid "please retry the manual obtain operation" msgstr "" -#: internal/data/setting.go:312 +#: internal/data/setting.go:313 msgid "port is already in use" msgstr "" @@ -1851,24 +1843,24 @@ msgstr "" msgid "rule not found" msgstr "" -#: internal/data/website.go:721 +#: internal/data/website.go:722 msgid "runtime directory comment count is incorrect, expected 1, actual %d" msgstr "" -#: internal/data/website.go:718 +#: internal/data/website.go:719 msgid "runtime directory comment not found" msgstr "" -#: internal/data/website.go:458 -#: internal/data/website.go:725 +#: internal/data/website.go:461 +#: internal/data/website.go:726 msgid "runtime directory does not exist" msgstr "" -#: internal/http/middleware/must_login.go:58 +#: internal/http/middleware/must_login.go:60 msgid "session expired, please login again" msgstr "" -#: internal/data/user_token.go:138 +#: internal/data/user_token.go:141 msgid "signature expired" msgstr "" @@ -1885,11 +1877,11 @@ msgstr "" msgid "target backup %s already exists" msgstr "" -#: internal/service/file.go:80 +#: internal/service/file.go:79 msgid "target is a directory" msgstr "" -#: internal/service/file.go:160 +#: internal/service/file.go:159 msgid "target path %s already exists" msgstr "" @@ -1914,7 +1906,7 @@ msgstr "" msgid "this certificate is not associated with an ACME account and cannot be obtained" msgstr "" -#: internal/data/user_token.go:113 +#: internal/data/user_token.go:116 msgid "token expired" msgstr "" @@ -1950,7 +1942,7 @@ msgstr "" msgid "unsupported file type" msgstr "" -#: internal/data/cron.go:220 +#: internal/data/cron.go:212 msgid "unsupported system" msgstr "" @@ -1958,7 +1950,7 @@ msgstr "" msgid "upload certificate cannot be set to auto renew" msgstr "" -#: internal/service/file.go:156 +#: internal/service/file.go:155 msgid "upload file error: %v" msgstr "" @@ -1968,11 +1960,11 @@ msgstr "" msgid "username or password error" msgstr "" -#: internal/data/website.go:569 +#: internal/data/website.go:573 msgid "website %s has bound certificates, please delete the certificate first" msgstr "" -#: internal/data/website.go:465 +#: internal/data/website.go:468 msgid "website directory does not exist" msgstr "" @@ -1981,11 +1973,11 @@ msgstr "" msgid "wildcard domains cannot use HTTP verification" msgstr "" -#: internal/service/file.go:179 +#: internal/service/file.go:178 msgid "write file error: %v" msgstr "" -#: internal/http/middleware/must_login.go:48 +#: internal/http/middleware/must_login.go:50 msgid "ws not allowed" msgstr "" @@ -2039,8 +2031,8 @@ msgstr "" msgid "|-Backup panel data..." msgstr "" -#: internal/service/cli.go:663 -#: internal/service/cli.go:679 +#: internal/service/cli.go:665 +#: internal/service/cli.go:681 msgid "|-Backup target: %s" msgstr "" @@ -2051,15 +2043,15 @@ msgstr "" msgid "|-Backup time: %s" msgstr "" -#: internal/service/cli.go:677 +#: internal/service/cli.go:679 msgid "|-Backup type: database" msgstr "" -#: internal/service/cli.go:693 +#: internal/service/cli.go:695 msgid "|-Backup type: panel" msgstr "" -#: internal/service/cli.go:662 +#: internal/service/cli.go:664 msgid "|-Backup type: website" msgstr "" @@ -2087,17 +2079,17 @@ msgstr "" msgid "|-Cleaning old version..." msgstr "" -#: internal/service/cli.go:716 -#: internal/service/cli.go:764 +#: internal/service/cli.go:718 +#: internal/service/cli.go:766 msgid "|-Cleaning target: %s" msgstr "" -#: internal/service/cli.go:715 -#: internal/service/cli.go:763 +#: internal/service/cli.go:717 +#: internal/service/cli.go:765 msgid "|-Cleaning type: %s" msgstr "" -#: internal/service/cli.go:678 +#: internal/service/cli.go:680 msgid "|-Database: %s" msgstr "" @@ -2121,8 +2113,8 @@ msgstr "" msgid "|-Fix completed" msgstr "" -#: internal/service/cli.go:717 -#: internal/service/cli.go:765 +#: internal/service/cli.go:719 +#: internal/service/cli.go:767 msgid "|-Keep count: %d" msgstr "" @@ -2147,11 +2139,11 @@ msgstr "" msgid "|-Restore panel data..." msgstr "" -#: internal/service/cli.go:741 +#: internal/service/cli.go:743 msgid "|-Rotation target: %s" msgstr "" -#: internal/service/cli.go:740 +#: internal/service/cli.go:742 msgid "|-Rotation type: website" msgstr "" @@ -2213,35 +2205,35 @@ msgstr "" msgid "|-Write new panel version failed: %v" msgstr "" -#: internal/service/cli.go:660 -#: internal/service/cli.go:675 -#: internal/service/cli.go:691 +#: internal/service/cli.go:662 +#: internal/service/cli.go:677 +#: internal/service/cli.go:693 msgid "★ Start backup [%s]" msgstr "" -#: internal/service/cli.go:713 +#: internal/service/cli.go:715 msgid "★ Start cleaning [%s]" msgstr "" -#: internal/service/cli.go:761 +#: internal/service/cli.go:763 msgid "★ Start cleaning rotated logs [%s]" msgstr "" -#: internal/service/cli.go:738 +#: internal/service/cli.go:740 msgid "★ Start log rotation [%s]" msgstr "" -#: internal/service/cli.go:668 -#: internal/service/cli.go:684 -#: internal/service/cli.go:698 +#: internal/service/cli.go:670 +#: internal/service/cli.go:686 +#: internal/service/cli.go:700 msgid "☆ Backup successful [%s]" msgstr "" -#: internal/service/cli.go:722 -#: internal/service/cli.go:770 +#: internal/service/cli.go:724 +#: internal/service/cli.go:772 msgid "☆ Cleaning successful [%s]" msgstr "" -#: internal/service/cli.go:746 +#: internal/service/cli.go:748 msgid "☆ Rotation successful [%s]" msgstr "" \ No newline at end of file diff --git a/pkg/embed/locales/zh_CN/backend.po b/pkg/embed/locales/zh_CN/backend.po index 94454726..879c81e5 100644 --- a/pkg/embed/locales/zh_CN/backend.po +++ b/pkg/embed/locales/zh_CN/backend.po @@ -13,10 +13,10 @@ msgstr "" "X-Crowdin-File-ID: 1166\n" "Project-Id-Version: acepanel\n" "Language-Team: Chinese Simplified\n" -"PO-Revision-Date: 2025-08-22 09:01\n" +"PO-Revision-Date: 2025-10-12 00:28\n" -#: internal/data/website.go:279 -#: internal/data/website.go:652 +#: internal/data/website.go:276 +#: internal/data/website.go:653 msgid "# Rewrite rule" msgstr "# 伪静态规则" @@ -68,35 +68,35 @@ msgstr "添加面板应用标记(仅在指导下使用)" msgid "Aliyun" msgstr "阿里云" -#: internal/service/cli.go:937 +#: internal/service/cli.go:939 msgid "Already initialized" msgstr "已经初始化过了" -#: internal/data/app.go:350 +#: internal/data/app.go:363 msgid "App %s %s" msgstr "应用 %s %s" -#: internal/service/cli.go:786 +#: internal/service/cli.go:788 msgid "App %s installed successfully" msgstr "应用 %s 安装成功" -#: internal/service/cli.go:800 +#: internal/service/cli.go:802 msgid "App %s uninstalled successfully" msgstr "应用 %s 卸载成功" -#: internal/service/cli.go:814 +#: internal/service/cli.go:816 msgid "App %s updated successfully" msgstr "应用 %s 更新成功" -#: internal/service/cli.go:783 +#: internal/service/cli.go:785 msgid "App install failed: %v" msgstr "应用安装失败:%v" -#: internal/service/cli.go:797 +#: internal/service/cli.go:799 msgid "App uninstall failed: %v" msgstr "应用卸载失败:%v" -#: internal/service/cli.go:811 +#: internal/service/cli.go:813 msgid "App update failed: %v" msgstr "应用更新失败:%v" @@ -116,9 +116,9 @@ msgstr "备份数据库" msgid "Backup directory (default path if not filled)" msgstr "备份目录(不填则使用默认路径)" -#: internal/service/cli.go:665 -#: internal/service/cli.go:681 -#: internal/service/cli.go:695 +#: internal/service/cli.go:667 +#: internal/service/cli.go:683 +#: internal/service/cli.go:697 msgid "Backup failed: %v" msgstr "备份失败:%v" @@ -197,7 +197,7 @@ msgstr "更改用户密码" msgid "Change username" msgstr "更改用户名" -#: internal/service/cli.go:719 +#: internal/service/cli.go:721 msgid "Cleaning failed: %v" msgstr "清理失败:%v" @@ -245,7 +245,7 @@ msgstr "已连接客户端数" msgid "Create new website" msgstr "创建新网站" -#: internal/service/cli.go:753 +#: internal/service/cli.go:755 msgid "Currently only website log rotation is supported" msgstr "目前仅支持网站日志切割" @@ -270,11 +270,11 @@ msgstr "数据库管理" msgid "Database name" msgstr "数据库名称" -#: internal/service/cli.go:640 +#: internal/service/cli.go:642 msgid "Database server %s added successfully" msgstr "数据库服务器 %s 添加成功" -#: internal/service/cli.go:654 +#: internal/service/cli.go:656 msgid "Database server %s deleted successfully" msgstr "数据库服务器 %s 删除成功" @@ -323,7 +323,7 @@ msgstr "下载失败:%v" msgid "Download file check failed" msgstr "下载文件检查失败" -#: internal/service/file.go:295 +#: internal/service/file.go:294 msgid "Download remote file %v" msgstr "下载远程文件 %v" @@ -372,15 +372,15 @@ msgstr "修改密码失败:%v" msgid "Failed to change username: %v" msgstr "修改用户名失败:%v" -#: internal/service/cli.go:874 +#: internal/service/cli.go:876 msgid "Failed to clear tasks: %v" msgstr "清除任务失败:%v" -#: internal/service/cli.go:849 +#: internal/service/cli.go:851 msgid "Failed to delete app: %v" msgstr "删除应用失败:%v" -#: internal/service/cli.go:928 +#: internal/service/cli.go:930 msgid "Failed to delete setting: %v" msgstr "删除设置失败:%v" @@ -393,7 +393,7 @@ msgstr "生成两步验证失败:%v" msgid "Failed to generate password: %v" msgstr "生成密码失败:%v" -#: internal/service/cli.go:829 +#: internal/service/cli.go:831 msgid "Failed to get app: %v" msgstr "获取应用失败:%v" @@ -409,8 +409,8 @@ msgstr "获取最新版本失败:%v" msgid "Failed to get port" msgstr "获取端口失败" -#: internal/service/cli.go:892 -#: internal/service/cli.go:909 +#: internal/service/cli.go:894 +#: internal/service/cli.go:911 msgid "Failed to get setting: %v" msgstr "获取设置失败:%v" @@ -432,11 +432,11 @@ msgstr "获取用户失败:%v" msgid "Failed to read input: %v" msgstr "读取输入失败: %v" -#: internal/service/cli.go:836 +#: internal/service/cli.go:838 msgid "Failed to save app: %v" msgstr "保存应用失败:%v" -#: internal/service/cli.go:915 +#: internal/service/cli.go:917 msgid "Failed to save setting: %v" msgstr "保存设置失败:%v" @@ -556,10 +556,10 @@ msgstr "ImageMagick 是一个创建、编辑、合成图片的免费软件" msgid "Index Hit Rate" msgstr "索引命中率" -#: internal/service/cli.go:952 -#: internal/service/cli.go:957 -#: internal/service/cli.go:962 -#: internal/service/cli.go:966 +#: internal/service/cli.go:954 +#: internal/service/cli.go:959 +#: internal/service/cli.go:964 +#: internal/service/cli.go:968 msgid "Initialization failed: %v" msgstr "初始化失败:%v" @@ -575,7 +575,7 @@ msgstr "Innodb 索引命中率" msgid "Install PHP-%d %s extension" msgstr "安装 PHP-%d %s 扩展" -#: internal/data/app.go:194 +#: internal/data/app.go:202 msgid "Install app %s" msgstr "安装应用 %s" @@ -698,7 +698,7 @@ msgstr "新用户名不能为空" msgid "No backup file found, unable to automatically repair" msgstr "未找到备份文件,无法自动修复" -#: internal/service/cli.go:621 +#: internal/service/cli.go:623 msgid "Not supported" msgstr "不支持" @@ -776,14 +776,14 @@ msgstr "面板服务已启动" msgid "Panel service stopped" msgstr "面板服务已停止" -#: internal/service/cli.go:779 -#: internal/service/cli.go:793 -#: internal/service/cli.go:807 -#: internal/service/cli.go:823 -#: internal/service/cli.go:845 -#: internal/service/cli.go:884 -#: internal/service/cli.go:903 -#: internal/service/cli.go:924 +#: internal/service/cli.go:781 +#: internal/service/cli.go:795 +#: internal/service/cli.go:809 +#: internal/service/cli.go:825 +#: internal/service/cli.go:847 +#: internal/service/cli.go:886 +#: internal/service/cli.go:905 +#: internal/service/cli.go:926 msgid "Parameters cannot be empty" msgstr "参数不能为空" @@ -831,7 +831,7 @@ msgstr "Porkbun" msgid "Port already in use" msgstr "端口已被占用" -#: internal/service/cli.go:561 +#: internal/service/cli.go:563 msgid "Port changed to %d" msgstr "端口已更改为 %d" @@ -963,7 +963,7 @@ msgstr "服务器用户名" msgid "Setting management" msgstr "设置管理" -#: internal/service/cli.go:890 +#: internal/service/cli.go:892 msgid "Setting not exists" msgstr "设置不存在" @@ -1032,7 +1032,7 @@ msgstr "TCP 端口" msgid "Table Locks Waited" msgstr "锁表次数" -#: internal/service/cli.go:877 +#: internal/service/cli.go:879 msgid "Tasks cleared successfully" msgstr "任务已成功清除" @@ -1052,7 +1052,7 @@ msgstr "腾讯云" msgid "The number of files contained in the compressed file is not 1, actual %d" msgstr "压缩文件包含的文件数量不为1,实际为 %d" -#: internal/service/cli.go:865 +#: internal/service/cli.go:867 msgid "Time synchronized successfully" msgstr "时间同步成功" @@ -1108,7 +1108,7 @@ msgstr "每秒事务" msgid "USAGE" msgstr "使用" -#: internal/service/app.go:173 +#: internal/service/app.go:180 msgid "Unable to update app list cache in offline mode" msgstr "无法在离线模式下更新应用列表缓存" @@ -1116,7 +1116,7 @@ msgstr "无法在离线模式下更新应用列表缓存" msgid "Uninstall PHP-%d %s extension" msgstr "卸载 PHP-%d %s 扩展" -#: internal/data/app.go:249 +#: internal/data/app.go:257 msgid "Uninstall app %s" msgstr "卸载应用 %s" @@ -1132,7 +1132,7 @@ msgstr "解压备份文件失败:%v" msgid "Unzip panel data failed: %v" msgstr "解压面板数据失败:%v" -#: internal/data/app.go:304 +#: internal/data/app.go:317 msgid "Update app %s" msgstr "更新应用 %s" @@ -1194,15 +1194,15 @@ msgstr "警告:关闭面板 HTTPS 后,面板的安全性将大大降低, msgid "Website" msgstr "网站" -#: internal/service/cli.go:580 +#: internal/service/cli.go:582 msgid "Website %s created successfully" msgstr "网站 %s 创建成功" -#: internal/service/cli.go:616 +#: internal/service/cli.go:618 msgid "Website %s deleted successfully" msgstr "网站 %s 删除成功" -#: internal/service/cli.go:597 +#: internal/service/cli.go:599 msgid "Website %s removed successfully" msgstr "网站 %s 移除成功" @@ -1254,28 +1254,28 @@ msgstr "XSL 是用于处理 XML 文档的库" msgid "Zip is a library for handling ZIP files" msgstr "Zip 是一个用于处理 ZIP 文件的库" -#: internal/data/app.go:162 +#: internal/data/app.go:165 msgid "app %s already installed" msgstr "应用 %s 已安装" -#: internal/data/app.go:59 +#: internal/data/app.go:63 msgid "app %s not found" msgstr "找不到应用 %s" -#: internal/data/app.go:213 -#: internal/data/app.go:268 +#: internal/data/app.go:221 +#: internal/data/app.go:276 #: internal/http/middleware/must_install.go:38 msgid "app %s not installed" msgstr "应用 %s 未安装" -#: internal/data/app.go:182 -#: internal/data/app.go:292 +#: internal/data/app.go:185 +#: internal/data/app.go:300 msgid "app %s not support current panel version" msgstr "应用 %s 不支持当前面板版本" -#: internal/data/app.go:173 -#: internal/data/app.go:228 -#: internal/data/app.go:283 +#: internal/data/app.go:176 +#: internal/data/app.go:236 +#: internal/data/app.go:291 msgid "app %s requires panel version %s, current version %s" msgstr "应用 %s 需要面板版本 %s,当前版本 %s" @@ -1283,9 +1283,9 @@ msgstr "应用 %s 需要面板版本 %s,当前版本 %s" msgid "app not found" msgstr "应用未找到" -#: internal/data/setting.go:283 -#: internal/data/setting.go:345 -#: internal/data/setting.go:358 +#: internal/data/setting.go:284 +#: internal/data/setting.go:347 +#: internal/data/setting.go:360 msgid "background task is running, modifying some settings is prohibited, please try again later" msgstr "后台任务正在运行,禁止修改某些设置,请稍后再试" @@ -1303,11 +1303,11 @@ msgstr "后台任务正在运行,禁止更新,请稍后再试" msgid "backup file %s not exists" msgstr "备份文件 %s 不存在" -#: internal/service/file.go:277 +#: internal/service/file.go:276 msgid "can't download a directory" msgstr "无法下载目录" -#: internal/data/website.go:380 +#: internal/data/website.go:383 msgid "can't find %s database server, please add it first" msgstr "找不到 %s 数据库服务器,请先添加" @@ -1316,26 +1316,18 @@ msgstr "找不到 %s 数据库服务器,请先添加" msgid "check server connection failed" msgstr "检查服务器连接失败" -#: internal/http/middleware/must_login.go:69 -msgid "client ip/ua changed, please login again" -msgstr "客户端 IP/UA 已更改,请重新登录" +#: internal/http/middleware/must_login.go:80 +msgid "client ip changed, please login again" +msgstr "客户端 IP 已更改,请重新登录" #: internal/data/backup.go:569 msgid "could not find .sql backup file" msgstr "找不到 .sql 备份文件" -#: internal/service/file.go:166 +#: internal/service/file.go:165 msgid "create directory error: %v" msgstr "创建目录错误:%v" -#: internal/data/cron.go:95 -msgid "cron directory %s not exists" -msgstr "cron 目录 %s 不存在" - -#: internal/data/cron.go:98 -msgid "cron log directory %s not exists" -msgstr "cron 日志目录 %s 不存在" - #: internal/data/backup.go:263 #: internal/data/backup.go:309 #: internal/data/backup.go:425 @@ -1343,11 +1335,11 @@ msgstr "cron 日志目录 %s 不存在" msgid "database does not exist: %s" msgstr "数据库不存在:%s" -#: internal/data/website.go:734 +#: internal/data/website.go:735 msgid "default document comment count is incorrect, expected 1, actual %d" msgstr "默认文档注释数量不正确,预期为1,实际为 %d" -#: internal/data/website.go:731 +#: internal/data/website.go:732 msgid "default document comment not found" msgstr "未找到默认文档注释" @@ -1415,7 +1407,7 @@ msgstr "获取 %s 服务启用状态失败:%v" msgid "failed to get %s service running status: %v" msgstr "获取 %s 服务运行状态失败:%v" -#: internal/data/website.go:315 +#: internal/data/website.go:318 msgid "failed to get 404 template file: %v" msgstr "获取404模板文件失败:%v" @@ -1564,7 +1556,7 @@ msgstr "获取时区失败: %v" msgid "failed to get total banned list" msgstr "获取全部被禁止的列表失败" -#: internal/data/app.go:237 +#: internal/data/app.go:245 msgid "failed to get uninstall script for app %s" msgstr "获取应用 %s 的卸载脚本失败" @@ -1574,18 +1566,18 @@ msgid "failed to load MySQL root password: %v" msgstr "加载 MySQL root 密码失败: %v" #: internal/data/cert.go:92 -#: internal/data/setting.go:288 -#: internal/data/setting.go:361 -#: internal/data/website.go:484 -#: internal/data/website.go:773 +#: internal/data/setting.go:289 +#: internal/data/setting.go:363 +#: internal/data/website.go:487 +#: internal/data/website.go:774 msgid "failed to parse certificate: %v" msgstr "解析证书失败: %v" #: internal/data/cert.go:95 -#: internal/data/setting.go:291 -#: internal/data/setting.go:364 -#: internal/data/website.go:487 -#: internal/data/website.go:776 +#: internal/data/setting.go:292 +#: internal/data/setting.go:366 +#: internal/data/website.go:490 +#: internal/data/website.go:777 msgid "failed to parse private key: %v" msgstr "解析私钥失败: %v" @@ -1693,7 +1685,7 @@ msgstr "更新 DNS失败: %v" msgid "failed to write to Memcached: %v" msgstr "写入 Memcache 失败: %v" -#: internal/service/file.go:84 +#: internal/service/file.go:83 msgid "file is too large, please download it to view" msgstr "文件太大,请下载后查看" @@ -1707,19 +1699,19 @@ msgstr "获取服务端口失败,请检查是否安装" #: internal/data/user.go:180 #: internal/data/user.go:199 -#: internal/service/user.go:96 +#: internal/service/user.go:97 msgid "invalid 2FA code" msgstr "无效的两步验证代码" -#: internal/http/middleware/entrance.go:110 +#: internal/http/middleware/entrance.go:118 msgid "invalid access entrance" msgstr "无效的访问入口" -#: internal/data/user_token.go:101 +#: internal/data/user_token.go:104 msgid "invalid header: %v" msgstr "无效的请求头: %v" -#: internal/service/user.go:82 +#: internal/service/user.go:83 msgid "invalid key, please refresh the page" msgstr "无效的密钥,请刷新页面" @@ -1727,22 +1719,22 @@ msgstr "无效的密钥,请刷新页面" msgid "invalid request domain: %s" msgstr "无效的请求域名:%s" -#: internal/data/user_token.go:167 -#: internal/http/middleware/entrance.go:71 +#: internal/data/user_token.go:176 +#: internal/http/middleware/entrance.go:79 msgid "invalid request ip: %s" msgstr "无效的请求 IP:%s" -#: internal/http/middleware/entrance.go:76 +#: internal/http/middleware/entrance.go:84 msgid "invalid request user agent: %s" msgstr "无效的请求UA:%s" -#: internal/data/user_token.go:104 -#: internal/data/user_token.go:110 -#: internal/data/user_token.go:133 +#: internal/data/user_token.go:107 +#: internal/data/user_token.go:113 +#: internal/data/user_token.go:136 msgid "invalid signature" msgstr "无效的签名" -#: internal/http/middleware/must_login.go:78 +#: internal/http/middleware/must_login.go:103 msgid "invalid user id, please login again" msgstr "无效的用户ID,请重新登录" @@ -1783,11 +1775,11 @@ msgstr "挂载路径不为空" msgid "mysql not support database comment" msgstr "mysql 不支持数据库注释" -#: internal/data/website.go:804 +#: internal/data/website.go:805 msgid "not support one-key obtain wildcard certificate, please use Cert menu to obtain it with DNS method" msgstr "不支持一键获取通配符证书,请在证书菜单通过 DNS 方法获取" -#: internal/service/file.go:174 +#: internal/service/file.go:173 msgid "open file error: %v" msgstr "打开文件错误: %v" @@ -1829,9 +1821,9 @@ msgid "phpMyAdmin port not found" msgstr "没有找到 phpMyAdmin 端口" #: internal/data/user.go:106 -#: internal/service/file.go:135 -#: internal/service/file.go:222 -#: internal/service/file.go:251 +#: internal/service/file.go:134 +#: internal/service/file.go:221 +#: internal/service/file.go:250 msgid "please don't do this" msgstr "请不要花样作死" @@ -1839,7 +1831,7 @@ msgstr "请不要花样作死" msgid "please retry the manual obtain operation" msgstr "请重新操作手动签发" -#: internal/data/setting.go:312 +#: internal/data/setting.go:313 msgid "port is already in use" msgstr "端口已被占用" @@ -1859,24 +1851,24 @@ msgstr "规则已存在" msgid "rule not found" msgstr "找不到规则" -#: internal/data/website.go:721 +#: internal/data/website.go:722 msgid "runtime directory comment count is incorrect, expected 1, actual %d" msgstr "运行时目录注释数量不正确,预期为1,实际为%d" -#: internal/data/website.go:718 +#: internal/data/website.go:719 msgid "runtime directory comment not found" msgstr "未找到运行目录注释" -#: internal/data/website.go:458 -#: internal/data/website.go:725 +#: internal/data/website.go:461 +#: internal/data/website.go:726 msgid "runtime directory does not exist" msgstr "运行目录不存在" -#: internal/http/middleware/must_login.go:58 +#: internal/http/middleware/must_login.go:60 msgid "session expired, please login again" msgstr "会话已过期,请重新登录" -#: internal/data/user_token.go:138 +#: internal/data/user_token.go:141 msgid "signature expired" msgstr "签名已过期" @@ -1893,11 +1885,11 @@ msgstr "从服务器 %s 同步" msgid "target backup %s already exists" msgstr "目标备份 %s 已存在" -#: internal/service/file.go:80 +#: internal/service/file.go:79 msgid "target is a directory" msgstr "目标是一个目录" -#: internal/service/file.go:160 +#: internal/service/file.go:159 msgid "target path %s already exists" msgstr "目标路径 %s 已存在" @@ -1922,7 +1914,7 @@ msgstr "此证书未与任何网站关联,无法签发。您可以尝试使用 msgid "this certificate is not associated with an ACME account and cannot be obtained" msgstr "此证书未与 ACME 帐户关联,无法签发" -#: internal/data/user_token.go:113 +#: internal/data/user_token.go:116 msgid "token expired" msgstr "令牌已过期" @@ -1958,7 +1950,7 @@ msgstr "不支持的 CA" msgid "unsupported file type" msgstr "不支持的文件类型" -#: internal/data/cron.go:220 +#: internal/data/cron.go:212 msgid "unsupported system" msgstr "不支持的系统" @@ -1966,7 +1958,7 @@ msgstr "不支持的系统" msgid "upload certificate cannot be set to auto renew" msgstr "上传的证书无法设置为自动续签" -#: internal/service/file.go:156 +#: internal/service/file.go:155 msgid "upload file error: %v" msgstr "上传文件错误:%v" @@ -1976,11 +1968,11 @@ msgstr "上传文件错误:%v" msgid "username or password error" msgstr "用户名或密码错误" -#: internal/data/website.go:569 +#: internal/data/website.go:573 msgid "website %s has bound certificates, please delete the certificate first" msgstr "网站 %s 已绑定证书,请先删除证书" -#: internal/data/website.go:465 +#: internal/data/website.go:468 msgid "website directory does not exist" msgstr "网站目录不存在" @@ -1989,11 +1981,11 @@ msgstr "网站目录不存在" msgid "wildcard domains cannot use HTTP verification" msgstr "通配符域名不能使用 HTTP 验证" -#: internal/service/file.go:179 +#: internal/service/file.go:178 msgid "write file error: %v" msgstr "写入文件错误:%v" -#: internal/http/middleware/must_login.go:48 +#: internal/http/middleware/must_login.go:50 msgid "ws not allowed" msgstr "不允许 ws" @@ -2047,8 +2039,8 @@ msgstr "|-备份面板数据失败:%v" msgid "|-Backup panel data..." msgstr "|-备份面板数据……" -#: internal/service/cli.go:663 -#: internal/service/cli.go:679 +#: internal/service/cli.go:665 +#: internal/service/cli.go:681 msgid "|-Backup target: %s" msgstr "|-备份目标:%s" @@ -2059,15 +2051,15 @@ msgstr "|-备份目标:%s" msgid "|-Backup time: %s" msgstr "|-备份时间:%s" -#: internal/service/cli.go:677 +#: internal/service/cli.go:679 msgid "|-Backup type: database" msgstr "|-备份类型:数据库" -#: internal/service/cli.go:693 +#: internal/service/cli.go:695 msgid "|-Backup type: panel" msgstr "|-备份类型:面板" -#: internal/service/cli.go:662 +#: internal/service/cli.go:664 msgid "|-Backup type: website" msgstr "|-备份类型:网站" @@ -2095,17 +2087,17 @@ msgstr "|-清理旧版本失败:%v" msgid "|-Cleaning old version..." msgstr "|-清理旧版本……" -#: internal/service/cli.go:716 -#: internal/service/cli.go:764 +#: internal/service/cli.go:718 +#: internal/service/cli.go:766 msgid "|-Cleaning target: %s" msgstr "|-清理目标:%s" -#: internal/service/cli.go:715 -#: internal/service/cli.go:763 +#: internal/service/cli.go:717 +#: internal/service/cli.go:765 msgid "|-Cleaning type: %s" msgstr "|-清理类型:%s" -#: internal/service/cli.go:678 +#: internal/service/cli.go:680 msgid "|-Database: %s" msgstr "|-数据库:%s" @@ -2129,8 +2121,8 @@ msgstr "|-文件名:%s" msgid "|-Fix completed" msgstr "|-修复完成" -#: internal/service/cli.go:717 -#: internal/service/cli.go:765 +#: internal/service/cli.go:719 +#: internal/service/cli.go:767 msgid "|-Keep count: %d" msgstr "|-保留数量:%d" @@ -2155,11 +2147,11 @@ msgstr "|-恢复面板数据失败:%v" msgid "|-Restore panel data..." msgstr "|-恢复面板数据……" -#: internal/service/cli.go:741 +#: internal/service/cli.go:743 msgid "|-Rotation target: %s" msgstr "|-切割目标:%s" -#: internal/service/cli.go:740 +#: internal/service/cli.go:742 msgid "|-Rotation type: website" msgstr "|-切割类型:website" @@ -2221,36 +2213,36 @@ msgstr "|-验证下载文件……" msgid "|-Write new panel version failed: %v" msgstr "|-写入新面板版本失败:%v" -#: internal/service/cli.go:660 -#: internal/service/cli.go:675 -#: internal/service/cli.go:691 +#: internal/service/cli.go:662 +#: internal/service/cli.go:677 +#: internal/service/cli.go:693 msgid "★ Start backup [%s]" msgstr "★ 开始备份 [%s]" -#: internal/service/cli.go:713 +#: internal/service/cli.go:715 msgid "★ Start cleaning [%s]" msgstr "★ 开始清理 [%s]" -#: internal/service/cli.go:761 +#: internal/service/cli.go:763 msgid "★ Start cleaning rotated logs [%s]" msgstr "★ 开始清理切割日志 [%s]" -#: internal/service/cli.go:738 +#: internal/service/cli.go:740 msgid "★ Start log rotation [%s]" msgstr "★ 开始切割日志 [%s]" -#: internal/service/cli.go:668 -#: internal/service/cli.go:684 -#: internal/service/cli.go:698 +#: internal/service/cli.go:670 +#: internal/service/cli.go:686 +#: internal/service/cli.go:700 msgid "☆ Backup successful [%s]" msgstr "☆ 备份成功 [%s]" -#: internal/service/cli.go:722 -#: internal/service/cli.go:770 +#: internal/service/cli.go:724 +#: internal/service/cli.go:772 msgid "☆ Cleaning successful [%s]" msgstr "☆ 清理成功 [%s]" -#: internal/service/cli.go:746 +#: internal/service/cli.go:748 msgid "☆ Rotation successful [%s]" msgstr "☆ 切割成功 [%s]" diff --git a/pkg/embed/locales/zh_TW/backend.po b/pkg/embed/locales/zh_TW/backend.po index 56ff0793..0f7f21c9 100644 --- a/pkg/embed/locales/zh_TW/backend.po +++ b/pkg/embed/locales/zh_TW/backend.po @@ -13,10 +13,10 @@ msgstr "" "X-Crowdin-File-ID: 1166\n" "Project-Id-Version: acepanel\n" "Language-Team: Chinese Traditional\n" -"PO-Revision-Date: 2025-08-22 09:01\n" +"PO-Revision-Date: 2025-10-10 19:57\n" -#: internal/data/website.go:279 -#: internal/data/website.go:652 +#: internal/data/website.go:276 +#: internal/data/website.go:653 msgid "# Rewrite rule" msgstr "# 重寫規則" @@ -68,35 +68,35 @@ msgstr "添加面板應用標記(僅在指導下使用)" msgid "Aliyun" msgstr "阿里雲" -#: internal/service/cli.go:937 +#: internal/service/cli.go:939 msgid "Already initialized" msgstr "已經初始化過了" -#: internal/data/app.go:350 +#: internal/data/app.go:363 msgid "App %s %s" msgstr "應用 %s %s" -#: internal/service/cli.go:786 +#: internal/service/cli.go:788 msgid "App %s installed successfully" msgstr "應用程式 %s 安裝成功" -#: internal/service/cli.go:800 +#: internal/service/cli.go:802 msgid "App %s uninstalled successfully" msgstr "應用程式 %s 解除安裝成功" -#: internal/service/cli.go:814 +#: internal/service/cli.go:816 msgid "App %s updated successfully" msgstr "應用程式 %s 更新成功" -#: internal/service/cli.go:783 +#: internal/service/cli.go:785 msgid "App install failed: %v" msgstr "應用程式安裝失敗:%v" -#: internal/service/cli.go:797 +#: internal/service/cli.go:799 msgid "App uninstall failed: %v" msgstr "應用程式解除安裝失敗:%v" -#: internal/service/cli.go:811 +#: internal/service/cli.go:813 msgid "App update failed: %v" msgstr "應用程式更新失敗:%v" @@ -116,9 +116,9 @@ msgstr "備份數據庫" msgid "Backup directory (default path if not filled)" msgstr "備份目錄(不填則使用默認路徑)" -#: internal/service/cli.go:665 -#: internal/service/cli.go:681 -#: internal/service/cli.go:695 +#: internal/service/cli.go:667 +#: internal/service/cli.go:683 +#: internal/service/cli.go:697 msgid "Backup failed: %v" msgstr "備份失敗:%v" @@ -197,7 +197,7 @@ msgstr "更改用戶密碼" msgid "Change username" msgstr "更改用戶名" -#: internal/service/cli.go:719 +#: internal/service/cli.go:721 msgid "Cleaning failed: %v" msgstr "清理失敗:%v" @@ -245,7 +245,7 @@ msgstr "已連接客戶端數" msgid "Create new website" msgstr "創建新網站" -#: internal/service/cli.go:753 +#: internal/service/cli.go:755 msgid "Currently only website log rotation is supported" msgstr "目前僅支援網站日誌輪替" @@ -270,11 +270,11 @@ msgstr "數據庫管理" msgid "Database name" msgstr "數據庫名稱" -#: internal/service/cli.go:640 +#: internal/service/cli.go:642 msgid "Database server %s added successfully" msgstr "數據庫伺服器 %s 添加成功" -#: internal/service/cli.go:654 +#: internal/service/cli.go:656 msgid "Database server %s deleted successfully" msgstr "數據庫伺服器 %s 刪除成功" @@ -323,7 +323,7 @@ msgstr "下載失敗:%v" msgid "Download file check failed" msgstr "下載文件檢查失敗" -#: internal/service/file.go:295 +#: internal/service/file.go:294 msgid "Download remote file %v" msgstr "下載遠程文件 %v" @@ -372,15 +372,15 @@ msgstr "修改密碼失敗:%v" msgid "Failed to change username: %v" msgstr "修改用戶名失敗:%v" -#: internal/service/cli.go:874 +#: internal/service/cli.go:876 msgid "Failed to clear tasks: %v" msgstr "清除任務失敗:%v" -#: internal/service/cli.go:849 +#: internal/service/cli.go:851 msgid "Failed to delete app: %v" msgstr "刪除應用失敗:%v" -#: internal/service/cli.go:928 +#: internal/service/cli.go:930 msgid "Failed to delete setting: %v" msgstr "刪除設置失敗:%v" @@ -393,7 +393,7 @@ msgstr "生成兩步驗證失敗:%v" msgid "Failed to generate password: %v" msgstr "生成密碼失敗:%v" -#: internal/service/cli.go:829 +#: internal/service/cli.go:831 msgid "Failed to get app: %v" msgstr "獲取應用失敗:%v" @@ -409,8 +409,8 @@ msgstr "無法獲取最新版本:%v" msgid "Failed to get port" msgstr "無法獲取端口" -#: internal/service/cli.go:892 -#: internal/service/cli.go:909 +#: internal/service/cli.go:894 +#: internal/service/cli.go:911 msgid "Failed to get setting: %v" msgstr "無法獲取設置:%v" @@ -432,11 +432,11 @@ msgstr "無法獲取用戶:%v" msgid "Failed to read input: %v" msgstr "讀取輸入失敗: %v" -#: internal/service/cli.go:836 +#: internal/service/cli.go:838 msgid "Failed to save app: %v" msgstr "無法保存應用:%v" -#: internal/service/cli.go:915 +#: internal/service/cli.go:917 msgid "Failed to save setting: %v" msgstr "無法保存設置:%v" @@ -556,10 +556,10 @@ msgstr "ImageMagick 是一個創建、編輯、合成圖片的免費軟件" msgid "Index Hit Rate" msgstr "索引命中率" -#: internal/service/cli.go:952 -#: internal/service/cli.go:957 -#: internal/service/cli.go:962 -#: internal/service/cli.go:966 +#: internal/service/cli.go:954 +#: internal/service/cli.go:959 +#: internal/service/cli.go:964 +#: internal/service/cli.go:968 msgid "Initialization failed: %v" msgstr "初始化失敗:%v" @@ -575,7 +575,7 @@ msgstr "Innodb 索引命中率" msgid "Install PHP-%d %s extension" msgstr "安裝 PHP-%d %s 擴展" -#: internal/data/app.go:194 +#: internal/data/app.go:202 msgid "Install app %s" msgstr "安裝應用 %s" @@ -698,7 +698,7 @@ msgstr "新用戶名不能為空" msgid "No backup file found, unable to automatically repair" msgstr "未找到備份檔案,無法自動修復" -#: internal/service/cli.go:621 +#: internal/service/cli.go:623 msgid "Not supported" msgstr "不支援" @@ -776,14 +776,14 @@ msgstr "面板服務已啟動" msgid "Panel service stopped" msgstr "面板服務已停止" -#: internal/service/cli.go:779 -#: internal/service/cli.go:793 -#: internal/service/cli.go:807 -#: internal/service/cli.go:823 -#: internal/service/cli.go:845 -#: internal/service/cli.go:884 -#: internal/service/cli.go:903 -#: internal/service/cli.go:924 +#: internal/service/cli.go:781 +#: internal/service/cli.go:795 +#: internal/service/cli.go:809 +#: internal/service/cli.go:825 +#: internal/service/cli.go:847 +#: internal/service/cli.go:886 +#: internal/service/cli.go:905 +#: internal/service/cli.go:926 msgid "Parameters cannot be empty" msgstr "參數不能為空" @@ -831,7 +831,7 @@ msgstr "Porkbun" msgid "Port already in use" msgstr "端口已被佔用" -#: internal/service/cli.go:561 +#: internal/service/cli.go:563 msgid "Port changed to %d" msgstr "端口已更改為 %d" @@ -963,7 +963,7 @@ msgstr "伺服器用戶名" msgid "Setting management" msgstr "設置管理" -#: internal/service/cli.go:890 +#: internal/service/cli.go:892 msgid "Setting not exists" msgstr "設置不存在" @@ -1032,7 +1032,7 @@ msgstr "TCP 連接埠" msgid "Table Locks Waited" msgstr "等待表鎖定" -#: internal/service/cli.go:877 +#: internal/service/cli.go:879 msgid "Tasks cleared successfully" msgstr "任務已成功清除" @@ -1052,7 +1052,7 @@ msgstr "騰訊雲" msgid "The number of files contained in the compressed file is not 1, actual %d" msgstr "壓縮檔案包含的檔案數量不為1,實際為 %d" -#: internal/service/cli.go:865 +#: internal/service/cli.go:867 msgid "Time synchronized successfully" msgstr "時間同步成功" @@ -1108,7 +1108,7 @@ msgstr "每秒事務" msgid "USAGE" msgstr "使用" -#: internal/service/app.go:173 +#: internal/service/app.go:180 msgid "Unable to update app list cache in offline mode" msgstr "無法在離線模式下更新應用程式列表快取" @@ -1116,7 +1116,7 @@ msgstr "無法在離線模式下更新應用程式列表快取" msgid "Uninstall PHP-%d %s extension" msgstr "卸載 PHP-%d %s 擴展" -#: internal/data/app.go:249 +#: internal/data/app.go:257 msgid "Uninstall app %s" msgstr "卸載應用 %s" @@ -1132,7 +1132,7 @@ msgstr "解壓備份檔案失敗:%v" msgid "Unzip panel data failed: %v" msgstr "解壓面板數據失敗:%v" -#: internal/data/app.go:304 +#: internal/data/app.go:317 msgid "Update app %s" msgstr "更新應用 %s" @@ -1194,15 +1194,15 @@ msgstr "警告:關閉面板 HTTPS 後,面板的安全性將大大降低, msgid "Website" msgstr "網站" -#: internal/service/cli.go:580 +#: internal/service/cli.go:582 msgid "Website %s created successfully" msgstr "網站 %s 創建成功" -#: internal/service/cli.go:616 +#: internal/service/cli.go:618 msgid "Website %s deleted successfully" msgstr "網站 %s 刪除成功" -#: internal/service/cli.go:597 +#: internal/service/cli.go:599 msgid "Website %s removed successfully" msgstr "網站 %s 移除成功" @@ -1254,28 +1254,28 @@ msgstr "XSL 是用於處理 XML 文檔的庫" msgid "Zip is a library for handling ZIP files" msgstr "Zip 是一個用於處理 ZIP 文件的庫" -#: internal/data/app.go:162 +#: internal/data/app.go:165 msgid "app %s already installed" msgstr "應用 %s 已安裝" -#: internal/data/app.go:59 +#: internal/data/app.go:63 msgid "app %s not found" msgstr "找不到應用 %s" -#: internal/data/app.go:213 -#: internal/data/app.go:268 +#: internal/data/app.go:221 +#: internal/data/app.go:276 #: internal/http/middleware/must_install.go:38 msgid "app %s not installed" msgstr "應用程式 %s 未安裝" -#: internal/data/app.go:182 -#: internal/data/app.go:292 +#: internal/data/app.go:185 +#: internal/data/app.go:300 msgid "app %s not support current panel version" msgstr "應用程式 %s 不支援目前面板版本" -#: internal/data/app.go:173 -#: internal/data/app.go:228 -#: internal/data/app.go:283 +#: internal/data/app.go:176 +#: internal/data/app.go:236 +#: internal/data/app.go:291 msgid "app %s requires panel version %s, current version %s" msgstr "應用程式 %s 需要面板版本 %s,目前版本 %s" @@ -1283,9 +1283,9 @@ msgstr "應用程式 %s 需要面板版本 %s,目前版本 %s" msgid "app not found" msgstr "找不到應用" -#: internal/data/setting.go:283 -#: internal/data/setting.go:345 -#: internal/data/setting.go:358 +#: internal/data/setting.go:284 +#: internal/data/setting.go:347 +#: internal/data/setting.go:360 msgid "background task is running, modifying some settings is prohibited, please try again later" msgstr "後台任務正在運行,禁止修改某些設置,請稍後再試" @@ -1303,11 +1303,11 @@ msgstr "後台任務正在運行,禁止更新,請稍後再試" msgid "backup file %s not exists" msgstr "備份檔案 %s 不存在" -#: internal/service/file.go:277 +#: internal/service/file.go:276 msgid "can't download a directory" msgstr "無法下載目錄" -#: internal/data/website.go:380 +#: internal/data/website.go:383 msgid "can't find %s database server, please add it first" msgstr "找不到 %s 數據庫服務器,請先添加" @@ -1316,26 +1316,18 @@ msgstr "找不到 %s 數據庫服務器,請先添加" msgid "check server connection failed" msgstr "檢查伺服器連接失敗" -#: internal/http/middleware/must_login.go:69 -msgid "client ip/ua changed, please login again" -msgstr "客戶端 IP/UA 已更改,請重新登入" +#: internal/http/middleware/must_login.go:80 +msgid "client ip changed, please login again" +msgstr "" #: internal/data/backup.go:569 msgid "could not find .sql backup file" msgstr "找不到 .sql 備份檔案" -#: internal/service/file.go:166 +#: internal/service/file.go:165 msgid "create directory error: %v" msgstr "創建目錄錯誤:%v" -#: internal/data/cron.go:95 -msgid "cron directory %s not exists" -msgstr "cron 目錄 %s 不存在" - -#: internal/data/cron.go:98 -msgid "cron log directory %s not exists" -msgstr "cron 日誌目錄 %s 不存在" - #: internal/data/backup.go:263 #: internal/data/backup.go:309 #: internal/data/backup.go:425 @@ -1343,11 +1335,11 @@ msgstr "cron 日誌目錄 %s 不存在" msgid "database does not exist: %s" msgstr "資料庫不存在:%s" -#: internal/data/website.go:734 +#: internal/data/website.go:735 msgid "default document comment count is incorrect, expected 1, actual %d" msgstr "默認文檔註釋數量不正確,預期為1,實際為 %d" -#: internal/data/website.go:731 +#: internal/data/website.go:732 msgid "default document comment not found" msgstr "未找到預設文件註釋" @@ -1415,7 +1407,7 @@ msgstr "無法獲取 %s 服務啟用狀態:%v" msgid "failed to get %s service running status: %v" msgstr "無法獲取 %s 服務運行狀態:%v" -#: internal/data/website.go:315 +#: internal/data/website.go:318 msgid "failed to get 404 template file: %v" msgstr "獲取404模板文件失敗:%v" @@ -1564,7 +1556,7 @@ msgstr "無法獲取時區:%v" msgid "failed to get total banned list" msgstr "無法獲取全部被禁止的列表" -#: internal/data/app.go:237 +#: internal/data/app.go:245 msgid "failed to get uninstall script for app %s" msgstr "無法取得應用程式 %s 的解除安裝腳本" @@ -1574,18 +1566,18 @@ msgid "failed to load MySQL root password: %v" msgstr "無法載入 MySQL root 密碼:%v" #: internal/data/cert.go:92 -#: internal/data/setting.go:288 -#: internal/data/setting.go:361 -#: internal/data/website.go:484 -#: internal/data/website.go:773 +#: internal/data/setting.go:289 +#: internal/data/setting.go:363 +#: internal/data/website.go:487 +#: internal/data/website.go:774 msgid "failed to parse certificate: %v" msgstr "無法解析證書:%v" #: internal/data/cert.go:95 -#: internal/data/setting.go:291 -#: internal/data/setting.go:364 -#: internal/data/website.go:487 -#: internal/data/website.go:776 +#: internal/data/setting.go:292 +#: internal/data/setting.go:366 +#: internal/data/website.go:490 +#: internal/data/website.go:777 msgid "failed to parse private key: %v" msgstr "解析私鑰失敗:%v" @@ -1693,7 +1685,7 @@ msgstr "更新 DNS 失敗: %v" msgid "failed to write to Memcached: %v" msgstr "寫入 Memcached 失敗: %v" -#: internal/service/file.go:84 +#: internal/service/file.go:83 msgid "file is too large, please download it to view" msgstr "檔案太大,請下載後查看" @@ -1707,19 +1699,19 @@ msgstr "獲取服務端口失敗,請檢查是否安裝" #: internal/data/user.go:180 #: internal/data/user.go:199 -#: internal/service/user.go:96 +#: internal/service/user.go:97 msgid "invalid 2FA code" msgstr "無效的兩步驗證代碼" -#: internal/http/middleware/entrance.go:110 +#: internal/http/middleware/entrance.go:118 msgid "invalid access entrance" msgstr "無效的訪問入口" -#: internal/data/user_token.go:101 +#: internal/data/user_token.go:104 msgid "invalid header: %v" msgstr "無效的請求標頭:%v" -#: internal/service/user.go:82 +#: internal/service/user.go:83 msgid "invalid key, please refresh the page" msgstr "無效的密鑰,請重新整理頁面" @@ -1727,22 +1719,22 @@ msgstr "無效的密鑰,請重新整理頁面" msgid "invalid request domain: %s" msgstr "無效的請求域名:%s" -#: internal/data/user_token.go:167 -#: internal/http/middleware/entrance.go:71 +#: internal/data/user_token.go:176 +#: internal/http/middleware/entrance.go:79 msgid "invalid request ip: %s" msgstr "無效的請求 IP:%s" -#: internal/http/middleware/entrance.go:76 +#: internal/http/middleware/entrance.go:84 msgid "invalid request user agent: %s" msgstr "無效的請求UA:%s" -#: internal/data/user_token.go:104 -#: internal/data/user_token.go:110 -#: internal/data/user_token.go:133 +#: internal/data/user_token.go:107 +#: internal/data/user_token.go:113 +#: internal/data/user_token.go:136 msgid "invalid signature" msgstr "無效的簽名" -#: internal/http/middleware/must_login.go:78 +#: internal/http/middleware/must_login.go:103 msgid "invalid user id, please login again" msgstr "無效的用戶ID,請重新登錄" @@ -1783,11 +1775,11 @@ msgstr "掛載路徑不為空" msgid "mysql not support database comment" msgstr "mysql 不支援資料庫註釋" -#: internal/data/website.go:804 +#: internal/data/website.go:805 msgid "not support one-key obtain wildcard certificate, please use Cert menu to obtain it with DNS method" msgstr "不支持一鍵獲取通配符證書,請在證書菜單通過 DNS 方法獲取" -#: internal/service/file.go:174 +#: internal/service/file.go:173 msgid "open file error: %v" msgstr "開啟檔案錯誤:%v" @@ -1829,9 +1821,9 @@ msgid "phpMyAdmin port not found" msgstr "未找到 phpMyAdmin 端口" #: internal/data/user.go:106 -#: internal/service/file.go:135 -#: internal/service/file.go:222 -#: internal/service/file.go:251 +#: internal/service/file.go:134 +#: internal/service/file.go:221 +#: internal/service/file.go:250 msgid "please don't do this" msgstr "請不要這樣做" @@ -1839,7 +1831,7 @@ msgstr "請不要這樣做" msgid "please retry the manual obtain operation" msgstr "請重新操作手動簽發" -#: internal/data/setting.go:312 +#: internal/data/setting.go:313 msgid "port is already in use" msgstr "端口已被佔用" @@ -1859,24 +1851,24 @@ msgstr "規則已存在" msgid "rule not found" msgstr "找不到規則" -#: internal/data/website.go:721 +#: internal/data/website.go:722 msgid "runtime directory comment count is incorrect, expected 1, actual %d" msgstr "運行時目錄註釋數量不正確,預期為1,實際為%d" -#: internal/data/website.go:718 +#: internal/data/website.go:719 msgid "runtime directory comment not found" msgstr "未找到運行目錄註釋" -#: internal/data/website.go:458 -#: internal/data/website.go:725 +#: internal/data/website.go:461 +#: internal/data/website.go:726 msgid "runtime directory does not exist" msgstr "運行目錄不存在" -#: internal/http/middleware/must_login.go:58 +#: internal/http/middleware/must_login.go:60 msgid "session expired, please login again" msgstr "會話已過期,請重新登錄" -#: internal/data/user_token.go:138 +#: internal/data/user_token.go:141 msgid "signature expired" msgstr "簽名已過期" @@ -1893,11 +1885,11 @@ msgstr "從伺服器 %s 同步" msgid "target backup %s already exists" msgstr "目標備份 %s 已存在" -#: internal/service/file.go:80 +#: internal/service/file.go:79 msgid "target is a directory" msgstr "目標是一個目錄" -#: internal/service/file.go:160 +#: internal/service/file.go:159 msgid "target path %s already exists" msgstr "目標路徑 %s 已存在" @@ -1922,7 +1914,7 @@ msgstr "此證書未與任何網站關聯,無法簽發。您可以嘗試使用 msgid "this certificate is not associated with an ACME account and cannot be obtained" msgstr "此證書未與 ACME 帳戶關聯,無法簽發" -#: internal/data/user_token.go:113 +#: internal/data/user_token.go:116 msgid "token expired" msgstr "令牌已過期" @@ -1958,7 +1950,7 @@ msgstr "不支援的 CA" msgid "unsupported file type" msgstr "不支援的檔案類型" -#: internal/data/cron.go:220 +#: internal/data/cron.go:212 msgid "unsupported system" msgstr "不支援的系統" @@ -1966,7 +1958,7 @@ msgstr "不支援的系統" msgid "upload certificate cannot be set to auto renew" msgstr "上傳的憑證無法設定為自動續簽" -#: internal/service/file.go:156 +#: internal/service/file.go:155 msgid "upload file error: %v" msgstr "上傳檔案錯誤:%v" @@ -1976,11 +1968,11 @@ msgstr "上傳檔案錯誤:%v" msgid "username or password error" msgstr "使用者名稱或密碼錯誤" -#: internal/data/website.go:569 +#: internal/data/website.go:573 msgid "website %s has bound certificates, please delete the certificate first" msgstr "網站 %s 已綁定證書,請先刪除證書" -#: internal/data/website.go:465 +#: internal/data/website.go:468 msgid "website directory does not exist" msgstr "網站目錄不存在" @@ -1989,11 +1981,11 @@ msgstr "網站目錄不存在" msgid "wildcard domains cannot use HTTP verification" msgstr "萬用字元網域無法使用 HTTP 驗證" -#: internal/service/file.go:179 +#: internal/service/file.go:178 msgid "write file error: %v" msgstr "寫入檔案錯誤:%v" -#: internal/http/middleware/must_login.go:48 +#: internal/http/middleware/must_login.go:50 msgid "ws not allowed" msgstr "不允許 ws" @@ -2047,8 +2039,8 @@ msgstr "|-備份面板數據失敗:%v" msgid "|-Backup panel data..." msgstr "|-備份面板數據……" -#: internal/service/cli.go:663 -#: internal/service/cli.go:679 +#: internal/service/cli.go:665 +#: internal/service/cli.go:681 msgid "|-Backup target: %s" msgstr "|-備份目標:%s" @@ -2059,15 +2051,15 @@ msgstr "|-備份目標:%s" msgid "|-Backup time: %s" msgstr "|-備份時間:%s" -#: internal/service/cli.go:677 +#: internal/service/cli.go:679 msgid "|-Backup type: database" msgstr "|-備份類型:數據庫" -#: internal/service/cli.go:693 +#: internal/service/cli.go:695 msgid "|-Backup type: panel" msgstr "|-備份類型:面板" -#: internal/service/cli.go:662 +#: internal/service/cli.go:664 msgid "|-Backup type: website" msgstr "|-備份類型:網站" @@ -2095,17 +2087,17 @@ msgstr "|-清理舊版本失敗:%v" msgid "|-Cleaning old version..." msgstr "|-清理舊版本……" -#: internal/service/cli.go:716 -#: internal/service/cli.go:764 +#: internal/service/cli.go:718 +#: internal/service/cli.go:766 msgid "|-Cleaning target: %s" msgstr "|-清理目標:%s" -#: internal/service/cli.go:715 -#: internal/service/cli.go:763 +#: internal/service/cli.go:717 +#: internal/service/cli.go:765 msgid "|-Cleaning type: %s" msgstr "|-清理類型:%s" -#: internal/service/cli.go:678 +#: internal/service/cli.go:680 msgid "|-Database: %s" msgstr "|-數據庫:%s" @@ -2129,8 +2121,8 @@ msgstr "|-文件名:%s" msgid "|-Fix completed" msgstr "|-修復完成" -#: internal/service/cli.go:717 -#: internal/service/cli.go:765 +#: internal/service/cli.go:719 +#: internal/service/cli.go:767 msgid "|-Keep count: %d" msgstr "|-保留數量:%d" @@ -2155,11 +2147,11 @@ msgstr "|-還原面板數據失敗:%v" msgid "|-Restore panel data..." msgstr "|-還原面板資料……" -#: internal/service/cli.go:741 +#: internal/service/cli.go:743 msgid "|-Rotation target: %s" msgstr "|-輪換目標:%s" -#: internal/service/cli.go:740 +#: internal/service/cli.go:742 msgid "|-Rotation type: website" msgstr "|-旋轉類型:website" @@ -2221,36 +2213,36 @@ msgstr "|-驗證下載檔案……" msgid "|-Write new panel version failed: %v" msgstr "|-寫入新面板版本失敗:%v" -#: internal/service/cli.go:660 -#: internal/service/cli.go:675 -#: internal/service/cli.go:691 +#: internal/service/cli.go:662 +#: internal/service/cli.go:677 +#: internal/service/cli.go:693 msgid "★ Start backup [%s]" msgstr "★ 開始備份 [%s]" -#: internal/service/cli.go:713 +#: internal/service/cli.go:715 msgid "★ Start cleaning [%s]" msgstr "★ 開始清理 [%s]" -#: internal/service/cli.go:761 +#: internal/service/cli.go:763 msgid "★ Start cleaning rotated logs [%s]" msgstr "★ 開始清理已旋轉的日誌 [%s]" -#: internal/service/cli.go:738 +#: internal/service/cli.go:740 msgid "★ Start log rotation [%s]" msgstr "★ 開始日誌旋轉 [%s]" -#: internal/service/cli.go:668 -#: internal/service/cli.go:684 -#: internal/service/cli.go:698 +#: internal/service/cli.go:670 +#: internal/service/cli.go:686 +#: internal/service/cli.go:700 msgid "☆ Backup successful [%s]" msgstr "☆ 備份成功 [%s]" -#: internal/service/cli.go:722 -#: internal/service/cli.go:770 +#: internal/service/cli.go:724 +#: internal/service/cli.go:772 msgid "☆ Cleaning successful [%s]" msgstr "☆ 清理成功 [%s]" -#: internal/service/cli.go:746 +#: internal/service/cli.go:748 msgid "☆ Rotation successful [%s]" msgstr "☆ 旋轉成功 [%s]" diff --git a/web/package.json b/web/package.json index 786f02b9..3db5c269 100644 --- a/web/package.json +++ b/web/package.json @@ -94,5 +94,5 @@ "vite-plugin-vue-devtools": "^8.0.0", "vue-tsc": "^3.0.0" }, - "packageManager": "pnpm@10.18.2+sha512.9fb969fa749b3ade6035e0f109f0b8a60b5d08a1a87fdf72e337da90dcc93336e2280ca4e44f2358a649b83c17959e9993e777c2080879f3801e6f0d999ad3dd" + "packageManager": "pnpm@10.18.3+sha512.bbd16e6d7286fd7e01f6b3c0b3c932cda2965c06a908328f74663f10a9aea51f1129eea615134bf992831b009eabe167ecb7008b597f40ff9bc75946aadfb08d" } diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index 6eccfd61..b577aead 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -91,23 +91,23 @@ importers: version: 3.5.22(typescript@5.9.3) vue-echarts: specifier: ^8.0.0 - version: 8.0.0(echarts@6.0.0)(vue@3.5.22(typescript@5.9.3)) + version: 8.0.1(echarts@6.0.0)(vue@3.5.22(typescript@5.9.3)) vue-router: specifier: ^4.5.1 - version: 4.5.1(vue@3.5.22(typescript@5.9.3)) + version: 4.6.0(vue@3.5.22(typescript@5.9.3)) vue3-gettext: specifier: 4.0.0-beta.1 version: 4.0.0-beta.1(@vue/compiler-sfc@3.5.22)(vue@3.5.22(typescript@5.9.3)) devDependencies: '@iconify/json': specifier: ^2.2.341 - version: 2.2.394 + version: 2.2.395 '@iconify/vue': specifier: ^5.0.0 version: 5.0.0(vue@3.5.22(typescript@5.9.3)) '@rushstack/eslint-patch': specifier: ^1.11.0 - version: 1.13.0 + version: 1.14.0 '@tsconfig/node22': specifier: ^22.0.2 version: 22.0.2 @@ -119,7 +119,7 @@ importers: version: 3.7.1 '@types/node': specifier: ^22.15.21 - version: 22.18.9 + version: 22.18.10 '@types/node-forge': specifier: ^1.3.11 version: 1.3.14 @@ -128,7 +128,7 @@ importers: version: 66.5.3(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) '@vitejs/plugin-vue': specifier: ^6.0.0 - version: 6.0.1(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))(vue@3.5.22(typescript@5.9.3)) + version: 6.0.1(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))(vue@3.5.22(typescript@5.9.3)) '@vue/eslint-config-prettier': specifier: ^10.2.0 version: 10.2.0(eslint@9.37.0(jiti@2.6.1))(prettier@3.6.2) @@ -179,7 +179,7 @@ importers: version: 5.9.3 unocss: specifier: ^66.1.2 - version: 66.5.3(postcss@8.5.6)(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) + version: 66.5.3(postcss@8.5.6)(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) unplugin-auto-import: specifier: ^20.0.0 version: 20.2.0(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3))) @@ -191,19 +191,19 @@ importers: version: 29.1.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.3)) vite: specifier: ^7.0.0 - version: 7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) + version: 7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) vite-plugin-html: specifier: ^3.2.2 - version: 3.2.2(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) + version: 3.2.2(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) vite-plugin-mock: specifier: ^3.0.2 - version: 3.0.2(esbuild@0.25.10)(mockjs@1.1.0)(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) + version: 3.0.2(esbuild@0.25.10)(mockjs@1.1.0)(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) vite-plugin-static-copy: specifier: ^3.0.0 - version: 3.1.3(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) + version: 3.1.3(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) vite-plugin-vue-devtools: specifier: ^8.0.0 - version: 8.0.2(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))(vue@3.5.22(typescript@5.9.3)) + version: 8.0.2(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))(vue@3.5.22(typescript@5.9.3)) vue-tsc: specifier: ^3.0.0 version: 3.1.1(typescript@5.9.3) @@ -696,8 +696,8 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@iconify/json@2.2.394': - resolution: {integrity: sha512-XuI/rTjVO4rOAbRpb2DZSBzRJcWSTO8lhR0jGEzF28ROM8+vwWMpVaZVvZAeCo3Hc4BItxP+c1hOJMS1cRB5RA==} + '@iconify/json@2.2.395': + resolution: {integrity: sha512-XSYOnlGqiZhJkFFBUiVK4C5VIiv4rxyKtCmkQ9nS4zfMpS4xT0BF9+qWUKOHYgeCzCLghyWfrm6Eti3Sv5kfqQ==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -798,8 +798,8 @@ packages: '@marijn/find-cluster-break@1.0.2': resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} - '@monaco-editor/loader@1.5.0': - resolution: {integrity: sha512-hKoGSM+7aAc7eRTRjpqAZucPmoNOC4UUbknb/VNoTkEIkCPhqV8LfbsgM1webRM7S/z21eHEx9Fkwx8Z/C/+Xw==} + '@monaco-editor/loader@1.6.0': + resolution: {integrity: sha512-PdWBZkPb2Amc1kxRsIEyQFkAya6PzUvSf4waXMPt7I05Azm4e2hQuViBVjfw1Mmck98GG2TqecLzWtg1tbyriw==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -1022,8 +1022,8 @@ packages: cpu: [x64] os: [win32] - '@rushstack/eslint-patch@1.13.0': - resolution: {integrity: sha512-2ih5qGw5SZJ+2fLZxP6Lr6Na2NTIgPRL/7Kmyuw0uIyBQnuhQ8fi8fzUTd38eIQmqp+GYLC00cI6WgtqHxBwmw==} + '@rushstack/eslint-patch@1.14.0': + resolution: {integrity: sha512-WJFej426qe4RWOm9MMtP4V3CV4AucXolQty+GRgAWLgQXmpCuwzs7hEpxxhSc/znXUSxum9d/P/32MW0FlAAlA==} '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -1065,8 +1065,8 @@ packages: '@types/node-forge@1.3.14': resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - '@types/node@22.18.9': - resolution: {integrity: sha512-5yBtK0k/q8PjkMXbTfeIEP/XVYnz1R9qZJ3yUicdEW7ppdDJfe+MqXEhpqDL3mtn4Wvs1u0KLEG0RXzCgNpsSg==} + '@types/node@22.18.10': + resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==} '@types/web-bluetooth@0.0.21': resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} @@ -1543,8 +1543,8 @@ packages: camel-case@4.1.2: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - caniuse-lite@1.0.30001749: - resolution: {integrity: sha512-0rw2fJOmLfnzCRbkm8EyHL8SvI2Apu5UbnQuTsJ0ClgrH8hcwFooJ1s5R0EP8o8aVrFu8++ae29Kt9/gZAZp/Q==} + caniuse-lite@1.0.30001750: + resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==} chainsaw@0.0.9: resolution: {integrity: sha512-nG8PYH+/4xB+8zkV4G844EtfvZ5tTiLFoX3dZ4nhF4t3OCKIb9UvaFyNmeZO2zOSmRWzBoTD+napN6hiL+EgcA==} @@ -3341,8 +3341,8 @@ packages: peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 - vite@7.1.9: - resolution: {integrity: sha512-4nVGliEpxmhCL8DslSAUdxlB6+SMrhB0a1v5ijlh1xB1nEPuy1mxaHxysVucLHuWryAxLWg6a5ei+U4TLn/rFg==} + vite@7.1.10: + resolution: {integrity: sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -3400,8 +3400,8 @@ packages: '@vue/composition-api': optional: true - vue-echarts@8.0.0: - resolution: {integrity: sha512-tf8KadYTOBukRVJBYChdust4UYTa85lh/d41EmQt3FwP+p65s+Pn9s23/9HKjWnRuTZa6FxL/JgGNFsHBfV5Eg==} + vue-echarts@8.0.1: + resolution: {integrity: sha512-23rJTFLu1OUEGRWjJGmdGt8fP+8+ja1gVgzMYPIPaHWpXegcO1viIAaeu2H4QHESlVeHzUAHIxKXGrwjsyXAaA==} peerDependencies: echarts: ^6.0.0 vue: ^3.3.0 @@ -3415,10 +3415,10 @@ packages: vue-flow-layout@0.2.0: resolution: {integrity: sha512-zKgsWWkXq0xrus7H4Mc+uFs1ESrmdTXlO0YNbR6wMdPaFvosL3fMB8N7uTV308UhGy9UvTrGhIY7mVz9eN+L0Q==} - vue-router@4.5.1: - resolution: {integrity: sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==} + vue-router@4.6.0: + resolution: {integrity: sha512-YRrWLi4ayHe1d6zyH6sMPwF/WwcDY8XgUOfQGa0Kx4kmugSorLavD1ExrM/Y83B4X2NQMXYpJFSq2pbZh9ildQ==} peerDependencies: - vue: ^3.2.0 + vue: ^3.5.0 vue-tsc@3.1.1: resolution: {integrity: sha512-fyixKxFniOVgn+L/4+g8zCG6dflLLt01Agz9jl3TO45Bgk87NZJRmJVPsiK+ouq3LB91jJCbOV+pDkzYTxbI7A==} @@ -3709,14 +3709,14 @@ snapshots: '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.27.7 + '@babel/parser': 7.28.4 '@babel/types': 7.28.4 '@babel/traverse@7.27.7': dependencies: '@babel/code-frame': 7.27.1 '@babel/generator': 7.28.3 - '@babel/parser': 7.27.7 + '@babel/parser': 7.28.4 '@babel/template': 7.27.2 '@babel/types': 7.28.4 debug: 4.4.3 @@ -4118,7 +4118,7 @@ snapshots: '@guolao/vue-monaco-editor@1.5.5(monaco-editor@0.52.2)(vue@3.5.22(typescript@5.9.3))': dependencies: - '@monaco-editor/loader': 1.5.0 + '@monaco-editor/loader': 1.6.0 monaco-editor: 0.52.2 vue: 3.5.22(typescript@5.9.3) vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3)) @@ -4134,7 +4134,7 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@iconify/json@2.2.394': + '@iconify/json@2.2.395': dependencies: '@iconify/types': 2.0.0 pathe: 2.0.3 @@ -4295,7 +4295,7 @@ snapshots: '@marijn/find-cluster-break@1.0.2': {} - '@monaco-editor/loader@1.5.0': + '@monaco-editor/loader@1.6.0': dependencies: state-local: 1.0.7 @@ -4453,7 +4453,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.4': optional: true - '@rushstack/eslint-patch@1.13.0': {} + '@rushstack/eslint-patch@1.14.0': {} '@sec-ant/readable-stream@0.4.1': {} @@ -4486,9 +4486,9 @@ snapshots: '@types/node-forge@1.3.14': dependencies: - '@types/node': 22.18.9 + '@types/node': 22.18.10 - '@types/node@22.18.9': + '@types/node@22.18.10': dependencies: undici-types: 6.21.0 @@ -4587,13 +4587,13 @@ snapshots: '@typescript-eslint/types': 8.46.0 eslint-visitor-keys: 4.2.1 - '@unocss/astro@66.5.3(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))': + '@unocss/astro@66.5.3(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@unocss/core': 66.5.3 '@unocss/reset': 66.5.3 - '@unocss/vite': 66.5.3(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) + '@unocss/vite': 66.5.3(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) optionalDependencies: - vite: 7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) '@unocss/cli@66.5.3': dependencies: @@ -4744,7 +4744,7 @@ snapshots: dependencies: '@unocss/core': 66.5.3 - '@unocss/vite@66.5.3(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))': + '@unocss/vite@66.5.3(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@jridgewell/remapping': 2.3.5 '@unocss/config': 66.5.3 @@ -4755,16 +4755,16 @@ snapshots: pathe: 2.0.3 tinyglobby: 0.2.15 unplugin-utils: 0.3.1 - vite: 7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) '@vavt/copy2clipboard@1.0.3': {} '@vavt/util@2.1.0': {} - '@vitejs/plugin-vue@6.0.1(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))(vue@3.5.22(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.1(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))(vue@3.5.22(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.29 - vite: 7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) vue: 3.5.22(typescript@5.9.3) '@volar/language-core@2.4.23': @@ -4852,14 +4852,14 @@ snapshots: dependencies: '@vue/devtools-kit': 7.7.7 - '@vue/devtools-core@8.0.2(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))(vue@3.5.22(typescript@5.9.3))': + '@vue/devtools-core@8.0.2(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))(vue@3.5.22(typescript@5.9.3))': dependencies: '@vue/devtools-kit': 8.0.2 '@vue/devtools-shared': 8.0.2 mitt: 3.0.1 nanoid: 5.1.6 pathe: 2.0.3 - vite-hot-client: 2.1.0(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) + vite-hot-client: 2.1.0(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - vite @@ -5087,7 +5087,7 @@ snapshots: browserslist@4.26.3: dependencies: baseline-browser-mapping: 2.8.16 - caniuse-lite: 1.0.30001749 + caniuse-lite: 1.0.30001750 electron-to-chromium: 1.5.234 node-releases: 2.0.23 update-browserslist-db: 1.1.3(browserslist@4.26.3) @@ -5129,7 +5129,7 @@ snapshots: pascal-case: 3.1.2 tslib: 2.8.1 - caniuse-lite@1.0.30001749: {} + caniuse-lite@1.0.30001750: {} chainsaw@0.0.9: dependencies: @@ -6921,9 +6921,9 @@ snapshots: universalify@2.0.1: {} - unocss@66.5.3(postcss@8.5.6)(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): + unocss@66.5.3(postcss@8.5.6)(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): dependencies: - '@unocss/astro': 66.5.3(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) + '@unocss/astro': 66.5.3(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) '@unocss/cli': 66.5.3 '@unocss/core': 66.5.3 '@unocss/postcss': 66.5.3(postcss@8.5.6) @@ -6941,9 +6941,9 @@ snapshots: '@unocss/transformer-compile-class': 66.5.3 '@unocss/transformer-directives': 66.5.3 '@unocss/transformer-variant-group': 66.5.3 - '@unocss/vite': 66.5.3(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) + '@unocss/vite': 66.5.3(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) optionalDependencies: - vite: 7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - postcss - supports-color @@ -7020,17 +7020,17 @@ snapshots: evtd: 0.2.4 vue: 3.5.22(typescript@5.9.3) - vite-dev-rpc@1.1.0(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): + vite-dev-rpc@1.1.0(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): dependencies: birpc: 2.6.1 - vite: 7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) - vite-hot-client: 2.1.0(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) + vite: 7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) + vite-hot-client: 2.1.0(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) - vite-hot-client@2.1.0(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): + vite-hot-client@2.1.0(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): dependencies: - vite: 7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) - vite-plugin-html@3.2.2(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): + vite-plugin-html@3.2.2(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): dependencies: '@rollup/pluginutils': 4.2.1 colorette: 2.0.20 @@ -7044,9 +7044,9 @@ snapshots: html-minifier-terser: 6.1.0 node-html-parser: 5.4.2 pathe: 0.2.0 - vite: 7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) - vite-plugin-inspect@11.3.3(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): + vite-plugin-inspect@11.3.3(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): dependencies: ansis: 4.2.0 debug: 4.4.3 @@ -7056,12 +7056,12 @@ snapshots: perfect-debounce: 2.0.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) - vite-dev-rpc: 1.1.0(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) + vite: 7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) + vite-dev-rpc: 1.1.0(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) transitivePeerDependencies: - supports-color - vite-plugin-mock@3.0.2(esbuild@0.25.10)(mockjs@1.1.0)(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): + vite-plugin-mock@3.0.2(esbuild@0.25.10)(mockjs@1.1.0)(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): dependencies: bundle-require: 4.2.1(esbuild@0.25.10) chokidar: 3.6.0 @@ -7072,35 +7072,35 @@ snapshots: mockjs: 1.1.0 path-to-regexp: 6.3.0 picocolors: 1.1.1 - vite: 7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - supports-color - vite-plugin-static-copy@3.1.3(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): + vite-plugin-static-copy@3.1.3(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): dependencies: chokidar: 3.6.0 fs-extra: 11.3.2 p-map: 7.0.3 picocolors: 1.1.1 tinyglobby: 0.2.15 - vite: 7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) - vite-plugin-vue-devtools@8.0.2(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))(vue@3.5.22(typescript@5.9.3)): + vite-plugin-vue-devtools@8.0.2(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))(vue@3.5.22(typescript@5.9.3)): dependencies: - '@vue/devtools-core': 8.0.2(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))(vue@3.5.22(typescript@5.9.3)) + '@vue/devtools-core': 8.0.2(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6))(vue@3.5.22(typescript@5.9.3)) '@vue/devtools-kit': 8.0.2 '@vue/devtools-shared': 8.0.2 execa: 9.6.0 sirv: 3.0.2 - vite: 7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) - vite-plugin-inspect: 11.3.3(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) - vite-plugin-vue-inspector: 5.3.2(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) + vite: 7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) + vite-plugin-inspect: 11.3.3(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) + vite-plugin-vue-inspector: 5.3.2(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)) transitivePeerDependencies: - '@nuxt/kit' - supports-color - vue - vite-plugin-vue-inspector@5.3.2(vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): + vite-plugin-vue-inspector@5.3.2(vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)): dependencies: '@babel/core': 7.28.4 '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.4) @@ -7111,11 +7111,11 @@ snapshots: '@vue/compiler-dom': 3.5.22 kolorist: 1.8.0 magic-string: 0.30.19 - vite: 7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - supports-color - vite@7.1.9(@types/node@22.18.9)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6): + vite@7.1.10(@types/node@22.18.10)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6): dependencies: esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) @@ -7124,7 +7124,7 @@ snapshots: rollup: 4.52.4 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.18.9 + '@types/node': 22.18.10 fsevents: 2.3.3 jiti: 2.6.1 sass: 1.93.2 @@ -7142,7 +7142,7 @@ snapshots: dependencies: vue: 3.5.22(typescript@5.9.3) - vue-echarts@8.0.0(echarts@6.0.0)(vue@3.5.22(typescript@5.9.3)): + vue-echarts@8.0.1(echarts@6.0.0)(vue@3.5.22(typescript@5.9.3)): dependencies: echarts: 6.0.0 vue: 3.5.22(typescript@5.9.3) @@ -7161,7 +7161,7 @@ snapshots: vue-flow-layout@0.2.0: {} - vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)): + vue-router@4.6.0(vue@3.5.22(typescript@5.9.3)): dependencies: '@vue/devtools-api': 6.6.4 vue: 3.5.22(typescript@5.9.3) diff --git a/web/src/locales/frontend.pot b/web/src/locales/frontend.pot index 61460236..e7671f5e 100644 --- a/web/src/locales/frontend.pot +++ b/web/src/locales/frontend.pot @@ -3,7 +3,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" #: src/components/common/AppFooter.vue:13 -#: src/views/dashboard/IndexView.vue:439 +#: src/views/dashboard/IndexView.vue:440 msgid "AcePanel" msgstr "" @@ -38,28 +38,28 @@ msgstr "" #: src/components/common/CodeEditor.vue:40 #: src/views/apps/codeserver/IndexView.vue:24 #: src/views/apps/docker/IndexView.vue:24 -#: src/views/apps/fail2ban/IndexView.vue:164 +#: src/views/apps/fail2ban/IndexView.vue:160 #: src/views/apps/frp/IndexView.vue:28 #: src/views/apps/gitea/IndexView.vue:22 #: src/views/apps/memcached/IndexView.vue:44 #: src/views/apps/minio/IndexView.vue:22 #: src/views/apps/mysql/IndexView.vue:47 #: src/views/apps/nginx/IndexView.vue:44 -#: src/views/apps/php/PhpView.vue:146 -#: src/views/apps/php/PhpView.vue:152 +#: src/views/apps/php/PhpView.vue:143 +#: src/views/apps/php/PhpView.vue:149 #: src/views/apps/phpmyadmin/IndexView.vue:37 #: src/views/apps/phpmyadmin/IndexView.vue:44 #: src/views/apps/podman/IndexView.vue:26 #: src/views/apps/podman/IndexView.vue:32 #: src/views/apps/postgresql/IndexView.vue:47 #: src/views/apps/postgresql/IndexView.vue:52 -#: src/views/apps/pureftpd/IndexView.vue:117 +#: src/views/apps/pureftpd/IndexView.vue:115 #: src/views/apps/redis/IndexView.vue:41 -#: src/views/apps/rsync/IndexView.vue:136 -#: src/views/apps/rsync/IndexView.vue:180 -#: src/views/apps/supervisor/IndexView.vue:227 -#: src/views/apps/supervisor/IndexView.vue:292 -#: src/views/setting/IndexView.vue:44 +#: src/views/apps/rsync/IndexView.vue:134 +#: src/views/apps/rsync/IndexView.vue:178 +#: src/views/apps/supervisor/IndexView.vue:220 +#: src/views/apps/supervisor/IndexView.vue:285 +#: src/views/setting/IndexView.vue:48 #: src/views/toolbox/SystemView.vue:50 #: src/views/toolbox/SystemView.vue:56 #: src/views/toolbox/SystemView.vue:65 @@ -78,20 +78,19 @@ msgid "Select File" msgstr "" #: src/components/common/PathSelector.vue:42 -#: src/components/common/PathSelector.vue:331 -#: src/views/apps/fail2ban/IndexView.vue:38 +#: src/components/common/PathSelector.vue:332 +#: src/views/apps/fail2ban/IndexView.vue:37 #: src/views/apps/rsync/IndexView.vue:40 -#: src/views/apps/rsync/IndexView.vue:280 -#: src/views/apps/supervisor/IndexView.vue:48 -#: src/views/apps/supervisor/IndexView.vue:399 +#: src/views/apps/rsync/IndexView.vue:267 +#: src/views/apps/supervisor/IndexView.vue:47 +#: src/views/apps/supervisor/IndexView.vue:384 #: src/views/container/ComposeView.vue:31 #: src/views/container/NetworkView.vue:45 #: src/views/container/VolumeView.vue:26 #: src/views/database/CreateServerModal.vue:55 -#: src/views/database/ServerList.vue:40 +#: src/views/database/ServerList.vue:39 #: src/views/database/UpdateServerModal.vue:55 -#: src/views/file/ListTable.vue:103 -#: src/views/file/SearchModal.vue:20 +#: src/views/file/ListTable.vue:105 #: src/views/file/ToolBar.vue:257 #: src/views/ssh/CreateModal.vue:57 #: src/views/ssh/UpdateModal.vue:63 @@ -104,39 +103,37 @@ msgid "Permissions" msgstr "" #: src/components/common/PathSelector.vue:95 -#: src/views/file/ListTable.vue:157 +#: src/views/file/ListTable.vue:159 msgid "Owner / Group" msgstr "" #: src/components/common/PathSelector.vue:107 -#: src/views/backup/ListView.vue:43 +#: src/views/backup/ListView.vue:42 #: src/views/container/ImageView.vue:53 -#: src/views/file/ListTable.vue:169 -#: src/views/file/SearchModal.vue:28 +#: src/views/file/ListTable.vue:171 msgid "Size" msgstr "" #: src/components/common/PathSelector.vue:115 -#: src/views/file/ListTable.vue:177 -#: src/views/file/SearchModal.vue:36 +#: src/views/file/ListTable.vue:179 msgid "Modification Time" msgstr "" -#: src/components/common/PathSelector.vue:148 -#: src/views/file/ListTable.vue:456 -#: src/views/file/PathInput.vue:33 +#: src/components/common/PathSelector.vue:149 +#: src/views/file/ListTable.vue:459 +#: src/views/file/PathInput.vue:28 msgid "Invalid path" msgstr "" -#: src/components/common/PathSelector.vue:208 -#: src/views/file/ListTable.vue:405 +#: src/components/common/PathSelector.vue:209 +#: src/views/file/ListTable.vue:408 #: src/views/file/ToolBar.vue:37 #: src/views/file/ToolBar.vue:51 msgid "Invalid name" msgstr "" -#: src/components/common/PathSelector.vue:216 -#: src/views/backup/ListView.vue:125 +#: src/components/common/PathSelector.vue:217 +#: src/views/backup/ListView.vue:122 #: src/views/cert/CreateAccountModal.vue:52 #: src/views/cert/CreateCertModal.vue:50 #: src/views/cert/CreateDnsModal.vue:35 @@ -150,45 +147,45 @@ msgstr "" #: src/views/file/ToolBar.vue:45 #: src/views/firewall/CreateForwardModal.vue:41 #: src/views/setting/CreateModal.vue:19 -#: src/views/setting/TokenModal.vue:127 +#: src/views/setting/TokenModal.vue:125 #: src/views/ssh/CreateModal.vue:38 #: src/views/task/CreateModal.vue:51 msgid "Created successfully" msgstr "" -#: src/components/common/PathSelector.vue:255 +#: src/components/common/PathSelector.vue:256 #: src/views/file/ToolBar.vue:214 msgid "File" msgstr "" -#: src/components/common/PathSelector.vue:256 +#: src/components/common/PathSelector.vue:257 #: src/views/file/ToolBar.vue:215 msgid "Folder" msgstr "" -#: src/components/common/PathSelector.vue:260 -#: src/components/common/PathSelector.vue:323 -#: src/views/setting/TokenModal.vue:268 +#: src/components/common/PathSelector.vue:261 +#: src/components/common/PathSelector.vue:324 +#: src/views/setting/TokenModal.vue:266 #: src/views/website/BulkCreate.vue:127 -#: src/views/website/IndexView.vue:569 +#: src/views/website/PhpView.vue:534 msgid "Create" msgstr "" -#: src/components/common/PathSelector.vue:269 -#: src/views/file/PathInput.vue:133 +#: src/components/common/PathSelector.vue:270 +#: src/views/file/PathInput.vue:128 msgid "Root Directory" msgstr "" -#: src/components/common/PathSelector.vue:335 +#: src/components/common/PathSelector.vue:336 #: src/views/app/VersionModal.vue:97 -#: src/views/apps/fail2ban/IndexView.vue:375 -#: src/views/apps/pureftpd/IndexView.vue:249 -#: src/views/apps/pureftpd/IndexView.vue:271 -#: src/views/apps/rsync/IndexView.vue:329 -#: src/views/apps/s3fs/IndexView.vue:184 -#: src/views/apps/supervisor/IndexView.vue:435 -#: src/views/backup/ListView.vue:259 -#: src/views/backup/ListView.vue:283 +#: src/views/apps/fail2ban/IndexView.vue:368 +#: src/views/apps/pureftpd/IndexView.vue:242 +#: src/views/apps/pureftpd/IndexView.vue:264 +#: src/views/apps/rsync/IndexView.vue:316 +#: src/views/apps/s3fs/IndexView.vue:181 +#: src/views/apps/supervisor/IndexView.vue:420 +#: src/views/backup/ListView.vue:256 +#: src/views/backup/ListView.vue:280 #: src/views/cert/AccountView.vue:268 #: src/views/cert/CertView.vue:535 #: src/views/cert/CertView.vue:559 @@ -201,7 +198,7 @@ msgstr "" #: src/views/container/ComposeView.vue:348 #: src/views/container/ComposeView.vue:378 #: src/views/container/ContainerCreate.vue:371 -#: src/views/container/ContainerView.vue:485 +#: src/views/container/ContainerView.vue:484 #: src/views/container/ImageView.vue:217 #: src/views/container/NetworkView.vue:313 #: src/views/container/VolumeView.vue:213 @@ -214,13 +211,13 @@ msgstr "" #: src/views/file/ToolBar.vue:282 #: src/views/firewall/CreateForwardModal.vue:88 #: src/views/firewall/CreateIpModal.vue:121 -#: src/views/firewall/CreateModal.vue:142 +#: src/views/firewall/CreateModal.vue:145 #: src/views/setting/CreateModal.vue:64 #: src/views/setting/PasswordModal.vue:44 #: src/views/setting/TwoFaModal.vue:87 #: src/views/ssh/CreateModal.vue:99 #: src/views/ssh/UpdateModal.vue:105 -#: src/views/task/CreateModal.vue:171 +#: src/views/task/CreateModal.vue:170 #: src/views/website/ProxyBuilderModal.vue:201 msgid "Submit" msgstr "" @@ -235,7 +232,7 @@ msgid "Failed to get log stream" msgstr "" #: src/components/common/RealtimeLogModal.vue:67 -#: src/views/apps/supervisor/IndexView.vue:91 +#: src/views/apps/supervisor/IndexView.vue:90 #: src/views/container/ContainerView.vue:106 #: src/views/container/ContainerView.vue:446 #: src/views/task/CronView.vue:120 @@ -244,19 +241,19 @@ msgid "Logs" msgstr "" #: src/components/common/ServiceStatus.vue:25 -#: src/views/dashboard/IndexView.vue:733 -#: src/views/dashboard/IndexView.vue:741 -#: src/views/dashboard/IndexView.vue:748 -#: src/views/dashboard/IndexView.vue:754 -#: src/views/dashboard/IndexView.vue:765 -#: src/views/dashboard/IndexView.vue:777 +#: src/views/dashboard/IndexView.vue:730 +#: src/views/dashboard/IndexView.vue:738 +#: src/views/dashboard/IndexView.vue:745 +#: src/views/dashboard/IndexView.vue:751 +#: src/views/dashboard/IndexView.vue:762 +#: src/views/dashboard/IndexView.vue:774 msgid "Loading..." msgstr "" #: src/components/common/ServiceStatus.vue:26 #: src/views/task/SystemView.vue:50 #: src/views/task/TaskView.vue:33 -#: src/views/website/IndexView.vue:31 +#: src/views/website/PhpView.vue:26 msgid "Running" msgstr "" @@ -271,8 +268,8 @@ msgid "Starting..." msgstr "" #: src/components/common/ServiceStatus.vue:48 -#: src/views/apps/supervisor/IndexView.vue:248 -#: src/views/website/IndexView.vue:271 +#: src/views/apps/supervisor/IndexView.vue:241 +#: src/views/website/PhpView.vue:259 msgid "Started successfully" msgstr "" @@ -282,8 +279,8 @@ msgid "Stopping..." msgstr "" #: src/components/common/ServiceStatus.vue:63 -#: src/views/apps/supervisor/IndexView.vue:255 -#: src/views/website/IndexView.vue:273 +#: src/views/apps/supervisor/IndexView.vue:248 +#: src/views/website/PhpView.vue:261 msgid "Stopped successfully" msgstr "" @@ -292,7 +289,7 @@ msgid "Restarting..." msgstr "" #: src/components/common/ServiceStatus.vue:78 -#: src/views/apps/supervisor/IndexView.vue:262 +#: src/views/apps/supervisor/IndexView.vue:255 msgid "Restarted successfully" msgstr "" @@ -317,21 +314,21 @@ msgid "Autostart disabled successfully" msgstr "" #: src/components/common/ServiceStatus.vue:134 -#: src/views/apps/codeserver/IndexView.vue:43 -#: src/views/apps/docker/IndexView.vue:43 -#: src/views/apps/fail2ban/IndexView.vue:252 -#: src/views/apps/gitea/IndexView.vue:41 -#: src/views/apps/memcached/IndexView.vue:63 -#: src/views/apps/minio/IndexView.vue:36 -#: src/views/apps/mysql/IndexView.vue:101 -#: src/views/apps/nginx/IndexView.vue:78 -#: src/views/apps/php/PhpView.vue:225 -#: src/views/apps/podman/IndexView.vue:60 -#: src/views/apps/postgresql/IndexView.vue:88 -#: src/views/apps/pureftpd/IndexView.vue:175 -#: src/views/apps/redis/IndexView.vue:60 -#: src/views/apps/rsync/IndexView.vue:214 -#: src/views/apps/supervisor/IndexView.vue:330 +#: src/views/apps/codeserver/IndexView.vue:32 +#: src/views/apps/docker/IndexView.vue:32 +#: src/views/apps/fail2ban/IndexView.vue:228 +#: src/views/apps/gitea/IndexView.vue:30 +#: src/views/apps/memcached/IndexView.vue:52 +#: src/views/apps/minio/IndexView.vue:30 +#: src/views/apps/mysql/IndexView.vue:72 +#: src/views/apps/nginx/IndexView.vue:58 +#: src/views/apps/php/PhpView.vue:181 +#: src/views/apps/podman/IndexView.vue:40 +#: src/views/apps/postgresql/IndexView.vue:64 +#: src/views/apps/pureftpd/IndexView.vue:158 +#: src/views/apps/redis/IndexView.vue:49 +#: src/views/apps/rsync/IndexView.vue:192 +#: src/views/apps/supervisor/IndexView.vue:299 #: src/views/container/ContainerView.vue:84 msgid "Running Status" msgstr "" @@ -344,35 +341,35 @@ msgstr "" msgid "Autostart Off" msgstr "" -#: src/components/common/ServiceStatus.vue:152 -#: src/views/apps/supervisor/IndexView.vue:119 +#: src/components/common/ServiceStatus.vue:151 +#: src/views/apps/supervisor/IndexView.vue:116 #: src/views/container/ComposeView.vue:158 #: src/views/container/ContainerView.vue:130 #: src/views/container/ContainerView.vue:412 msgid "Start" msgstr "" -#: src/components/common/ServiceStatus.vue:158 -#: src/views/apps/supervisor/IndexView.vue:145 +#: src/components/common/ServiceStatus.vue:156 +#: src/views/apps/supervisor/IndexView.vue:141 #: src/views/container/ComposeView.vue:197 #: src/views/container/ContainerView.vue:135 #: src/views/container/ContainerView.vue:413 msgid "Stop" msgstr "" -#: src/components/common/ServiceStatus.vue:161 +#: src/components/common/ServiceStatus.vue:159 msgid "Are you sure you want to stop %{ service }?" msgstr "" -#: src/components/common/ServiceStatus.vue:165 -#: src/views/apps/supervisor/IndexView.vue:174 +#: src/components/common/ServiceStatus.vue:162 +#: src/views/apps/supervisor/IndexView.vue:169 #: src/views/container/ContainerView.vue:140 #: src/views/container/ContainerView.vue:414 -#: src/views/dashboard/IndexView.vue:447 +#: src/views/dashboard/IndexView.vue:448 msgid "Restart" msgstr "" -#: src/components/common/ServiceStatus.vue:174 +#: src/components/common/ServiceStatus.vue:170 #: src/layout/tab/components/ContextMenu.vue:34 msgid "Reload" msgstr "" @@ -393,15 +390,11 @@ msgstr "" msgid "Switch Theme" msgstr "" -#: src/layout/header/components/ThemeSetting.vue:19 -msgid "Set Theme Color" -msgstr "" - #: src/layout/header/components/UserAvatar.vue:13 #: src/views/apps/pureftpd/IndexView.vue:65 -#: src/views/apps/pureftpd/IndexView.vue:256 +#: src/views/apps/pureftpd/IndexView.vue:249 #: src/views/setting/PasswordModal.vue:26 -#: src/views/setting/SettingUser.vue:119 +#: src/views/setting/SettingUser.vue:118 msgid "Change Password" msgstr "" @@ -425,8 +418,8 @@ msgstr "" #: src/layout/header/components/UserAvatar.vue:30 #: src/views/dashboard/UpdateView.vue:27 -#: src/views/file/ListTable.vue:415 -#: src/views/file/ListTable.vue:510 +#: src/views/file/ListTable.vue:418 +#: src/views/file/ListTable.vue:513 #: src/views/file/ToolBar.vue:139 #: src/views/file/ToolBar.vue:226 msgid "Cancel" @@ -438,31 +431,31 @@ msgstr "" #: src/layout/header/components/UserAvatar.vue:48 #: src/views/cert/DnsView.vue:56 -#: src/views/firewall/IpRuleView.vue:77 -#: src/views/firewall/IpRuleView.vue:102 -#: src/views/firewall/RuleView.vue:111 -#: src/views/firewall/RuleView.vue:136 +#: src/views/firewall/IpRuleView.vue:76 +#: src/views/firewall/IpRuleView.vue:101 +#: src/views/firewall/RuleView.vue:110 +#: src/views/firewall/RuleView.vue:135 msgid "Unknown" msgstr "" #: src/layout/sidebar/components/SideSetting.vue:66 -#: src/layout/sidebar/components/SideSetting.vue:72 +#: src/layout/sidebar/components/SideSetting.vue:71 msgid "Menu Settings" msgstr "" -#: src/layout/sidebar/components/SideSetting.vue:84 +#: src/layout/sidebar/components/SideSetting.vue:83 msgid "Settings are saved in the browser and will be reset after clearing the browser cache" msgstr "" -#: src/layout/sidebar/components/SideSetting.vue:89 +#: src/layout/sidebar/components/SideSetting.vue:88 msgid "Custom Logo" msgstr "" -#: src/layout/sidebar/components/SideSetting.vue:92 +#: src/layout/sidebar/components/SideSetting.vue:91 msgid "Please enter the complete URL" msgstr "" -#: src/layout/sidebar/components/SideSetting.vue:95 +#: src/layout/sidebar/components/SideSetting.vue:94 msgid "Hide Menu" msgstr "" @@ -502,8 +495,8 @@ msgstr "" #: src/views/cert/CertView.vue:497 #: src/views/cert/CertView.vue:574 #: src/views/cert/UploadCertModal.vue:38 -#: src/views/setting/SettingSafe.vue:54 -#: src/views/website/EditView.vue:355 +#: src/views/setting/SettingSafe.vue:192 +#: src/views/website/EditView.vue:310 msgid "Certificate" msgstr "" @@ -516,17 +509,17 @@ msgid "Dashboard" msgstr "" #: src/locales/menu.ts:12 -#: src/views/app/IndexView.vue:96 -#: src/views/dashboard/IndexView.vue:451 -#: src/views/setting/TokenModal.vue:301 +#: src/views/app/IndexView.vue:94 +#: src/views/dashboard/IndexView.vue:452 +#: src/views/setting/TokenModal.vue:299 msgid "Update" msgstr "" #: src/locales/menu.ts:13 -#: src/views/backup/ListView.vue:279 -#: src/views/dashboard/IndexView.vue:425 +#: src/views/backup/ListView.vue:276 +#: src/views/dashboard/IndexView.vue:426 #: src/views/database/IndexView.vue:27 -#: src/views/website/IndexView.vue:490 +#: src/views/website/PhpView.vue:455 msgid "Database" msgstr "" @@ -544,6 +537,7 @@ msgstr "" #: src/locales/menu.ts:17 #: src/views/firewall/IndexView.vue:23 +#: src/views/website/IndexView.vue:19 msgid "Settings" msgstr "" @@ -560,15 +554,15 @@ msgid "Toolbox" msgstr "" #: src/locales/menu.ts:21 -#: src/views/apps/fail2ban/IndexView.vue:322 +#: src/views/apps/fail2ban/IndexView.vue:315 #: src/views/backup/IndexView.vue:37 -#: src/views/backup/ListView.vue:235 -#: src/views/backup/ListView.vue:272 +#: src/views/backup/ListView.vue:232 +#: src/views/backup/ListView.vue:269 #: src/views/cert/CertView.vue:466 #: src/views/cert/CertView.vue:549 #: src/views/cert/CreateCertModal.vue:90 -#: src/views/dashboard/IndexView.vue:421 -#: src/views/task/CreateModal.vue:130 +#: src/views/dashboard/IndexView.vue:422 +#: src/views/task/CreateModal.vue:129 msgid "Website" msgstr "" @@ -601,39 +595,39 @@ msgstr "" msgid "Login" msgstr "" -#: src/views/app/IndexView.vue:19 -#: src/views/app/IndexView.vue:154 -#: src/views/app/IndexView.vue:159 -#: src/views/apps/php/PhpView.vue:81 +#: src/views/app/IndexView.vue:18 +#: src/views/app/IndexView.vue:147 +#: src/views/app/IndexView.vue:152 +#: src/views/apps/php/PhpView.vue:80 msgid "Install" msgstr "" -#: src/views/app/IndexView.vue:37 +#: src/views/app/IndexView.vue:35 msgid "App Name" msgstr "" -#: src/views/app/IndexView.vue:43 -#: src/views/apps/php/PhpView.vue:50 +#: src/views/app/IndexView.vue:41 +#: src/views/apps/php/PhpView.vue:49 msgid "Description" msgstr "" -#: src/views/app/IndexView.vue:49 +#: src/views/app/IndexView.vue:47 msgid "Installed Version" msgstr "" -#: src/views/app/IndexView.vue:55 +#: src/views/app/IndexView.vue:53 msgid "Show in Home" msgstr "" -#: src/views/app/IndexView.vue:68 -#: src/views/apps/fail2ban/IndexView.vue:60 -#: src/views/apps/fail2ban/IndexView.vue:121 -#: src/views/apps/php/PhpView.vue:57 +#: src/views/app/IndexView.vue:66 +#: src/views/apps/fail2ban/IndexView.vue:59 +#: src/views/apps/fail2ban/IndexView.vue:118 +#: src/views/apps/php/PhpView.vue:56 #: src/views/apps/pureftpd/IndexView.vue:46 #: src/views/apps/rsync/IndexView.vue:69 -#: src/views/apps/s3fs/IndexView.vue:33 -#: src/views/apps/supervisor/IndexView.vue:76 -#: src/views/backup/ListView.vue:58 +#: src/views/apps/s3fs/IndexView.vue:32 +#: src/views/apps/supervisor/IndexView.vue:75 +#: src/views/backup/ListView.vue:57 #: src/views/cert/AccountView.vue:79 #: src/views/cert/CertView.vue:181 #: src/views/cert/DnsView.vue:64 @@ -644,58 +638,57 @@ msgstr "" #: src/views/container/ImageView.vue:69 #: src/views/container/NetworkView.vue:109 #: src/views/container/VolumeView.vue:63 -#: src/views/database/DatabaseList.vue:74 -#: src/views/database/ServerList.vue:135 -#: src/views/database/UserList.vue:152 -#: src/views/file/ListTable.vue:189 -#: src/views/file/SearchModal.vue:48 -#: src/views/firewall/ForwardView.vue:80 -#: src/views/firewall/IpRuleView.vue:122 -#: src/views/firewall/RuleView.vue:159 +#: src/views/database/DatabaseList.vue:73 +#: src/views/database/ServerList.vue:134 +#: src/views/database/UserList.vue:151 +#: src/views/file/ListTable.vue:191 +#: src/views/firewall/ForwardView.vue:79 +#: src/views/firewall/IpRuleView.vue:121 +#: src/views/firewall/RuleView.vue:158 #: src/views/setting/SettingUser.vue:86 #: src/views/setting/TokenModal.vue:52 #: src/views/task/CronView.vue:102 #: src/views/task/SystemView.vue:96 #: src/views/task/TaskView.vue:55 -#: src/views/website/IndexView.vue:126 +#: src/views/website/PhpView.vue:121 msgid "Actions" msgstr "" -#: src/views/app/IndexView.vue:83 +#: src/views/app/IndexView.vue:81 msgid "Updating app %{ app } may reset related configurations to default state, are you sure to continue?" msgstr "" -#: src/views/app/IndexView.vue:115 +#: src/views/app/IndexView.vue:110 msgid "Manage" msgstr "" -#: src/views/app/IndexView.vue:128 +#: src/views/app/IndexView.vue:122 msgid "Are you sure to uninstall app %{ app }?" msgstr "" -#: src/views/app/IndexView.vue:138 +#: src/views/app/IndexView.vue:132 msgid "Uninstall" msgstr "" -#: src/views/app/IndexView.vue:183 +#: src/views/app/IndexView.vue:175 msgid "Setup successfully" msgstr "" +#: src/views/app/IndexView.vue:182 #: src/views/app/IndexView.vue:190 -#: src/views/app/IndexView.vue:198 #: src/views/app/VersionModal.vue:32 msgid "Task submitted, please check the progress in background tasks" msgstr "" -#: src/views/app/IndexView.vue:210 +#: src/views/app/IndexView.vue:202 msgid "Cache updated successfully" msgstr "" -#: src/views/app/IndexView.vue:224 +#: src/views/app/IndexView.vue:216 msgid "Update Cache" msgstr "" -#: src/views/app/IndexView.vue:229 +#: src/views/app/IndexView.vue:220 msgid "Before updating apps, it is strongly recommended to backup/snapshot first, so you can roll back immediately if there are any issues!" msgstr "" @@ -711,122 +704,122 @@ msgstr "" msgid "Please select a channel" msgstr "" -#: src/views/apps/codeserver/IndexView.vue:39 -#: src/views/apps/docker/IndexView.vue:39 -#: src/views/apps/frp/IndexView.vue:48 -#: src/views/apps/frp/IndexView.vue:73 -#: src/views/apps/gitea/IndexView.vue:37 -#: src/views/apps/memcached/IndexView.vue:59 -#: src/views/apps/minio/IndexView.vue:32 -#: src/views/apps/mysql/IndexView.vue:79 -#: src/views/apps/nginx/IndexView.vue:65 -#: src/views/apps/php/PhpView.vue:194 -#: src/views/apps/php/PhpView.vue:203 -#: src/views/apps/phpmyadmin/IndexView.vue:58 -#: src/views/apps/phpmyadmin/IndexView.vue:67 -#: src/views/apps/podman/IndexView.vue:47 -#: src/views/apps/podman/IndexView.vue:56 -#: src/views/apps/postgresql/IndexView.vue:71 -#: src/views/apps/postgresql/IndexView.vue:80 -#: src/views/apps/pureftpd/IndexView.vue:162 -#: src/views/apps/redis/IndexView.vue:56 -#: src/views/apps/rsync/IndexView.vue:201 -#: src/views/apps/supervisor/IndexView.vue:313 -#: src/views/file/EditModal.vue:31 -#: src/views/file/ListTable.vue:723 -#: src/views/setting/IndexView.vue:82 -#: src/views/toolbox/SystemView.vue:108 -#: src/views/toolbox/SystemView.vue:132 -#: src/views/toolbox/SystemView.vue:158 -#: src/views/toolbox/SystemView.vue:184 -#: src/views/toolbox/SystemView.vue:199 -#: src/views/website/EditView.vue:215 -msgid "Save" -msgstr "" - -#: src/views/apps/codeserver/IndexView.vue:46 +#: src/views/apps/codeserver/IndexView.vue:35 #: src/views/apps/frp/IndexView.vue:44 -#: src/views/apps/frp/IndexView.vue:69 -#: src/views/apps/gitea/IndexView.vue:44 -#: src/views/apps/mysql/IndexView.vue:118 -#: src/views/apps/nginx/IndexView.vue:81 -#: src/views/apps/phpmyadmin/IndexView.vue:84 +#: src/views/apps/frp/IndexView.vue:67 +#: src/views/apps/gitea/IndexView.vue:33 +#: src/views/apps/mysql/IndexView.vue:85 +#: src/views/apps/nginx/IndexView.vue:61 +#: src/views/apps/phpmyadmin/IndexView.vue:74 msgid "Modify Configuration" msgstr "" -#: src/views/apps/codeserver/IndexView.vue:50 +#: src/views/apps/codeserver/IndexView.vue:39 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 "" -#: src/views/apps/codeserver/IndexView.vue:69 -#: src/views/apps/docker/IndexView.vue:65 -#: src/views/apps/fail2ban/IndexView.vue:289 -#: src/views/apps/gitea/IndexView.vue:67 -#: src/views/apps/memcached/IndexView.vue:92 -#: src/views/apps/minio/IndexView.vue:62 -#: src/views/apps/mysql/IndexView.vue:151 -#: src/views/apps/nginx/IndexView.vue:114 -#: src/views/apps/php/PhpView.vue:299 -#: src/views/apps/podman/IndexView.vue:118 -#: src/views/apps/postgresql/IndexView.vue:147 -#: src/views/apps/redis/IndexView.vue:96 -#: src/views/apps/rsync/IndexView.vue:264 -#: src/views/apps/supervisor/IndexView.vue:380 +#: src/views/apps/codeserver/IndexView.vue:57 +#: src/views/apps/docker/IndexView.vue:53 +#: src/views/apps/frp/IndexView.vue:47 +#: src/views/apps/frp/IndexView.vue:70 +#: src/views/apps/gitea/IndexView.vue:55 +#: src/views/apps/memcached/IndexView.vue:70 +#: src/views/apps/minio/IndexView.vue:55 +#: src/views/apps/mysql/IndexView.vue:107 +#: src/views/apps/nginx/IndexView.vue:83 +#: src/views/apps/php/PhpView.vue:225 +#: src/views/apps/php/PhpView.vue:253 +#: src/views/apps/phpmyadmin/IndexView.vue:67 +#: src/views/apps/phpmyadmin/IndexView.vue:96 +#: src/views/apps/podman/IndexView.vue:74 +#: src/views/apps/podman/IndexView.vue:101 +#: src/views/apps/postgresql/IndexView.vue:89 +#: src/views/apps/postgresql/IndexView.vue:116 +#: src/views/apps/pureftpd/IndexView.vue:165 +#: src/views/apps/redis/IndexView.vue:74 +#: src/views/apps/rsync/IndexView.vue:246 +#: src/views/apps/supervisor/IndexView.vue:353 +#: src/views/file/EditModal.vue:31 +#: src/views/file/ListTable.vue:746 +#: src/views/setting/IndexView.vue:84 +#: src/views/toolbox/SystemView.vue:108 +#: src/views/toolbox/SystemView.vue:132 +#: src/views/toolbox/SystemView.vue:157 +#: src/views/toolbox/SystemView.vue:183 +#: src/views/toolbox/SystemView.vue:198 +#: src/views/website/EditView.vue:429 +msgid "Save" +msgstr "" + +#: src/views/apps/codeserver/IndexView.vue:62 +#: src/views/apps/docker/IndexView.vue:58 +#: src/views/apps/fail2ban/IndexView.vue:282 +#: src/views/apps/gitea/IndexView.vue:60 +#: src/views/apps/memcached/IndexView.vue:85 +#: src/views/apps/minio/IndexView.vue:60 +#: src/views/apps/mysql/IndexView.vue:122 +#: src/views/apps/nginx/IndexView.vue:98 +#: src/views/apps/php/PhpView.vue:268 +#: src/views/apps/podman/IndexView.vue:106 +#: src/views/apps/postgresql/IndexView.vue:131 +#: src/views/apps/redis/IndexView.vue:89 +#: src/views/apps/rsync/IndexView.vue:251 +#: src/views/apps/supervisor/IndexView.vue:358 msgid "Runtime Logs" msgstr "" -#: src/views/apps/docker/IndexView.vue:46 -#: src/views/website/EditView.vue:401 +#: src/views/apps/docker/IndexView.vue:35 +#: src/views/website/EditView.vue:358 msgid "Configuration" msgstr "" -#: src/views/apps/docker/IndexView.vue:49 +#: src/views/apps/docker/IndexView.vue:38 msgid "This modifies the Docker configuration file (/etc/docker/daemon.json)" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:44 -#: src/views/apps/phpmyadmin/IndexView.vue:71 -#: src/views/apps/supervisor/IndexView.vue:55 +#: src/views/apps/fail2ban/IndexView.vue:43 +#: src/views/apps/phpmyadmin/IndexView.vue:56 +#: src/views/apps/supervisor/IndexView.vue:54 #: src/views/container/ComposeView.vue:58 #: src/views/container/ContainerView.vue:32 -#: src/views/database/ServerList.vue:114 -#: src/views/database/UserList.vue:131 -#: src/views/firewall/RuleView.vue:62 +#: src/views/database/ServerList.vue:113 +#: src/views/database/UserList.vue:130 +#: src/views/firewall/RuleView.vue:61 #: src/views/task/SystemView.vue:43 #: src/views/task/TaskView.vue:22 msgid "Status" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:56 -#: src/views/apps/fail2ban/IndexView.vue:365 +#: src/views/apps/fail2ban/IndexView.vue:55 +#: src/views/apps/fail2ban/IndexView.vue:358 msgid "Max Retries" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:57 -#: src/views/apps/fail2ban/IndexView.vue:371 +#: src/views/apps/fail2ban/IndexView.vue:56 +#: src/views/apps/fail2ban/IndexView.vue:364 msgid "Ban Time" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:58 -#: src/views/apps/fail2ban/IndexView.vue:368 +#: src/views/apps/fail2ban/IndexView.vue:57 +#: src/views/apps/fail2ban/IndexView.vue:361 msgid "Find Time" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:78 +#: src/views/apps/fail2ban/IndexView.vue:77 #: src/views/cert/CertView.vue:263 msgid "View" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:89 +#: src/views/apps/fail2ban/IndexView.vue:87 msgid "Are you sure you want to delete rule %{ name }?" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:100 -#: src/views/apps/php/PhpView.vue:109 -#: src/views/apps/pureftpd/IndexView.vue:89 -#: src/views/apps/rsync/IndexView.vue:107 -#: src/views/apps/supervisor/IndexView.vue:202 -#: src/views/backup/ListView.vue:98 +#: src/views/apps/fail2ban/IndexView.vue:98 +#: src/views/apps/php/PhpView.vue:107 +#: src/views/apps/pureftpd/IndexView.vue:88 +#: src/views/apps/rsync/IndexView.vue:106 +#: src/views/apps/supervisor/IndexView.vue:196 +#: src/views/backup/ListView.vue:96 #: src/views/cert/AccountView.vue:127 #: src/views/cert/CertView.vue:314 #: src/views/cert/DnsView.vue:111 @@ -838,174 +831,172 @@ msgstr "" #: src/views/container/ImageView.vue:94 #: src/views/container/NetworkView.vue:134 #: src/views/container/VolumeView.vue:88 -#: src/views/database/DatabaseList.vue:98 -#: src/views/database/ServerList.vue:217 -#: src/views/database/UserList.vue:191 -#: src/views/file/ListTable.vue:85 -#: src/views/file/ListTable.vue:289 -#: src/views/file/SearchModal.vue:98 +#: src/views/database/DatabaseList.vue:97 +#: src/views/database/ServerList.vue:214 +#: src/views/database/UserList.vue:189 +#: src/views/file/ListTable.vue:87 +#: src/views/file/ListTable.vue:291 #: src/views/file/ToolBar.vue:238 -#: src/views/firewall/ForwardView.vue:104 -#: src/views/firewall/IpRuleView.vue:146 -#: src/views/firewall/RuleView.vue:183 -#: src/views/setting/SettingUser.vue:142 -#: src/views/setting/TokenModal.vue:92 -#: src/views/ssh/IndexView.vue:93 -#: src/views/task/CronView.vue:155 -#: src/views/task/TaskView.vue:98 -#: src/views/website/IndexView.vue:199 +#: src/views/firewall/ForwardView.vue:103 +#: src/views/firewall/IpRuleView.vue:145 +#: src/views/firewall/RuleView.vue:182 +#: src/views/setting/SettingUser.vue:140 +#: src/views/setting/TokenModal.vue:91 +#: src/views/ssh/IndexView.vue:92 +#: src/views/task/CronView.vue:153 +#: src/views/task/TaskView.vue:97 +#: src/views/website/PhpView.vue:193 msgid "Delete" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:134 +#: src/views/apps/fail2ban/IndexView.vue:131 msgid "Are you sure you want to unban %{ ip }?" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:144 +#: src/views/apps/fail2ban/IndexView.vue:141 msgid "Unban" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:192 -#: src/views/apps/pureftpd/IndexView.vue:130 -#: src/views/apps/rsync/IndexView.vue:153 -#: src/views/apps/s3fs/IndexView.vue:84 -#: src/views/apps/supervisor/IndexView.vue:241 +#: src/views/apps/fail2ban/IndexView.vue:188 +#: src/views/apps/pureftpd/IndexView.vue:128 +#: src/views/apps/rsync/IndexView.vue:151 +#: src/views/apps/s3fs/IndexView.vue:82 +#: src/views/apps/supervisor/IndexView.vue:234 #: src/views/database/CreateServerModal.vue:37 msgid "Added successfully" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:200 -#: src/views/apps/pureftpd/IndexView.vue:147 -#: src/views/apps/rsync/IndexView.vue:161 -#: src/views/apps/s3fs/IndexView.vue:91 -#: src/views/apps/supervisor/IndexView.vue:269 -#: src/views/backup/ListView.vue:148 -#: src/views/database/DatabaseList.vue:123 -#: src/views/database/ServerList.vue:242 -#: src/views/database/UserList.vue:216 -#: src/views/file/ListTable.vue:272 -#: src/views/file/ListTable.vue:615 -#: src/views/file/SearchModal.vue:81 +#: src/views/apps/fail2ban/IndexView.vue:196 +#: src/views/apps/pureftpd/IndexView.vue:145 +#: src/views/apps/rsync/IndexView.vue:159 +#: src/views/apps/s3fs/IndexView.vue:89 +#: src/views/apps/supervisor/IndexView.vue:262 +#: src/views/backup/ListView.vue:145 +#: src/views/database/DatabaseList.vue:121 +#: src/views/database/ServerList.vue:238 +#: src/views/database/UserList.vue:213 +#: src/views/file/ListTable.vue:274 +#: src/views/file/ListTable.vue:618 #: src/views/file/ToolBar.vue:189 -#: src/views/firewall/ForwardView.vue:131 -#: src/views/firewall/ForwardView.vue:149 -#: src/views/firewall/IpRuleView.vue:173 -#: src/views/firewall/IpRuleView.vue:191 -#: src/views/firewall/RuleView.vue:210 -#: src/views/firewall/RuleView.vue:228 -#: src/views/setting/SettingUser.vue:178 -#: src/views/setting/TokenModal.vue:116 -#: src/views/task/CronView.vue:198 -#: src/views/task/TaskView.vue:124 -#: src/views/website/IndexView.vue:301 -#: src/views/website/IndexView.vue:357 +#: 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/setting/SettingUser.vue:175 +#: src/views/setting/TokenModal.vue:114 +#: src/views/task/CronView.vue:195 +#: src/views/task/TaskView.vue:122 +#: src/views/website/PhpView.vue:285 +#: src/views/website/PhpView.vue:332 msgid "Deleted successfully" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:213 +#: src/views/apps/fail2ban/IndexView.vue:209 msgid "Unbanned successfully" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:239 -msgid "Save Whitelist" -msgstr "" - -#: src/views/apps/fail2ban/IndexView.vue:248 -#: src/views/apps/fail2ban/IndexView.vue:294 -#: src/views/apps/fail2ban/IndexView.vue:298 -msgid "Add Rule" -msgstr "" - -#: src/views/apps/fail2ban/IndexView.vue:255 +#: src/views/apps/fail2ban/IndexView.vue:231 msgid "IP Whitelist" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:260 +#: src/views/apps/fail2ban/IndexView.vue:236 msgid "IP whitelist, separated by commas" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:265 +#: src/views/apps/fail2ban/IndexView.vue:241 +msgid "Save Whitelist" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:246 msgid "Rule Management" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:266 +#: src/views/apps/fail2ban/IndexView.vue:248 msgid "Rule List" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:304 +#: src/views/apps/fail2ban/IndexView.vue:277 +#: src/views/apps/fail2ban/IndexView.vue:287 +#: src/views/apps/fail2ban/IndexView.vue:291 +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 "" -#: src/views/apps/fail2ban/IndexView.vue:311 +#: 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 "" -#: src/views/apps/fail2ban/IndexView.vue:318 +#: src/views/apps/fail2ban/IndexView.vue:311 #: src/views/cert/CertView.vue:87 #: src/views/cert/DnsView.vue:38 #: src/views/cert/ObtainModal.vue:58 #: src/views/database/CreateServerModal.vue:63 -#: src/views/database/DatabaseList.vue:12 -#: src/views/database/ServerList.vue:17 -#: src/views/database/UserList.vue:17 +#: src/views/database/DatabaseList.vue:11 +#: src/views/database/ServerList.vue:16 +#: src/views/database/UserList.vue:16 msgid "Type" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:323 -#: src/views/apps/fail2ban/IndexView.vue:354 +#: src/views/apps/fail2ban/IndexView.vue:316 +#: src/views/apps/fail2ban/IndexView.vue:347 msgid "Service" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:328 -#: src/views/apps/fail2ban/IndexView.vue:332 -#: src/views/task/CreateModal.vue:144 -#: src/views/task/CreateModal.vue:149 +#: src/views/apps/fail2ban/IndexView.vue:321 +#: src/views/apps/fail2ban/IndexView.vue:325 +#: src/views/task/CreateModal.vue:143 +#: src/views/task/CreateModal.vue:148 msgid "Select Website" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:335 +#: src/views/apps/fail2ban/IndexView.vue:328 msgid "Protection Mode" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:340 +#: src/views/apps/fail2ban/IndexView.vue:333 #: src/views/apps/pureftpd/IndexView.vue:39 msgid "Path" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:347 -#: src/views/apps/fail2ban/IndexView.vue:351 +#: src/views/apps/fail2ban/IndexView.vue:340 +#: src/views/apps/fail2ban/IndexView.vue:344 msgid "Protection Path" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:379 -#: src/views/apps/fail2ban/IndexView.vue:383 +#: src/views/apps/fail2ban/IndexView.vue:372 +#: src/views/apps/fail2ban/IndexView.vue:376 msgid "View Rule" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:387 +#: src/views/apps/fail2ban/IndexView.vue:380 msgid "Rule Information" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:390 +#: src/views/apps/fail2ban/IndexView.vue:383 msgid "Currently Banned" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:394 +#: src/views/apps/fail2ban/IndexView.vue:387 msgid "Total Bans" msgstr "" -#: src/views/apps/fail2ban/IndexView.vue:399 +#: src/views/apps/fail2ban/IndexView.vue:392 msgid "Ban List" msgstr "" -#: src/views/apps/gitea/IndexView.vue:48 +#: src/views/apps/gitea/IndexView.vue:37 msgid "This modifies the Gitea configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" msgstr "" #: src/views/apps/memcached/IndexView.vue:18 #: src/views/apps/mysql/IndexView.vue:31 #: src/views/apps/nginx/IndexView.vue:28 -#: src/views/apps/php/PhpView.vue:124 +#: src/views/apps/php/PhpView.vue:121 #: src/views/apps/postgresql/IndexView.vue:31 #: src/views/apps/redis/IndexView.vue:25 msgid "Property" @@ -1014,122 +1005,127 @@ msgstr "" #: src/views/apps/memcached/IndexView.vue:25 #: src/views/apps/mysql/IndexView.vue:38 #: src/views/apps/nginx/IndexView.vue:35 -#: src/views/apps/php/PhpView.vue:131 +#: src/views/apps/php/PhpView.vue:128 #: src/views/apps/postgresql/IndexView.vue:38 #: src/views/apps/redis/IndexView.vue:32 msgid "Current Value" msgstr "" -#: src/views/apps/memcached/IndexView.vue:66 +#: src/views/apps/memcached/IndexView.vue:55 msgid "Service Configuration" msgstr "" -#: src/views/apps/memcached/IndexView.vue:82 -#: src/views/apps/mysql/IndexView.vue:141 -#: src/views/apps/nginx/IndexView.vue:104 -#: src/views/apps/php/PhpView.vue:289 -#: src/views/apps/postgresql/IndexView.vue:137 -#: src/views/apps/redis/IndexView.vue:86 -#: src/views/dashboard/IndexView.vue:462 +#: src/views/apps/memcached/IndexView.vue:75 +#: src/views/apps/mysql/IndexView.vue:112 +#: src/views/apps/nginx/IndexView.vue:88 +#: src/views/apps/php/PhpView.vue:258 +#: src/views/apps/postgresql/IndexView.vue:121 +#: src/views/apps/redis/IndexView.vue:79 +#: src/views/dashboard/IndexView.vue:463 msgid "Load Status" msgstr "" -#: src/views/apps/minio/IndexView.vue:39 +#: src/views/apps/minio/IndexView.vue:33 #: src/views/container/ComposeView.vue:338 #: src/views/container/ComposeView.vue:368 #: src/views/container/ContainerCreate.vue:353 msgid "Environment Variables" msgstr "" -#: src/views/apps/minio/IndexView.vue:43 +#: src/views/apps/minio/IndexView.vue:37 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 "" #: src/views/apps/mysql/IndexView.vue:53 #: src/views/apps/mysql/IndexView.vue:59 #: src/views/apps/nginx/IndexView.vue:50 -#: src/views/apps/php/PhpView.vue:158 -#: src/views/apps/php/PhpView.vue:164 +#: src/views/apps/php/PhpView.vue:155 +#: src/views/apps/php/PhpView.vue:161 #: src/views/apps/postgresql/IndexView.vue:57 -#: src/views/apps/supervisor/IndexView.vue:233 +#: src/views/apps/supervisor/IndexView.vue:226 #: src/views/website/EditView.vue:160 msgid "Cleared successfully" msgstr "" #: src/views/apps/mysql/IndexView.vue:65 -#: src/views/apps/pureftpd/IndexView.vue:140 -#: src/views/database/DatabaseList.vue:129 -#: src/views/database/ServerList.vue:248 +#: src/views/apps/pureftpd/IndexView.vue:138 +#: src/views/database/DatabaseList.vue:127 +#: src/views/database/ServerList.vue:244 #: src/views/database/UpdateServerModal.vue:21 #: src/views/database/UpdateUserModal.vue:18 -#: src/views/database/UserList.vue:222 +#: src/views/database/UserList.vue:219 #: src/views/file/PermissionModal.vue:29 -#: src/views/setting/SettingUser.vue:166 -#: src/views/setting/SettingUser.vue:172 -#: src/views/task/CronView.vue:180 -#: src/views/task/CronView.vue:207 -#: src/views/website/IndexView.vue:284 -#: src/views/website/IndexView.vue:310 +#: src/views/setting/SettingUser.vue:163 +#: src/views/setting/SettingUser.vue:169 +#: src/views/task/CronView.vue:177 +#: src/views/task/CronView.vue:204 +#: src/views/website/PhpView.vue:268 +#: src/views/website/SettingView.vue:29 msgid "Modified successfully" msgstr "" -#: src/views/apps/mysql/IndexView.vue:88 -#: src/views/apps/nginx/IndexView.vue:74 -#: src/views/apps/postgresql/IndexView.vue:84 -#: src/views/apps/supervisor/IndexView.vue:326 -msgid "Clear Log" -msgstr "" - -#: src/views/apps/mysql/IndexView.vue:97 -#: src/views/apps/php/PhpView.vue:221 -msgid "Clear Slow Log" -msgstr "" - -#: src/views/apps/mysql/IndexView.vue:104 -#: src/views/toolbox/SystemView.vue:192 -#: src/views/toolbox/SystemView.vue:194 +#: src/views/apps/mysql/IndexView.vue:75 +#: src/views/toolbox/SystemView.vue:191 +#: src/views/toolbox/SystemView.vue:193 msgid "Root Password" msgstr "" -#: src/views/apps/mysql/IndexView.vue:112 +#: src/views/apps/mysql/IndexView.vue:79 +#: src/views/website/SettingView.vue:55 +#: src/views/website/SettingView.vue:75 +#: src/views/website/SettingView.vue:95 +#: src/views/website/SettingView.vue:128 msgid "Save Changes" msgstr "" -#: src/views/apps/mysql/IndexView.vue:122 +#: src/views/apps/mysql/IndexView.vue:89 msgid "This modifies the MySQL main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" msgstr "" -#: src/views/apps/mysql/IndexView.vue:154 +#: src/views/apps/mysql/IndexView.vue:124 +#: src/views/apps/nginx/IndexView.vue:105 +#: src/views/apps/php/PhpView.vue:275 +#: src/views/apps/postgresql/IndexView.vue:135 +#: src/views/apps/supervisor/IndexView.vue:365 +msgid "Clear Log" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:128 msgid "Slow Query Log" msgstr "" -#: src/views/apps/nginx/IndexView.vue:85 +#: src/views/apps/mysql/IndexView.vue:130 +#: src/views/apps/php/PhpView.vue:285 +msgid "Clear Slow Log" +msgstr "" + +#: src/views/apps/nginx/IndexView.vue:65 msgid "This modifies the OpenResty main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" msgstr "" -#: src/views/apps/nginx/IndexView.vue:117 -#: src/views/apps/php/PhpView.vue:302 +#: src/views/apps/nginx/IndexView.vue:101 +#: src/views/apps/php/PhpView.vue:271 msgid "Error Logs" msgstr "" -#: src/views/apps/php/PhpView.vue:43 +#: src/views/apps/php/PhpView.vue:42 msgid "Extension Name" msgstr "" -#: src/views/apps/php/PhpView.vue:71 +#: src/views/apps/php/PhpView.vue:70 msgid "Are you sure you want to install %{ name }?" msgstr "" -#: src/views/apps/php/PhpView.vue:97 +#: src/views/apps/php/PhpView.vue:95 msgid "Are you sure you want to uninstall %{ name }?" msgstr "" -#: src/views/apps/php/PhpView.vue:140 +#: src/views/apps/php/PhpView.vue:137 msgid "Set successfully" msgstr "" -#: src/views/apps/php/PhpView.vue:170 -#: src/views/apps/php/PhpView.vue:176 +#: src/views/apps/php/PhpView.vue:167 +#: src/views/apps/php/PhpView.vue:173 msgid "Task submitted, please check progress in background tasks" msgstr "" @@ -1137,100 +1133,96 @@ msgstr "" msgid "Set as CLI Default Version" msgstr "" -#: src/views/apps/php/PhpView.vue:212 -msgid "Clear Error Log" -msgstr "" - -#: src/views/apps/php/PhpView.vue:228 +#: src/views/apps/php/PhpView.vue:189 msgid "Extension Management" msgstr "" -#: src/views/apps/php/PhpView.vue:241 -#: src/views/apps/postgresql/IndexView.vue:91 -#: src/views/apps/redis/IndexView.vue:63 -#: src/views/apps/rsync/IndexView.vue:241 -#: src/views/apps/supervisor/IndexView.vue:357 +#: src/views/apps/php/PhpView.vue:202 +#: src/views/apps/postgresql/IndexView.vue:67 +#: src/views/apps/redis/IndexView.vue:52 +#: src/views/apps/rsync/IndexView.vue:224 +#: src/views/apps/supervisor/IndexView.vue:331 msgid "Main Configuration" msgstr "" -#: src/views/apps/php/PhpView.vue:245 +#: src/views/apps/php/PhpView.vue:206 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 "" -#: src/views/apps/php/PhpView.vue:265 +#: src/views/apps/php/PhpView.vue:230 msgid "FPM Configuration" msgstr "" -#: src/views/apps/php/PhpView.vue:269 +#: src/views/apps/php/PhpView.vue:234 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 "" -#: src/views/apps/php/PhpView.vue:305 -#: src/views/apps/postgresql/IndexView.vue:150 +#: src/views/apps/php/PhpView.vue:281 +#: src/views/apps/postgresql/IndexView.vue:141 msgid "Slow Logs" msgstr "" -#: src/views/apps/phpmyadmin/IndexView.vue:73 +#: src/views/apps/phpmyadmin/IndexView.vue:58 msgid "Access Information" msgstr "" -#: src/views/apps/phpmyadmin/IndexView.vue:75 +#: src/views/apps/phpmyadmin/IndexView.vue:60 msgid "Access URL:" msgstr "" -#: src/views/apps/phpmyadmin/IndexView.vue:78 +#: src/views/apps/phpmyadmin/IndexView.vue:63 msgid "Modify Port" msgstr "" -#: src/views/apps/phpmyadmin/IndexView.vue:80 +#: src/views/apps/phpmyadmin/IndexView.vue:70 msgid "Modify phpMyAdmin access port" msgstr "" -#: src/views/apps/phpmyadmin/IndexView.vue:88 +#: src/views/apps/phpmyadmin/IndexView.vue:78 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 "" -#: src/views/apps/podman/IndexView.vue:64 +#: src/views/apps/podman/IndexView.vue:44 msgid "Podman is a daemonless container management tool. Being in a stopped state is normal and does not affect usage!" msgstr "" -#: src/views/apps/podman/IndexView.vue:72 +#: src/views/apps/podman/IndexView.vue:52 msgid "Registry Configuration" msgstr "" -#: src/views/apps/podman/IndexView.vue:76 +#: src/views/apps/podman/IndexView.vue:56 msgid "This modifies the Podman registry configuration file (/etc/containers/registries.conf)" msgstr "" -#: src/views/apps/podman/IndexView.vue:95 +#: src/views/apps/podman/IndexView.vue:79 msgid "Storage Configuration" msgstr "" -#: src/views/apps/podman/IndexView.vue:99 +#: src/views/apps/podman/IndexView.vue:83 msgid "This modifies the Podman storage configuration file (/etc/containers/storage.conf)" msgstr "" -#: src/views/apps/postgresql/IndexView.vue:95 +#: src/views/apps/postgresql/IndexView.vue:71 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 "" -#: src/views/apps/postgresql/IndexView.vue:114 +#: src/views/apps/postgresql/IndexView.vue:94 msgid "User Configuration" msgstr "" -#: src/views/apps/postgresql/IndexView.vue:118 +#: src/views/apps/postgresql/IndexView.vue:98 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 "" #: src/views/apps/pureftpd/IndexView.vue:32 -#: src/views/apps/pureftpd/IndexView.vue:221 +#: src/views/apps/pureftpd/IndexView.vue:214 #: src/views/container/ImageView.vue:198 #: src/views/database/CreateDatabaseModal.vue:94 #: src/views/database/CreateServerModal.vue:94 #: src/views/database/CreateUserModal.vue:77 -#: src/views/database/ServerList.vue:47 +#: src/views/database/ServerList.vue:46 #: src/views/database/UpdateServerModal.vue:86 -#: src/views/database/UserList.vue:40 +#: src/views/database/UserList.vue:39 #: src/views/login/IndexView.vue:133 #: src/views/setting/CreateModal.vue:40 #: src/views/setting/SettingUser.vue:19 @@ -1239,59 +1231,59 @@ msgstr "" msgid "Username" msgstr "" -#: src/views/apps/pureftpd/IndexView.vue:76 +#: src/views/apps/pureftpd/IndexView.vue:75 msgid "Are you sure you want to delete user %{ username }?" msgstr "" -#: src/views/apps/pureftpd/IndexView.vue:171 -msgid "Add User" -msgstr "" - -#: src/views/apps/pureftpd/IndexView.vue:178 +#: src/views/apps/pureftpd/IndexView.vue:161 msgid "Port Settings" msgstr "" -#: src/views/apps/pureftpd/IndexView.vue:180 +#: src/views/apps/pureftpd/IndexView.vue:168 msgid "Modify Pure-Ftpd listening port" msgstr "" -#: src/views/apps/pureftpd/IndexView.vue:184 +#: src/views/apps/pureftpd/IndexView.vue:172 msgid "User Management" msgstr "" -#: src/views/apps/pureftpd/IndexView.vue:208 +#: src/views/apps/pureftpd/IndexView.vue:176 +msgid "Add User" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:201 msgid "Run Log" msgstr "" -#: src/views/apps/pureftpd/IndexView.vue:213 -#: src/views/apps/pureftpd/IndexView.vue:217 +#: src/views/apps/pureftpd/IndexView.vue:206 +#: src/views/apps/pureftpd/IndexView.vue:210 #: src/views/database/CreateDatabaseModal.vue:79 #: src/views/database/CreateUserModal.vue:55 -#: src/views/database/IndexView.vue:44 +#: src/views/database/IndexView.vue:42 #: src/views/setting/CreateModal.vue:32 -#: src/views/setting/IndexView.vue:73 +#: src/views/setting/IndexView.vue:76 msgid "Create User" msgstr "" -#: src/views/apps/pureftpd/IndexView.vue:226 +#: src/views/apps/pureftpd/IndexView.vue:219 #: src/views/container/ImageView.vue:203 #: src/views/database/CreateDatabaseModal.vue:99 #: src/views/database/CreateUserModal.vue:82 msgid "Enter username" msgstr "" -#: src/views/apps/pureftpd/IndexView.vue:229 -#: src/views/apps/pureftpd/IndexView.vue:260 -#: src/views/apps/rsync/IndexView.vue:304 -#: src/views/apps/rsync/IndexView.vue:358 +#: src/views/apps/pureftpd/IndexView.vue:222 +#: src/views/apps/pureftpd/IndexView.vue:253 +#: src/views/apps/rsync/IndexView.vue:291 +#: src/views/apps/rsync/IndexView.vue:345 #: src/views/container/ImageView.vue:206 #: src/views/database/CreateDatabaseModal.vue:102 #: src/views/database/CreateServerModal.vue:102 #: src/views/database/CreateUserModal.vue:85 -#: src/views/database/ServerList.vue:56 +#: src/views/database/ServerList.vue:55 #: src/views/database/UpdateServerModal.vue:94 #: src/views/database/UpdateUserModal.vue:55 -#: src/views/database/UserList.vue:50 +#: src/views/database/UserList.vue:49 #: src/views/login/IndexView.vue:142 #: src/views/setting/CreateModal.vue:47 #: src/views/setting/PasswordModal.vue:34 @@ -1302,46 +1294,46 @@ msgstr "" msgid "Password" msgstr "" -#: src/views/apps/pureftpd/IndexView.vue:236 -#: src/views/apps/pureftpd/IndexView.vue:266 +#: src/views/apps/pureftpd/IndexView.vue:229 +#: src/views/apps/pureftpd/IndexView.vue:259 msgid "It is recommended to use the generator to generate a random password" msgstr "" -#: src/views/apps/pureftpd/IndexView.vue:240 +#: src/views/apps/pureftpd/IndexView.vue:233 #: src/views/apps/rsync/IndexView.vue:47 -#: src/views/apps/rsync/IndexView.vue:288 -#: src/views/apps/rsync/IndexView.vue:342 +#: src/views/apps/rsync/IndexView.vue:275 +#: src/views/apps/rsync/IndexView.vue:329 #: src/views/container/ComposeView.vue:38 -#: src/views/website/IndexView.vue:44 -#: src/views/website/IndexView.vue:547 +#: src/views/website/PhpView.vue:39 +#: src/views/website/PhpView.vue:512 msgid "Directory" msgstr "" -#: src/views/apps/pureftpd/IndexView.vue:245 +#: src/views/apps/pureftpd/IndexView.vue:238 msgid "Enter the directory authorized to the user" msgstr "" -#: src/views/apps/redis/IndexView.vue:67 +#: src/views/apps/redis/IndexView.vue:56 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 "" #: src/views/apps/rsync/IndexView.vue:54 -#: src/views/apps/rsync/IndexView.vue:296 -#: src/views/apps/rsync/IndexView.vue:350 +#: src/views/apps/rsync/IndexView.vue:283 +#: src/views/apps/rsync/IndexView.vue:337 #: src/views/database/IndexView.vue:28 -#: src/views/setting/IndexView.vue:66 +#: src/views/setting/IndexView.vue:70 #: src/views/task/SystemView.vue:37 msgid "User" msgstr "" #: src/views/apps/rsync/IndexView.vue:61 -#: src/views/apps/rsync/IndexView.vue:312 -#: src/views/apps/rsync/IndexView.vue:367 +#: src/views/apps/rsync/IndexView.vue:299 +#: src/views/apps/rsync/IndexView.vue:354 #: src/views/database/CreateDatabaseModal.vue:111 #: src/views/database/CreateServerModal.vue:73 -#: src/views/database/ServerList.vue:87 +#: src/views/database/ServerList.vue:86 #: src/views/database/UpdateServerModal.vue:65 -#: src/views/database/UserList.vue:81 +#: src/views/database/UserList.vue:80 #: src/views/ssh/CreateModal.vue:62 #: src/views/ssh/UpdateModal.vue:68 #: src/views/toolbox/SystemView.vue:137 @@ -1349,254 +1341,254 @@ msgid "Host" msgstr "" #: src/views/apps/rsync/IndexView.vue:67 -#: src/views/apps/rsync/IndexView.vue:320 -#: src/views/apps/rsync/IndexView.vue:375 +#: src/views/apps/rsync/IndexView.vue:307 +#: src/views/apps/rsync/IndexView.vue:362 #: src/views/database/CreateServerModal.vue:111 #: src/views/database/CreateUserModal.vue:116 -#: src/views/database/DatabaseList.vue:57 -#: src/views/database/ServerList.vue:97 +#: 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:114 +#: src/views/database/UserList.vue:113 msgid "Comment" msgstr "" #: src/views/apps/rsync/IndexView.vue:83 -#: src/views/apps/supervisor/IndexView.vue:104 +#: src/views/apps/supervisor/IndexView.vue:102 msgid "Configure" msgstr "" -#: src/views/apps/rsync/IndexView.vue:94 +#: src/views/apps/rsync/IndexView.vue:93 msgid "Are you sure you want to delete module %{ name }?" msgstr "" -#: src/views/apps/rsync/IndexView.vue:210 -#: src/views/apps/rsync/IndexView.vue:272 -msgid "Add Module" -msgstr "" - -#: src/views/apps/rsync/IndexView.vue:217 +#: src/views/apps/rsync/IndexView.vue:195 msgid "Module Management" msgstr "" -#: src/views/apps/rsync/IndexView.vue:245 +#: src/views/apps/rsync/IndexView.vue:199 +#: src/views/apps/rsync/IndexView.vue:259 +msgid "Add Module" +msgstr "" + +#: src/views/apps/rsync/IndexView.vue:228 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 "" -#: src/views/apps/rsync/IndexView.vue:285 -#: src/views/apps/supervisor/IndexView.vue:404 +#: src/views/apps/rsync/IndexView.vue:272 +#: src/views/apps/supervisor/IndexView.vue:389 msgid "Name cannot contain Chinese characters" msgstr "" -#: src/views/apps/rsync/IndexView.vue:293 -#: src/views/apps/rsync/IndexView.vue:347 +#: src/views/apps/rsync/IndexView.vue:280 +#: src/views/apps/rsync/IndexView.vue:334 msgid "Please enter absolute path" msgstr "" -#: src/views/apps/rsync/IndexView.vue:301 -#: src/views/apps/rsync/IndexView.vue:355 +#: src/views/apps/rsync/IndexView.vue:288 +#: src/views/apps/rsync/IndexView.vue:342 msgid "Enter module username" msgstr "" -#: src/views/apps/rsync/IndexView.vue:309 -#: src/views/apps/rsync/IndexView.vue:364 +#: src/views/apps/rsync/IndexView.vue:296 +#: src/views/apps/rsync/IndexView.vue:351 msgid "Enter module password" msgstr "" -#: src/views/apps/rsync/IndexView.vue:317 -#: src/views/apps/rsync/IndexView.vue:372 +#: src/views/apps/rsync/IndexView.vue:304 +#: src/views/apps/rsync/IndexView.vue:359 msgid "Enter allowed hosts, separate multiple hosts with spaces" msgstr "" -#: src/views/apps/rsync/IndexView.vue:325 -#: src/views/apps/rsync/IndexView.vue:380 +#: src/views/apps/rsync/IndexView.vue:312 +#: src/views/apps/rsync/IndexView.vue:367 msgid "Enter comments" msgstr "" -#: src/views/apps/rsync/IndexView.vue:334 +#: src/views/apps/rsync/IndexView.vue:321 msgid "Module Configuration" msgstr "" -#: src/views/apps/s3fs/IndexView.vue:25 +#: src/views/apps/s3fs/IndexView.vue:24 msgid "Mount Path" msgstr "" -#: src/views/apps/s3fs/IndexView.vue:46 +#: src/views/apps/s3fs/IndexView.vue:45 msgid "Are you sure you want to delete mount %{ path }?" msgstr "" -#: src/views/apps/s3fs/IndexView.vue:58 +#: src/views/apps/s3fs/IndexView.vue:57 msgid "Unmount" msgstr "" -#: src/views/apps/s3fs/IndexView.vue:105 -#: src/views/apps/s3fs/IndexView.vue:131 -#: src/views/apps/s3fs/IndexView.vue:135 +#: 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 "" -#: src/views/apps/s3fs/IndexView.vue:144 +#: src/views/apps/s3fs/IndexView.vue:141 msgid "Enter Bucket name (COS format: xxxx-ID)" msgstr "" -#: src/views/apps/s3fs/IndexView.vue:152 +#: src/views/apps/s3fs/IndexView.vue:149 msgid "Enter AK key" msgstr "" -#: src/views/apps/s3fs/IndexView.vue:160 +#: src/views/apps/s3fs/IndexView.vue:157 msgid "Enter SK key" msgstr "" -#: src/views/apps/s3fs/IndexView.vue:163 +#: src/views/apps/s3fs/IndexView.vue:160 msgid "Region Endpoint" msgstr "" -#: src/views/apps/s3fs/IndexView.vue:169 +#: src/views/apps/s3fs/IndexView.vue:166 msgid "Enter complete URL of region endpoint (e.g., https://oss-cn-beijing.aliyuncs.com)" msgstr "" -#: src/views/apps/s3fs/IndexView.vue:175 +#: src/views/apps/s3fs/IndexView.vue:172 msgid "Mount Directory" msgstr "" -#: src/views/apps/s3fs/IndexView.vue:180 +#: src/views/apps/s3fs/IndexView.vue:177 msgid "Enter mount directory (e.g., /oss)" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:69 +#: src/views/apps/supervisor/IndexView.vue:68 msgid "Uptime" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:132 +#: src/views/apps/supervisor/IndexView.vue:128 msgid "Are you sure you want to stop process %{ name }?" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:161 +#: src/views/apps/supervisor/IndexView.vue:156 msgid "Are you sure you want to restart process %{ name }?" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:189 +#: src/views/apps/supervisor/IndexView.vue:183 msgid "Are you sure you want to delete process %{ name }?" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:322 -#: src/views/apps/supervisor/IndexView.vue:391 -msgid "Add Process" -msgstr "" - -#: src/views/apps/supervisor/IndexView.vue:333 +#: src/views/apps/supervisor/IndexView.vue:302 msgid "Process Management" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:361 +#: src/views/apps/supervisor/IndexView.vue:306 +#: src/views/apps/supervisor/IndexView.vue:376 +msgid "Add Process" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:335 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 "" -#: src/views/apps/supervisor/IndexView.vue:383 +#: src/views/apps/supervisor/IndexView.vue:361 msgid "Daemon Logs" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:407 +#: src/views/apps/supervisor/IndexView.vue:392 msgid "Start Command" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:412 +#: src/views/apps/supervisor/IndexView.vue:397 msgid "Please enter absolute path for files in start command" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:415 +#: src/views/apps/supervisor/IndexView.vue:400 msgid "Working Directory" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:420 +#: src/views/apps/supervisor/IndexView.vue:405 msgid "Please enter absolute path for working directory" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:423 +#: src/views/apps/supervisor/IndexView.vue:408 msgid "Run As User" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:428 +#: src/views/apps/supervisor/IndexView.vue:413 msgid "Usually www is sufficient" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:431 +#: src/views/apps/supervisor/IndexView.vue:416 msgid "Number of Processes" msgstr "" -#: src/views/apps/supervisor/IndexView.vue:441 +#: src/views/apps/supervisor/IndexView.vue:426 msgid "Process Configuration" msgstr "" -#: src/views/backup/ListView.vue:36 +#: src/views/backup/ListView.vue:35 msgid "Filename" msgstr "" -#: src/views/backup/ListView.vue:49 -#: src/views/database/ServerList.vue:126 -#: src/views/database/UserList.vue:143 +#: src/views/backup/ListView.vue:48 +#: src/views/database/ServerList.vue:125 +#: src/views/database/UserList.vue:142 msgid "Update Date" msgstr "" -#: src/views/backup/ListView.vue:76 +#: src/views/backup/ListView.vue:75 msgid "Restore" msgstr "" -#: src/views/backup/ListView.vue:87 +#: src/views/backup/ListView.vue:85 msgid "Are you sure you want to delete this backup?" msgstr "" -#: src/views/backup/ListView.vue:131 +#: src/views/backup/ListView.vue:128 msgid "Restoring..." msgstr "" -#: src/views/backup/ListView.vue:138 +#: src/views/backup/ListView.vue:135 msgid "Restored successfully" msgstr "" -#: src/views/backup/ListView.vue:197 -#: src/views/backup/ListView.vue:227 +#: src/views/backup/ListView.vue:194 +#: src/views/backup/ListView.vue:224 msgid "Create Backup" msgstr "" -#: src/views/backup/ListView.vue:200 +#: src/views/backup/ListView.vue:197 #: src/views/backup/UploadModal.vue:39 msgid "Upload Backup" msgstr "" -#: src/views/backup/ListView.vue:239 -#: src/views/backup/ListView.vue:276 +#: src/views/backup/ListView.vue:236 +#: src/views/backup/ListView.vue:273 msgid "Select website" msgstr "" -#: src/views/backup/ListView.vue:242 +#: src/views/backup/ListView.vue:239 #: src/views/database/CreateDatabaseModal.vue:71 -#: src/views/database/DatabaseList.vue:35 -#: src/views/task/CreateModal.vue:154 -#: src/views/task/CreateModal.vue:156 -#: src/views/website/IndexView.vue:511 -#: src/views/website/IndexView.vue:516 +#: src/views/database/DatabaseList.vue:34 +#: src/views/task/CreateModal.vue:153 +#: src/views/task/CreateModal.vue:155 +#: src/views/website/PhpView.vue:476 +#: src/views/website/PhpView.vue:481 msgid "Database Name" msgstr "" -#: src/views/backup/ListView.vue:247 +#: src/views/backup/ListView.vue:244 #: src/views/database/CreateDatabaseModal.vue:76 #: src/views/database/CreateUserModal.vue:113 #: src/views/database/UpdateUserModal.vue:67 msgid "Enter database name" msgstr "" -#: src/views/backup/ListView.vue:250 -#: src/views/task/CreateModal.vue:158 -#: src/views/task/CreateModal.vue:161 +#: src/views/backup/ListView.vue:247 +#: src/views/task/CreateModal.vue:157 +#: src/views/task/CreateModal.vue:160 msgid "Save Directory" msgstr "" -#: src/views/backup/ListView.vue:255 +#: src/views/backup/ListView.vue:252 msgid "Leave empty to use default path" msgstr "" -#: src/views/backup/ListView.vue:264 +#: src/views/backup/ListView.vue:261 msgid "Restore Backup" msgstr "" @@ -1632,8 +1624,8 @@ msgstr "" #: src/views/cert/AccountView.vue:101 #: src/views/cert/CertView.vue:288 #: src/views/cert/DnsView.vue:85 -#: src/views/database/ServerList.vue:184 -#: src/views/database/UserList.vue:169 +#: src/views/database/ServerList.vue:182 +#: src/views/database/UserList.vue:168 #: src/views/file/PermissionModal.vue:123 #: src/views/setting/TokenModal.vue:69 msgid "Modify" @@ -1712,8 +1704,8 @@ msgstr "" #: src/views/cert/CertView.vue:450 #: src/views/cert/CreateCertModal.vue:74 #: src/views/cert/ObtainModal.vue:57 -#: src/views/website/EditView.vue:232 -#: src/views/website/IndexView.vue:455 +#: src/views/website/EditView.vue:178 +#: src/views/website/PhpView.vue:420 msgid "Domain" msgstr "" @@ -1722,15 +1714,15 @@ msgstr "" #: src/views/cert/CertView.vue:135 #: src/views/cert/CertView.vue:154 #: src/views/container/ContainerCreate.vue:55 -#: src/views/database/ServerList.vue:52 -#: src/views/database/ServerList.vue:67 -#: src/views/database/UserList.vue:46 -#: src/views/database/UserList.vue:86 -#: src/views/firewall/ForwardView.vue:26 -#: src/views/firewall/IpRuleView.vue:26 -#: src/views/firewall/IpRuleView.vue:43 -#: src/views/firewall/RuleView.vue:26 -#: src/views/firewall/RuleView.vue:43 +#: 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 "" @@ -1745,14 +1737,14 @@ msgid "Associated Account" msgstr "" #: src/views/cert/CertView.vue:130 -#: src/views/website/EditView.vue:306 +#: src/views/website/EditView.vue:261 msgid "Issuer" msgstr "" #: src/views/cert/CertView.vue:139 #: src/views/setting/TokenModal.vue:43 -#: src/views/setting/TokenModal.vue:258 -#: src/views/setting/TokenModal.vue:291 +#: src/views/setting/TokenModal.vue:256 +#: src/views/setting/TokenModal.vue:289 msgid "Expiration Time" msgstr "" @@ -1829,25 +1821,25 @@ msgstr "" #: src/views/cert/CertView.vue:502 #: src/views/cert/UploadCertModal.vue:42 -#: src/views/website/EditView.vue:359 +#: src/views/website/EditView.vue:314 msgid "Enter the content of the PEM certificate file" msgstr "" #: src/views/cert/CertView.vue:509 #: src/views/cert/CertView.vue:586 #: src/views/cert/UploadCertModal.vue:46 -#: src/views/setting/SettingSafe.vue:61 +#: src/views/setting/SettingSafe.vue:199 #: src/views/ssh/CreateModal.vue:78 #: src/views/ssh/CreateModal.vue:89 #: src/views/ssh/UpdateModal.vue:84 #: src/views/ssh/UpdateModal.vue:95 -#: src/views/website/EditView.vue:363 +#: src/views/website/EditView.vue:318 msgid "Private Key" msgstr "" #: src/views/cert/CertView.vue:514 #: src/views/cert/UploadCertModal.vue:50 -#: src/views/website/EditView.vue:367 +#: src/views/website/EditView.vue:322 msgid "Enter the content of the KEY private key file" msgstr "" @@ -1872,12 +1864,12 @@ msgid "View Certificate" msgstr "" #: src/views/cert/CreateAccountModal.vue:64 -#: src/views/cert/IndexView.vue:113 +#: src/views/cert/IndexView.vue:110 msgid "Create Account" msgstr "" #: src/views/cert/CreateCertModal.vue:59 -#: src/views/cert/IndexView.vue:109 +#: src/views/cert/IndexView.vue:107 msgid "Create Certificate" msgstr "" @@ -1886,7 +1878,7 @@ msgid "You can automatically issue and deploy certificates by selecting either W msgstr "" #: src/views/cert/CreateDnsModal.vue:44 -#: src/views/cert/IndexView.vue:117 +#: src/views/cert/IndexView.vue:113 msgid "Create DNS" msgstr "" @@ -2012,7 +2004,7 @@ msgstr "" msgid "DNS List" msgstr "" -#: src/views/cert/IndexView.vue:105 +#: src/views/cert/IndexView.vue:104 #: src/views/cert/UploadCertModal.vue:30 msgid "Upload Certificate" msgstr "" @@ -2071,11 +2063,11 @@ msgid "Creation Time" msgstr "" #: src/views/container/ComposeView.vue:96 -#: src/views/file/ListTable.vue:68 -#: src/views/file/ListTable.vue:220 -#: src/views/ssh/IndexView.vue:71 -#: src/views/task/CronView.vue:133 -#: src/views/website/IndexView.vue:141 +#: src/views/file/ListTable.vue:70 +#: src/views/file/ListTable.vue:222 +#: src/views/ssh/IndexView.vue:70 +#: src/views/task/CronView.vue:132 +#: src/views/website/PhpView.vue:136 msgid "Edit" msgstr "" @@ -2221,8 +2213,8 @@ msgid "Add" msgstr "" #: src/views/container/ContainerCreate.vue:245 -#: src/views/dashboard/IndexView.vue:141 -#: src/views/dashboard/IndexView.vue:797 +#: src/views/dashboard/IndexView.vue:142 +#: src/views/dashboard/IndexView.vue:794 #: src/views/monitor/IndexView.vue:286 msgid "Network" msgstr "" @@ -2240,9 +2232,9 @@ msgid "Container Directory" msgstr "" #: src/views/container/ContainerCreate.vue:255 -#: src/views/file/ListTable.vue:73 -#: src/views/file/ListTable.vue:145 -#: src/views/file/ListTable.vue:300 +#: src/views/file/ListTable.vue:75 +#: src/views/file/ListTable.vue:147 +#: src/views/file/ListTable.vue:302 #: src/views/file/PermissionModal.vue:113 #: src/views/file/ToolBar.vue:235 msgid "Permission" @@ -2267,12 +2259,12 @@ msgid "Entrypoint" msgstr "" #: src/views/container/ContainerCreate.vue:307 -#: src/views/dashboard/IndexView.vue:533 +#: src/views/dashboard/IndexView.vue:534 #: src/views/monitor/IndexView.vue:205 #: src/views/monitor/IndexView.vue:216 #: src/views/monitor/IndexView.vue:238 #: src/views/task/SystemView.vue:78 -#: src/views/toolbox/BenchmarkView.vue:187 +#: src/views/toolbox/BenchmarkView.vue:177 msgid "Memory" msgstr "" @@ -2328,9 +2320,9 @@ msgid "Ports (Host->Container)" msgstr "" #: src/views/container/ContainerView.vue:122 -#: src/views/container/ContainerView.vue:469 -#: src/views/file/ListTable.vue:84 -#: src/views/file/ListTable.vue:264 +#: src/views/container/ContainerView.vue:468 +#: src/views/file/ListTable.vue:86 +#: src/views/file/ListTable.vue:266 msgid "Rename" msgstr "" @@ -2350,7 +2342,7 @@ msgid "Resume" msgstr "" #: src/views/container/ContainerView.vue:200 -#: src/views/file/ListTable.vue:364 +#: src/views/file/ListTable.vue:366 msgid "More" msgstr "" @@ -2417,12 +2409,12 @@ msgstr "" msgid "Cleanup Containers" msgstr "" -#: src/views/container/ContainerView.vue:476 -#: src/views/file/ListTable.vue:719 +#: src/views/container/ContainerView.vue:475 +#: src/views/file/ListTable.vue:742 msgid "New Name" msgstr "" -#: src/views/container/ContainerView.vue:481 +#: src/views/container/ContainerView.vue:480 msgid "Enter new name" msgstr "" @@ -2433,10 +2425,10 @@ msgstr "" #: src/views/container/ImageView.vue:84 #: src/views/container/NetworkView.vue:124 #: src/views/container/VolumeView.vue:78 -#: src/views/firewall/ForwardView.vue:93 -#: src/views/firewall/IpRuleView.vue:135 -#: src/views/firewall/RuleView.vue:172 -#: src/views/task/TaskView.vue:87 +#: 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 "" @@ -2567,7 +2559,7 @@ msgid "Option Value" msgstr "" #: src/views/container/VolumeView.vue:47 -#: src/views/dashboard/IndexView.vue:644 +#: src/views/dashboard/IndexView.vue:645 msgid "Mount Point" msgstr "" @@ -2584,63 +2576,63 @@ msgstr "" msgid "Volume Name" msgstr "" -#: src/views/dashboard/IndexView.vue:129 +#: src/views/dashboard/IndexView.vue:130 msgid "Running blocked" msgstr "" -#: src/views/dashboard/IndexView.vue:131 +#: src/views/dashboard/IndexView.vue:132 msgid "Running slowly" msgstr "" -#: src/views/dashboard/IndexView.vue:133 +#: src/views/dashboard/IndexView.vue:134 msgid "Running normally" msgstr "" -#: src/views/dashboard/IndexView.vue:135 +#: src/views/dashboard/IndexView.vue:136 msgid "Running smoothly" msgstr "" -#: src/views/dashboard/IndexView.vue:141 -#: src/views/dashboard/IndexView.vue:798 -#: src/views/dashboard/IndexView.vue:818 -#: src/views/toolbox/BenchmarkView.vue:218 +#: src/views/dashboard/IndexView.vue:142 +#: src/views/dashboard/IndexView.vue:795 +#: src/views/dashboard/IndexView.vue:815 +#: src/views/toolbox/BenchmarkView.vue:203 msgid "Disk" msgstr "" -#: src/views/dashboard/IndexView.vue:164 -#: src/views/dashboard/IndexView.vue:181 +#: src/views/dashboard/IndexView.vue:165 +#: src/views/dashboard/IndexView.vue:182 msgid "Send" msgstr "" -#: src/views/dashboard/IndexView.vue:164 -#: src/views/dashboard/IndexView.vue:205 +#: src/views/dashboard/IndexView.vue:165 +#: src/views/dashboard/IndexView.vue:206 msgid "Receive" msgstr "" -#: src/views/dashboard/IndexView.vue:165 -#: src/views/dashboard/IndexView.vue:181 -#: src/views/dashboard/IndexView.vue:842 +#: src/views/dashboard/IndexView.vue:166 +#: src/views/dashboard/IndexView.vue:182 +#: src/views/dashboard/IndexView.vue:839 #: src/views/file/PermissionModal.vue:88 #: src/views/file/PermissionModal.vue:97 #: src/views/file/PermissionModal.vue:106 msgid "Read" msgstr "" -#: src/views/dashboard/IndexView.vue:165 -#: src/views/dashboard/IndexView.vue:205 -#: src/views/dashboard/IndexView.vue:843 +#: src/views/dashboard/IndexView.vue:166 +#: src/views/dashboard/IndexView.vue:206 +#: src/views/dashboard/IndexView.vue:840 #: src/views/file/PermissionModal.vue:89 #: src/views/file/PermissionModal.vue:98 #: src/views/file/PermissionModal.vue:107 msgid "Write" msgstr "" -#: src/views/dashboard/IndexView.vue:173 +#: src/views/dashboard/IndexView.vue:174 msgid "Unit %{unit}" msgstr "" -#: src/views/dashboard/IndexView.vue:187 -#: src/views/dashboard/IndexView.vue:211 +#: src/views/dashboard/IndexView.vue:188 +#: src/views/dashboard/IndexView.vue:212 #: src/views/monitor/IndexView.vue:93 #: src/views/monitor/IndexView.vue:115 #: src/views/monitor/IndexView.vue:137 @@ -2654,8 +2646,8 @@ msgstr "" msgid "Maximum" msgstr "" -#: src/views/dashboard/IndexView.vue:188 -#: src/views/dashboard/IndexView.vue:212 +#: src/views/dashboard/IndexView.vue:189 +#: src/views/dashboard/IndexView.vue:213 #: src/views/monitor/IndexView.vue:94 #: src/views/monitor/IndexView.vue:116 #: src/views/monitor/IndexView.vue:138 @@ -2669,8 +2661,8 @@ msgstr "" msgid "Minimum" msgstr "" -#: src/views/dashboard/IndexView.vue:192 -#: src/views/dashboard/IndexView.vue:216 +#: src/views/dashboard/IndexView.vue:193 +#: src/views/dashboard/IndexView.vue:217 #: src/views/monitor/IndexView.vue:98 #: src/views/monitor/IndexView.vue:120 #: src/views/monitor/IndexView.vue:142 @@ -2684,211 +2676,211 @@ msgstr "" msgid "Average" msgstr "" -#: src/views/dashboard/IndexView.vue:324 +#: src/views/dashboard/IndexView.vue:325 msgid "Panel restarting..." msgstr "" -#: src/views/dashboard/IndexView.vue:326 +#: src/views/dashboard/IndexView.vue:327 msgid "Panel restarted successfully" msgstr "" -#: src/views/dashboard/IndexView.vue:338 +#: src/views/dashboard/IndexView.vue:339 msgid "Current version is the latest" msgstr "" -#: src/views/dashboard/IndexView.vue:434 -#: src/views/task/IndexView.vue:24 +#: src/views/dashboard/IndexView.vue:435 +#: src/views/task/IndexView.vue:23 msgid "Scheduled Tasks" msgstr "" -#: src/views/dashboard/IndexView.vue:443 +#: src/views/dashboard/IndexView.vue:444 msgid "Sponsor Support" msgstr "" -#: src/views/dashboard/IndexView.vue:449 +#: src/views/dashboard/IndexView.vue:450 msgid "Are you sure you want to restart the panel?" msgstr "" -#: src/views/dashboard/IndexView.vue:457 +#: src/views/dashboard/IndexView.vue:458 msgid "Resource Overview" msgstr "" -#: src/views/dashboard/IndexView.vue:474 +#: src/views/dashboard/IndexView.vue:475 msgid "Last 1 minute" msgstr "" -#: src/views/dashboard/IndexView.vue:481 +#: src/views/dashboard/IndexView.vue:482 msgid "Last 5 minutes" msgstr "" -#: src/views/dashboard/IndexView.vue:488 +#: src/views/dashboard/IndexView.vue:489 msgid "Last 15 minutes" msgstr "" -#: src/views/dashboard/IndexView.vue:506 -#: src/views/dashboard/IndexView.vue:517 +#: src/views/dashboard/IndexView.vue:507 +#: src/views/dashboard/IndexView.vue:518 msgid "cores" msgstr "" -#: src/views/dashboard/IndexView.vue:511 +#: src/views/dashboard/IndexView.vue:512 msgid "Model" msgstr "" -#: src/views/dashboard/IndexView.vue:515 +#: src/views/dashboard/IndexView.vue:516 msgid "Parameters" msgstr "" -#: src/views/dashboard/IndexView.vue:518 +#: src/views/dashboard/IndexView.vue:519 msgid "cache" msgstr "" -#: src/views/dashboard/IndexView.vue:524 +#: src/views/dashboard/IndexView.vue:525 #: src/views/monitor/IndexView.vue:179 msgid "Usage" msgstr "" -#: src/views/dashboard/IndexView.vue:525 +#: src/views/dashboard/IndexView.vue:526 msgid "Frequency" msgstr "" -#: src/views/dashboard/IndexView.vue:545 +#: src/views/dashboard/IndexView.vue:546 msgid "Active" msgstr "" -#: src/views/dashboard/IndexView.vue:551 +#: src/views/dashboard/IndexView.vue:552 msgid "Inactive" msgstr "" -#: src/views/dashboard/IndexView.vue:557 +#: src/views/dashboard/IndexView.vue:558 msgid "Free" msgstr "" -#: src/views/dashboard/IndexView.vue:563 +#: src/views/dashboard/IndexView.vue:564 msgid "Shared" msgstr "" -#: src/views/dashboard/IndexView.vue:569 +#: src/views/dashboard/IndexView.vue:570 msgid "Committed" msgstr "" -#: src/views/dashboard/IndexView.vue:575 +#: src/views/dashboard/IndexView.vue:576 msgid "Commit Limit" msgstr "" -#: src/views/dashboard/IndexView.vue:581 +#: src/views/dashboard/IndexView.vue:582 #: src/views/toolbox/SystemView.vue:125 msgid "SWAP Size" msgstr "" -#: src/views/dashboard/IndexView.vue:587 +#: src/views/dashboard/IndexView.vue:588 msgid "SWAP Used" msgstr "" -#: src/views/dashboard/IndexView.vue:593 +#: src/views/dashboard/IndexView.vue:594 msgid "SWAP Available" msgstr "" -#: src/views/dashboard/IndexView.vue:599 +#: src/views/dashboard/IndexView.vue:600 msgid "Physical Memory Size" msgstr "" -#: src/views/dashboard/IndexView.vue:605 +#: src/views/dashboard/IndexView.vue:606 msgid "Physical Memory Used" msgstr "" -#: src/views/dashboard/IndexView.vue:611 +#: src/views/dashboard/IndexView.vue:612 msgid "Physical Memory Available" msgstr "" -#: src/views/dashboard/IndexView.vue:648 +#: src/views/dashboard/IndexView.vue:649 msgid "File System" msgstr "" -#: src/views/dashboard/IndexView.vue:652 +#: src/views/dashboard/IndexView.vue:653 msgid "Inodes Usage" msgstr "" -#: src/views/dashboard/IndexView.vue:656 +#: src/views/dashboard/IndexView.vue:657 msgid "Inodes Total" msgstr "" -#: src/views/dashboard/IndexView.vue:660 +#: src/views/dashboard/IndexView.vue:661 msgid "Inodes Used" msgstr "" -#: src/views/dashboard/IndexView.vue:664 +#: src/views/dashboard/IndexView.vue:665 msgid "Inodes Available" msgstr "" -#: src/views/dashboard/IndexView.vue:681 +#: src/views/dashboard/IndexView.vue:682 msgid "Quick Apps" msgstr "" -#: src/views/dashboard/IndexView.vue:724 +#: src/views/dashboard/IndexView.vue:721 msgid "You have not set any apps to display here!" msgstr "" -#: src/views/dashboard/IndexView.vue:728 +#: src/views/dashboard/IndexView.vue:725 msgid "Environment Information" msgstr "" -#: src/views/dashboard/IndexView.vue:731 +#: src/views/dashboard/IndexView.vue:728 msgid "System Hostname" msgstr "" -#: src/views/dashboard/IndexView.vue:737 +#: src/views/dashboard/IndexView.vue:734 msgid "System Version" msgstr "" -#: src/views/dashboard/IndexView.vue:746 +#: src/views/dashboard/IndexView.vue:743 msgid "System Kernel Version" msgstr "" -#: src/views/dashboard/IndexView.vue:752 +#: src/views/dashboard/IndexView.vue:749 msgid "System Uptime" msgstr "" -#: src/views/dashboard/IndexView.vue:758 +#: src/views/dashboard/IndexView.vue:755 msgid "Panel Internal Version" msgstr "" -#: src/views/dashboard/IndexView.vue:770 +#: src/views/dashboard/IndexView.vue:767 msgid "Panel Compile Information" msgstr "" -#: src/views/dashboard/IndexView.vue:787 +#: src/views/dashboard/IndexView.vue:784 msgid "Real-time Monitoring" msgstr "" -#: src/views/dashboard/IndexView.vue:801 +#: src/views/dashboard/IndexView.vue:798 msgid "Unit" msgstr "" -#: src/views/dashboard/IndexView.vue:809 +#: src/views/dashboard/IndexView.vue:806 msgid "Network Card" msgstr "" -#: src/views/dashboard/IndexView.vue:829 +#: src/views/dashboard/IndexView.vue:826 msgid "Total Sent" msgstr "" -#: src/views/dashboard/IndexView.vue:831 +#: src/views/dashboard/IndexView.vue:828 msgid "Total Received" msgstr "" -#: src/views/dashboard/IndexView.vue:834 +#: src/views/dashboard/IndexView.vue:831 msgid "Real-time Sent" msgstr "" -#: src/views/dashboard/IndexView.vue:838 +#: src/views/dashboard/IndexView.vue:835 msgid "Real-time Received" msgstr "" -#: src/views/dashboard/IndexView.vue:845 +#: src/views/dashboard/IndexView.vue:842 msgid "Real-time Read/Write" msgstr "" -#: src/views/dashboard/IndexView.vue:848 +#: src/views/dashboard/IndexView.vue:845 msgid "Read/Write Latency" msgstr "" @@ -2912,11 +2904,11 @@ msgstr "" msgid "Update canceled" msgstr "" -#: src/views/dashboard/UpdateView.vue:59 +#: src/views/dashboard/UpdateView.vue:73 msgid "Update Now" msgstr "" -#: src/views/dashboard/UpdateView.vue:85 +#: src/views/dashboard/UpdateView.vue:80 msgid "Loading update information, please wait a moment" msgstr "" @@ -2936,15 +2928,15 @@ msgid "Specific" msgstr "" #: src/views/database/CreateDatabaseModal.vue:55 -#: src/views/database/IndexView.vue:40 +#: src/views/database/IndexView.vue:39 msgid "Create Database" msgstr "" #: src/views/database/CreateDatabaseModal.vue:63 #: src/views/database/CreateUserModal.vue:69 -#: src/views/database/DatabaseList.vue:42 +#: src/views/database/DatabaseList.vue:41 #: src/views/database/IndexView.vue:29 -#: src/views/database/UserList.vue:91 +#: src/views/database/UserList.vue:90 msgid "Server" msgstr "" @@ -2977,7 +2969,7 @@ msgid "Enter supported host address" msgstr "" #: src/views/database/CreateServerModal.vue:47 -#: src/views/database/IndexView.vue:52 +#: src/views/database/IndexView.vue:49 msgid "Add Server" msgstr "" @@ -2997,12 +2989,12 @@ msgstr "" #: src/views/database/CreateServerModal.vue:84 #: src/views/database/UpdateServerModal.vue:76 -#: src/views/firewall/ForwardView.vue:32 -#: src/views/firewall/RuleView.vue:49 +#: src/views/firewall/ForwardView.vue:31 +#: src/views/firewall/RuleView.vue:48 #: src/views/setting/SettingBase.vue:49 #: src/views/ssh/CreateModal.vue:68 #: src/views/ssh/UpdateModal.vue:74 -#: src/views/website/IndexView.vue:466 +#: src/views/website/PhpView.vue:431 msgid "Port" msgstr "" @@ -3037,7 +3029,7 @@ msgstr "" #: src/views/database/CreateUserModal.vue:110 #: src/views/database/UpdateUserModal.vue:64 -#: src/views/database/UserList.vue:99 +#: src/views/database/UserList.vue:98 msgid "Privileges" msgstr "" @@ -3046,61 +3038,60 @@ msgstr "" msgid "Enter database user comment" msgstr "" -#: src/views/database/DatabaseList.vue:47 +#: src/views/database/DatabaseList.vue:46 msgid "Encoding" msgstr "" -#: src/views/database/DatabaseList.vue:87 +#: src/views/database/DatabaseList.vue:86 msgid "Are you sure you want to delete this database?" msgstr "" -#: src/views/database/ServerList.vue:76 -#: src/views/database/UserList.vue:70 -#: src/views/file/ListTable.vue:516 -#: src/views/file/ListTable.vue:536 -#: src/views/file/SearchModal.vue:65 +#: src/views/database/ServerList.vue:75 +#: src/views/database/UserList.vue:69 +#: src/views/file/ListTable.vue:519 +#: src/views/file/ListTable.vue:539 #: src/views/file/ToolBar.vue:145 #: src/views/file/ToolBar.vue:165 -#: src/views/setting/TokenModal.vue:165 +#: src/views/setting/TokenModal.vue:163 msgid "Copied successfully" msgstr "" -#: src/views/database/ServerList.vue:80 -#: src/views/database/UserList.vue:74 -#: src/views/file/ListTable.vue:71 -#: src/views/file/ListTable.vue:298 +#: src/views/database/ServerList.vue:79 +#: src/views/database/UserList.vue:73 +#: src/views/file/ListTable.vue:73 +#: src/views/file/ListTable.vue:300 #: src/views/file/ToolBar.vue:232 msgid "Copy" msgstr "" -#: src/views/database/ServerList.vue:121 -#: src/views/database/UserList.vue:138 +#: src/views/database/ServerList.vue:120 +#: src/views/database/UserList.vue:137 msgid "Valid" msgstr "" -#: src/views/database/ServerList.vue:121 -#: src/views/database/UserList.vue:138 +#: src/views/database/ServerList.vue:120 +#: src/views/database/UserList.vue:137 msgid "Invalid" msgstr "" -#: src/views/database/ServerList.vue:147 +#: src/views/database/ServerList.vue:146 #: src/views/toolbox/SystemView.vue:86 msgid "Synchronized successfully" msgstr "" -#: src/views/database/ServerList.vue:153 +#: src/views/database/ServerList.vue:152 msgid "Are you sure you want to synchronize database users (excluding password) to the panel?" msgstr "" -#: src/views/database/ServerList.vue:165 +#: src/views/database/ServerList.vue:164 msgid "Sync" msgstr "" -#: src/views/database/ServerList.vue:195 +#: src/views/database/ServerList.vue:192 msgid "Built-in servers cannot be deleted. If you need to delete them, please uninstall the corresponding app" msgstr "" -#: src/views/database/ServerList.vue:206 +#: src/views/database/ServerList.vue:203 msgid "Are you sure you want to delete the server?" msgstr "" @@ -3112,11 +3103,11 @@ msgstr "" msgid "Modify User" msgstr "" -#: src/views/database/UserList.vue:61 +#: src/views/database/UserList.vue:60 msgid "Not saved" msgstr "" -#: src/views/database/UserList.vue:180 +#: src/views/database/UserList.vue:178 msgid "Are you sure you want to delete the user?" msgstr "" @@ -3138,9 +3129,9 @@ msgstr "" #: src/views/file/CompressModal.vue:73 #: src/views/file/CompressModal.vue:105 -#: src/views/file/ListTable.vue:75 -#: src/views/file/ListTable.vue:245 -#: src/views/file/ListTable.vue:301 +#: src/views/file/ListTable.vue:77 +#: src/views/file/ListTable.vue:247 +#: src/views/file/ListTable.vue:303 #: src/views/file/ToolBar.vue:234 msgid "Compress" msgstr "" @@ -3165,120 +3156,119 @@ msgstr "" msgid "Refresh" msgstr "" -#: src/views/file/ListTable.vue:65 -#: src/views/file/ListTable.vue:222 +#: src/views/file/ListTable.vue:67 +#: src/views/file/ListTable.vue:224 msgid "Open" msgstr "" -#: src/views/file/ListTable.vue:67 -#: src/views/file/ListTable.vue:220 +#: src/views/file/ListTable.vue:69 +#: src/views/file/ListTable.vue:222 msgid "Preview" msgstr "" -#: src/views/file/ListTable.vue:72 -#: src/views/file/ListTable.vue:299 +#: src/views/file/ListTable.vue:74 +#: src/views/file/ListTable.vue:301 #: src/views/file/ToolBar.vue:233 msgid "Move" msgstr "" -#: src/views/file/ListTable.vue:75 -#: src/views/file/ListTable.vue:247 +#: src/views/file/ListTable.vue:77 +#: src/views/file/ListTable.vue:249 msgid "Download" msgstr "" -#: src/views/file/ListTable.vue:79 -#: src/views/file/ListTable.vue:303 -#: src/views/file/ListTable.vue:741 +#: src/views/file/ListTable.vue:81 +#: src/views/file/ListTable.vue:305 +#: src/views/file/ListTable.vue:764 msgid "Uncompress" msgstr "" -#: src/views/file/ListTable.vue:89 +#: src/views/file/ListTable.vue:91 #: src/views/file/ToolBar.vue:229 msgid "Paste" msgstr "" -#: src/views/file/ListTable.vue:279 -#: src/views/file/SearchModal.vue:88 +#: src/views/file/ListTable.vue:281 msgid "Are you sure you want to delete %{ name }?" msgstr "" -#: src/views/file/ListTable.vue:320 -#: src/views/file/ListTable.vue:335 -#: src/views/file/ListTable.vue:575 -#: src/views/file/ListTable.vue:588 +#: src/views/file/ListTable.vue:322 +#: src/views/file/ListTable.vue:337 +#: src/views/file/ListTable.vue:578 +#: src/views/file/ListTable.vue:591 #: src/views/file/ToolBar.vue:77 #: src/views/file/ToolBar.vue:94 msgid "Marked successfully, please navigate to the destination path to paste" msgstr "" -#: src/views/file/ListTable.vue:412 -#: src/views/file/ListTable.vue:499 +#: src/views/file/ListTable.vue:415 +#: src/views/file/ListTable.vue:502 #: src/views/file/ToolBar.vue:128 msgid "Warning" msgstr "" -#: src/views/file/ListTable.vue:413 +#: src/views/file/ListTable.vue:416 msgid "There are items with the same name. Do you want to overwrite?" msgstr "" -#: src/views/file/ListTable.vue:414 -#: src/views/file/ListTable.vue:509 +#: src/views/file/ListTable.vue:417 +#: src/views/file/ListTable.vue:512 #: src/views/file/ToolBar.vue:138 msgid "Overwrite" msgstr "" -#: src/views/file/ListTable.vue:421 -#: src/views/file/ListTable.vue:437 +#: src/views/file/ListTable.vue:424 +#: src/views/file/ListTable.vue:440 msgid "Renamed %{ source } to %{ target } successfully" msgstr "" -#: src/views/file/ListTable.vue:459 +#: src/views/file/ListTable.vue:462 msgid "Uncompressing..." msgstr "" -#: src/views/file/ListTable.vue:466 +#: src/views/file/ListTable.vue:469 msgid "Uncompressed successfully" msgstr "" -#: src/views/file/ListTable.vue:475 +#: src/views/file/ListTable.vue:478 #: src/views/file/ToolBar.vue:104 msgid "Please mark the files/folders to copy or move first" msgstr "" -#: src/views/file/ListTable.vue:500 +#: src/views/file/ListTable.vue:503 #: src/views/file/ToolBar.vue:129 -msgid "There are items with the same name. %{ items } Do you want to overwrite?" +msgid "There are items with the same name %{ items } Do you want to overwrite?" msgstr "" -#: src/views/file/ListTable.vue:522 -#: src/views/file/ListTable.vue:542 +#: src/views/file/ListTable.vue:525 +#: src/views/file/ListTable.vue:545 #: src/views/file/ToolBar.vue:151 #: src/views/file/ToolBar.vue:171 msgid "Moved successfully" msgstr "" -#: src/views/file/ListTable.vue:528 +#: src/views/file/ListTable.vue:531 #: src/views/file/ToolBar.vue:157 msgid "Canceled" msgstr "" -#: src/views/file/ListTable.vue:711 +#: src/views/file/ListTable.vue:734 msgid "Rename - %{ source }" msgstr "" -#: src/views/file/ListTable.vue:729 +#: src/views/file/ListTable.vue:752 msgid "Uncompress - %{ file }" msgstr "" -#: src/views/file/ListTable.vue:737 +#: src/views/file/ListTable.vue:760 msgid "Uncompress to" msgstr "" -#: src/views/file/PathInput.vue:154 +#: src/views/file/PathInput.vue:149 msgid "Enter search content" msgstr "" -#: src/views/file/PathInput.vue:157 +#: src/views/file/PathInput.vue:152 msgid "Include subdirectories" msgstr "" @@ -3314,14 +3304,6 @@ msgstr "" msgid "Preview - " msgstr "" -#: src/views/file/SearchModal.vue:71 -msgid "Copy Path" -msgstr "" - -#: src/views/file/SearchModal.vue:154 -msgid "%{ keyword } - Search Results" -msgstr "" - #: src/views/file/ToolBar.vue:60 msgid "Download task created successfully" msgstr "" @@ -3369,21 +3351,21 @@ msgid "For large files, it is recommended to use SFTP and other methods to uploa msgstr "" #: src/views/firewall/CreateForwardModal.vue:50 -#: src/views/firewall/ForwardView.vue:166 +#: src/views/firewall/ForwardView.vue:163 msgid "Create Forwarding" msgstr "" #: src/views/firewall/CreateForwardModal.vue:58 #: src/views/firewall/CreateIpModal.vue:100 -#: src/views/firewall/CreateModal.vue:99 -#: src/views/firewall/ForwardView.vue:15 -#: src/views/firewall/IpRuleView.vue:15 -#: src/views/firewall/RuleView.vue:15 +#: src/views/firewall/CreateModal.vue:102 +#: src/views/firewall/ForwardView.vue:14 +#: src/views/firewall/IpRuleView.vue:14 +#: src/views/firewall/RuleView.vue:14 msgid "Transport Protocol" msgstr "" #: src/views/firewall/CreateForwardModal.vue:61 -#: src/views/firewall/ForwardView.vue:44 +#: src/views/firewall/ForwardView.vue:43 msgid "Target IP" msgstr "" @@ -3392,61 +3374,61 @@ msgid "Source Port" msgstr "" #: src/views/firewall/CreateForwardModal.vue:76 -#: src/views/firewall/ForwardView.vue:62 +#: src/views/firewall/ForwardView.vue:61 msgid "Target Port" msgstr "" #: src/views/firewall/CreateIpModal.vue:38 #: src/views/firewall/CreateModal.vue:38 -#: src/views/firewall/IpRuleView.vue:69 -#: src/views/firewall/RuleView.vue:103 +#: 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:71 -#: src/views/firewall/RuleView.vue:105 +#: 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:73 -#: src/views/firewall/RuleView.vue:107 +#: 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:98 -#: src/views/firewall/RuleView.vue:132 +#: 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:100 -#: src/views/firewall/RuleView.vue:134 +#: src/views/firewall/IpRuleView.vue:99 +#: src/views/firewall/RuleView.vue:133 msgid "Outbound" msgstr "" #: src/views/firewall/CreateIpModal.vue:81 -#: src/views/firewall/CreateModal.vue:80 +#: src/views/firewall/CreateModal.vue:83 msgid "%{ address } created successfully" msgstr "" #: src/views/firewall/CreateIpModal.vue:92 -#: src/views/firewall/CreateModal.vue:91 -#: src/views/firewall/IpRuleView.vue:208 -#: src/views/firewall/RuleView.vue:245 +#: src/views/firewall/CreateModal.vue:94 +#: 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:102 -#: src/views/firewall/IpRuleView.vue:32 -#: src/views/firewall/RuleView.vue:32 +#: src/views/firewall/CreateModal.vue:105 +#: src/views/firewall/IpRuleView.vue:31 +#: src/views/firewall/RuleView.vue:31 msgid "Network Protocol" msgstr "" @@ -3455,54 +3437,54 @@ msgid "IP Address" msgstr "" #: src/views/firewall/CreateIpModal.vue:110 -#: src/views/firewall/CreateModal.vue:131 +#: src/views/firewall/CreateModal.vue:134 msgid "IP or IP range: 172.16.0.1 or 172.16.0.0/16" msgstr "" #: src/views/firewall/CreateIpModal.vue:113 -#: src/views/firewall/CreateModal.vue:134 -#: src/views/firewall/IpRuleView.vue:49 -#: src/views/firewall/RuleView.vue:83 +#: src/views/firewall/CreateModal.vue:137 +#: 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:137 -#: src/views/firewall/IpRuleView.vue:85 -#: src/views/firewall/RuleView.vue:119 +#: src/views/firewall/CreateModal.vue:140 +#: src/views/firewall/IpRuleView.vue:84 +#: src/views/firewall/RuleView.vue:118 msgid "Direction" msgstr "" -#: src/views/firewall/CreateModal.vue:107 +#: src/views/firewall/CreateModal.vue:110 msgid "Start Port" msgstr "" -#: src/views/firewall/CreateModal.vue:117 +#: src/views/firewall/CreateModal.vue:120 msgid "End Port" msgstr "" -#: src/views/firewall/CreateModal.vue:127 -#: src/views/firewall/IpRuleView.vue:110 -#: src/views/firewall/RuleView.vue:144 +#: src/views/firewall/CreateModal.vue:130 +#: src/views/firewall/IpRuleView.vue:109 +#: src/views/firewall/RuleView.vue:143 msgid "Target" msgstr "" -#: src/views/firewall/ForwardView.vue:137 -#: src/views/firewall/IpRuleView.vue:179 -#: src/views/firewall/RuleView.vue:216 +#: 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:172 -#: src/views/firewall/IpRuleView.vue:214 -#: src/views/firewall/RuleView.vue:251 -#: src/views/website/IndexView.vue:397 +#: src/views/firewall/ForwardView.vue:168 +#: src/views/firewall/IpRuleView.vue:210 +#: src/views/firewall/RuleView.vue:247 +#: src/views/website/PhpView.vue:363 msgid "Batch Delete" msgstr "" -#: src/views/firewall/ForwardView.vue:175 -#: src/views/firewall/IpRuleView.vue:217 -#: src/views/firewall/RuleView.vue:254 +#: 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 "" @@ -3518,20 +3500,20 @@ msgstr "" msgid "Port Forwarding" msgstr "" -#: src/views/firewall/IpRuleView.vue:75 -#: src/views/firewall/RuleView.vue:109 +#: src/views/firewall/IpRuleView.vue:74 +#: src/views/firewall/RuleView.vue:108 msgid "Mark" msgstr "" -#: src/views/firewall/RuleView.vue:74 +#: src/views/firewall/RuleView.vue:73 msgid "In Use" msgstr "" -#: src/views/firewall/RuleView.vue:76 +#: src/views/firewall/RuleView.vue:75 msgid "Not Used" msgstr "" -#: src/views/firewall/RuleView.vue:151 +#: src/views/firewall/RuleView.vue:150 msgid "All" msgstr "" @@ -3650,12 +3632,12 @@ msgstr "" msgid "Time Selection" msgstr "" -#: src/views/monitor/IndexView.vue:475 +#: src/views/monitor/IndexView.vue:474 msgid "Clear Monitoring Records" msgstr "" -#: src/views/monitor/IndexView.vue:478 -#: src/views/website/EditView.vue:224 +#: src/views/monitor/IndexView.vue:477 +#: src/views/website/EditView.vue:409 msgid "Are you sure you want to clear?" msgstr "" @@ -3672,20 +3654,20 @@ msgstr "" msgid "Enter user email" msgstr "" -#: src/views/setting/IndexView.vue:47 +#: src/views/setting/IndexView.vue:51 msgid "Panel is restarting, page will refresh in 3 seconds" msgstr "" -#: src/views/setting/IndexView.vue:64 +#: src/views/setting/IndexView.vue:68 msgid "Basic" msgstr "" -#: src/views/setting/IndexView.vue:65 +#: src/views/setting/IndexView.vue:69 msgid "Safe" msgstr "" #: src/views/setting/PasswordModal.vue:16 -#: src/views/setting/TokenModal.vue:183 +#: src/views/setting/TokenModal.vue:181 #: src/views/setting/TwoFaModal.vue:24 #: src/views/ssh/UpdateModal.vue:30 msgid "Updated successfully" @@ -3736,51 +3718,91 @@ msgstr "" msgid "/www/backup" msgstr "" -#: src/views/setting/SettingSafe.vue:12 +#: src/views/setting/SettingSafe.vue:17 msgid "Login Timeout" msgstr "" -#: src/views/setting/SettingSafe.vue:15 +#: src/views/setting/SettingSafe.vue:22 +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:30 msgid "120" msgstr "" -#: src/views/setting/SettingSafe.vue:21 +#: src/views/setting/SettingSafe.vue:36 #: src/views/website/ProxyBuilderModal.vue:188 msgid "minutes" msgstr "" -#: src/views/setting/SettingSafe.vue:25 +#: src/views/setting/SettingSafe.vue:45 msgid "Access Entrance" msgstr "" -#: src/views/setting/SettingSafe.vue:26 -msgid "/admin" +#: src/views/setting/SettingSafe.vue:50 +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:28 +#: src/views/setting/SettingSafe.vue:63 +msgid "Request IP Header" +msgstr "" + +#: src/views/setting/SettingSafe.vue:68 +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:74 +msgid "X-Real-IP" +msgstr "" + +#: src/views/setting/SettingSafe.vue:81 msgid "Bind Domain" msgstr "" -#: src/views/setting/SettingSafe.vue:35 +#: src/views/setting/SettingSafe.vue:86 +msgid "Restrict panel access to the specified domain names. Leave blank to allow access from any domain" +msgstr "" + +#: src/views/setting/SettingSafe.vue:103 msgid "Bind IP" msgstr "" -#: src/views/setting/SettingSafe.vue:38 +#: src/views/setting/SettingSafe.vue:108 +msgid "Restrict panel access to the specified IP addresses. Leave blank to allow access from any IP" +msgstr "" + +#: src/views/setting/SettingSafe.vue:121 msgid "Bind UA" msgstr "" -#: src/views/setting/SettingSafe.vue:45 +#: src/views/setting/SettingSafe.vue:126 +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:143 msgid "Offline Mode" msgstr "" -#: src/views/setting/SettingSafe.vue:48 +#: src/views/setting/SettingSafe.vue:148 +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:161 msgid "Auto Update" msgstr "" -#: src/views/setting/SettingSafe.vue:51 +#: src/views/setting/SettingSafe.vue:166 +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:179 msgid "Panel HTTPS" msgstr "" +#: src/views/setting/SettingSafe.vue:184 +msgid "Enable HTTPS for the panel to ensure secure communication. You need to provide a valid SSL certificate and private key" +msgstr "" + #: src/views/setting/SettingUser.vue:53 msgid "2FA" msgstr "" @@ -3790,11 +3812,11 @@ msgid "Disabled successfully" msgstr "" #: src/views/setting/SettingUser.vue:103 -#: src/views/setting/TokenModal.vue:204 +#: src/views/setting/TokenModal.vue:202 msgid "Access Tokens" msgstr "" -#: src/views/setting/SettingUser.vue:131 +#: src/views/setting/SettingUser.vue:129 msgid "Are you sure you want to delete this user?" msgstr "" @@ -3802,43 +3824,43 @@ msgstr "" msgid "ID" msgstr "" -#: src/views/setting/TokenModal.vue:81 +#: src/views/setting/TokenModal.vue:80 msgid "Are you sure you want to delete this access token?" msgstr "" -#: src/views/setting/TokenModal.vue:144 +#: src/views/setting/TokenModal.vue:142 msgid "Token is only displayed once, please save it before closing the dialog." msgstr "" -#: src/views/setting/TokenModal.vue:161 +#: src/views/setting/TokenModal.vue:159 msgid "Copy and close" msgstr "" -#: src/views/setting/TokenModal.vue:168 +#: src/views/setting/TokenModal.vue:166 msgid "Copy failed" msgstr "" -#: src/views/setting/TokenModal.vue:214 -#: src/views/setting/TokenModal.vue:242 +#: src/views/setting/TokenModal.vue:212 +#: src/views/setting/TokenModal.vue:240 msgid "Create Access Token" msgstr "" -#: src/views/setting/TokenModal.vue:251 -#: src/views/setting/TokenModal.vue:284 +#: src/views/setting/TokenModal.vue:249 +#: src/views/setting/TokenModal.vue:282 msgid "IP White List" msgstr "" -#: src/views/setting/TokenModal.vue:254 -#: src/views/setting/TokenModal.vue:287 +#: src/views/setting/TokenModal.vue:252 +#: src/views/setting/TokenModal.vue:285 msgid "127.0.0.1" msgstr "" -#: src/views/setting/TokenModal.vue:262 -#: src/views/setting/TokenModal.vue:295 +#: src/views/setting/TokenModal.vue:260 +#: src/views/setting/TokenModal.vue:293 msgid "Please select the expiration time" msgstr "" -#: src/views/setting/TokenModal.vue:275 +#: src/views/setting/TokenModal.vue:273 msgid "Modify Access Token" msgstr "" @@ -3867,7 +3889,7 @@ msgid "Enter the code" msgstr "" #: src/views/ssh/CreateModal.vue:50 -#: src/views/ssh/IndexView.vue:247 +#: src/views/ssh/IndexView.vue:245 msgid "Create Host" msgstr "" @@ -3881,19 +3903,19 @@ msgstr "" msgid "Remarks" msgstr "" -#: src/views/ssh/IndexView.vue:43 +#: src/views/ssh/IndexView.vue:42 msgid "Please create a host first" msgstr "" -#: src/views/ssh/IndexView.vue:82 +#: src/views/ssh/IndexView.vue:81 msgid "Are you sure you want to delete this host?" msgstr "" -#: src/views/ssh/IndexView.vue:162 +#: src/views/ssh/IndexView.vue:161 msgid "Connection closed. Please refresh." msgstr "" -#: src/views/ssh/IndexView.vue:167 +#: src/views/ssh/IndexView.vue:166 msgid "Connection error. Please refresh." msgstr "" @@ -3932,15 +3954,15 @@ msgstr "" #: src/views/task/CreateModal.vue:107 #: src/views/task/CreateModal.vue:108 #: src/views/task/CronView.vue:29 -#: src/views/task/CronView.vue:257 -#: src/views/task/CronView.vue:258 +#: src/views/task/CronView.vue:254 +#: src/views/task/CronView.vue:255 #: src/views/task/TaskView.vue:15 msgid "Task Name" msgstr "" #: src/views/task/CreateModal.vue:110 #: src/views/task/CronView.vue:73 -#: src/views/task/CronView.vue:260 +#: src/views/task/CronView.vue:257 msgid "Task Schedule" msgstr "" @@ -3948,19 +3970,19 @@ msgstr "" msgid "Script Content" msgstr "" -#: src/views/task/CreateModal.vue:128 +#: src/views/task/CreateModal.vue:127 msgid "Backup Type" msgstr "" -#: src/views/task/CreateModal.vue:132 +#: src/views/task/CreateModal.vue:131 msgid "MySQL Database" msgstr "" -#: src/views/task/CreateModal.vue:135 +#: src/views/task/CreateModal.vue:134 msgid "PostgreSQL Database" msgstr "" -#: src/views/task/CreateModal.vue:164 +#: src/views/task/CreateModal.vue:163 msgid "Retention Count" msgstr "" @@ -3972,23 +3994,23 @@ msgstr "" msgid "Last Update Time" msgstr "" -#: src/views/task/CronView.vue:144 +#: src/views/task/CronView.vue:142 msgid "Are you sure you want to delete this task?" msgstr "" -#: src/views/task/CronView.vue:249 +#: src/views/task/CronView.vue:246 msgid "Edit Task" msgstr "" -#: src/views/task/IndexView.vue:25 +#: src/views/task/IndexView.vue:24 msgid "System Processes" msgstr "" -#: src/views/task/IndexView.vue:26 +#: src/views/task/IndexView.vue:25 msgid "Panel Tasks" msgstr "" -#: src/views/task/IndexView.vue:33 +#: src/views/task/IndexView.vue:31 msgid "Create Task" msgstr "" @@ -4049,12 +4071,12 @@ msgstr "" msgid "Completion Time" msgstr "" -#: src/views/task/TaskView.vue:136 +#: src/views/task/TaskView.vue:134 msgid "If logs cannot be loaded, please disable ad blockers!" msgstr "" #: src/views/toolbox/BenchmarkView.vue:12 -#: src/views/toolbox/BenchmarkView.vue:122 +#: src/views/toolbox/BenchmarkView.vue:117 msgid "CPU" msgstr "" @@ -4067,8 +4089,8 @@ msgstr "" #: src/views/toolbox/BenchmarkView.vue:58 #: src/views/toolbox/BenchmarkView.vue:59 #: src/views/toolbox/BenchmarkView.vue:113 -#: src/views/toolbox/BenchmarkView.vue:178 -#: src/views/toolbox/BenchmarkView.vue:209 +#: src/views/toolbox/BenchmarkView.vue:173 +#: src/views/toolbox/BenchmarkView.vue:199 msgid "Pending benchmark" msgstr "" @@ -4084,71 +4106,71 @@ msgstr "" msgid "Current project: %{ current }" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:127 +#: src/views/toolbox/BenchmarkView.vue:122 msgid "Image Processing" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:133 +#: src/views/toolbox/BenchmarkView.vue:128 msgid "Machine Learning" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:139 +#: src/views/toolbox/BenchmarkView.vue:134 msgid "Program Compilation" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:145 +#: src/views/toolbox/BenchmarkView.vue:140 msgid "AES Encryption" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:151 +#: src/views/toolbox/BenchmarkView.vue:146 msgid "Compression/Decompression" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:157 +#: src/views/toolbox/BenchmarkView.vue:152 msgid "Physics Simulation" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:163 +#: src/views/toolbox/BenchmarkView.vue:158 msgid "JSON Parsing" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:192 +#: src/views/toolbox/BenchmarkView.vue:182 msgid "Memory Bandwidth" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:196 +#: src/views/toolbox/BenchmarkView.vue:186 msgid "Memory Latency" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:223 +#: src/views/toolbox/BenchmarkView.vue:208 msgid "4KB Read" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:229 +#: src/views/toolbox/BenchmarkView.vue:214 msgid "4KB Write" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:235 +#: src/views/toolbox/BenchmarkView.vue:220 msgid "64KB Read" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:241 +#: src/views/toolbox/BenchmarkView.vue:226 msgid "64KB Write" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:247 +#: src/views/toolbox/BenchmarkView.vue:232 msgid "1MB Read" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:253 +#: src/views/toolbox/BenchmarkView.vue:238 msgid "1MB Write" msgstr "" -#: src/views/toolbox/BenchmarkView.vue:272 +#: src/views/toolbox/BenchmarkView.vue:257 msgid "Benchmarking..." msgstr "" -#: src/views/toolbox/BenchmarkView.vue:272 +#: src/views/toolbox/BenchmarkView.vue:257 msgid "Start Benchmark" msgstr "" @@ -4176,27 +4198,27 @@ msgstr "" msgid "Hosts" msgstr "" -#: src/views/toolbox/SystemView.vue:161 +#: src/views/toolbox/SystemView.vue:160 msgid "Time" msgstr "" -#: src/views/toolbox/SystemView.vue:165 +#: src/views/toolbox/SystemView.vue:164 msgid "After manually changing the time, it may still be overwritten by system automatic time synchronization." msgstr "" -#: src/views/toolbox/SystemView.vue:171 +#: src/views/toolbox/SystemView.vue:170 msgid "Select Timezone" msgstr "" -#: src/views/toolbox/SystemView.vue:174 +#: src/views/toolbox/SystemView.vue:173 msgid "Please select a timezone" msgstr "" -#: src/views/toolbox/SystemView.vue:178 +#: src/views/toolbox/SystemView.vue:177 msgid "Modify Time" msgstr "" -#: src/views/toolbox/SystemView.vue:187 +#: src/views/toolbox/SystemView.vue:186 msgid "Synchronize Time" msgstr "" @@ -4205,12 +4227,12 @@ msgid "The format is incorrect, please check" msgstr "" #: src/views/website/BulkCreate.vue:59 -#: src/views/website/IndexView.vue:327 +#: src/views/website/PhpView.vue:302 msgid "Website %{ name } created successfully" msgstr "" #: src/views/website/BulkCreate.vue:77 -#: src/views/website/IndexView.vue:387 +#: src/views/website/PhpView.vue:358 msgid "Bulk Create Website" msgstr "" @@ -4243,7 +4265,7 @@ msgid "Remark: The remark of the website, can be empty." msgstr "" #: src/views/website/EditView.vue:54 -#: src/views/website/IndexView.vue:241 +#: src/views/website/PhpView.vue:229 msgid "Not used" msgstr "" @@ -4267,224 +4289,221 @@ msgstr "" msgid "The selected certificate is invalid" msgstr "" -#: src/views/website/EditView.vue:179 -msgid "If you modify the original text, other modifications will not take effect after clicking save!" +#: src/views/website/EditView.vue:176 +msgid "Domain & Listening" msgstr "" -#: src/views/website/EditView.vue:188 -msgid "Reset Configuration" +#: src/views/website/EditView.vue:186 +msgid "Listening Address" msgstr "" -#: src/views/website/EditView.vue:191 -msgid "Are you sure you want to reset the configuration?" +#: src/views/website/EditView.vue:204 +msgid "Basic Settings" msgstr "" -#: src/views/website/EditView.vue:200 +#: src/views/website/EditView.vue:206 +msgid "Website Directory" +msgstr "" + +#: src/views/website/EditView.vue:209 +msgid "Enter website directory (absolute path)" +msgstr "" + +#: src/views/website/EditView.vue:212 +msgid "Running Directory" +msgstr "" + +#: src/views/website/EditView.vue:216 +msgid "Enter running directory (needed for Laravel etc.) (absolute path)" +msgstr "" + +#: src/views/website/EditView.vue:220 +msgid "Default Document" +msgstr "" + +#: src/views/website/EditView.vue:223 +#: src/views/website/PhpView.vue:443 +msgid "PHP Version" +msgstr "" + +#: src/views/website/EditView.vue:228 +#: src/views/website/PhpView.vue:447 +msgid "Select PHP Version" +msgstr "" + +#: src/views/website/EditView.vue:233 +msgid "Anti-cross-site Attack (PHP)" +msgstr "" + +#: src/views/website/EditView.vue:248 +msgid "One-click Certificate Issuance" +msgstr "" + +#: src/views/website/EditView.vue:251 +msgid "Certificate Information" +msgstr "" + +#: src/views/website/EditView.vue:253 +msgid "Certificate Validity" +msgstr "" + +#: src/views/website/EditView.vue:267 +msgid "Domains" +msgstr "" + +#: src/views/website/EditView.vue:282 +msgid "Main Switch" +msgstr "" + +#: src/views/website/EditView.vue:288 +msgid "Use Existing Certificate" +msgstr "" + +#: src/views/website/EditView.vue:302 +msgid "HTTP Redirect" +msgstr "" + +#: src/views/website/EditView.vue:305 +msgid "OCSP Stapling" +msgstr "" + +#: src/views/website/EditView.vue:330 +msgid "Rewrite" +msgstr "" + +#: src/views/website/EditView.vue:333 #: src/views/website/ProxyBuilderModal.vue:123 msgid "Generate Reverse Proxy Configuration" msgstr "" -#: src/views/website/EditView.vue:211 -msgid "One-click Certificate Issuance" -msgstr "" - -#: src/views/website/EditView.vue:221 -msgid "Clear Logs" -msgstr "" - -#: src/views/website/EditView.vue:230 -msgid "Domain & Listening" -msgstr "" - -#: src/views/website/EditView.vue:240 -msgid "Listening Address" -msgstr "" - -#: src/views/website/EditView.vue:258 -msgid "Basic Settings" -msgstr "" - -#: src/views/website/EditView.vue:260 -msgid "Website Directory" -msgstr "" - -#: src/views/website/EditView.vue:263 -msgid "Enter website directory (absolute path)" -msgstr "" - -#: src/views/website/EditView.vue:266 -msgid "Running Directory" -msgstr "" - -#: src/views/website/EditView.vue:270 -msgid "Enter running directory (needed for Laravel etc.) (absolute path)" -msgstr "" - -#: src/views/website/EditView.vue:274 -msgid "Default Document" -msgstr "" - -#: src/views/website/EditView.vue:277 -#: src/views/website/IndexView.vue:478 -msgid "PHP Version" -msgstr "" - -#: src/views/website/EditView.vue:282 -#: src/views/website/IndexView.vue:482 -msgid "Select PHP Version" -msgstr "" - -#: src/views/website/EditView.vue:287 -msgid "Anti-cross-site Attack (PHP)" -msgstr "" - -#: src/views/website/EditView.vue:296 -msgid "Certificate Information" -msgstr "" - -#: src/views/website/EditView.vue:298 -msgid "Certificate Validity" -msgstr "" - -#: src/views/website/EditView.vue:312 -msgid "Domains" -msgstr "" - -#: src/views/website/EditView.vue:327 -msgid "Main Switch" -msgstr "" - -#: src/views/website/EditView.vue:333 -msgid "Use Existing Certificate" -msgstr "" - -#: src/views/website/EditView.vue:347 -msgid "HTTP Redirect" -msgstr "" - -#: src/views/website/EditView.vue:350 -msgid "OCSP Stapling" -msgstr "" - -#: src/views/website/EditView.vue:375 -msgid "Rewrite" -msgstr "" - -#: src/views/website/EditView.vue:378 +#: src/views/website/EditView.vue:336 msgid "Presets" msgstr "" -#: src/views/website/EditView.vue:405 +#: src/views/website/EditView.vue:362 +msgid "If you modify the original text, other modifications will not take effect after clicking save!" +msgstr "" + +#: src/views/website/EditView.vue:369 msgid "If you do not understand the configuration rules, please do not modify them arbitrarily, otherwise it may cause the website to be inaccessible or panel function abnormalities! If you have already encountered a problem, try resetting the configuration!" msgstr "" -#: src/views/website/EditView.vue:424 +#: src/views/website/EditView.vue:377 +msgid "Reset Configuration" +msgstr "" + +#: src/views/website/EditView.vue:380 +msgid "Are you sure you want to reset the configuration?" +msgstr "" + +#: src/views/website/EditView.vue:395 msgid "Access Log" msgstr "" -#: src/views/website/EditView.vue:428 -#: src/views/website/EditView.vue:440 +#: src/views/website/EditView.vue:399 +#: src/views/website/EditView.vue:419 msgid "All logs can be viewed by downloading the file" msgstr "" -#: src/views/website/EditView.vue:430 -#: src/views/website/EditView.vue:442 +#: src/views/website/EditView.vue:401 +#: src/views/website/EditView.vue:421 msgid "view" msgstr "" -#: src/views/website/EditView.vue:436 +#: src/views/website/EditView.vue:406 +msgid "Clear Logs" +msgstr "" + +#: src/views/website/EditView.vue:415 msgid "Error Log" msgstr "" -#: src/views/website/IndexView.vue:24 -#: src/views/website/IndexView.vue:441 +#: src/views/website/IndexView.vue:16 +msgid "Reverse Proxy" +msgstr "" + +#: src/views/website/IndexView.vue:17 +msgid "Classic PHP" +msgstr "" + +#: src/views/website/IndexView.vue:18 +msgid "Pure Static" +msgstr "" + +#: src/views/website/PhpView.vue:19 +#: src/views/website/PhpView.vue:406 msgid "Website Name" msgstr "" -#: src/views/website/IndexView.vue:77 +#: src/views/website/PhpView.vue:72 msgid "Certificate expiration" msgstr "" -#: src/views/website/IndexView.vue:91 +#: src/views/website/PhpView.vue:86 msgid "Not configured" msgstr "" -#: src/views/website/IndexView.vue:94 +#: src/views/website/PhpView.vue:89 msgid "Expired %{ days } days ago" msgstr "" -#: src/views/website/IndexView.vue:99 +#: src/views/website/PhpView.vue:94 msgid "Expires in %{ days } days" msgstr "" -#: src/views/website/IndexView.vue:109 -#: src/views/website/IndexView.vue:559 -#: src/views/website/IndexView.vue:564 +#: src/views/website/PhpView.vue:104 +#: src/views/website/PhpView.vue:524 +#: src/views/website/PhpView.vue:529 msgid "Remark" msgstr "" -#: src/views/website/IndexView.vue:165 +#: src/views/website/PhpView.vue:159 msgid "Are you sure you want to delete website %{ name }?" msgstr "" -#: src/views/website/IndexView.vue:176 +#: src/views/website/PhpView.vue:170 msgid "Delete website directory" msgstr "" -#: src/views/website/IndexView.vue:184 +#: src/views/website/PhpView.vue:178 msgid "Delete local database with the same name" msgstr "" -#: src/views/website/IndexView.vue:348 +#: src/views/website/PhpView.vue:323 msgid "Please select the websites to delete" msgstr "" -#: src/views/website/IndexView.vue:383 -#: src/views/website/IndexView.vue:432 +#: src/views/website/PhpView.vue:355 +#: src/views/website/PhpView.vue:397 msgid "Create Website" msgstr "" -#: src/views/website/IndexView.vue:391 -#: src/views/website/IndexView.vue:575 -msgid "Modify Default Page" -msgstr "" - -#: src/views/website/IndexView.vue:401 +#: src/views/website/PhpView.vue:367 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/IndexView.vue:447 +#: src/views/website/PhpView.vue:412 msgid "Recommended to use English for the website name, it cannot be modified after setting" msgstr "" -#: src/views/website/IndexView.vue:494 +#: src/views/website/PhpView.vue:459 msgid "Select Database" msgstr "" -#: src/views/website/IndexView.vue:522 -#: src/views/website/IndexView.vue:527 +#: src/views/website/PhpView.vue:487 +#: src/views/website/PhpView.vue:492 msgid "Database User" msgstr "" -#: src/views/website/IndexView.vue:536 -#: src/views/website/IndexView.vue:542 +#: src/views/website/PhpView.vue:501 +#: src/views/website/PhpView.vue:507 msgid "Database Password" msgstr "" -#: src/views/website/IndexView.vue:553 +#: src/views/website/PhpView.vue:518 msgid "Website root directory (if left empty, defaults to website directory/website name)" msgstr "" -#: src/views/website/IndexView.vue:583 -#: src/views/website/IndexView.vue:583 -msgid "Default Page" -msgstr "" - -#: src/views/website/IndexView.vue:597 -#: src/views/website/IndexView.vue:597 -msgid "Stop Page" -msgstr "" - #: src/views/website/ProxyBuilderModal.vue:24 msgid "Disabled buffer and enabled cache cannot be used simultaneously" msgstr "" @@ -4592,3 +4611,35 @@ msgstr "" #: src/views/website/ProxyBuilderModal.vue:197 msgid "Replacement content" msgstr "" + +#: src/views/website/SettingView.vue:40 +msgid "Default Page" +msgstr "" + +#: src/views/website/SettingView.vue:60 +msgid "404 Page" +msgstr "" + +#: src/views/website/SettingView.vue:80 +msgid "Stop Page" +msgstr "" + +#: src/views/website/SettingView.vue:100 +msgid "Default Site" +msgstr "" + +#: src/views/website/SettingView.vue:103 +msgid "Default Settings" +msgstr "" + +#: src/views/website/SettingView.vue:105 +msgid "Default TLS Version" +msgstr "" + +#: src/views/website/SettingView.vue:117 +msgid "Default Cipher Suites" +msgstr "" + +#: src/views/website/SettingView.vue:122 +msgid "Enter the default cipher suite, leave blank to reset to default" +msgstr "" diff --git a/web/src/locales/zh_CN.po b/web/src/locales/zh_CN.po index 08b8b033..fcef080e 100644 --- a/web/src/locales/zh_CN.po +++ b/web/src/locales/zh_CN.po @@ -10,10 +10,10 @@ msgstr "" "Project-Id-Version: acepanel\n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" -"PO-Revision-Date: 2025-08-22 09:01\n" +"PO-Revision-Date: 2025-10-12 00:28\n" #: src/components/common/AppFooter.vue:13 -#: src/views/dashboard/IndexView.vue:439 +#: src/views/dashboard/IndexView.vue:440 msgid "AcePanel" msgstr "AcePanel" @@ -48,33 +48,33 @@ msgstr "当前状态无法保存" #: src/components/common/CodeEditor.vue:40 #: src/views/apps/codeserver/IndexView.vue:24 #: src/views/apps/docker/IndexView.vue:24 -#: src/views/apps/fail2ban/IndexView.vue:164 +#: src/views/apps/fail2ban/IndexView.vue:160 #: src/views/apps/frp/IndexView.vue:28 #: src/views/apps/gitea/IndexView.vue:22 #: src/views/apps/memcached/IndexView.vue:44 #: src/views/apps/minio/IndexView.vue:22 #: src/views/apps/mysql/IndexView.vue:47 #: src/views/apps/nginx/IndexView.vue:44 -#: src/views/apps/php/PhpView.vue:146 -#: src/views/apps/php/PhpView.vue:152 +#: src/views/apps/php/PhpView.vue:143 +#: src/views/apps/php/PhpView.vue:149 #: src/views/apps/phpmyadmin/IndexView.vue:37 #: src/views/apps/phpmyadmin/IndexView.vue:44 #: src/views/apps/podman/IndexView.vue:26 #: src/views/apps/podman/IndexView.vue:32 #: src/views/apps/postgresql/IndexView.vue:47 #: src/views/apps/postgresql/IndexView.vue:52 -#: src/views/apps/pureftpd/IndexView.vue:117 +#: src/views/apps/pureftpd/IndexView.vue:115 #: src/views/apps/redis/IndexView.vue:41 -#: src/views/apps/rsync/IndexView.vue:136 -#: src/views/apps/rsync/IndexView.vue:180 -#: src/views/apps/supervisor/IndexView.vue:227 -#: src/views/apps/supervisor/IndexView.vue:292 -#: src/views/setting/IndexView.vue:44 -#: src/views/toolbox/SystemView.vue:51 -#: src/views/toolbox/SystemView.vue:57 -#: src/views/toolbox/SystemView.vue:66 -#: src/views/toolbox/SystemView.vue:72 -#: src/views/toolbox/SystemView.vue:81 +#: src/views/apps/rsync/IndexView.vue:134 +#: src/views/apps/rsync/IndexView.vue:178 +#: src/views/apps/supervisor/IndexView.vue:220 +#: src/views/apps/supervisor/IndexView.vue:285 +#: src/views/setting/IndexView.vue:48 +#: src/views/toolbox/SystemView.vue:50 +#: src/views/toolbox/SystemView.vue:56 +#: src/views/toolbox/SystemView.vue:65 +#: src/views/toolbox/SystemView.vue:71 +#: src/views/toolbox/SystemView.vue:80 #: src/views/website/EditView.vue:115 msgid "Saved successfully" msgstr "保存成功" @@ -88,20 +88,19 @@ msgid "Select File" msgstr "选择文件" #: src/components/common/PathSelector.vue:42 -#: src/components/common/PathSelector.vue:331 -#: src/views/apps/fail2ban/IndexView.vue:38 +#: src/components/common/PathSelector.vue:332 +#: src/views/apps/fail2ban/IndexView.vue:37 #: src/views/apps/rsync/IndexView.vue:40 -#: src/views/apps/rsync/IndexView.vue:280 -#: src/views/apps/supervisor/IndexView.vue:48 -#: src/views/apps/supervisor/IndexView.vue:399 +#: src/views/apps/rsync/IndexView.vue:267 +#: src/views/apps/supervisor/IndexView.vue:47 +#: src/views/apps/supervisor/IndexView.vue:384 #: src/views/container/ComposeView.vue:31 #: src/views/container/NetworkView.vue:45 #: src/views/container/VolumeView.vue:26 #: src/views/database/CreateServerModal.vue:55 -#: src/views/database/ServerList.vue:40 +#: src/views/database/ServerList.vue:39 #: src/views/database/UpdateServerModal.vue:55 -#: src/views/file/ListTable.vue:103 -#: src/views/file/SearchModal.vue:20 +#: src/views/file/ListTable.vue:105 #: src/views/file/ToolBar.vue:257 #: src/views/ssh/CreateModal.vue:57 #: src/views/ssh/UpdateModal.vue:63 @@ -114,39 +113,37 @@ msgid "Permissions" msgstr "权限" #: src/components/common/PathSelector.vue:95 -#: src/views/file/ListTable.vue:157 +#: src/views/file/ListTable.vue:159 msgid "Owner / Group" msgstr "所有者 / 组" #: src/components/common/PathSelector.vue:107 -#: src/views/backup/ListView.vue:43 +#: src/views/backup/ListView.vue:42 #: src/views/container/ImageView.vue:53 -#: src/views/file/ListTable.vue:169 -#: src/views/file/SearchModal.vue:28 +#: src/views/file/ListTable.vue:171 msgid "Size" msgstr "大小" #: src/components/common/PathSelector.vue:115 -#: src/views/file/ListTable.vue:177 -#: src/views/file/SearchModal.vue:36 +#: src/views/file/ListTable.vue:179 msgid "Modification Time" msgstr "修改时间" -#: src/components/common/PathSelector.vue:148 -#: src/views/file/ListTable.vue:456 -#: src/views/file/PathInput.vue:33 +#: src/components/common/PathSelector.vue:149 +#: src/views/file/ListTable.vue:459 +#: src/views/file/PathInput.vue:28 msgid "Invalid path" msgstr "无效路径" -#: src/components/common/PathSelector.vue:208 -#: src/views/file/ListTable.vue:405 +#: src/components/common/PathSelector.vue:209 +#: src/views/file/ListTable.vue:408 #: src/views/file/ToolBar.vue:37 #: src/views/file/ToolBar.vue:51 msgid "Invalid name" msgstr "无效的名称" -#: src/components/common/PathSelector.vue:216 -#: src/views/backup/ListView.vue:125 +#: src/components/common/PathSelector.vue:217 +#: src/views/backup/ListView.vue:122 #: src/views/cert/CreateAccountModal.vue:52 #: src/views/cert/CreateCertModal.vue:50 #: src/views/cert/CreateDnsModal.vue:35 @@ -160,45 +157,45 @@ msgstr "无效的名称" #: src/views/file/ToolBar.vue:45 #: src/views/firewall/CreateForwardModal.vue:41 #: src/views/setting/CreateModal.vue:19 -#: src/views/setting/TokenModal.vue:127 +#: src/views/setting/TokenModal.vue:125 #: src/views/ssh/CreateModal.vue:38 #: src/views/task/CreateModal.vue:51 msgid "Created successfully" msgstr "创建成功" -#: src/components/common/PathSelector.vue:255 +#: src/components/common/PathSelector.vue:256 #: src/views/file/ToolBar.vue:214 msgid "File" msgstr "文件" -#: src/components/common/PathSelector.vue:256 +#: src/components/common/PathSelector.vue:257 #: src/views/file/ToolBar.vue:215 msgid "Folder" msgstr "文件夹" -#: src/components/common/PathSelector.vue:260 -#: src/components/common/PathSelector.vue:323 -#: src/views/setting/TokenModal.vue:268 +#: src/components/common/PathSelector.vue:261 +#: src/components/common/PathSelector.vue:324 +#: src/views/setting/TokenModal.vue:266 #: src/views/website/BulkCreate.vue:127 -#: src/views/website/IndexView.vue:571 +#: src/views/website/PhpView.vue:534 msgid "Create" msgstr "创建" -#: src/components/common/PathSelector.vue:269 -#: src/views/file/PathInput.vue:133 +#: src/components/common/PathSelector.vue:270 +#: src/views/file/PathInput.vue:128 msgid "Root Directory" msgstr "根目录" -#: src/components/common/PathSelector.vue:335 +#: src/components/common/PathSelector.vue:336 #: src/views/app/VersionModal.vue:97 -#: src/views/apps/fail2ban/IndexView.vue:375 -#: src/views/apps/pureftpd/IndexView.vue:249 -#: src/views/apps/pureftpd/IndexView.vue:271 -#: src/views/apps/rsync/IndexView.vue:329 -#: src/views/apps/s3fs/IndexView.vue:184 -#: src/views/apps/supervisor/IndexView.vue:435 -#: src/views/backup/ListView.vue:244 -#: src/views/backup/ListView.vue:268 +#: src/views/apps/fail2ban/IndexView.vue:368 +#: src/views/apps/pureftpd/IndexView.vue:242 +#: src/views/apps/pureftpd/IndexView.vue:264 +#: src/views/apps/rsync/IndexView.vue:316 +#: src/views/apps/s3fs/IndexView.vue:181 +#: src/views/apps/supervisor/IndexView.vue:420 +#: src/views/backup/ListView.vue:256 +#: src/views/backup/ListView.vue:280 #: src/views/cert/AccountView.vue:268 #: src/views/cert/CertView.vue:535 #: src/views/cert/CertView.vue:559 @@ -211,7 +208,7 @@ msgstr "根目录" #: src/views/container/ComposeView.vue:348 #: src/views/container/ComposeView.vue:378 #: src/views/container/ContainerCreate.vue:371 -#: src/views/container/ContainerView.vue:485 +#: src/views/container/ContainerView.vue:484 #: src/views/container/ImageView.vue:217 #: src/views/container/NetworkView.vue:313 #: src/views/container/VolumeView.vue:213 @@ -224,13 +221,13 @@ msgstr "根目录" #: src/views/file/ToolBar.vue:282 #: src/views/firewall/CreateForwardModal.vue:88 #: src/views/firewall/CreateIpModal.vue:121 -#: src/views/firewall/CreateModal.vue:142 +#: src/views/firewall/CreateModal.vue:145 #: src/views/setting/CreateModal.vue:64 #: src/views/setting/PasswordModal.vue:44 #: src/views/setting/TwoFaModal.vue:87 #: src/views/ssh/CreateModal.vue:99 #: src/views/ssh/UpdateModal.vue:105 -#: src/views/task/CreateModal.vue:171 +#: src/views/task/CreateModal.vue:170 #: src/views/website/ProxyBuilderModal.vue:201 msgid "Submit" msgstr "提交" @@ -245,7 +242,7 @@ msgid "Failed to get log stream" msgstr "获取日志流失败" #: src/components/common/RealtimeLogModal.vue:67 -#: src/views/apps/supervisor/IndexView.vue:91 +#: src/views/apps/supervisor/IndexView.vue:90 #: src/views/container/ContainerView.vue:106 #: src/views/container/ContainerView.vue:446 #: src/views/task/CronView.vue:120 @@ -254,19 +251,19 @@ msgid "Logs" msgstr "日志" #: src/components/common/ServiceStatus.vue:25 -#: src/views/dashboard/IndexView.vue:733 -#: src/views/dashboard/IndexView.vue:741 -#: src/views/dashboard/IndexView.vue:748 -#: src/views/dashboard/IndexView.vue:754 -#: src/views/dashboard/IndexView.vue:765 -#: src/views/dashboard/IndexView.vue:777 +#: src/views/dashboard/IndexView.vue:730 +#: src/views/dashboard/IndexView.vue:738 +#: src/views/dashboard/IndexView.vue:745 +#: src/views/dashboard/IndexView.vue:751 +#: src/views/dashboard/IndexView.vue:762 +#: src/views/dashboard/IndexView.vue:774 msgid "Loading..." msgstr "加载中……" #: src/components/common/ServiceStatus.vue:26 #: src/views/task/SystemView.vue:50 #: src/views/task/TaskView.vue:33 -#: src/views/website/IndexView.vue:31 +#: src/views/website/PhpView.vue:26 msgid "Running" msgstr "运行中" @@ -281,8 +278,8 @@ msgid "Starting..." msgstr "正在启动……" #: src/components/common/ServiceStatus.vue:48 -#: src/views/apps/supervisor/IndexView.vue:248 -#: src/views/website/IndexView.vue:271 +#: src/views/apps/supervisor/IndexView.vue:241 +#: src/views/website/PhpView.vue:259 msgid "Started successfully" msgstr "启动成功" @@ -292,8 +289,8 @@ msgid "Stopping..." msgstr "停止中..." #: src/components/common/ServiceStatus.vue:63 -#: src/views/apps/supervisor/IndexView.vue:255 -#: src/views/website/IndexView.vue:273 +#: src/views/apps/supervisor/IndexView.vue:248 +#: src/views/website/PhpView.vue:261 msgid "Stopped successfully" msgstr "停止成功" @@ -302,7 +299,7 @@ msgid "Restarting..." msgstr "重启中..." #: src/components/common/ServiceStatus.vue:78 -#: src/views/apps/supervisor/IndexView.vue:262 +#: src/views/apps/supervisor/IndexView.vue:255 msgid "Restarted successfully" msgstr "重启成功" @@ -327,21 +324,21 @@ msgid "Autostart disabled successfully" msgstr "自启动已成功禁用" #: src/components/common/ServiceStatus.vue:134 -#: src/views/apps/codeserver/IndexView.vue:43 -#: src/views/apps/docker/IndexView.vue:43 -#: src/views/apps/fail2ban/IndexView.vue:252 -#: src/views/apps/gitea/IndexView.vue:41 -#: src/views/apps/memcached/IndexView.vue:63 -#: src/views/apps/minio/IndexView.vue:36 -#: src/views/apps/mysql/IndexView.vue:101 -#: src/views/apps/nginx/IndexView.vue:78 -#: src/views/apps/php/PhpView.vue:225 -#: src/views/apps/podman/IndexView.vue:60 -#: src/views/apps/postgresql/IndexView.vue:88 -#: src/views/apps/pureftpd/IndexView.vue:175 -#: src/views/apps/redis/IndexView.vue:60 -#: src/views/apps/rsync/IndexView.vue:214 -#: src/views/apps/supervisor/IndexView.vue:330 +#: src/views/apps/codeserver/IndexView.vue:32 +#: src/views/apps/docker/IndexView.vue:32 +#: src/views/apps/fail2ban/IndexView.vue:228 +#: src/views/apps/gitea/IndexView.vue:30 +#: src/views/apps/memcached/IndexView.vue:52 +#: src/views/apps/minio/IndexView.vue:30 +#: src/views/apps/mysql/IndexView.vue:72 +#: src/views/apps/nginx/IndexView.vue:58 +#: src/views/apps/php/PhpView.vue:181 +#: src/views/apps/podman/IndexView.vue:40 +#: src/views/apps/postgresql/IndexView.vue:64 +#: src/views/apps/pureftpd/IndexView.vue:158 +#: src/views/apps/redis/IndexView.vue:49 +#: src/views/apps/rsync/IndexView.vue:192 +#: src/views/apps/supervisor/IndexView.vue:299 #: src/views/container/ContainerView.vue:84 msgid "Running Status" msgstr "运行状态" @@ -354,35 +351,35 @@ msgstr "自启动开启" msgid "Autostart Off" msgstr "自启动关闭" -#: src/components/common/ServiceStatus.vue:152 -#: src/views/apps/supervisor/IndexView.vue:119 +#: src/components/common/ServiceStatus.vue:151 +#: src/views/apps/supervisor/IndexView.vue:116 #: src/views/container/ComposeView.vue:158 #: src/views/container/ContainerView.vue:130 #: src/views/container/ContainerView.vue:412 msgid "Start" msgstr "启动" -#: src/components/common/ServiceStatus.vue:158 -#: src/views/apps/supervisor/IndexView.vue:145 +#: src/components/common/ServiceStatus.vue:156 +#: src/views/apps/supervisor/IndexView.vue:141 #: src/views/container/ComposeView.vue:197 #: src/views/container/ContainerView.vue:135 #: src/views/container/ContainerView.vue:413 msgid "Stop" msgstr "停止" -#: src/components/common/ServiceStatus.vue:161 +#: src/components/common/ServiceStatus.vue:159 msgid "Are you sure you want to stop %{ service }?" msgstr "您确定要停止 %{ service } 吗?" -#: src/components/common/ServiceStatus.vue:165 -#: src/views/apps/supervisor/IndexView.vue:174 +#: src/components/common/ServiceStatus.vue:162 +#: src/views/apps/supervisor/IndexView.vue:169 #: src/views/container/ContainerView.vue:140 #: src/views/container/ContainerView.vue:414 -#: src/views/dashboard/IndexView.vue:447 +#: src/views/dashboard/IndexView.vue:448 msgid "Restart" msgstr "重启" -#: src/components/common/ServiceStatus.vue:174 +#: src/components/common/ServiceStatus.vue:170 #: src/layout/tab/components/ContextMenu.vue:34 msgid "Reload" msgstr "重载" @@ -403,15 +400,11 @@ msgstr "刷新标签页" msgid "Switch Theme" msgstr "切换主题" -#: src/layout/header/components/ThemeSetting.vue:19 -msgid "Set Theme Color" -msgstr "设置主题颜色" - #: src/layout/header/components/UserAvatar.vue:13 #: src/views/apps/pureftpd/IndexView.vue:65 -#: src/views/apps/pureftpd/IndexView.vue:256 +#: src/views/apps/pureftpd/IndexView.vue:249 #: src/views/setting/PasswordModal.vue:26 -#: src/views/setting/SettingUser.vue:119 +#: src/views/setting/SettingUser.vue:118 msgid "Change Password" msgstr "更改密码" @@ -429,14 +422,14 @@ msgstr "提示" #: src/layout/header/components/UserAvatar.vue:29 #: src/views/dashboard/UpdateView.vue:26 -#: src/views/monitor/IndexView.vue:474 +#: src/views/monitor/IndexView.vue:460 msgid "Confirm" msgstr "确认" #: src/layout/header/components/UserAvatar.vue:30 #: src/views/dashboard/UpdateView.vue:27 -#: src/views/file/ListTable.vue:415 -#: src/views/file/ListTable.vue:510 +#: src/views/file/ListTable.vue:418 +#: src/views/file/ListTable.vue:513 #: src/views/file/ToolBar.vue:139 #: src/views/file/ToolBar.vue:226 msgid "Cancel" @@ -448,10 +441,10 @@ msgstr "退出登录成功!" #: src/layout/header/components/UserAvatar.vue:48 #: src/views/cert/DnsView.vue:56 -#: src/views/firewall/IpRuleView.vue:77 -#: src/views/firewall/IpRuleView.vue:102 -#: src/views/firewall/RuleView.vue:111 -#: src/views/firewall/RuleView.vue:136 +#: src/views/firewall/IpRuleView.vue:76 +#: src/views/firewall/IpRuleView.vue:101 +#: src/views/firewall/RuleView.vue:110 +#: src/views/firewall/RuleView.vue:135 msgid "Unknown" msgstr "未知" @@ -512,8 +505,8 @@ msgstr "备份" #: src/views/cert/CertView.vue:497 #: src/views/cert/CertView.vue:574 #: src/views/cert/UploadCertModal.vue:38 -#: src/views/setting/SettingSafe.vue:54 -#: src/views/website/EditView.vue:355 +#: src/views/setting/SettingSafe.vue:192 +#: src/views/website/EditView.vue:310 msgid "Certificate" msgstr "证书" @@ -526,17 +519,17 @@ msgid "Dashboard" msgstr "仪表板" #: src/locales/menu.ts:12 -#: src/views/app/IndexView.vue:96 -#: src/views/dashboard/IndexView.vue:451 -#: src/views/setting/TokenModal.vue:301 +#: src/views/app/IndexView.vue:94 +#: src/views/dashboard/IndexView.vue:452 +#: src/views/setting/TokenModal.vue:299 msgid "Update" msgstr "更新" #: src/locales/menu.ts:13 -#: src/views/backup/ListView.vue:264 -#: src/views/dashboard/IndexView.vue:425 -#: src/views/database/IndexView.vue:45 -#: src/views/website/IndexView.vue:492 +#: src/views/backup/ListView.vue:276 +#: src/views/dashboard/IndexView.vue:426 +#: src/views/database/IndexView.vue:27 +#: src/views/website/PhpView.vue:455 msgid "Database" msgstr "数据库" @@ -553,7 +546,8 @@ msgid "Monitoring" msgstr "监控" #: src/locales/menu.ts:17 -#: src/views/firewall/IndexView.vue:28 +#: src/views/firewall/IndexView.vue:23 +#: src/views/website/IndexView.vue:19 msgid "Settings" msgstr "设置" @@ -570,47 +564,39 @@ msgid "Toolbox" msgstr "工具箱" #: src/locales/menu.ts:21 -msgid "System" -msgstr "系统" - -#: src/locales/menu.ts:22 -msgid "Benchmark" -msgstr "跑分" - -#: src/locales/menu.ts:23 -#: src/views/apps/fail2ban/IndexView.vue:322 +#: src/views/apps/fail2ban/IndexView.vue:315 #: src/views/backup/IndexView.vue:37 -#: src/views/backup/ListView.vue:220 -#: src/views/backup/ListView.vue:257 +#: src/views/backup/ListView.vue:232 +#: src/views/backup/ListView.vue:269 #: src/views/cert/CertView.vue:466 #: src/views/cert/CertView.vue:549 #: src/views/cert/CreateCertModal.vue:90 -#: src/views/dashboard/IndexView.vue:421 -#: src/views/task/CreateModal.vue:130 +#: src/views/dashboard/IndexView.vue:422 +#: src/views/task/CreateModal.vue:129 msgid "Website" msgstr "网站" -#: src/locales/menu.ts:24 +#: src/locales/menu.ts:22 msgid "Website Edit" msgstr "网站编辑" -#: src/locales/menu.ts:26 +#: src/locales/menu.ts:24 msgid "Fail2ban Manager" msgstr "Fail2ban 管理器" -#: src/locales/menu.ts:27 +#: src/locales/menu.ts:25 msgid "S3fs Manager" msgstr "S3fs 管理器" -#: src/locales/menu.ts:28 +#: src/locales/menu.ts:26 msgid "Supervisor Manager" msgstr "Supervisor 管理器" -#: src/locales/menu.ts:29 +#: src/locales/menu.ts:27 msgid "Rsync Manager" msgstr "Rsync 管理器" -#: src/locales/menu.ts:30 +#: src/locales/menu.ts:28 msgid "Frp Manager" msgstr "Frp 管理器" @@ -619,39 +605,39 @@ msgstr "Frp 管理器" msgid "Login" msgstr "登录" -#: src/views/app/IndexView.vue:19 -#: src/views/app/IndexView.vue:154 -#: src/views/app/IndexView.vue:159 -#: src/views/apps/php/PhpView.vue:81 +#: src/views/app/IndexView.vue:18 +#: src/views/app/IndexView.vue:147 +#: src/views/app/IndexView.vue:152 +#: src/views/apps/php/PhpView.vue:80 msgid "Install" msgstr "安装" -#: src/views/app/IndexView.vue:37 +#: src/views/app/IndexView.vue:35 msgid "App Name" msgstr "应用名称" -#: src/views/app/IndexView.vue:43 -#: src/views/apps/php/PhpView.vue:50 +#: src/views/app/IndexView.vue:41 +#: src/views/apps/php/PhpView.vue:49 msgid "Description" msgstr "描述" -#: src/views/app/IndexView.vue:49 +#: src/views/app/IndexView.vue:47 msgid "Installed Version" msgstr "已安装版本" -#: src/views/app/IndexView.vue:55 +#: src/views/app/IndexView.vue:53 msgid "Show in Home" msgstr "在主页显示" -#: src/views/app/IndexView.vue:68 -#: src/views/apps/fail2ban/IndexView.vue:60 -#: src/views/apps/fail2ban/IndexView.vue:121 -#: src/views/apps/php/PhpView.vue:57 +#: src/views/app/IndexView.vue:66 +#: src/views/apps/fail2ban/IndexView.vue:59 +#: src/views/apps/fail2ban/IndexView.vue:118 +#: src/views/apps/php/PhpView.vue:56 #: src/views/apps/pureftpd/IndexView.vue:46 #: src/views/apps/rsync/IndexView.vue:69 -#: src/views/apps/s3fs/IndexView.vue:33 -#: src/views/apps/supervisor/IndexView.vue:76 -#: src/views/backup/ListView.vue:58 +#: src/views/apps/s3fs/IndexView.vue:32 +#: src/views/apps/supervisor/IndexView.vue:75 +#: src/views/backup/ListView.vue:57 #: src/views/cert/AccountView.vue:79 #: src/views/cert/CertView.vue:181 #: src/views/cert/DnsView.vue:64 @@ -662,58 +648,57 @@ msgstr "在主页显示" #: src/views/container/ImageView.vue:69 #: src/views/container/NetworkView.vue:109 #: src/views/container/VolumeView.vue:63 -#: src/views/database/DatabaseList.vue:74 -#: src/views/database/ServerList.vue:135 -#: src/views/database/UserList.vue:152 -#: src/views/file/ListTable.vue:189 -#: src/views/file/SearchModal.vue:48 -#: src/views/firewall/ForwardView.vue:80 -#: src/views/firewall/IpRuleView.vue:122 -#: src/views/firewall/RuleView.vue:159 +#: src/views/database/DatabaseList.vue:73 +#: src/views/database/ServerList.vue:134 +#: src/views/database/UserList.vue:151 +#: src/views/file/ListTable.vue:191 +#: src/views/firewall/ForwardView.vue:79 +#: src/views/firewall/IpRuleView.vue:121 +#: src/views/firewall/RuleView.vue:158 #: src/views/setting/SettingUser.vue:86 #: src/views/setting/TokenModal.vue:52 #: src/views/task/CronView.vue:102 #: src/views/task/SystemView.vue:96 #: src/views/task/TaskView.vue:55 -#: src/views/website/IndexView.vue:126 +#: src/views/website/PhpView.vue:121 msgid "Actions" msgstr "操作" -#: src/views/app/IndexView.vue:83 +#: src/views/app/IndexView.vue:81 msgid "Updating app %{ app } may reset related configurations to default state, are you sure to continue?" msgstr "更新应用 %{ app } 可能会将相关配置重置为默认状态,您确定要继续吗?" -#: src/views/app/IndexView.vue:115 +#: src/views/app/IndexView.vue:110 msgid "Manage" msgstr "管理" -#: src/views/app/IndexView.vue:128 +#: src/views/app/IndexView.vue:122 msgid "Are you sure to uninstall app %{ app }?" msgstr "您确定要卸载应用 %{ app } 吗?" -#: src/views/app/IndexView.vue:138 +#: src/views/app/IndexView.vue:132 msgid "Uninstall" msgstr "卸载" -#: src/views/app/IndexView.vue:183 +#: src/views/app/IndexView.vue:175 msgid "Setup successfully" msgstr "设置成功" +#: src/views/app/IndexView.vue:182 #: src/views/app/IndexView.vue:190 -#: src/views/app/IndexView.vue:198 #: src/views/app/VersionModal.vue:32 msgid "Task submitted, please check the progress in background tasks" msgstr "任务已提交,请在后台任务中查看进度" -#: src/views/app/IndexView.vue:210 +#: src/views/app/IndexView.vue:202 msgid "Cache updated successfully" msgstr "缓存更新成功" -#: src/views/app/IndexView.vue:224 +#: src/views/app/IndexView.vue:216 msgid "Update Cache" msgstr "更新缓存" -#: src/views/app/IndexView.vue:229 +#: src/views/app/IndexView.vue:220 msgid "Before updating apps, it is strongly recommended to backup/snapshot first, so you can roll back immediately if there are any issues!" msgstr "在更新应用前,强烈建议先进行备份/快照,这样如果出现任何问题,可以第一时间回滚!" @@ -729,121 +714,122 @@ msgstr "版本" msgid "Please select a channel" msgstr "请选择一个渠道" -#: src/views/apps/codeserver/IndexView.vue:39 -#: src/views/apps/docker/IndexView.vue:39 -#: src/views/apps/frp/IndexView.vue:48 -#: src/views/apps/frp/IndexView.vue:73 -#: src/views/apps/gitea/IndexView.vue:37 -#: src/views/apps/memcached/IndexView.vue:59 -#: src/views/apps/minio/IndexView.vue:32 -#: src/views/apps/mysql/IndexView.vue:79 -#: src/views/apps/nginx/IndexView.vue:65 -#: src/views/apps/php/PhpView.vue:194 -#: src/views/apps/php/PhpView.vue:203 -#: src/views/apps/phpmyadmin/IndexView.vue:58 -#: src/views/apps/phpmyadmin/IndexView.vue:67 -#: src/views/apps/podman/IndexView.vue:47 -#: src/views/apps/podman/IndexView.vue:56 -#: src/views/apps/postgresql/IndexView.vue:71 -#: src/views/apps/postgresql/IndexView.vue:80 -#: src/views/apps/pureftpd/IndexView.vue:162 -#: src/views/apps/redis/IndexView.vue:56 -#: src/views/apps/rsync/IndexView.vue:201 -#: src/views/apps/supervisor/IndexView.vue:313 -#: src/views/file/EditModal.vue:31 -#: src/views/file/ListTable.vue:723 -#: src/views/setting/IndexView.vue:65 -#: src/views/toolbox/SystemView.vue:97 -#: src/views/toolbox/SystemView.vue:101 -#: src/views/toolbox/SystemView.vue:105 -#: src/views/toolbox/SystemView.vue:109 -#: src/views/website/EditView.vue:215 -msgid "Save" -msgstr "保存" - -#: src/views/apps/codeserver/IndexView.vue:46 +#: src/views/apps/codeserver/IndexView.vue:35 #: src/views/apps/frp/IndexView.vue:44 -#: src/views/apps/frp/IndexView.vue:69 -#: src/views/apps/gitea/IndexView.vue:44 -#: src/views/apps/mysql/IndexView.vue:118 -#: src/views/apps/nginx/IndexView.vue:81 -#: src/views/apps/phpmyadmin/IndexView.vue:84 +#: src/views/apps/frp/IndexView.vue:67 +#: src/views/apps/gitea/IndexView.vue:33 +#: src/views/apps/mysql/IndexView.vue:85 +#: src/views/apps/nginx/IndexView.vue:61 +#: src/views/apps/phpmyadmin/IndexView.vue:74 msgid "Modify Configuration" msgstr "修改配置" -#: src/views/apps/codeserver/IndexView.vue:50 +#: src/views/apps/codeserver/IndexView.vue:39 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/codeserver/IndexView.vue:69 -#: src/views/apps/docker/IndexView.vue:65 -#: src/views/apps/fail2ban/IndexView.vue:289 -#: src/views/apps/gitea/IndexView.vue:67 -#: src/views/apps/memcached/IndexView.vue:92 -#: src/views/apps/minio/IndexView.vue:62 -#: src/views/apps/mysql/IndexView.vue:151 -#: src/views/apps/nginx/IndexView.vue:114 -#: src/views/apps/php/PhpView.vue:299 -#: src/views/apps/podman/IndexView.vue:118 -#: src/views/apps/postgresql/IndexView.vue:147 -#: src/views/apps/redis/IndexView.vue:96 -#: src/views/apps/rsync/IndexView.vue:264 -#: src/views/apps/supervisor/IndexView.vue:380 +#: src/views/apps/codeserver/IndexView.vue:57 +#: src/views/apps/docker/IndexView.vue:53 +#: src/views/apps/frp/IndexView.vue:47 +#: src/views/apps/frp/IndexView.vue:70 +#: src/views/apps/gitea/IndexView.vue:55 +#: src/views/apps/memcached/IndexView.vue:70 +#: src/views/apps/minio/IndexView.vue:55 +#: src/views/apps/mysql/IndexView.vue:107 +#: src/views/apps/nginx/IndexView.vue:83 +#: src/views/apps/php/PhpView.vue:225 +#: src/views/apps/php/PhpView.vue:253 +#: src/views/apps/phpmyadmin/IndexView.vue:67 +#: src/views/apps/phpmyadmin/IndexView.vue:96 +#: src/views/apps/podman/IndexView.vue:74 +#: src/views/apps/podman/IndexView.vue:101 +#: src/views/apps/postgresql/IndexView.vue:89 +#: src/views/apps/postgresql/IndexView.vue:116 +#: src/views/apps/pureftpd/IndexView.vue:165 +#: src/views/apps/redis/IndexView.vue:74 +#: src/views/apps/rsync/IndexView.vue:246 +#: src/views/apps/supervisor/IndexView.vue:353 +#: src/views/file/EditModal.vue:31 +#: src/views/file/ListTable.vue:746 +#: src/views/setting/IndexView.vue:84 +#: src/views/toolbox/SystemView.vue:108 +#: src/views/toolbox/SystemView.vue:132 +#: src/views/toolbox/SystemView.vue:157 +#: src/views/toolbox/SystemView.vue:183 +#: src/views/toolbox/SystemView.vue:198 +#: src/views/website/EditView.vue:429 +msgid "Save" +msgstr "保存" + +#: src/views/apps/codeserver/IndexView.vue:62 +#: src/views/apps/docker/IndexView.vue:58 +#: src/views/apps/fail2ban/IndexView.vue:282 +#: src/views/apps/gitea/IndexView.vue:60 +#: src/views/apps/memcached/IndexView.vue:85 +#: src/views/apps/minio/IndexView.vue:60 +#: src/views/apps/mysql/IndexView.vue:122 +#: src/views/apps/nginx/IndexView.vue:98 +#: src/views/apps/php/PhpView.vue:268 +#: src/views/apps/podman/IndexView.vue:106 +#: src/views/apps/postgresql/IndexView.vue:131 +#: src/views/apps/redis/IndexView.vue:89 +#: src/views/apps/rsync/IndexView.vue:251 +#: src/views/apps/supervisor/IndexView.vue:358 msgid "Runtime Logs" msgstr "运行日志" -#: src/views/apps/docker/IndexView.vue:46 -#: src/views/website/EditView.vue:401 +#: src/views/apps/docker/IndexView.vue:35 +#: src/views/website/EditView.vue:358 msgid "Configuration" msgstr "配置" -#: src/views/apps/docker/IndexView.vue:49 +#: src/views/apps/docker/IndexView.vue:38 msgid "This modifies the Docker configuration file (/etc/docker/daemon.json)" msgstr "这将修改 Docker 配置文件 (/etc/docker/daemon.json)" -#: src/views/apps/fail2ban/IndexView.vue:44 -#: src/views/apps/phpmyadmin/IndexView.vue:71 -#: src/views/apps/supervisor/IndexView.vue:55 +#: src/views/apps/fail2ban/IndexView.vue:43 +#: src/views/apps/phpmyadmin/IndexView.vue:56 +#: src/views/apps/supervisor/IndexView.vue:54 #: src/views/container/ComposeView.vue:58 #: src/views/container/ContainerView.vue:32 -#: src/views/database/ServerList.vue:114 -#: src/views/database/UserList.vue:131 -#: src/views/firewall/RuleView.vue:62 +#: src/views/database/ServerList.vue:113 +#: src/views/database/UserList.vue:130 +#: src/views/firewall/RuleView.vue:61 #: src/views/task/SystemView.vue:43 #: src/views/task/TaskView.vue:22 msgid "Status" msgstr "状态" -#: src/views/apps/fail2ban/IndexView.vue:56 -#: src/views/apps/fail2ban/IndexView.vue:365 +#: src/views/apps/fail2ban/IndexView.vue:55 +#: src/views/apps/fail2ban/IndexView.vue:358 msgid "Max Retries" msgstr "最大重试次数" -#: src/views/apps/fail2ban/IndexView.vue:57 -#: src/views/apps/fail2ban/IndexView.vue:371 +#: src/views/apps/fail2ban/IndexView.vue:56 +#: src/views/apps/fail2ban/IndexView.vue:364 msgid "Ban Time" msgstr "封禁时间" -#: src/views/apps/fail2ban/IndexView.vue:58 -#: src/views/apps/fail2ban/IndexView.vue:368 +#: src/views/apps/fail2ban/IndexView.vue:57 +#: src/views/apps/fail2ban/IndexView.vue:361 msgid "Find Time" msgstr "查找时间" -#: src/views/apps/fail2ban/IndexView.vue:78 +#: src/views/apps/fail2ban/IndexView.vue:77 #: src/views/cert/CertView.vue:263 msgid "View" msgstr "查看" -#: src/views/apps/fail2ban/IndexView.vue:89 +#: src/views/apps/fail2ban/IndexView.vue:87 msgid "Are you sure you want to delete rule %{ name }?" msgstr "您确定要删除规则 %{ name } 吗?" -#: src/views/apps/fail2ban/IndexView.vue:100 -#: src/views/apps/php/PhpView.vue:109 -#: src/views/apps/pureftpd/IndexView.vue:89 -#: src/views/apps/rsync/IndexView.vue:107 -#: src/views/apps/supervisor/IndexView.vue:202 -#: src/views/backup/ListView.vue:98 +#: src/views/apps/fail2ban/IndexView.vue:98 +#: src/views/apps/php/PhpView.vue:107 +#: src/views/apps/pureftpd/IndexView.vue:88 +#: src/views/apps/rsync/IndexView.vue:106 +#: src/views/apps/supervisor/IndexView.vue:196 +#: src/views/backup/ListView.vue:96 #: src/views/cert/AccountView.vue:127 #: src/views/cert/CertView.vue:314 #: src/views/cert/DnsView.vue:111 @@ -855,174 +841,172 @@ msgstr "您确定要删除规则 %{ name } 吗?" #: src/views/container/ImageView.vue:94 #: src/views/container/NetworkView.vue:134 #: src/views/container/VolumeView.vue:88 -#: src/views/database/DatabaseList.vue:98 -#: src/views/database/ServerList.vue:217 -#: src/views/database/UserList.vue:191 -#: src/views/file/ListTable.vue:85 -#: src/views/file/ListTable.vue:289 -#: src/views/file/SearchModal.vue:98 +#: src/views/database/DatabaseList.vue:97 +#: src/views/database/ServerList.vue:214 +#: src/views/database/UserList.vue:189 +#: src/views/file/ListTable.vue:87 +#: src/views/file/ListTable.vue:291 #: src/views/file/ToolBar.vue:238 -#: src/views/firewall/ForwardView.vue:104 -#: src/views/firewall/IpRuleView.vue:146 -#: src/views/firewall/RuleView.vue:183 -#: src/views/setting/SettingUser.vue:142 -#: src/views/setting/TokenModal.vue:92 -#: src/views/ssh/IndexView.vue:93 -#: src/views/task/CronView.vue:155 -#: src/views/task/TaskView.vue:98 -#: src/views/website/IndexView.vue:199 +#: src/views/firewall/ForwardView.vue:103 +#: src/views/firewall/IpRuleView.vue:145 +#: src/views/firewall/RuleView.vue:182 +#: src/views/setting/SettingUser.vue:140 +#: src/views/setting/TokenModal.vue:91 +#: src/views/ssh/IndexView.vue:92 +#: src/views/task/CronView.vue:153 +#: src/views/task/TaskView.vue:97 +#: src/views/website/PhpView.vue:193 msgid "Delete" msgstr "删除" -#: src/views/apps/fail2ban/IndexView.vue:134 +#: src/views/apps/fail2ban/IndexView.vue:131 msgid "Are you sure you want to unban %{ ip }?" msgstr "您确定要解封 %{ ip } 吗?" -#: src/views/apps/fail2ban/IndexView.vue:144 +#: src/views/apps/fail2ban/IndexView.vue:141 msgid "Unban" msgstr "解封" -#: src/views/apps/fail2ban/IndexView.vue:192 -#: src/views/apps/pureftpd/IndexView.vue:130 -#: src/views/apps/rsync/IndexView.vue:153 -#: src/views/apps/s3fs/IndexView.vue:84 -#: src/views/apps/supervisor/IndexView.vue:241 +#: src/views/apps/fail2ban/IndexView.vue:188 +#: src/views/apps/pureftpd/IndexView.vue:128 +#: src/views/apps/rsync/IndexView.vue:151 +#: src/views/apps/s3fs/IndexView.vue:82 +#: src/views/apps/supervisor/IndexView.vue:234 #: src/views/database/CreateServerModal.vue:37 msgid "Added successfully" msgstr "添加成功" -#: src/views/apps/fail2ban/IndexView.vue:200 -#: src/views/apps/pureftpd/IndexView.vue:147 -#: src/views/apps/rsync/IndexView.vue:161 -#: src/views/apps/s3fs/IndexView.vue:91 -#: src/views/apps/supervisor/IndexView.vue:269 -#: src/views/backup/ListView.vue:148 -#: src/views/database/DatabaseList.vue:123 -#: src/views/database/ServerList.vue:242 -#: src/views/database/UserList.vue:216 -#: src/views/file/ListTable.vue:272 -#: src/views/file/ListTable.vue:615 -#: src/views/file/SearchModal.vue:81 +#: src/views/apps/fail2ban/IndexView.vue:196 +#: src/views/apps/pureftpd/IndexView.vue:145 +#: src/views/apps/rsync/IndexView.vue:159 +#: src/views/apps/s3fs/IndexView.vue:89 +#: src/views/apps/supervisor/IndexView.vue:262 +#: src/views/backup/ListView.vue:145 +#: src/views/database/DatabaseList.vue:121 +#: src/views/database/ServerList.vue:238 +#: src/views/database/UserList.vue:213 +#: src/views/file/ListTable.vue:274 +#: src/views/file/ListTable.vue:618 #: src/views/file/ToolBar.vue:189 -#: src/views/firewall/ForwardView.vue:131 -#: src/views/firewall/ForwardView.vue:149 -#: src/views/firewall/IpRuleView.vue:173 -#: src/views/firewall/IpRuleView.vue:191 -#: src/views/firewall/RuleView.vue:210 -#: src/views/firewall/RuleView.vue:228 -#: src/views/setting/SettingUser.vue:178 -#: src/views/setting/TokenModal.vue:116 -#: src/views/task/CronView.vue:198 -#: src/views/task/TaskView.vue:124 -#: src/views/website/IndexView.vue:301 -#: src/views/website/IndexView.vue:357 +#: 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/setting/SettingUser.vue:175 +#: src/views/setting/TokenModal.vue:114 +#: src/views/task/CronView.vue:195 +#: src/views/task/TaskView.vue:122 +#: src/views/website/PhpView.vue:285 +#: src/views/website/PhpView.vue:332 msgid "Deleted successfully" msgstr "删除成功" -#: src/views/apps/fail2ban/IndexView.vue:213 +#: src/views/apps/fail2ban/IndexView.vue:209 msgid "Unbanned successfully" msgstr "解封成功" -#: src/views/apps/fail2ban/IndexView.vue:239 -msgid "Save Whitelist" -msgstr "保存白名单" - -#: src/views/apps/fail2ban/IndexView.vue:248 -#: src/views/apps/fail2ban/IndexView.vue:294 -#: src/views/apps/fail2ban/IndexView.vue:298 -msgid "Add Rule" -msgstr "添加规则" - -#: src/views/apps/fail2ban/IndexView.vue:255 +#: src/views/apps/fail2ban/IndexView.vue:231 msgid "IP Whitelist" msgstr "IP 白名单" -#: src/views/apps/fail2ban/IndexView.vue:260 +#: src/views/apps/fail2ban/IndexView.vue:236 msgid "IP whitelist, separated by commas" msgstr "IP 白名单,用逗号分隔" -#: src/views/apps/fail2ban/IndexView.vue:265 +#: src/views/apps/fail2ban/IndexView.vue:241 +msgid "Save Whitelist" +msgstr "保存白名单" + +#: src/views/apps/fail2ban/IndexView.vue:246 msgid "Rule Management" msgstr "规则管理" -#: src/views/apps/fail2ban/IndexView.vue:266 +#: src/views/apps/fail2ban/IndexView.vue:248 msgid "Rule List" msgstr "规则列表" -#: src/views/apps/fail2ban/IndexView.vue:304 +#: src/views/apps/fail2ban/IndexView.vue:277 +#: src/views/apps/fail2ban/IndexView.vue:287 +#: src/views/apps/fail2ban/IndexView.vue:291 +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 在查找时间(秒)内超过最大重试次数,它将被禁止访问指定的禁止时间(秒)" -#: src/views/apps/fail2ban/IndexView.vue:311 +#: 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 "受保护的端口会自动获取。如果您修改了某个规则对应的端口,请删除并重新添加该规则,否则保护可能无效" -#: src/views/apps/fail2ban/IndexView.vue:318 +#: src/views/apps/fail2ban/IndexView.vue:311 #: src/views/cert/CertView.vue:87 #: src/views/cert/DnsView.vue:38 #: src/views/cert/ObtainModal.vue:58 #: src/views/database/CreateServerModal.vue:63 -#: src/views/database/DatabaseList.vue:12 -#: src/views/database/ServerList.vue:17 -#: src/views/database/UserList.vue:17 +#: src/views/database/DatabaseList.vue:11 +#: src/views/database/ServerList.vue:16 +#: src/views/database/UserList.vue:16 msgid "Type" msgstr "类型" -#: src/views/apps/fail2ban/IndexView.vue:323 -#: src/views/apps/fail2ban/IndexView.vue:354 +#: src/views/apps/fail2ban/IndexView.vue:316 +#: src/views/apps/fail2ban/IndexView.vue:347 msgid "Service" msgstr "服务" -#: src/views/apps/fail2ban/IndexView.vue:328 -#: src/views/apps/fail2ban/IndexView.vue:332 -#: src/views/task/CreateModal.vue:144 -#: src/views/task/CreateModal.vue:149 +#: src/views/apps/fail2ban/IndexView.vue:321 +#: src/views/apps/fail2ban/IndexView.vue:325 +#: src/views/task/CreateModal.vue:143 +#: src/views/task/CreateModal.vue:148 msgid "Select Website" msgstr "选择网站" -#: src/views/apps/fail2ban/IndexView.vue:335 +#: src/views/apps/fail2ban/IndexView.vue:328 msgid "Protection Mode" msgstr "保护模式" -#: src/views/apps/fail2ban/IndexView.vue:340 +#: src/views/apps/fail2ban/IndexView.vue:333 #: src/views/apps/pureftpd/IndexView.vue:39 msgid "Path" msgstr "路径" -#: src/views/apps/fail2ban/IndexView.vue:347 -#: src/views/apps/fail2ban/IndexView.vue:351 +#: src/views/apps/fail2ban/IndexView.vue:340 +#: src/views/apps/fail2ban/IndexView.vue:344 msgid "Protection Path" msgstr "保护路径" -#: src/views/apps/fail2ban/IndexView.vue:379 -#: src/views/apps/fail2ban/IndexView.vue:383 +#: src/views/apps/fail2ban/IndexView.vue:372 +#: src/views/apps/fail2ban/IndexView.vue:376 msgid "View Rule" msgstr "查看规则" -#: src/views/apps/fail2ban/IndexView.vue:387 +#: src/views/apps/fail2ban/IndexView.vue:380 msgid "Rule Information" msgstr "规则信息" -#: src/views/apps/fail2ban/IndexView.vue:390 +#: src/views/apps/fail2ban/IndexView.vue:383 msgid "Currently Banned" msgstr "当前已封禁" -#: src/views/apps/fail2ban/IndexView.vue:394 +#: src/views/apps/fail2ban/IndexView.vue:387 msgid "Total Bans" msgstr "总封禁次数" -#: src/views/apps/fail2ban/IndexView.vue:399 +#: src/views/apps/fail2ban/IndexView.vue:392 msgid "Ban List" msgstr "封禁列表" -#: src/views/apps/gitea/IndexView.vue:48 +#: src/views/apps/gitea/IndexView.vue:37 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:18 #: src/views/apps/mysql/IndexView.vue:31 #: src/views/apps/nginx/IndexView.vue:28 -#: src/views/apps/php/PhpView.vue:124 +#: src/views/apps/php/PhpView.vue:121 #: src/views/apps/postgresql/IndexView.vue:31 #: src/views/apps/redis/IndexView.vue:25 msgid "Property" @@ -1031,122 +1015,127 @@ msgstr "属性" #: src/views/apps/memcached/IndexView.vue:25 #: src/views/apps/mysql/IndexView.vue:38 #: src/views/apps/nginx/IndexView.vue:35 -#: src/views/apps/php/PhpView.vue:131 +#: src/views/apps/php/PhpView.vue:128 #: src/views/apps/postgresql/IndexView.vue:38 #: src/views/apps/redis/IndexView.vue:32 msgid "Current Value" msgstr "当前值" -#: src/views/apps/memcached/IndexView.vue:66 +#: src/views/apps/memcached/IndexView.vue:55 msgid "Service Configuration" msgstr "服务配置" -#: src/views/apps/memcached/IndexView.vue:82 -#: src/views/apps/mysql/IndexView.vue:141 -#: src/views/apps/nginx/IndexView.vue:104 -#: src/views/apps/php/PhpView.vue:289 -#: src/views/apps/postgresql/IndexView.vue:137 -#: src/views/apps/redis/IndexView.vue:86 -#: src/views/dashboard/IndexView.vue:462 +#: src/views/apps/memcached/IndexView.vue:75 +#: src/views/apps/mysql/IndexView.vue:112 +#: src/views/apps/nginx/IndexView.vue:88 +#: src/views/apps/php/PhpView.vue:258 +#: src/views/apps/postgresql/IndexView.vue:121 +#: src/views/apps/redis/IndexView.vue:79 +#: src/views/dashboard/IndexView.vue:463 msgid "Load Status" msgstr "负载状态" -#: src/views/apps/minio/IndexView.vue:39 +#: src/views/apps/minio/IndexView.vue:33 #: src/views/container/ComposeView.vue:338 #: src/views/container/ComposeView.vue:368 #: src/views/container/ContainerCreate.vue:353 msgid "Environment Variables" msgstr "环境变量" -#: src/views/apps/minio/IndexView.vue:43 +#: src/views/apps/minio/IndexView.vue:37 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/IndexView.vue:53 #: src/views/apps/mysql/IndexView.vue:59 #: src/views/apps/nginx/IndexView.vue:50 -#: src/views/apps/php/PhpView.vue:158 -#: src/views/apps/php/PhpView.vue:164 +#: src/views/apps/php/PhpView.vue:155 +#: src/views/apps/php/PhpView.vue:161 #: src/views/apps/postgresql/IndexView.vue:57 -#: src/views/apps/supervisor/IndexView.vue:233 +#: src/views/apps/supervisor/IndexView.vue:226 #: src/views/website/EditView.vue:160 msgid "Cleared successfully" msgstr "清除成功" #: src/views/apps/mysql/IndexView.vue:65 -#: src/views/apps/pureftpd/IndexView.vue:140 -#: src/views/database/DatabaseList.vue:129 -#: src/views/database/ServerList.vue:248 +#: src/views/apps/pureftpd/IndexView.vue:138 +#: src/views/database/DatabaseList.vue:127 +#: src/views/database/ServerList.vue:244 #: src/views/database/UpdateServerModal.vue:21 #: src/views/database/UpdateUserModal.vue:18 -#: src/views/database/UserList.vue:222 +#: src/views/database/UserList.vue:219 #: src/views/file/PermissionModal.vue:29 -#: src/views/setting/SettingUser.vue:166 -#: src/views/setting/SettingUser.vue:172 -#: src/views/task/CronView.vue:180 -#: src/views/task/CronView.vue:207 -#: src/views/website/IndexView.vue:284 -#: src/views/website/IndexView.vue:310 +#: src/views/setting/SettingUser.vue:163 +#: src/views/setting/SettingUser.vue:169 +#: src/views/task/CronView.vue:177 +#: src/views/task/CronView.vue:204 +#: src/views/website/PhpView.vue:268 +#: src/views/website/SettingView.vue:29 msgid "Modified successfully" msgstr "修改成功" -#: src/views/apps/mysql/IndexView.vue:88 -#: src/views/apps/nginx/IndexView.vue:74 -#: src/views/apps/postgresql/IndexView.vue:84 -#: src/views/apps/supervisor/IndexView.vue:326 -msgid "Clear Log" -msgstr "清除日志" - -#: src/views/apps/mysql/IndexView.vue:97 -#: src/views/apps/php/PhpView.vue:221 -msgid "Clear Slow Log" -msgstr "清除慢查询日志" - -#: src/views/apps/mysql/IndexView.vue:104 -#: src/views/toolbox/SystemView.vue:205 -#: src/views/toolbox/SystemView.vue:207 +#: src/views/apps/mysql/IndexView.vue:75 +#: src/views/toolbox/SystemView.vue:191 +#: src/views/toolbox/SystemView.vue:193 msgid "Root Password" msgstr "Root 密码" -#: src/views/apps/mysql/IndexView.vue:112 +#: src/views/apps/mysql/IndexView.vue:79 +#: src/views/website/SettingView.vue:55 +#: src/views/website/SettingView.vue:75 +#: src/views/website/SettingView.vue:95 +#: src/views/website/SettingView.vue:128 msgid "Save Changes" msgstr "保存更改" -#: src/views/apps/mysql/IndexView.vue:122 +#: src/views/apps/mysql/IndexView.vue:89 msgid "This modifies the MySQL main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" msgstr "这将修改 MySQL 主配置文件。如果您不了解每个参数的含义,请不要随意修改!" -#: src/views/apps/mysql/IndexView.vue:154 +#: src/views/apps/mysql/IndexView.vue:124 +#: src/views/apps/nginx/IndexView.vue:105 +#: src/views/apps/php/PhpView.vue:275 +#: src/views/apps/postgresql/IndexView.vue:135 +#: src/views/apps/supervisor/IndexView.vue:365 +msgid "Clear Log" +msgstr "清除日志" + +#: src/views/apps/mysql/IndexView.vue:128 msgid "Slow Query Log" msgstr "慢查询日志" -#: src/views/apps/nginx/IndexView.vue:85 +#: src/views/apps/mysql/IndexView.vue:130 +#: src/views/apps/php/PhpView.vue:285 +msgid "Clear Slow Log" +msgstr "清除慢日志" + +#: src/views/apps/nginx/IndexView.vue:65 msgid "This modifies the OpenResty main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" msgstr "这将修改 OpenResty 主配置文件。如果您不理解每个参数的含义,请不要随意修改!" -#: src/views/apps/nginx/IndexView.vue:117 -#: src/views/apps/php/PhpView.vue:302 +#: src/views/apps/nginx/IndexView.vue:101 +#: src/views/apps/php/PhpView.vue:271 msgid "Error Logs" msgstr "错误日志" -#: src/views/apps/php/PhpView.vue:43 +#: src/views/apps/php/PhpView.vue:42 msgid "Extension Name" msgstr "扩展名称" -#: src/views/apps/php/PhpView.vue:71 +#: src/views/apps/php/PhpView.vue:70 msgid "Are you sure you want to install %{ name }?" msgstr "您确定要安装 %{ name } 吗?" -#: src/views/apps/php/PhpView.vue:97 +#: src/views/apps/php/PhpView.vue:95 msgid "Are you sure you want to uninstall %{ name }?" msgstr "您确定要卸载 %{ name } 吗?" -#: src/views/apps/php/PhpView.vue:140 +#: src/views/apps/php/PhpView.vue:137 msgid "Set successfully" msgstr "设置成功" -#: src/views/apps/php/PhpView.vue:170 -#: src/views/apps/php/PhpView.vue:176 +#: src/views/apps/php/PhpView.vue:167 +#: src/views/apps/php/PhpView.vue:173 msgid "Task submitted, please check progress in background tasks" msgstr "任务已提交,请在后台任务中查看进度" @@ -1154,100 +1143,96 @@ msgstr "任务已提交,请在后台任务中查看进度" msgid "Set as CLI Default Version" msgstr "设置为 CLI 默认版本" -#: src/views/apps/php/PhpView.vue:212 -msgid "Clear Error Log" -msgstr "清除错误日志" - -#: src/views/apps/php/PhpView.vue:228 +#: src/views/apps/php/PhpView.vue:189 msgid "Extension Management" msgstr "扩展管理" -#: src/views/apps/php/PhpView.vue:241 -#: src/views/apps/postgresql/IndexView.vue:91 -#: src/views/apps/redis/IndexView.vue:63 -#: src/views/apps/rsync/IndexView.vue:241 -#: src/views/apps/supervisor/IndexView.vue:357 +#: src/views/apps/php/PhpView.vue:202 +#: src/views/apps/postgresql/IndexView.vue:67 +#: src/views/apps/redis/IndexView.vue:52 +#: src/views/apps/rsync/IndexView.vue:224 +#: src/views/apps/supervisor/IndexView.vue:331 msgid "Main Configuration" msgstr "主要配置" -#: src/views/apps/php/PhpView.vue:245 +#: src/views/apps/php/PhpView.vue:206 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/apps/php/PhpView.vue:265 +#: src/views/apps/php/PhpView.vue:230 msgid "FPM Configuration" msgstr "FPM 配置" -#: src/views/apps/php/PhpView.vue:269 +#: src/views/apps/php/PhpView.vue:234 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/apps/php/PhpView.vue:305 -#: src/views/apps/postgresql/IndexView.vue:150 +#: src/views/apps/php/PhpView.vue:281 +#: src/views/apps/postgresql/IndexView.vue:141 msgid "Slow Logs" msgstr "慢日志" -#: src/views/apps/phpmyadmin/IndexView.vue:73 +#: src/views/apps/phpmyadmin/IndexView.vue:58 msgid "Access Information" msgstr "访问信息" -#: src/views/apps/phpmyadmin/IndexView.vue:75 +#: src/views/apps/phpmyadmin/IndexView.vue:60 msgid "Access URL:" msgstr "访问 URL:" -#: src/views/apps/phpmyadmin/IndexView.vue:78 +#: src/views/apps/phpmyadmin/IndexView.vue:63 msgid "Modify Port" msgstr "修改端口" -#: src/views/apps/phpmyadmin/IndexView.vue:80 +#: src/views/apps/phpmyadmin/IndexView.vue:70 msgid "Modify phpMyAdmin access port" msgstr "修改 phpMyAdmin 访问端口" -#: src/views/apps/phpmyadmin/IndexView.vue:88 +#: src/views/apps/phpmyadmin/IndexView.vue:78 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:64 +#: src/views/apps/podman/IndexView.vue:44 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:72 +#: src/views/apps/podman/IndexView.vue:52 msgid "Registry Configuration" msgstr "注册表配置" -#: src/views/apps/podman/IndexView.vue:76 +#: src/views/apps/podman/IndexView.vue:56 msgid "This modifies the Podman registry configuration file (/etc/containers/registries.conf)" msgstr "这会修改 Podman 注册表配置文件 (/etc/containers/registries.conf)" -#: src/views/apps/podman/IndexView.vue:95 +#: src/views/apps/podman/IndexView.vue:79 msgid "Storage Configuration" msgstr "存储配置" -#: src/views/apps/podman/IndexView.vue:99 +#: src/views/apps/podman/IndexView.vue:83 msgid "This modifies the Podman storage configuration file (/etc/containers/storage.conf)" msgstr "这会修改 Podman 存储配置文件 (/etc/containers/storage.conf)" -#: src/views/apps/postgresql/IndexView.vue:95 +#: src/views/apps/postgresql/IndexView.vue:71 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:114 +#: src/views/apps/postgresql/IndexView.vue:94 msgid "User Configuration" msgstr "用户配置" -#: src/views/apps/postgresql/IndexView.vue:118 +#: src/views/apps/postgresql/IndexView.vue:98 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/pureftpd/IndexView.vue:32 -#: src/views/apps/pureftpd/IndexView.vue:221 +#: src/views/apps/pureftpd/IndexView.vue:214 #: src/views/container/ImageView.vue:198 #: src/views/database/CreateDatabaseModal.vue:94 #: src/views/database/CreateServerModal.vue:94 #: src/views/database/CreateUserModal.vue:77 -#: src/views/database/ServerList.vue:47 +#: src/views/database/ServerList.vue:46 #: src/views/database/UpdateServerModal.vue:86 -#: src/views/database/UserList.vue:40 +#: src/views/database/UserList.vue:39 #: src/views/login/IndexView.vue:133 #: src/views/setting/CreateModal.vue:40 #: src/views/setting/SettingUser.vue:19 @@ -1256,59 +1241,59 @@ msgstr "这将修改 PostgreSQL 用户配置文件。如果您不了解每个参 msgid "Username" msgstr "用户名" -#: src/views/apps/pureftpd/IndexView.vue:76 +#: src/views/apps/pureftpd/IndexView.vue:75 msgid "Are you sure you want to delete user %{ username }?" msgstr "您确定要删除用户 %{ username } 吗?" -#: src/views/apps/pureftpd/IndexView.vue:171 -msgid "Add User" -msgstr "添加用户" - -#: src/views/apps/pureftpd/IndexView.vue:178 +#: src/views/apps/pureftpd/IndexView.vue:161 msgid "Port Settings" msgstr "端口设置" -#: src/views/apps/pureftpd/IndexView.vue:180 +#: src/views/apps/pureftpd/IndexView.vue:168 msgid "Modify Pure-Ftpd listening port" msgstr "修改 Pure-Ftpd 监听端口" -#: src/views/apps/pureftpd/IndexView.vue:184 +#: src/views/apps/pureftpd/IndexView.vue:172 msgid "User Management" msgstr "用户管理" -#: src/views/apps/pureftpd/IndexView.vue:208 +#: src/views/apps/pureftpd/IndexView.vue:176 +msgid "Add User" +msgstr "添加用户" + +#: src/views/apps/pureftpd/IndexView.vue:201 msgid "Run Log" msgstr "运行日志" -#: src/views/apps/pureftpd/IndexView.vue:213 -#: src/views/apps/pureftpd/IndexView.vue:217 +#: src/views/apps/pureftpd/IndexView.vue:206 +#: src/views/apps/pureftpd/IndexView.vue:210 #: src/views/database/CreateDatabaseModal.vue:79 #: src/views/database/CreateUserModal.vue:55 -#: src/views/database/IndexView.vue:36 +#: src/views/database/IndexView.vue:42 #: src/views/setting/CreateModal.vue:32 -#: src/views/setting/IndexView.vue:69 +#: src/views/setting/IndexView.vue:76 msgid "Create User" msgstr "创建用户" -#: src/views/apps/pureftpd/IndexView.vue:226 +#: src/views/apps/pureftpd/IndexView.vue:219 #: src/views/container/ImageView.vue:203 #: src/views/database/CreateDatabaseModal.vue:99 #: src/views/database/CreateUserModal.vue:82 msgid "Enter username" msgstr "输入用户名" -#: src/views/apps/pureftpd/IndexView.vue:229 -#: src/views/apps/pureftpd/IndexView.vue:260 -#: src/views/apps/rsync/IndexView.vue:304 -#: src/views/apps/rsync/IndexView.vue:358 +#: src/views/apps/pureftpd/IndexView.vue:222 +#: src/views/apps/pureftpd/IndexView.vue:253 +#: src/views/apps/rsync/IndexView.vue:291 +#: src/views/apps/rsync/IndexView.vue:345 #: src/views/container/ImageView.vue:206 #: src/views/database/CreateDatabaseModal.vue:102 #: src/views/database/CreateServerModal.vue:102 #: src/views/database/CreateUserModal.vue:85 -#: src/views/database/ServerList.vue:56 +#: src/views/database/ServerList.vue:55 #: src/views/database/UpdateServerModal.vue:94 #: src/views/database/UpdateUserModal.vue:55 -#: src/views/database/UserList.vue:50 +#: src/views/database/UserList.vue:49 #: src/views/login/IndexView.vue:142 #: src/views/setting/CreateModal.vue:47 #: src/views/setting/PasswordModal.vue:34 @@ -1319,301 +1304,301 @@ msgstr "输入用户名" msgid "Password" msgstr "密码" -#: src/views/apps/pureftpd/IndexView.vue:236 -#: src/views/apps/pureftpd/IndexView.vue:266 +#: src/views/apps/pureftpd/IndexView.vue:229 +#: src/views/apps/pureftpd/IndexView.vue:259 msgid "It is recommended to use the generator to generate a random password" msgstr "建议使用生成器生成随机密码" -#: src/views/apps/pureftpd/IndexView.vue:240 +#: src/views/apps/pureftpd/IndexView.vue:233 #: src/views/apps/rsync/IndexView.vue:47 -#: src/views/apps/rsync/IndexView.vue:288 -#: src/views/apps/rsync/IndexView.vue:342 +#: src/views/apps/rsync/IndexView.vue:275 +#: src/views/apps/rsync/IndexView.vue:329 #: src/views/container/ComposeView.vue:38 -#: src/views/website/IndexView.vue:44 -#: src/views/website/IndexView.vue:549 +#: src/views/website/PhpView.vue:39 +#: src/views/website/PhpView.vue:512 msgid "Directory" msgstr "目录" -#: src/views/apps/pureftpd/IndexView.vue:245 +#: src/views/apps/pureftpd/IndexView.vue:238 msgid "Enter the directory authorized to the user" msgstr "输入授权给用户的目录" -#: src/views/apps/redis/IndexView.vue:67 +#: src/views/apps/redis/IndexView.vue:56 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:54 -#: src/views/apps/rsync/IndexView.vue:296 -#: src/views/apps/rsync/IndexView.vue:350 -#: src/views/database/IndexView.vue:48 -#: src/views/setting/IndexView.vue:79 +#: src/views/apps/rsync/IndexView.vue:283 +#: src/views/apps/rsync/IndexView.vue:337 +#: src/views/database/IndexView.vue:28 +#: src/views/setting/IndexView.vue:70 #: src/views/task/SystemView.vue:37 msgid "User" msgstr "用户" #: src/views/apps/rsync/IndexView.vue:61 -#: src/views/apps/rsync/IndexView.vue:312 -#: src/views/apps/rsync/IndexView.vue:367 +#: src/views/apps/rsync/IndexView.vue:299 +#: src/views/apps/rsync/IndexView.vue:354 #: src/views/database/CreateDatabaseModal.vue:111 #: src/views/database/CreateServerModal.vue:73 -#: src/views/database/ServerList.vue:87 +#: src/views/database/ServerList.vue:86 #: src/views/database/UpdateServerModal.vue:65 -#: src/views/database/UserList.vue:81 +#: src/views/database/UserList.vue:80 #: src/views/ssh/CreateModal.vue:62 #: src/views/ssh/UpdateModal.vue:68 -#: src/views/toolbox/SystemView.vue:156 +#: src/views/toolbox/SystemView.vue:137 msgid "Host" msgstr "主机" #: src/views/apps/rsync/IndexView.vue:67 -#: src/views/apps/rsync/IndexView.vue:320 -#: src/views/apps/rsync/IndexView.vue:375 +#: src/views/apps/rsync/IndexView.vue:307 +#: src/views/apps/rsync/IndexView.vue:362 #: src/views/database/CreateServerModal.vue:111 #: src/views/database/CreateUserModal.vue:116 -#: src/views/database/DatabaseList.vue:57 -#: src/views/database/ServerList.vue:97 +#: 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:114 +#: src/views/database/UserList.vue:113 msgid "Comment" msgstr "注释" #: src/views/apps/rsync/IndexView.vue:83 -#: src/views/apps/supervisor/IndexView.vue:104 +#: src/views/apps/supervisor/IndexView.vue:102 msgid "Configure" msgstr "配置" -#: src/views/apps/rsync/IndexView.vue:94 +#: src/views/apps/rsync/IndexView.vue:93 msgid "Are you sure you want to delete module %{ name }?" msgstr "确定要删除模块 %{ name } 吗?" -#: src/views/apps/rsync/IndexView.vue:210 -#: src/views/apps/rsync/IndexView.vue:272 -msgid "Add Module" -msgstr "添加模块" - -#: src/views/apps/rsync/IndexView.vue:217 +#: src/views/apps/rsync/IndexView.vue:195 msgid "Module Management" msgstr "模块管理" -#: src/views/apps/rsync/IndexView.vue:245 +#: src/views/apps/rsync/IndexView.vue:199 +#: src/views/apps/rsync/IndexView.vue:259 +msgid "Add Module" +msgstr "添加模块" + +#: src/views/apps/rsync/IndexView.vue:228 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:285 -#: src/views/apps/supervisor/IndexView.vue:404 +#: src/views/apps/rsync/IndexView.vue:272 +#: src/views/apps/supervisor/IndexView.vue:389 msgid "Name cannot contain Chinese characters" msgstr "名称不能包含中文字符" -#: src/views/apps/rsync/IndexView.vue:293 -#: src/views/apps/rsync/IndexView.vue:347 +#: src/views/apps/rsync/IndexView.vue:280 +#: src/views/apps/rsync/IndexView.vue:334 msgid "Please enter absolute path" msgstr "请输入绝对路径" -#: src/views/apps/rsync/IndexView.vue:301 -#: src/views/apps/rsync/IndexView.vue:355 +#: src/views/apps/rsync/IndexView.vue:288 +#: src/views/apps/rsync/IndexView.vue:342 msgid "Enter module username" msgstr "输入模块用户名" -#: src/views/apps/rsync/IndexView.vue:309 -#: src/views/apps/rsync/IndexView.vue:364 +#: src/views/apps/rsync/IndexView.vue:296 +#: src/views/apps/rsync/IndexView.vue:351 msgid "Enter module password" msgstr "输入模块密码" -#: src/views/apps/rsync/IndexView.vue:317 -#: src/views/apps/rsync/IndexView.vue:372 +#: src/views/apps/rsync/IndexView.vue:304 +#: src/views/apps/rsync/IndexView.vue:359 msgid "Enter allowed hosts, separate multiple hosts with spaces" msgstr "输入允许的主机,多个主机用空格分隔" -#: src/views/apps/rsync/IndexView.vue:325 -#: src/views/apps/rsync/IndexView.vue:380 +#: src/views/apps/rsync/IndexView.vue:312 +#: src/views/apps/rsync/IndexView.vue:367 msgid "Enter comments" msgstr "输入注释" -#: src/views/apps/rsync/IndexView.vue:334 +#: src/views/apps/rsync/IndexView.vue:321 msgid "Module Configuration" msgstr "模块配置" -#: src/views/apps/s3fs/IndexView.vue:25 +#: src/views/apps/s3fs/IndexView.vue:24 msgid "Mount Path" msgstr "挂载路径" -#: src/views/apps/s3fs/IndexView.vue:46 +#: src/views/apps/s3fs/IndexView.vue:45 msgid "Are you sure you want to delete mount %{ path }?" msgstr "您确定要删除挂载 %{ path } 吗?" -#: src/views/apps/s3fs/IndexView.vue:58 +#: src/views/apps/s3fs/IndexView.vue:57 msgid "Unmount" msgstr "卸载" -#: src/views/apps/s3fs/IndexView.vue:105 -#: src/views/apps/s3fs/IndexView.vue:131 -#: src/views/apps/s3fs/IndexView.vue:135 +#: 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 "添加挂载" -#: src/views/apps/s3fs/IndexView.vue:144 +#: src/views/apps/s3fs/IndexView.vue:141 msgid "Enter Bucket name (COS format: xxxx-ID)" msgstr "输入存储桶名称(COS 格式:xxxx-ID)" -#: src/views/apps/s3fs/IndexView.vue:152 +#: src/views/apps/s3fs/IndexView.vue:149 msgid "Enter AK key" msgstr "输入 AK 密钥" -#: src/views/apps/s3fs/IndexView.vue:160 +#: src/views/apps/s3fs/IndexView.vue:157 msgid "Enter SK key" msgstr "输入 SK 密钥" -#: src/views/apps/s3fs/IndexView.vue:163 +#: src/views/apps/s3fs/IndexView.vue:160 msgid "Region Endpoint" msgstr "区域端点" -#: src/views/apps/s3fs/IndexView.vue:169 +#: src/views/apps/s3fs/IndexView.vue:166 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:175 +#: src/views/apps/s3fs/IndexView.vue:172 msgid "Mount Directory" msgstr "挂载目录" -#: src/views/apps/s3fs/IndexView.vue:180 +#: src/views/apps/s3fs/IndexView.vue:177 msgid "Enter mount directory (e.g., /oss)" msgstr "输入挂载目录(例如,/oss)" -#: src/views/apps/supervisor/IndexView.vue:69 +#: src/views/apps/supervisor/IndexView.vue:68 msgid "Uptime" msgstr "运行时间" -#: src/views/apps/supervisor/IndexView.vue:132 +#: src/views/apps/supervisor/IndexView.vue:128 msgid "Are you sure you want to stop process %{ name }?" msgstr "您确定要停止进程 %{ name } 吗?" -#: src/views/apps/supervisor/IndexView.vue:161 +#: src/views/apps/supervisor/IndexView.vue:156 msgid "Are you sure you want to restart process %{ name }?" msgstr "您确定要重启进程 %{ name } 吗?" -#: src/views/apps/supervisor/IndexView.vue:189 +#: src/views/apps/supervisor/IndexView.vue:183 msgid "Are you sure you want to delete process %{ name }?" msgstr "您确定要删除进程 %{ name } 吗?" -#: src/views/apps/supervisor/IndexView.vue:322 -#: src/views/apps/supervisor/IndexView.vue:391 -msgid "Add Process" -msgstr "添加进程" - -#: src/views/apps/supervisor/IndexView.vue:333 +#: src/views/apps/supervisor/IndexView.vue:302 msgid "Process Management" msgstr "进程管理" -#: src/views/apps/supervisor/IndexView.vue:361 +#: src/views/apps/supervisor/IndexView.vue:306 +#: src/views/apps/supervisor/IndexView.vue:376 +msgid "Add Process" +msgstr "添加进程" + +#: src/views/apps/supervisor/IndexView.vue:335 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:383 +#: src/views/apps/supervisor/IndexView.vue:361 msgid "Daemon Logs" msgstr "守护进程日志" -#: src/views/apps/supervisor/IndexView.vue:407 +#: src/views/apps/supervisor/IndexView.vue:392 msgid "Start Command" msgstr "启动命令" -#: src/views/apps/supervisor/IndexView.vue:412 +#: src/views/apps/supervisor/IndexView.vue:397 msgid "Please enter absolute path for files in start command" msgstr "请在启动命令中输入文件的绝对路径" -#: src/views/apps/supervisor/IndexView.vue:415 +#: src/views/apps/supervisor/IndexView.vue:400 msgid "Working Directory" msgstr "工作目录" -#: src/views/apps/supervisor/IndexView.vue:420 +#: src/views/apps/supervisor/IndexView.vue:405 msgid "Please enter absolute path for working directory" msgstr "请输入工作目录的绝对路径" -#: src/views/apps/supervisor/IndexView.vue:423 +#: src/views/apps/supervisor/IndexView.vue:408 msgid "Run As User" msgstr "运行用户" -#: src/views/apps/supervisor/IndexView.vue:428 +#: src/views/apps/supervisor/IndexView.vue:413 msgid "Usually www is sufficient" msgstr "通常使用 www 即可" -#: src/views/apps/supervisor/IndexView.vue:431 +#: src/views/apps/supervisor/IndexView.vue:416 msgid "Number of Processes" msgstr "进程数量" -#: src/views/apps/supervisor/IndexView.vue:441 +#: src/views/apps/supervisor/IndexView.vue:426 msgid "Process Configuration" msgstr "进程配置" -#: src/views/backup/ListView.vue:36 +#: src/views/backup/ListView.vue:35 msgid "Filename" msgstr "文件名" -#: src/views/backup/ListView.vue:49 -#: src/views/database/ServerList.vue:126 -#: src/views/database/UserList.vue:143 +#: src/views/backup/ListView.vue:48 +#: src/views/database/ServerList.vue:125 +#: src/views/database/UserList.vue:142 msgid "Update Date" msgstr "更新日期" -#: src/views/backup/ListView.vue:76 +#: src/views/backup/ListView.vue:75 msgid "Restore" msgstr "恢复" -#: src/views/backup/ListView.vue:87 +#: src/views/backup/ListView.vue:85 msgid "Are you sure you want to delete this backup?" msgstr "您确定要删除此备份吗?" -#: src/views/backup/ListView.vue:131 +#: src/views/backup/ListView.vue:128 msgid "Restoring..." msgstr "正在恢复……" -#: src/views/backup/ListView.vue:138 +#: src/views/backup/ListView.vue:135 msgid "Restored successfully" msgstr "恢复成功" -#: src/views/backup/ListView.vue:182 -#: src/views/backup/ListView.vue:212 +#: src/views/backup/ListView.vue:194 +#: src/views/backup/ListView.vue:224 msgid "Create Backup" msgstr "创建备份" -#: src/views/backup/ListView.vue:185 +#: src/views/backup/ListView.vue:197 #: src/views/backup/UploadModal.vue:39 msgid "Upload Backup" msgstr "上传备份" -#: src/views/backup/ListView.vue:224 -#: src/views/backup/ListView.vue:261 +#: src/views/backup/ListView.vue:236 +#: src/views/backup/ListView.vue:273 msgid "Select website" msgstr "选择网站" -#: src/views/backup/ListView.vue:227 +#: src/views/backup/ListView.vue:239 #: src/views/database/CreateDatabaseModal.vue:71 -#: src/views/database/DatabaseList.vue:35 -#: src/views/task/CreateModal.vue:154 -#: src/views/task/CreateModal.vue:156 -#: src/views/website/IndexView.vue:513 -#: src/views/website/IndexView.vue:518 +#: src/views/database/DatabaseList.vue:34 +#: src/views/task/CreateModal.vue:153 +#: src/views/task/CreateModal.vue:155 +#: src/views/website/PhpView.vue:476 +#: src/views/website/PhpView.vue:481 msgid "Database Name" msgstr "数据库名称" -#: src/views/backup/ListView.vue:232 +#: src/views/backup/ListView.vue:244 #: src/views/database/CreateDatabaseModal.vue:76 #: src/views/database/CreateUserModal.vue:113 #: src/views/database/UpdateUserModal.vue:67 msgid "Enter database name" msgstr "输入数据库名称" -#: src/views/backup/ListView.vue:235 -#: src/views/task/CreateModal.vue:158 -#: src/views/task/CreateModal.vue:161 +#: src/views/backup/ListView.vue:247 +#: src/views/task/CreateModal.vue:157 +#: src/views/task/CreateModal.vue:160 msgid "Save Directory" msgstr "保存目录" -#: src/views/backup/ListView.vue:240 +#: src/views/backup/ListView.vue:252 msgid "Leave empty to use default path" msgstr "留空以使用默认路径" -#: src/views/backup/ListView.vue:249 +#: src/views/backup/ListView.vue:261 msgid "Restore Backup" msgstr "恢复备份" @@ -1649,11 +1634,10 @@ msgstr "密钥类型" #: src/views/cert/AccountView.vue:101 #: src/views/cert/CertView.vue:288 #: src/views/cert/DnsView.vue:85 -#: src/views/database/ServerList.vue:184 -#: src/views/database/UserList.vue:169 +#: src/views/database/ServerList.vue:182 +#: src/views/database/UserList.vue:168 #: src/views/file/PermissionModal.vue:123 #: src/views/setting/TokenModal.vue:69 -#: src/views/toolbox/SystemView.vue:118 msgid "Modify" msgstr "修改" @@ -1730,8 +1714,8 @@ msgstr "输入 HMAC" #: src/views/cert/CertView.vue:450 #: src/views/cert/CreateCertModal.vue:74 #: src/views/cert/ObtainModal.vue:57 -#: src/views/website/EditView.vue:232 -#: src/views/website/IndexView.vue:457 +#: src/views/website/EditView.vue:178 +#: src/views/website/PhpView.vue:420 msgid "Domain" msgstr "域名" @@ -1740,15 +1724,15 @@ msgstr "域名" #: src/views/cert/CertView.vue:135 #: src/views/cert/CertView.vue:154 #: src/views/container/ContainerCreate.vue:55 -#: src/views/database/ServerList.vue:52 -#: src/views/database/ServerList.vue:67 -#: src/views/database/UserList.vue:46 -#: src/views/database/UserList.vue:86 -#: src/views/firewall/ForwardView.vue:26 -#: src/views/firewall/IpRuleView.vue:26 -#: src/views/firewall/IpRuleView.vue:43 -#: src/views/firewall/RuleView.vue:26 -#: src/views/firewall/RuleView.vue:43 +#: 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 "无" @@ -1763,14 +1747,14 @@ msgid "Associated Account" msgstr "关联账户" #: src/views/cert/CertView.vue:130 -#: src/views/website/EditView.vue:306 +#: src/views/website/EditView.vue:261 msgid "Issuer" msgstr "颁发者" #: src/views/cert/CertView.vue:139 #: src/views/setting/TokenModal.vue:43 -#: src/views/setting/TokenModal.vue:258 -#: src/views/setting/TokenModal.vue:291 +#: src/views/setting/TokenModal.vue:256 +#: src/views/setting/TokenModal.vue:289 msgid "Expiration Time" msgstr "过期时间" @@ -1847,25 +1831,25 @@ msgstr "选择用于证书颁发的 DNS" #: src/views/cert/CertView.vue:502 #: src/views/cert/UploadCertModal.vue:42 -#: src/views/website/EditView.vue:359 +#: src/views/website/EditView.vue:314 msgid "Enter the content of the PEM certificate file" msgstr "输入 PEM 证书文件的内容" #: src/views/cert/CertView.vue:509 #: src/views/cert/CertView.vue:586 #: src/views/cert/UploadCertModal.vue:46 -#: src/views/setting/SettingSafe.vue:61 +#: src/views/setting/SettingSafe.vue:199 #: src/views/ssh/CreateModal.vue:78 #: src/views/ssh/CreateModal.vue:89 #: src/views/ssh/UpdateModal.vue:84 #: src/views/ssh/UpdateModal.vue:95 -#: src/views/website/EditView.vue:363 +#: src/views/website/EditView.vue:318 msgid "Private Key" msgstr "私钥" #: src/views/cert/CertView.vue:514 #: src/views/cert/UploadCertModal.vue:50 -#: src/views/website/EditView.vue:367 +#: src/views/website/EditView.vue:322 msgid "Enter the content of the KEY private key file" msgstr "输入 KEY 私钥文件的内容" @@ -1890,12 +1874,12 @@ msgid "View Certificate" msgstr "查看证书" #: src/views/cert/CreateAccountModal.vue:64 -#: src/views/cert/IndexView.vue:106 +#: src/views/cert/IndexView.vue:110 msgid "Create Account" msgstr "创建账户" #: src/views/cert/CreateCertModal.vue:59 -#: src/views/cert/IndexView.vue:102 +#: src/views/cert/IndexView.vue:107 msgid "Create Certificate" msgstr "创建证书" @@ -1904,7 +1888,7 @@ msgid "You can automatically issue and deploy certificates by selecting either W msgstr "您可以通过选择网站或 DNS 来自动颁发和部署证书,或者手动输入域名并设置 DNS 解析以颁发证书" #: src/views/cert/CreateDnsModal.vue:44 -#: src/views/cert/IndexView.vue:110 +#: src/views/cert/IndexView.vue:113 msgid "Create DNS" msgstr "创建 DNS" @@ -2018,23 +2002,23 @@ msgstr "修改 DNS" msgid "Enter note name" msgstr "输入备注名称" -#: src/views/cert/IndexView.vue:98 -#: src/views/cert/UploadCertModal.vue:30 -msgid "Upload Certificate" -msgstr "上传证书" - -#: src/views/cert/IndexView.vue:115 +#: src/views/cert/IndexView.vue:96 msgid "Certificate List" msgstr "证书列表" -#: src/views/cert/IndexView.vue:118 +#: src/views/cert/IndexView.vue:97 msgid "Account List" msgstr "账户列表" -#: src/views/cert/IndexView.vue:121 +#: src/views/cert/IndexView.vue:98 msgid "DNS List" msgstr "DNS 列表" +#: src/views/cert/IndexView.vue:104 +#: src/views/cert/UploadCertModal.vue:30 +msgid "Upload Certificate" +msgstr "上传证书" + #: src/views/cert/ObtainModal.vue:18 msgid "Automatic" msgstr "自动" @@ -2089,11 +2073,11 @@ msgid "Creation Time" msgstr "创建时间" #: src/views/container/ComposeView.vue:96 -#: src/views/file/ListTable.vue:68 -#: src/views/file/ListTable.vue:220 -#: src/views/ssh/IndexView.vue:71 -#: src/views/task/CronView.vue:133 -#: src/views/website/IndexView.vue:141 +#: src/views/file/ListTable.vue:70 +#: src/views/file/ListTable.vue:222 +#: src/views/ssh/IndexView.vue:70 +#: src/views/task/CronView.vue:132 +#: src/views/website/PhpView.vue:136 msgid "Edit" msgstr "编辑" @@ -2145,7 +2129,7 @@ msgstr "编排名称" #: src/views/container/ComposeView.vue:331 #: src/views/container/ComposeView.vue:361 -#: src/views/container/IndexView.vue:24 +#: src/views/container/IndexView.vue:23 msgid "Compose" msgstr "编排" @@ -2239,8 +2223,8 @@ msgid "Add" msgstr "添加" #: src/views/container/ContainerCreate.vue:245 -#: src/views/dashboard/IndexView.vue:141 -#: src/views/dashboard/IndexView.vue:797 +#: src/views/dashboard/IndexView.vue:142 +#: src/views/dashboard/IndexView.vue:794 #: src/views/monitor/IndexView.vue:286 msgid "Network" msgstr "网络" @@ -2258,9 +2242,9 @@ msgid "Container Directory" msgstr "容器目录" #: src/views/container/ContainerCreate.vue:255 -#: src/views/file/ListTable.vue:73 -#: src/views/file/ListTable.vue:145 -#: src/views/file/ListTable.vue:300 +#: src/views/file/ListTable.vue:75 +#: src/views/file/ListTable.vue:147 +#: src/views/file/ListTable.vue:302 #: src/views/file/PermissionModal.vue:113 #: src/views/file/ToolBar.vue:235 msgid "Permission" @@ -2285,12 +2269,12 @@ msgid "Entrypoint" msgstr "入口点" #: src/views/container/ContainerCreate.vue:307 -#: src/views/dashboard/IndexView.vue:533 +#: src/views/dashboard/IndexView.vue:534 #: src/views/monitor/IndexView.vue:205 #: src/views/monitor/IndexView.vue:216 #: src/views/monitor/IndexView.vue:238 #: src/views/task/SystemView.vue:78 -#: src/views/toolbox/BenchmarkView.vue:188 +#: src/views/toolbox/BenchmarkView.vue:177 msgid "Memory" msgstr "内存" @@ -2346,9 +2330,9 @@ msgid "Ports (Host->Container)" msgstr "端口(主机->容器)" #: src/views/container/ContainerView.vue:122 -#: src/views/container/ContainerView.vue:469 -#: src/views/file/ListTable.vue:84 -#: src/views/file/ListTable.vue:264 +#: src/views/container/ContainerView.vue:468 +#: src/views/file/ListTable.vue:86 +#: src/views/file/ListTable.vue:266 msgid "Rename" msgstr "重命名" @@ -2368,7 +2352,7 @@ msgid "Resume" msgstr "恢复" #: src/views/container/ContainerView.vue:200 -#: src/views/file/ListTable.vue:364 +#: src/views/file/ListTable.vue:366 msgid "More" msgstr "更多" @@ -2435,12 +2419,12 @@ msgstr "请选择要恢复的容器" msgid "Cleanup Containers" msgstr "清理容器" -#: src/views/container/ContainerView.vue:476 -#: src/views/file/ListTable.vue:719 +#: src/views/container/ContainerView.vue:475 +#: src/views/file/ListTable.vue:742 msgid "New Name" msgstr "新名称" -#: src/views/container/ContainerView.vue:481 +#: src/views/container/ContainerView.vue:480 msgid "Enter new name" msgstr "输入新名称" @@ -2451,10 +2435,10 @@ msgstr "容器数量" #: src/views/container/ImageView.vue:84 #: src/views/container/NetworkView.vue:124 #: src/views/container/VolumeView.vue:78 -#: src/views/firewall/ForwardView.vue:93 -#: src/views/firewall/IpRuleView.vue:135 -#: src/views/firewall/RuleView.vue:172 -#: src/views/task/TaskView.vue:87 +#: 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 "您确定要删除吗?" @@ -2490,19 +2474,19 @@ msgstr "身份验证" msgid "Enter password" msgstr "输入密码" -#: src/views/container/IndexView.vue:21 +#: src/views/container/IndexView.vue:22 msgid "Containers" msgstr "容器" -#: src/views/container/IndexView.vue:27 +#: src/views/container/IndexView.vue:24 msgid "Images" msgstr "镜像" -#: src/views/container/IndexView.vue:30 +#: src/views/container/IndexView.vue:25 msgid "Networks" msgstr "网络" -#: src/views/container/IndexView.vue:33 +#: src/views/container/IndexView.vue:26 msgid "Volumes" msgstr "卷" @@ -2585,7 +2569,7 @@ msgid "Option Value" msgstr "选项值" #: src/views/container/VolumeView.vue:47 -#: src/views/dashboard/IndexView.vue:644 +#: src/views/dashboard/IndexView.vue:645 msgid "Mount Point" msgstr "挂载点" @@ -2602,63 +2586,63 @@ msgstr "清理卷" msgid "Volume Name" msgstr "卷名称" -#: src/views/dashboard/IndexView.vue:129 +#: src/views/dashboard/IndexView.vue:130 msgid "Running blocked" msgstr "运行阻塞" -#: src/views/dashboard/IndexView.vue:131 +#: src/views/dashboard/IndexView.vue:132 msgid "Running slowly" msgstr "运行缓慢" -#: src/views/dashboard/IndexView.vue:133 +#: src/views/dashboard/IndexView.vue:134 msgid "Running normally" msgstr "运行正常" -#: src/views/dashboard/IndexView.vue:135 +#: src/views/dashboard/IndexView.vue:136 msgid "Running smoothly" msgstr "运行流畅" -#: src/views/dashboard/IndexView.vue:141 -#: src/views/dashboard/IndexView.vue:798 -#: src/views/dashboard/IndexView.vue:818 -#: src/views/toolbox/BenchmarkView.vue:219 +#: src/views/dashboard/IndexView.vue:142 +#: src/views/dashboard/IndexView.vue:795 +#: src/views/dashboard/IndexView.vue:815 +#: src/views/toolbox/BenchmarkView.vue:203 msgid "Disk" msgstr "磁盘" -#: src/views/dashboard/IndexView.vue:164 -#: src/views/dashboard/IndexView.vue:181 +#: src/views/dashboard/IndexView.vue:165 +#: src/views/dashboard/IndexView.vue:182 msgid "Send" msgstr "发送" -#: src/views/dashboard/IndexView.vue:164 -#: src/views/dashboard/IndexView.vue:205 +#: src/views/dashboard/IndexView.vue:165 +#: src/views/dashboard/IndexView.vue:206 msgid "Receive" msgstr "接收" -#: src/views/dashboard/IndexView.vue:165 -#: src/views/dashboard/IndexView.vue:181 -#: src/views/dashboard/IndexView.vue:842 +#: src/views/dashboard/IndexView.vue:166 +#: src/views/dashboard/IndexView.vue:182 +#: src/views/dashboard/IndexView.vue:839 #: src/views/file/PermissionModal.vue:88 #: src/views/file/PermissionModal.vue:97 #: src/views/file/PermissionModal.vue:106 msgid "Read" msgstr "读取" -#: src/views/dashboard/IndexView.vue:165 -#: src/views/dashboard/IndexView.vue:205 -#: src/views/dashboard/IndexView.vue:843 +#: src/views/dashboard/IndexView.vue:166 +#: src/views/dashboard/IndexView.vue:206 +#: src/views/dashboard/IndexView.vue:840 #: src/views/file/PermissionModal.vue:89 #: src/views/file/PermissionModal.vue:98 #: src/views/file/PermissionModal.vue:107 msgid "Write" msgstr "写入" -#: src/views/dashboard/IndexView.vue:173 +#: src/views/dashboard/IndexView.vue:174 msgid "Unit %{unit}" msgstr "单位 %{unit}" -#: src/views/dashboard/IndexView.vue:187 -#: src/views/dashboard/IndexView.vue:211 +#: src/views/dashboard/IndexView.vue:188 +#: src/views/dashboard/IndexView.vue:212 #: src/views/monitor/IndexView.vue:93 #: src/views/monitor/IndexView.vue:115 #: src/views/monitor/IndexView.vue:137 @@ -2672,8 +2656,8 @@ msgstr "单位 %{unit}" msgid "Maximum" msgstr "最大值" -#: src/views/dashboard/IndexView.vue:188 -#: src/views/dashboard/IndexView.vue:212 +#: src/views/dashboard/IndexView.vue:189 +#: src/views/dashboard/IndexView.vue:213 #: src/views/monitor/IndexView.vue:94 #: src/views/monitor/IndexView.vue:116 #: src/views/monitor/IndexView.vue:138 @@ -2687,8 +2671,8 @@ msgstr "最大值" msgid "Minimum" msgstr "最小值" -#: src/views/dashboard/IndexView.vue:192 -#: src/views/dashboard/IndexView.vue:216 +#: src/views/dashboard/IndexView.vue:193 +#: src/views/dashboard/IndexView.vue:217 #: src/views/monitor/IndexView.vue:98 #: src/views/monitor/IndexView.vue:120 #: src/views/monitor/IndexView.vue:142 @@ -2702,211 +2686,211 @@ msgstr "最小值" msgid "Average" msgstr "平均值" -#: src/views/dashboard/IndexView.vue:324 +#: src/views/dashboard/IndexView.vue:325 msgid "Panel restarting..." msgstr "面板重启中……" -#: src/views/dashboard/IndexView.vue:326 +#: src/views/dashboard/IndexView.vue:327 msgid "Panel restarted successfully" msgstr "面板重启成功" -#: src/views/dashboard/IndexView.vue:338 +#: src/views/dashboard/IndexView.vue:339 msgid "Current version is the latest" msgstr "当前版本是最新版本" -#: src/views/dashboard/IndexView.vue:434 -#: src/views/task/IndexView.vue:29 +#: src/views/dashboard/IndexView.vue:435 +#: src/views/task/IndexView.vue:23 msgid "Scheduled Tasks" msgstr "计划任务" -#: src/views/dashboard/IndexView.vue:443 +#: src/views/dashboard/IndexView.vue:444 msgid "Sponsor Support" msgstr "赞助支持" -#: src/views/dashboard/IndexView.vue:449 +#: src/views/dashboard/IndexView.vue:450 msgid "Are you sure you want to restart the panel?" msgstr "您确定要重启面板吗?" -#: src/views/dashboard/IndexView.vue:457 +#: src/views/dashboard/IndexView.vue:458 msgid "Resource Overview" msgstr "资源概览" -#: src/views/dashboard/IndexView.vue:474 +#: src/views/dashboard/IndexView.vue:475 msgid "Last 1 minute" msgstr "最近 1 分钟" -#: src/views/dashboard/IndexView.vue:481 +#: src/views/dashboard/IndexView.vue:482 msgid "Last 5 minutes" msgstr "最近 5 分钟" -#: src/views/dashboard/IndexView.vue:488 +#: src/views/dashboard/IndexView.vue:489 msgid "Last 15 minutes" msgstr "最近 15 分钟" -#: src/views/dashboard/IndexView.vue:506 -#: src/views/dashboard/IndexView.vue:517 +#: src/views/dashboard/IndexView.vue:507 +#: src/views/dashboard/IndexView.vue:518 msgid "cores" msgstr "核心" -#: src/views/dashboard/IndexView.vue:511 +#: src/views/dashboard/IndexView.vue:512 msgid "Model" msgstr "型号" -#: src/views/dashboard/IndexView.vue:515 +#: src/views/dashboard/IndexView.vue:516 msgid "Parameters" msgstr "参数" -#: src/views/dashboard/IndexView.vue:518 +#: src/views/dashboard/IndexView.vue:519 msgid "cache" msgstr "缓存" -#: src/views/dashboard/IndexView.vue:524 +#: src/views/dashboard/IndexView.vue:525 #: src/views/monitor/IndexView.vue:179 msgid "Usage" msgstr "使用率" -#: src/views/dashboard/IndexView.vue:525 +#: src/views/dashboard/IndexView.vue:526 msgid "Frequency" msgstr "频率" -#: src/views/dashboard/IndexView.vue:545 +#: src/views/dashboard/IndexView.vue:546 msgid "Active" msgstr "活跃" -#: src/views/dashboard/IndexView.vue:551 +#: src/views/dashboard/IndexView.vue:552 msgid "Inactive" msgstr "非活跃" -#: src/views/dashboard/IndexView.vue:557 +#: src/views/dashboard/IndexView.vue:558 msgid "Free" msgstr "空闲" -#: src/views/dashboard/IndexView.vue:563 +#: src/views/dashboard/IndexView.vue:564 msgid "Shared" msgstr "共享" -#: src/views/dashboard/IndexView.vue:569 +#: src/views/dashboard/IndexView.vue:570 msgid "Committed" msgstr "已提交" -#: src/views/dashboard/IndexView.vue:575 +#: src/views/dashboard/IndexView.vue:576 msgid "Commit Limit" msgstr "提交限制" -#: src/views/dashboard/IndexView.vue:581 -#: src/views/toolbox/SystemView.vue:149 +#: src/views/dashboard/IndexView.vue:582 +#: src/views/toolbox/SystemView.vue:125 msgid "SWAP Size" msgstr "SWAP 大小" -#: src/views/dashboard/IndexView.vue:587 +#: src/views/dashboard/IndexView.vue:588 msgid "SWAP Used" msgstr "已用 SWAP" -#: src/views/dashboard/IndexView.vue:593 +#: src/views/dashboard/IndexView.vue:594 msgid "SWAP Available" msgstr "可用 SWAP" -#: src/views/dashboard/IndexView.vue:599 +#: src/views/dashboard/IndexView.vue:600 msgid "Physical Memory Size" msgstr "物理内存大小" -#: src/views/dashboard/IndexView.vue:605 +#: src/views/dashboard/IndexView.vue:606 msgid "Physical Memory Used" msgstr "已用物理内存" -#: src/views/dashboard/IndexView.vue:611 +#: src/views/dashboard/IndexView.vue:612 msgid "Physical Memory Available" msgstr "可用物理内存" -#: src/views/dashboard/IndexView.vue:648 +#: src/views/dashboard/IndexView.vue:649 msgid "File System" msgstr "文件系统" -#: src/views/dashboard/IndexView.vue:652 +#: src/views/dashboard/IndexView.vue:653 msgid "Inodes Usage" msgstr "Inodes 使用率" -#: src/views/dashboard/IndexView.vue:656 +#: src/views/dashboard/IndexView.vue:657 msgid "Inodes Total" msgstr "Inodes 总数" -#: src/views/dashboard/IndexView.vue:660 +#: src/views/dashboard/IndexView.vue:661 msgid "Inodes Used" msgstr "已用 Inodes" -#: src/views/dashboard/IndexView.vue:664 +#: src/views/dashboard/IndexView.vue:665 msgid "Inodes Available" msgstr "可用 Inodes" -#: src/views/dashboard/IndexView.vue:681 +#: src/views/dashboard/IndexView.vue:682 msgid "Quick Apps" msgstr "快捷应用" -#: src/views/dashboard/IndexView.vue:724 +#: src/views/dashboard/IndexView.vue:721 msgid "You have not set any apps to display here!" msgstr "您尚未设置任何要在此处显示的应用!" -#: src/views/dashboard/IndexView.vue:728 +#: src/views/dashboard/IndexView.vue:725 msgid "Environment Information" msgstr "环境信息" -#: src/views/dashboard/IndexView.vue:731 +#: src/views/dashboard/IndexView.vue:728 msgid "System Hostname" msgstr "系统主机名" -#: src/views/dashboard/IndexView.vue:737 +#: src/views/dashboard/IndexView.vue:734 msgid "System Version" msgstr "系统版本" -#: src/views/dashboard/IndexView.vue:746 +#: src/views/dashboard/IndexView.vue:743 msgid "System Kernel Version" msgstr "系统内核版本" -#: src/views/dashboard/IndexView.vue:752 +#: src/views/dashboard/IndexView.vue:749 msgid "System Uptime" msgstr "系统运行时间" -#: src/views/dashboard/IndexView.vue:758 +#: src/views/dashboard/IndexView.vue:755 msgid "Panel Internal Version" msgstr "面板内部版本" -#: src/views/dashboard/IndexView.vue:770 +#: src/views/dashboard/IndexView.vue:767 msgid "Panel Compile Information" msgstr "面板编译信息" -#: src/views/dashboard/IndexView.vue:787 +#: src/views/dashboard/IndexView.vue:784 msgid "Real-time Monitoring" msgstr "实时监控" -#: src/views/dashboard/IndexView.vue:801 +#: src/views/dashboard/IndexView.vue:798 msgid "Unit" msgstr "单位" -#: src/views/dashboard/IndexView.vue:809 +#: src/views/dashboard/IndexView.vue:806 msgid "Network Card" msgstr "网卡" -#: src/views/dashboard/IndexView.vue:829 +#: src/views/dashboard/IndexView.vue:826 msgid "Total Sent" msgstr "总发送量" -#: src/views/dashboard/IndexView.vue:831 +#: src/views/dashboard/IndexView.vue:828 msgid "Total Received" msgstr "总接收量" -#: src/views/dashboard/IndexView.vue:834 +#: src/views/dashboard/IndexView.vue:831 msgid "Real-time Sent" msgstr "实时发送" -#: src/views/dashboard/IndexView.vue:838 +#: src/views/dashboard/IndexView.vue:835 msgid "Real-time Received" msgstr "实时接收" -#: src/views/dashboard/IndexView.vue:845 +#: src/views/dashboard/IndexView.vue:842 msgid "Real-time Read/Write" msgstr "实时读/写" -#: src/views/dashboard/IndexView.vue:848 +#: src/views/dashboard/IndexView.vue:845 msgid "Read/Write Latency" msgstr "读/写延迟" @@ -2930,11 +2914,11 @@ msgstr "面板更新成功" msgid "Update canceled" msgstr "更新已取消" -#: src/views/dashboard/UpdateView.vue:59 +#: src/views/dashboard/UpdateView.vue:73 msgid "Update Now" msgstr "立即更新" -#: src/views/dashboard/UpdateView.vue:85 +#: src/views/dashboard/UpdateView.vue:80 msgid "Loading update information, please wait a moment" msgstr "正在加载更新信息,请稍候" @@ -2954,15 +2938,15 @@ msgid "Specific" msgstr "特定" #: src/views/database/CreateDatabaseModal.vue:55 -#: src/views/database/IndexView.vue:32 +#: src/views/database/IndexView.vue:39 msgid "Create Database" msgstr "创建数据库" #: src/views/database/CreateDatabaseModal.vue:63 #: src/views/database/CreateUserModal.vue:69 -#: src/views/database/DatabaseList.vue:42 -#: src/views/database/IndexView.vue:51 -#: src/views/database/UserList.vue:91 +#: src/views/database/DatabaseList.vue:41 +#: src/views/database/IndexView.vue:29 +#: src/views/database/UserList.vue:90 msgid "Server" msgstr "服务器" @@ -2995,7 +2979,7 @@ msgid "Enter supported host address" msgstr "输入支持的主机地址" #: src/views/database/CreateServerModal.vue:47 -#: src/views/database/IndexView.vue:40 +#: src/views/database/IndexView.vue:49 msgid "Add Server" msgstr "添加服务器" @@ -3015,12 +2999,12 @@ msgstr "输入数据库服务器主机" #: src/views/database/CreateServerModal.vue:84 #: src/views/database/UpdateServerModal.vue:76 -#: src/views/firewall/ForwardView.vue:32 -#: src/views/firewall/RuleView.vue:49 +#: src/views/firewall/ForwardView.vue:31 +#: src/views/firewall/RuleView.vue:48 #: src/views/setting/SettingBase.vue:49 #: src/views/ssh/CreateModal.vue:68 #: src/views/ssh/UpdateModal.vue:74 -#: src/views/website/IndexView.vue:468 +#: src/views/website/PhpView.vue:431 msgid "Port" msgstr "端口" @@ -3055,7 +3039,7 @@ msgstr "主机(仅限MySQL)" #: src/views/database/CreateUserModal.vue:110 #: src/views/database/UpdateUserModal.vue:64 -#: src/views/database/UserList.vue:99 +#: src/views/database/UserList.vue:98 msgid "Privileges" msgstr "权限" @@ -3064,61 +3048,60 @@ msgstr "权限" msgid "Enter database user comment" msgstr "输入数据库用户备注" -#: src/views/database/DatabaseList.vue:47 +#: src/views/database/DatabaseList.vue:46 msgid "Encoding" msgstr "编码" -#: src/views/database/DatabaseList.vue:87 +#: src/views/database/DatabaseList.vue:86 msgid "Are you sure you want to delete this database?" msgstr "您确定要删除这个数据库吗?" -#: src/views/database/ServerList.vue:76 -#: src/views/database/UserList.vue:70 -#: src/views/file/ListTable.vue:516 -#: src/views/file/ListTable.vue:536 -#: src/views/file/SearchModal.vue:65 +#: src/views/database/ServerList.vue:75 +#: src/views/database/UserList.vue:69 +#: src/views/file/ListTable.vue:519 +#: src/views/file/ListTable.vue:539 #: src/views/file/ToolBar.vue:145 #: src/views/file/ToolBar.vue:165 -#: src/views/setting/TokenModal.vue:165 +#: src/views/setting/TokenModal.vue:163 msgid "Copied successfully" msgstr "复制成功" -#: src/views/database/ServerList.vue:80 -#: src/views/database/UserList.vue:74 -#: src/views/file/ListTable.vue:71 -#: src/views/file/ListTable.vue:298 +#: src/views/database/ServerList.vue:79 +#: src/views/database/UserList.vue:73 +#: src/views/file/ListTable.vue:73 +#: src/views/file/ListTable.vue:300 #: src/views/file/ToolBar.vue:232 msgid "Copy" msgstr "复制" -#: src/views/database/ServerList.vue:121 -#: src/views/database/UserList.vue:138 +#: src/views/database/ServerList.vue:120 +#: src/views/database/UserList.vue:137 msgid "Valid" msgstr "有效" -#: src/views/database/ServerList.vue:121 -#: src/views/database/UserList.vue:138 +#: src/views/database/ServerList.vue:120 +#: src/views/database/UserList.vue:137 msgid "Invalid" msgstr "无效" -#: src/views/database/ServerList.vue:147 -#: src/views/toolbox/SystemView.vue:87 +#: src/views/database/ServerList.vue:146 +#: src/views/toolbox/SystemView.vue:86 msgid "Synchronized successfully" msgstr "同步成功" -#: src/views/database/ServerList.vue:153 +#: src/views/database/ServerList.vue:152 msgid "Are you sure you want to synchronize database users (excluding password) to the panel?" msgstr "您确定要将数据库用户(不包括密码)同步到面板吗?" -#: src/views/database/ServerList.vue:165 +#: src/views/database/ServerList.vue:164 msgid "Sync" msgstr "同步" -#: src/views/database/ServerList.vue:195 +#: src/views/database/ServerList.vue:192 msgid "Built-in servers cannot be deleted. If you need to delete them, please uninstall the corresponding app" msgstr "内置服务器无法删除。如果需要删除它们,请卸载相应的应用" -#: src/views/database/ServerList.vue:206 +#: src/views/database/ServerList.vue:203 msgid "Are you sure you want to delete the server?" msgstr "您确定要删除该服务器吗?" @@ -3130,11 +3113,11 @@ msgstr "修改服务器" msgid "Modify User" msgstr "修改用户" -#: src/views/database/UserList.vue:61 +#: src/views/database/UserList.vue:60 msgid "Not saved" msgstr "未保存" -#: src/views/database/UserList.vue:180 +#: src/views/database/UserList.vue:178 msgid "Are you sure you want to delete the user?" msgstr "您确定要删除该用户吗?" @@ -3156,9 +3139,9 @@ msgstr "压缩成功" #: src/views/file/CompressModal.vue:73 #: src/views/file/CompressModal.vue:105 -#: src/views/file/ListTable.vue:75 -#: src/views/file/ListTable.vue:245 -#: src/views/file/ListTable.vue:301 +#: src/views/file/ListTable.vue:77 +#: src/views/file/ListTable.vue:247 +#: src/views/file/ListTable.vue:303 #: src/views/file/ToolBar.vue:234 msgid "Compress" msgstr "压缩" @@ -3183,120 +3166,119 @@ msgstr "编辑 - %{ file }" msgid "Refresh" msgstr "刷新" -#: src/views/file/ListTable.vue:65 -#: src/views/file/ListTable.vue:222 +#: src/views/file/ListTable.vue:67 +#: src/views/file/ListTable.vue:224 msgid "Open" msgstr "打开" -#: src/views/file/ListTable.vue:67 -#: src/views/file/ListTable.vue:220 +#: src/views/file/ListTable.vue:69 +#: src/views/file/ListTable.vue:222 msgid "Preview" msgstr "预览" -#: src/views/file/ListTable.vue:72 -#: src/views/file/ListTable.vue:299 +#: src/views/file/ListTable.vue:74 +#: src/views/file/ListTable.vue:301 #: src/views/file/ToolBar.vue:233 msgid "Move" msgstr "移动" -#: src/views/file/ListTable.vue:75 -#: src/views/file/ListTable.vue:247 +#: src/views/file/ListTable.vue:77 +#: src/views/file/ListTable.vue:249 msgid "Download" msgstr "下载" -#: src/views/file/ListTable.vue:79 -#: src/views/file/ListTable.vue:303 -#: src/views/file/ListTable.vue:741 +#: src/views/file/ListTable.vue:81 +#: src/views/file/ListTable.vue:305 +#: src/views/file/ListTable.vue:764 msgid "Uncompress" msgstr "解压" -#: src/views/file/ListTable.vue:89 +#: src/views/file/ListTable.vue:91 #: src/views/file/ToolBar.vue:229 msgid "Paste" msgstr "粘贴" -#: src/views/file/ListTable.vue:279 -#: src/views/file/SearchModal.vue:88 +#: src/views/file/ListTable.vue:281 msgid "Are you sure you want to delete %{ name }?" msgstr "您确定要删除 %{ name } 吗?" -#: src/views/file/ListTable.vue:320 -#: src/views/file/ListTable.vue:335 -#: src/views/file/ListTable.vue:575 -#: src/views/file/ListTable.vue:588 +#: src/views/file/ListTable.vue:322 +#: src/views/file/ListTable.vue:337 +#: src/views/file/ListTable.vue:578 +#: src/views/file/ListTable.vue:591 #: src/views/file/ToolBar.vue:77 #: src/views/file/ToolBar.vue:94 msgid "Marked successfully, please navigate to the destination path to paste" msgstr "标记成功,请导航到目标路径进行粘贴" -#: src/views/file/ListTable.vue:412 -#: src/views/file/ListTable.vue:499 +#: src/views/file/ListTable.vue:415 +#: src/views/file/ListTable.vue:502 #: src/views/file/ToolBar.vue:128 msgid "Warning" msgstr "警告" -#: src/views/file/ListTable.vue:413 +#: src/views/file/ListTable.vue:416 msgid "There are items with the same name. Do you want to overwrite?" msgstr "存在同名项目。您要覆盖吗?" -#: src/views/file/ListTable.vue:414 -#: src/views/file/ListTable.vue:509 +#: src/views/file/ListTable.vue:417 +#: src/views/file/ListTable.vue:512 #: src/views/file/ToolBar.vue:138 msgid "Overwrite" msgstr "覆盖" -#: src/views/file/ListTable.vue:421 -#: src/views/file/ListTable.vue:437 +#: src/views/file/ListTable.vue:424 +#: src/views/file/ListTable.vue:440 msgid "Renamed %{ source } to %{ target } successfully" msgstr "成功将 %{ source } 重命名为 %{ target }" -#: src/views/file/ListTable.vue:459 +#: src/views/file/ListTable.vue:462 msgid "Uncompressing..." msgstr "解压中……" -#: src/views/file/ListTable.vue:466 +#: src/views/file/ListTable.vue:469 msgid "Uncompressed successfully" msgstr "解压成功" -#: src/views/file/ListTable.vue:475 +#: src/views/file/ListTable.vue:478 #: src/views/file/ToolBar.vue:104 msgid "Please mark the files/folders to copy or move first" msgstr "请先标记要复制或移动的文件/文件夹" -#: src/views/file/ListTable.vue:500 +#: src/views/file/ListTable.vue:503 #: src/views/file/ToolBar.vue:129 -msgid "There are items with the same name. %{ items } Do you want to overwrite?" -msgstr "存在同名项目。%{ items } 是否要覆盖?" +msgid "There are items with the same name %{ items } Do you want to overwrite?" +msgstr "存在同名项目 %{ items } 是否要覆盖?" -#: src/views/file/ListTable.vue:522 -#: src/views/file/ListTable.vue:542 +#: src/views/file/ListTable.vue:525 +#: src/views/file/ListTable.vue:545 #: src/views/file/ToolBar.vue:151 #: src/views/file/ToolBar.vue:171 msgid "Moved successfully" msgstr "移动成功" -#: src/views/file/ListTable.vue:528 +#: src/views/file/ListTable.vue:531 #: src/views/file/ToolBar.vue:157 msgid "Canceled" msgstr "已取消" -#: src/views/file/ListTable.vue:711 +#: src/views/file/ListTable.vue:734 msgid "Rename - %{ source }" msgstr "重命名 - %{ source }" -#: src/views/file/ListTable.vue:729 +#: src/views/file/ListTable.vue:752 msgid "Uncompress - %{ file }" msgstr "解压 - %{ file }" -#: src/views/file/ListTable.vue:737 +#: src/views/file/ListTable.vue:760 msgid "Uncompress to" msgstr "解压到" -#: src/views/file/PathInput.vue:154 +#: src/views/file/PathInput.vue:149 msgid "Enter search content" msgstr "输入搜索内容" -#: src/views/file/PathInput.vue:157 +#: src/views/file/PathInput.vue:152 msgid "Include subdirectories" msgstr "包括子目录" @@ -3332,14 +3314,6 @@ msgstr "其他" msgid "Preview - " msgstr "预览 - " -#: src/views/file/SearchModal.vue:71 -msgid "Copy Path" -msgstr "复制路径" - -#: src/views/file/SearchModal.vue:154 -msgid "%{ keyword } - Search Results" -msgstr "%{ keyword } - 搜索结果" - #: src/views/file/ToolBar.vue:60 msgid "Download task created successfully" msgstr "下载任务创建成功" @@ -3387,21 +3361,21 @@ msgid "For large files, it is recommended to use SFTP and other methods to uploa msgstr "对于大文件,建议使用 SFTP 等方法上传" #: src/views/firewall/CreateForwardModal.vue:50 -#: src/views/firewall/ForwardView.vue:166 +#: src/views/firewall/ForwardView.vue:163 msgid "Create Forwarding" msgstr "创建转发" #: src/views/firewall/CreateForwardModal.vue:58 #: src/views/firewall/CreateIpModal.vue:100 -#: src/views/firewall/CreateModal.vue:99 -#: src/views/firewall/ForwardView.vue:15 -#: src/views/firewall/IpRuleView.vue:15 -#: src/views/firewall/RuleView.vue:15 +#: src/views/firewall/CreateModal.vue:102 +#: src/views/firewall/ForwardView.vue:14 +#: src/views/firewall/IpRuleView.vue:14 +#: src/views/firewall/RuleView.vue:14 msgid "Transport Protocol" msgstr "传输协议" #: src/views/firewall/CreateForwardModal.vue:61 -#: src/views/firewall/ForwardView.vue:44 +#: src/views/firewall/ForwardView.vue:43 msgid "Target IP" msgstr "目标 IP" @@ -3410,61 +3384,61 @@ msgid "Source Port" msgstr "源端口" #: src/views/firewall/CreateForwardModal.vue:76 -#: src/views/firewall/ForwardView.vue:62 +#: src/views/firewall/ForwardView.vue:61 msgid "Target Port" msgstr "目标端口" #: src/views/firewall/CreateIpModal.vue:38 #: src/views/firewall/CreateModal.vue:38 -#: src/views/firewall/IpRuleView.vue:69 -#: src/views/firewall/RuleView.vue:103 +#: 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:71 -#: src/views/firewall/RuleView.vue:105 +#: 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:73 -#: src/views/firewall/RuleView.vue:107 +#: 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:98 -#: src/views/firewall/RuleView.vue:132 +#: 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:100 -#: src/views/firewall/RuleView.vue:134 +#: src/views/firewall/IpRuleView.vue:99 +#: src/views/firewall/RuleView.vue:133 msgid "Outbound" msgstr "出站" #: src/views/firewall/CreateIpModal.vue:81 -#: src/views/firewall/CreateModal.vue:80 +#: src/views/firewall/CreateModal.vue:83 msgid "%{ address } created successfully" msgstr "%{ address } 创建成功" #: src/views/firewall/CreateIpModal.vue:92 -#: src/views/firewall/CreateModal.vue:91 -#: src/views/firewall/IpRuleView.vue:208 -#: src/views/firewall/RuleView.vue:245 +#: src/views/firewall/CreateModal.vue:94 +#: 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:102 -#: src/views/firewall/IpRuleView.vue:32 -#: src/views/firewall/RuleView.vue:32 +#: src/views/firewall/CreateModal.vue:105 +#: src/views/firewall/IpRuleView.vue:31 +#: src/views/firewall/RuleView.vue:31 msgid "Network Protocol" msgstr "网络协议" @@ -3473,83 +3447,83 @@ msgid "IP Address" msgstr "IP 地址" #: src/views/firewall/CreateIpModal.vue:110 -#: src/views/firewall/CreateModal.vue:131 +#: src/views/firewall/CreateModal.vue:134 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:134 -#: src/views/firewall/IpRuleView.vue:49 -#: src/views/firewall/RuleView.vue:83 +#: src/views/firewall/CreateModal.vue:137 +#: 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:137 -#: src/views/firewall/IpRuleView.vue:85 -#: src/views/firewall/RuleView.vue:119 +#: src/views/firewall/CreateModal.vue:140 +#: src/views/firewall/IpRuleView.vue:84 +#: src/views/firewall/RuleView.vue:118 msgid "Direction" msgstr "方向" -#: src/views/firewall/CreateModal.vue:107 +#: src/views/firewall/CreateModal.vue:110 msgid "Start Port" msgstr "起始端口" -#: src/views/firewall/CreateModal.vue:117 +#: src/views/firewall/CreateModal.vue:120 msgid "End Port" msgstr "结束端口" -#: src/views/firewall/CreateModal.vue:127 -#: src/views/firewall/IpRuleView.vue:110 -#: src/views/firewall/RuleView.vue:144 +#: src/views/firewall/CreateModal.vue:130 +#: src/views/firewall/IpRuleView.vue:109 +#: src/views/firewall/RuleView.vue:143 msgid "Target" msgstr "目标" -#: src/views/firewall/ForwardView.vue:137 -#: src/views/firewall/IpRuleView.vue:179 -#: src/views/firewall/RuleView.vue:216 +#: 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:172 -#: src/views/firewall/IpRuleView.vue:214 -#: src/views/firewall/RuleView.vue:251 -#: src/views/website/IndexView.vue:389 +#: src/views/firewall/ForwardView.vue:168 +#: src/views/firewall/IpRuleView.vue:210 +#: src/views/firewall/RuleView.vue:247 +#: src/views/website/PhpView.vue:363 msgid "Batch Delete" msgstr "批量删除" -#: src/views/firewall/ForwardView.vue:175 -#: src/views/firewall/IpRuleView.vue:217 -#: src/views/firewall/RuleView.vue:254 +#: 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 "您确定要批量删除吗?" -#: src/views/firewall/IndexView.vue:19 +#: src/views/firewall/IndexView.vue:20 msgid "Port Rules" msgstr "端口规则" -#: src/views/firewall/IndexView.vue:22 +#: src/views/firewall/IndexView.vue:21 msgid "IP Rules" msgstr "IP 规则" -#: src/views/firewall/IndexView.vue:25 +#: src/views/firewall/IndexView.vue:22 msgid "Port Forwarding" msgstr "端口转发" -#: src/views/firewall/IpRuleView.vue:75 -#: src/views/firewall/RuleView.vue:109 +#: src/views/firewall/IpRuleView.vue:74 +#: src/views/firewall/RuleView.vue:108 msgid "Mark" msgstr "标记" -#: src/views/firewall/RuleView.vue:74 +#: src/views/firewall/RuleView.vue:73 msgid "In Use" msgstr "使用中" -#: src/views/firewall/RuleView.vue:76 +#: src/views/firewall/RuleView.vue:75 msgid "Not Used" msgstr "未使用" -#: src/views/firewall/RuleView.vue:151 +#: src/views/firewall/RuleView.vue:150 msgid "All" msgstr "所有" @@ -3652,31 +3626,31 @@ msgstr "每秒入流量" msgid "Operation successful" msgstr "操作成功" -#: src/views/monitor/IndexView.vue:451 -msgid "Clear Monitoring Records" -msgstr "清除监控记录" - -#: src/views/monitor/IndexView.vue:454 -#: src/views/website/EditView.vue:224 -msgid "Are you sure you want to clear?" -msgstr "确定要清除吗?" - -#: src/views/monitor/IndexView.vue:465 +#: src/views/monitor/IndexView.vue:450 msgid "Enable Monitoring" msgstr "启用监控" -#: src/views/monitor/IndexView.vue:468 +#: src/views/monitor/IndexView.vue:454 msgid "Save Days" msgstr "保存天数" -#: src/views/monitor/IndexView.vue:470 +#: src/views/monitor/IndexView.vue:456 msgid "days" msgstr "天" -#: src/views/monitor/IndexView.vue:476 +#: src/views/monitor/IndexView.vue:465 msgid "Time Selection" msgstr "时间选择" +#: src/views/monitor/IndexView.vue:474 +msgid "Clear Monitoring Records" +msgstr "清除监控记录" + +#: src/views/monitor/IndexView.vue:477 +#: src/views/website/EditView.vue:409 +msgid "Are you sure you want to clear?" +msgstr "确定要清除吗?" + #: src/views/setting/CreateModal.vue:44 msgid "Enter user name" msgstr "输入用户名" @@ -3690,20 +3664,20 @@ msgstr "输入用户密码" msgid "Enter user email" msgstr "输入用户邮箱" -#: src/views/setting/IndexView.vue:47 +#: src/views/setting/IndexView.vue:51 msgid "Panel is restarting, page will refresh in 3 seconds" msgstr "面板正在重启,页面将在 3 秒后刷新" -#: src/views/setting/IndexView.vue:73 +#: src/views/setting/IndexView.vue:68 msgid "Basic" msgstr "基本" -#: src/views/setting/IndexView.vue:76 +#: src/views/setting/IndexView.vue:69 msgid "Safe" msgstr "安全" #: src/views/setting/PasswordModal.vue:16 -#: src/views/setting/TokenModal.vue:183 +#: src/views/setting/TokenModal.vue:181 #: src/views/setting/TwoFaModal.vue:24 #: src/views/ssh/UpdateModal.vue:30 msgid "Updated successfully" @@ -3754,51 +3728,91 @@ msgstr "默认备份目录" msgid "/www/backup" msgstr "/www/backup" -#: src/views/setting/SettingSafe.vue:12 +#: src/views/setting/SettingSafe.vue:17 msgid "Login Timeout" msgstr "登录超时" -#: src/views/setting/SettingSafe.vue:15 +#: src/views/setting/SettingSafe.vue:22 +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:30 msgid "120" msgstr "120" -#: src/views/setting/SettingSafe.vue:21 +#: src/views/setting/SettingSafe.vue:36 #: src/views/website/ProxyBuilderModal.vue:188 msgid "minutes" msgstr "分钟" -#: src/views/setting/SettingSafe.vue:25 +#: src/views/setting/SettingSafe.vue:45 msgid "Access Entrance" msgstr "访问入口" -#: src/views/setting/SettingSafe.vue:26 -msgid "/admin" -msgstr "/admin" +#: src/views/setting/SettingSafe.vue:50 +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:28 +#: src/views/setting/SettingSafe.vue:63 +msgid "Request IP Header" +msgstr "请求 IP 头" + +#: src/views/setting/SettingSafe.vue:68 +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:74 +msgid "X-Real-IP" +msgstr "X-Real-IP" + +#: src/views/setting/SettingSafe.vue:81 msgid "Bind Domain" msgstr "绑定域名" -#: src/views/setting/SettingSafe.vue:35 +#: src/views/setting/SettingSafe.vue:86 +msgid "Restrict panel access to the specified domain names. Leave blank to allow access from any domain" +msgstr "限制面板访问为指定的域名。留空以允许来自任何域名的访问" + +#: src/views/setting/SettingSafe.vue:103 msgid "Bind IP" msgstr "绑定 IP" -#: src/views/setting/SettingSafe.vue:38 +#: src/views/setting/SettingSafe.vue:108 +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:121 msgid "Bind UA" msgstr "绑定 UA" -#: src/views/setting/SettingSafe.vue:45 +#: src/views/setting/SettingSafe.vue:126 +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:143 msgid "Offline Mode" msgstr "离线模式" -#: src/views/setting/SettingSafe.vue:48 +#: src/views/setting/SettingSafe.vue:148 +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:161 msgid "Auto Update" msgstr "自动更新" -#: src/views/setting/SettingSafe.vue:51 +#: src/views/setting/SettingSafe.vue:166 +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:179 msgid "Panel HTTPS" msgstr "面板 HTTPS" +#: src/views/setting/SettingSafe.vue:184 +msgid "Enable HTTPS for the panel to ensure secure communication. You need to provide a valid SSL certificate and private key" +msgstr "为面板启用 HTTPS 以确保安全通信。您需要提供有效的 SSL 证书和私钥" + #: src/views/setting/SettingUser.vue:53 msgid "2FA" msgstr "两步验证" @@ -3808,11 +3822,11 @@ msgid "Disabled successfully" msgstr "禁用成功" #: src/views/setting/SettingUser.vue:103 -#: src/views/setting/TokenModal.vue:204 +#: src/views/setting/TokenModal.vue:202 msgid "Access Tokens" msgstr "访问令牌" -#: src/views/setting/SettingUser.vue:131 +#: src/views/setting/SettingUser.vue:129 msgid "Are you sure you want to delete this user?" msgstr "您确定要删除该用户吗?" @@ -3820,43 +3834,43 @@ msgstr "您确定要删除该用户吗?" msgid "ID" msgstr "ID" -#: src/views/setting/TokenModal.vue:81 +#: src/views/setting/TokenModal.vue:80 msgid "Are you sure you want to delete this access token?" msgstr "您确定要删除此访问令牌吗?" -#: src/views/setting/TokenModal.vue:144 +#: src/views/setting/TokenModal.vue:142 msgid "Token is only displayed once, please save it before closing the dialog." msgstr "令牌只显示一次,请在关闭对话框前保存。" -#: src/views/setting/TokenModal.vue:161 +#: src/views/setting/TokenModal.vue:159 msgid "Copy and close" msgstr "复制并关闭" -#: src/views/setting/TokenModal.vue:168 +#: src/views/setting/TokenModal.vue:166 msgid "Copy failed" msgstr "复制失败" -#: src/views/setting/TokenModal.vue:214 -#: src/views/setting/TokenModal.vue:242 +#: src/views/setting/TokenModal.vue:212 +#: src/views/setting/TokenModal.vue:240 msgid "Create Access Token" msgstr "创建访问令牌" -#: src/views/setting/TokenModal.vue:251 -#: src/views/setting/TokenModal.vue:284 +#: src/views/setting/TokenModal.vue:249 +#: src/views/setting/TokenModal.vue:282 msgid "IP White List" msgstr "IP 白名单" -#: src/views/setting/TokenModal.vue:254 -#: src/views/setting/TokenModal.vue:287 +#: 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:262 -#: src/views/setting/TokenModal.vue:295 +#: src/views/setting/TokenModal.vue:260 +#: src/views/setting/TokenModal.vue:293 msgid "Please select the expiration time" msgstr "请选择到期时间" -#: src/views/setting/TokenModal.vue:275 +#: src/views/setting/TokenModal.vue:273 msgid "Modify Access Token" msgstr "修改访问令牌" @@ -3885,7 +3899,7 @@ msgid "Enter the code" msgstr "输入代码" #: src/views/ssh/CreateModal.vue:50 -#: src/views/ssh/IndexView.vue:231 +#: src/views/ssh/IndexView.vue:245 msgid "Create Host" msgstr "创建主机" @@ -3899,19 +3913,19 @@ msgstr "认证方式" msgid "Remarks" msgstr "备注" -#: src/views/ssh/IndexView.vue:43 +#: src/views/ssh/IndexView.vue:42 msgid "Please create a host first" msgstr "请先创建一个主机" -#: src/views/ssh/IndexView.vue:82 +#: src/views/ssh/IndexView.vue:81 msgid "Are you sure you want to delete this host?" msgstr "您确定要删除这个主机吗?" -#: src/views/ssh/IndexView.vue:162 +#: src/views/ssh/IndexView.vue:161 msgid "Connection closed. Please refresh." msgstr "连接已关闭。请刷新。" -#: src/views/ssh/IndexView.vue:167 +#: src/views/ssh/IndexView.vue:166 msgid "Connection error. Please refresh." msgstr "连接错误。请刷新。" @@ -3950,15 +3964,15 @@ msgstr "日志切割" #: src/views/task/CreateModal.vue:107 #: src/views/task/CreateModal.vue:108 #: src/views/task/CronView.vue:29 -#: src/views/task/CronView.vue:257 -#: src/views/task/CronView.vue:258 +#: src/views/task/CronView.vue:254 +#: src/views/task/CronView.vue:255 #: src/views/task/TaskView.vue:15 msgid "Task Name" msgstr "任务名称" #: src/views/task/CreateModal.vue:110 #: src/views/task/CronView.vue:73 -#: src/views/task/CronView.vue:260 +#: src/views/task/CronView.vue:257 msgid "Task Schedule" msgstr "任务计划" @@ -3966,19 +3980,19 @@ msgstr "任务计划" msgid "Script Content" msgstr "脚本内容" -#: src/views/task/CreateModal.vue:128 +#: src/views/task/CreateModal.vue:127 msgid "Backup Type" msgstr "备份类型" -#: src/views/task/CreateModal.vue:132 +#: src/views/task/CreateModal.vue:131 msgid "MySQL Database" msgstr "MySQL 数据库" -#: src/views/task/CreateModal.vue:135 +#: src/views/task/CreateModal.vue:134 msgid "PostgreSQL Database" msgstr "PostgreSQL 数据库" -#: src/views/task/CreateModal.vue:164 +#: src/views/task/CreateModal.vue:163 msgid "Retention Count" msgstr "保留数量" @@ -3990,26 +4004,26 @@ msgstr "已启用" msgid "Last Update Time" msgstr "最后更新时间" -#: src/views/task/CronView.vue:144 +#: src/views/task/CronView.vue:142 msgid "Are you sure you want to delete this task?" msgstr "您确定要删除此任务吗?" -#: src/views/task/CronView.vue:249 +#: src/views/task/CronView.vue:246 msgid "Edit Task" msgstr "编辑任务" -#: src/views/task/IndexView.vue:25 -msgid "Create Task" -msgstr "创建任务" - -#: src/views/task/IndexView.vue:32 +#: src/views/task/IndexView.vue:24 msgid "System Processes" msgstr "系统进程" -#: src/views/task/IndexView.vue:35 +#: src/views/task/IndexView.vue:25 msgid "Panel Tasks" msgstr "面板任务" +#: src/views/task/IndexView.vue:31 +msgid "Create Task" +msgstr "创建任务" + #: src/views/task/SystemView.vue:25 msgid "Parent PID" msgstr "父进程 PID" @@ -4067,12 +4081,12 @@ msgstr "失败" msgid "Completion Time" msgstr "完成时间" -#: src/views/task/TaskView.vue:136 +#: src/views/task/TaskView.vue:134 msgid "If logs cannot be loaded, please disable ad blockers!" msgstr "如果无法加载日志,请禁用广告拦截器!" #: src/views/toolbox/BenchmarkView.vue:12 -#: src/views/toolbox/BenchmarkView.vue:123 +#: src/views/toolbox/BenchmarkView.vue:117 msgid "CPU" msgstr "CPU" @@ -4084,129 +4098,137 @@ msgstr "CPU" #: src/views/toolbox/BenchmarkView.vue:55 #: src/views/toolbox/BenchmarkView.vue:58 #: src/views/toolbox/BenchmarkView.vue:59 -#: src/views/toolbox/BenchmarkView.vue:114 -#: src/views/toolbox/BenchmarkView.vue:179 -#: src/views/toolbox/BenchmarkView.vue:210 +#: src/views/toolbox/BenchmarkView.vue:113 +#: src/views/toolbox/BenchmarkView.vue:173 +#: src/views/toolbox/BenchmarkView.vue:199 msgid "Pending benchmark" msgstr "待跑分" -#: src/views/toolbox/BenchmarkView.vue:90 +#: 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 "跑分结果仅供参考,由于系统资源调度、缓存和其他因素,可能与实际性能有所不同!" -#: src/views/toolbox/BenchmarkView.vue:97 +#: src/views/toolbox/BenchmarkView.vue:96 msgid "Benchmarking in progress, it may take some time..." msgstr "跑分正在进行中,可能需要一些时间……" -#: src/views/toolbox/BenchmarkView.vue:100 +#: src/views/toolbox/BenchmarkView.vue:99 msgid "Current project: %{ current }" msgstr "当前项目:%{ current }" -#: src/views/toolbox/BenchmarkView.vue:128 +#: src/views/toolbox/BenchmarkView.vue:122 msgid "Image Processing" msgstr "图像处理" -#: src/views/toolbox/BenchmarkView.vue:134 +#: src/views/toolbox/BenchmarkView.vue:128 msgid "Machine Learning" msgstr "机器学习" -#: src/views/toolbox/BenchmarkView.vue:140 +#: src/views/toolbox/BenchmarkView.vue:134 msgid "Program Compilation" msgstr "程序编译" -#: src/views/toolbox/BenchmarkView.vue:146 +#: src/views/toolbox/BenchmarkView.vue:140 msgid "AES Encryption" msgstr "AES 加密" -#: src/views/toolbox/BenchmarkView.vue:152 +#: src/views/toolbox/BenchmarkView.vue:146 msgid "Compression/Decompression" msgstr "压缩/解压缩" -#: src/views/toolbox/BenchmarkView.vue:158 +#: src/views/toolbox/BenchmarkView.vue:152 msgid "Physics Simulation" msgstr "物理模拟" -#: src/views/toolbox/BenchmarkView.vue:164 +#: src/views/toolbox/BenchmarkView.vue:158 msgid "JSON Parsing" msgstr "JSON 解析" -#: src/views/toolbox/BenchmarkView.vue:193 +#: src/views/toolbox/BenchmarkView.vue:182 msgid "Memory Bandwidth" msgstr "内存带宽" -#: src/views/toolbox/BenchmarkView.vue:197 +#: src/views/toolbox/BenchmarkView.vue:186 msgid "Memory Latency" msgstr "内存延迟" -#: src/views/toolbox/BenchmarkView.vue:224 +#: src/views/toolbox/BenchmarkView.vue:208 msgid "4KB Read" msgstr "4KB 读取" -#: src/views/toolbox/BenchmarkView.vue:230 +#: src/views/toolbox/BenchmarkView.vue:214 msgid "4KB Write" msgstr "4KB 写入" -#: src/views/toolbox/BenchmarkView.vue:236 +#: src/views/toolbox/BenchmarkView.vue:220 msgid "64KB Read" msgstr "64KB 读取" -#: src/views/toolbox/BenchmarkView.vue:242 +#: src/views/toolbox/BenchmarkView.vue:226 msgid "64KB Write" msgstr "64KB 写入" -#: src/views/toolbox/BenchmarkView.vue:248 +#: src/views/toolbox/BenchmarkView.vue:232 msgid "1MB Read" msgstr "1MB 读取" -#: src/views/toolbox/BenchmarkView.vue:254 +#: src/views/toolbox/BenchmarkView.vue:238 msgid "1MB Write" msgstr "1MB 写入" -#: src/views/toolbox/BenchmarkView.vue:273 +#: src/views/toolbox/BenchmarkView.vue:257 msgid "Benchmarking..." msgstr "跑分中……" -#: src/views/toolbox/BenchmarkView.vue:273 +#: src/views/toolbox/BenchmarkView.vue:257 msgid "Start Benchmark" msgstr "开始跑分" -#: src/views/toolbox/SystemView.vue:125 +#: src/views/toolbox/IndexView.vue:18 +msgid "System" +msgstr "系统" + +#: src/views/toolbox/IndexView.vue:19 +msgid "Benchmark" +msgstr "跑分" + +#: src/views/toolbox/SystemView.vue:96 msgid "DNS modifications will revert to default after system restart." msgstr "DNS 修改将在系统重启后恢复为默认设置。" -#: src/views/toolbox/SystemView.vue:141 +#: src/views/toolbox/SystemView.vue:117 msgid "Total %{ total }, used %{ used }, free %{ free }" msgstr "总计 %{ total },已使用 %{ used },可用 %{ free }" -#: src/views/toolbox/SystemView.vue:159 +#: src/views/toolbox/SystemView.vue:139 msgid "Hostname" msgstr "主机名" -#: src/views/toolbox/SystemView.vue:177 +#: src/views/toolbox/SystemView.vue:142 +msgid "Hosts" +msgstr "Hosts" + +#: src/views/toolbox/SystemView.vue:160 msgid "Time" msgstr "时间" -#: src/views/toolbox/SystemView.vue:181 +#: src/views/toolbox/SystemView.vue:164 msgid "After manually changing the time, it may still be overwritten by system automatic time synchronization." msgstr "手动更改时间后,系统自动时间同步可能仍会覆盖设置。" -#: src/views/toolbox/SystemView.vue:187 +#: src/views/toolbox/SystemView.vue:170 msgid "Select Timezone" msgstr "选择时区" -#: src/views/toolbox/SystemView.vue:190 +#: src/views/toolbox/SystemView.vue:173 msgid "Please select a timezone" msgstr "请选择时区" -#: src/views/toolbox/SystemView.vue:194 +#: src/views/toolbox/SystemView.vue:177 msgid "Modify Time" msgstr "修改时间" -#: src/views/toolbox/SystemView.vue:197 -msgid "NTP Time Synchronization" -msgstr "NTP 时间同步" - -#: src/views/toolbox/SystemView.vue:199 +#: src/views/toolbox/SystemView.vue:186 msgid "Synchronize Time" msgstr "同步时间" @@ -4215,12 +4237,12 @@ msgid "The format is incorrect, please check" msgstr "格式不正确,请检查" #: src/views/website/BulkCreate.vue:59 -#: src/views/website/IndexView.vue:327 +#: src/views/website/PhpView.vue:302 msgid "Website %{ name } created successfully" msgstr "网站 %{ name } 创建成功" #: src/views/website/BulkCreate.vue:77 -#: src/views/website/IndexView.vue:400 +#: src/views/website/PhpView.vue:358 msgid "Bulk Create Website" msgstr "批量创建网站" @@ -4253,7 +4275,7 @@ msgid "Remark: The remark of the website, can be empty." msgstr "备注:网站的备注,可以为空。" #: src/views/website/EditView.vue:54 -#: src/views/website/IndexView.vue:241 +#: src/views/website/PhpView.vue:229 msgid "Not used" msgstr "未使用" @@ -4277,224 +4299,221 @@ msgstr "签发成功" msgid "The selected certificate is invalid" msgstr "所选证书无效" -#: src/views/website/EditView.vue:179 -msgid "If you modify the original text, other modifications will not take effect after clicking save!" -msgstr "如果修改原文,点击保存后其他修改将不会生效!" +#: src/views/website/EditView.vue:176 +msgid "Domain & Listening" +msgstr "域名和监听" -#: src/views/website/EditView.vue:188 -msgid "Reset Configuration" -msgstr "重置配置" +#: src/views/website/EditView.vue:186 +msgid "Listening Address" +msgstr "监听地址" -#: src/views/website/EditView.vue:191 -msgid "Are you sure you want to reset the configuration?" -msgstr "您确定要重置配置吗?" +#: src/views/website/EditView.vue:204 +msgid "Basic Settings" +msgstr "基本设置" -#: src/views/website/EditView.vue:200 +#: src/views/website/EditView.vue:206 +msgid "Website Directory" +msgstr "网站目录" + +#: src/views/website/EditView.vue:209 +msgid "Enter website directory (absolute path)" +msgstr "输入网站目录(绝对路径)" + +#: src/views/website/EditView.vue:212 +msgid "Running Directory" +msgstr "运行目录" + +#: src/views/website/EditView.vue:216 +msgid "Enter running directory (needed for Laravel etc.) (absolute path)" +msgstr "输入运行目录(Laravel等需要)(绝对路径)" + +#: src/views/website/EditView.vue:220 +msgid "Default Document" +msgstr "默认文档" + +#: src/views/website/EditView.vue:223 +#: src/views/website/PhpView.vue:443 +msgid "PHP Version" +msgstr "PHP 版本" + +#: src/views/website/EditView.vue:228 +#: src/views/website/PhpView.vue:447 +msgid "Select PHP Version" +msgstr "选择 PHP 版本" + +#: src/views/website/EditView.vue:233 +msgid "Anti-cross-site Attack (PHP)" +msgstr "防跨站攻击 (PHP)" + +#: src/views/website/EditView.vue:248 +msgid "One-click Certificate Issuance" +msgstr "一键签发证书" + +#: src/views/website/EditView.vue:251 +msgid "Certificate Information" +msgstr "证书信息" + +#: src/views/website/EditView.vue:253 +msgid "Certificate Validity" +msgstr "证书有效期" + +#: src/views/website/EditView.vue:267 +msgid "Domains" +msgstr "域名" + +#: src/views/website/EditView.vue:282 +msgid "Main Switch" +msgstr "主开关" + +#: src/views/website/EditView.vue:288 +msgid "Use Existing Certificate" +msgstr "使用现有证书" + +#: src/views/website/EditView.vue:302 +msgid "HTTP Redirect" +msgstr "HTTP 重定向" + +#: src/views/website/EditView.vue:305 +msgid "OCSP Stapling" +msgstr "OCSP 装订" + +#: src/views/website/EditView.vue:330 +msgid "Rewrite" +msgstr "伪静态" + +#: src/views/website/EditView.vue:333 #: src/views/website/ProxyBuilderModal.vue:123 msgid "Generate Reverse Proxy Configuration" msgstr "生成反向代理配置" -#: src/views/website/EditView.vue:211 -msgid "One-click Certificate Issuance" -msgstr "一键签发证书" - -#: src/views/website/EditView.vue:221 -msgid "Clear Logs" -msgstr "清除日志" - -#: src/views/website/EditView.vue:230 -msgid "Domain & Listening" -msgstr "域名和监听" - -#: src/views/website/EditView.vue:240 -msgid "Listening Address" -msgstr "监听地址" - -#: src/views/website/EditView.vue:258 -msgid "Basic Settings" -msgstr "基本设置" - -#: src/views/website/EditView.vue:260 -msgid "Website Directory" -msgstr "网站目录" - -#: src/views/website/EditView.vue:263 -msgid "Enter website directory (absolute path)" -msgstr "输入网站目录(绝对路径)" - -#: src/views/website/EditView.vue:266 -msgid "Running Directory" -msgstr "运行目录" - -#: src/views/website/EditView.vue:270 -msgid "Enter running directory (needed for Laravel etc.) (absolute path)" -msgstr "输入运行目录(Laravel等需要)(绝对路径)" - -#: src/views/website/EditView.vue:274 -msgid "Default Document" -msgstr "默认文档" - -#: src/views/website/EditView.vue:277 -#: src/views/website/IndexView.vue:480 -msgid "PHP Version" -msgstr "PHP 版本" - -#: src/views/website/EditView.vue:282 -#: src/views/website/IndexView.vue:484 -msgid "Select PHP Version" -msgstr "选择 PHP 版本" - -#: src/views/website/EditView.vue:287 -msgid "Anti-cross-site Attack (PHP)" -msgstr "防跨站攻击 (PHP)" - -#: src/views/website/EditView.vue:296 -msgid "Certificate Information" -msgstr "证书信息" - -#: src/views/website/EditView.vue:298 -msgid "Certificate Validity" -msgstr "证书有效期" - -#: src/views/website/EditView.vue:312 -msgid "Domains" -msgstr "域名" - -#: src/views/website/EditView.vue:327 -msgid "Main Switch" -msgstr "主开关" - -#: src/views/website/EditView.vue:333 -msgid "Use Existing Certificate" -msgstr "使用现有证书" - -#: src/views/website/EditView.vue:347 -msgid "HTTP Redirect" -msgstr "HTTP 重定向" - -#: src/views/website/EditView.vue:350 -msgid "OCSP Stapling" -msgstr "OCSP 装订" - -#: src/views/website/EditView.vue:375 -msgid "Rewrite" -msgstr "伪静态" - -#: src/views/website/EditView.vue:378 +#: src/views/website/EditView.vue:336 msgid "Presets" msgstr "预设" -#: src/views/website/EditView.vue:405 +#: src/views/website/EditView.vue:362 +msgid "If you modify the original text, other modifications will not take effect after clicking save!" +msgstr "如果修改原文,点击保存后其他修改将不会生效!" + +#: src/views/website/EditView.vue:369 msgid "If you do not understand the configuration rules, please do not modify them arbitrarily, otherwise it may cause the website to be inaccessible or panel function abnormalities! If you have already encountered a problem, try resetting the configuration!" msgstr "如果您不了解配置规则,请不要随意修改,否则可能导致网站无法访问或面板功能异常!如果您已经遇到问题,请尝试重置配置!" -#: src/views/website/EditView.vue:424 +#: src/views/website/EditView.vue:377 +msgid "Reset Configuration" +msgstr "重置配置" + +#: src/views/website/EditView.vue:380 +msgid "Are you sure you want to reset the configuration?" +msgstr "您确定要重置配置吗?" + +#: src/views/website/EditView.vue:395 msgid "Access Log" msgstr "访问日志" -#: src/views/website/EditView.vue:428 -#: src/views/website/EditView.vue:440 +#: src/views/website/EditView.vue:399 +#: src/views/website/EditView.vue:419 msgid "All logs can be viewed by downloading the file" msgstr "所有日志可通过下载文件查看" -#: src/views/website/EditView.vue:430 -#: src/views/website/EditView.vue:442 +#: src/views/website/EditView.vue:401 +#: src/views/website/EditView.vue:421 msgid "view" msgstr "查看" -#: src/views/website/EditView.vue:436 +#: src/views/website/EditView.vue:406 +msgid "Clear Logs" +msgstr "清除日志" + +#: src/views/website/EditView.vue:415 msgid "Error Log" msgstr "错误日志" -#: src/views/website/IndexView.vue:24 -#: src/views/website/IndexView.vue:443 +#: src/views/website/IndexView.vue:16 +msgid "Reverse Proxy" +msgstr "反向代理" + +#: src/views/website/IndexView.vue:17 +msgid "Classic PHP" +msgstr "经典 PHP" + +#: src/views/website/IndexView.vue:18 +msgid "Pure Static" +msgstr "纯静态" + +#: src/views/website/PhpView.vue:19 +#: src/views/website/PhpView.vue:406 msgid "Website Name" msgstr "网站名称" -#: src/views/website/IndexView.vue:77 +#: src/views/website/PhpView.vue:72 msgid "Certificate expiration" msgstr "证书有效期" -#: src/views/website/IndexView.vue:91 +#: src/views/website/PhpView.vue:86 msgid "Not configured" msgstr "未配置" -#: src/views/website/IndexView.vue:94 +#: src/views/website/PhpView.vue:89 msgid "Expired %{ days } days ago" msgstr "%{ days } 天前过期" -#: src/views/website/IndexView.vue:99 +#: src/views/website/PhpView.vue:94 msgid "Expires in %{ days } days" msgstr "%{ days } 天后过期" -#: src/views/website/IndexView.vue:109 -#: src/views/website/IndexView.vue:561 -#: src/views/website/IndexView.vue:566 +#: src/views/website/PhpView.vue:104 +#: src/views/website/PhpView.vue:524 +#: src/views/website/PhpView.vue:529 msgid "Remark" msgstr "备注" -#: src/views/website/IndexView.vue:165 +#: src/views/website/PhpView.vue:159 msgid "Are you sure you want to delete website %{ name }?" msgstr "您确定要删除网站 %{ name } 吗?" -#: src/views/website/IndexView.vue:176 +#: src/views/website/PhpView.vue:170 msgid "Delete website directory" msgstr "删除网站目录" -#: src/views/website/IndexView.vue:184 +#: src/views/website/PhpView.vue:178 msgid "Delete local database with the same name" msgstr "删除同名的本地数据库" -#: src/views/website/IndexView.vue:348 +#: src/views/website/PhpView.vue:323 msgid "Please select the websites to delete" msgstr "请选择要删除的网站" -#: src/views/website/IndexView.vue:383 -#: src/views/website/IndexView.vue:577 -msgid "Modify Default Page" -msgstr "修改默认页面" - -#: src/views/website/IndexView.vue:393 -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/IndexView.vue:404 -#: src/views/website/IndexView.vue:434 +#: src/views/website/PhpView.vue:355 +#: src/views/website/PhpView.vue:397 msgid "Create Website" msgstr "创建网站" -#: src/views/website/IndexView.vue:449 +#: src/views/website/PhpView.vue:367 +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/PhpView.vue:412 msgid "Recommended to use English for the website name, it cannot be modified after setting" msgstr "建议使用英文作为网站名称,设置后无法修改" -#: src/views/website/IndexView.vue:496 +#: src/views/website/PhpView.vue:459 msgid "Select Database" msgstr "选择数据库" -#: src/views/website/IndexView.vue:524 -#: src/views/website/IndexView.vue:529 +#: src/views/website/PhpView.vue:487 +#: src/views/website/PhpView.vue:492 msgid "Database User" msgstr "数据库用户" -#: src/views/website/IndexView.vue:538 -#: src/views/website/IndexView.vue:544 +#: src/views/website/PhpView.vue:501 +#: src/views/website/PhpView.vue:507 msgid "Database Password" msgstr "数据库密码" -#: src/views/website/IndexView.vue:555 +#: src/views/website/PhpView.vue:518 msgid "Website root directory (if left empty, defaults to website directory/website name)" msgstr "网站根目录(如果留空,默认为网站目录/网站名称)" -#: src/views/website/IndexView.vue:585 -#: src/views/website/IndexView.vue:585 -msgid "Default Page" -msgstr "默认页面" - -#: src/views/website/IndexView.vue:599 -#: src/views/website/IndexView.vue:599 -msgid "Stop Page" -msgstr "停止页面" - #: src/views/website/ProxyBuilderModal.vue:24 msgid "Disabled buffer and enabled cache cannot be used simultaneously" msgstr "禁用缓冲区和启用缓存不能同时使用" @@ -4603,3 +4622,35 @@ msgstr "目标内容" msgid "Replacement content" msgstr "替换内容" +#: src/views/website/SettingView.vue:40 +msgid "Default Page" +msgstr "默认页面" + +#: src/views/website/SettingView.vue:60 +msgid "404 Page" +msgstr "404 页面" + +#: src/views/website/SettingView.vue:80 +msgid "Stop Page" +msgstr "停止页面" + +#: src/views/website/SettingView.vue:100 +msgid "Default Site" +msgstr "默认网站" + +#: src/views/website/SettingView.vue:103 +msgid "Default Settings" +msgstr "默认设置" + +#: src/views/website/SettingView.vue:105 +msgid "Default TLS Version" +msgstr "默认 TLS 版本" + +#: src/views/website/SettingView.vue:117 +msgid "Default Cipher Suites" +msgstr "默认密码套件" + +#: src/views/website/SettingView.vue:122 +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 c2cd45e4..1b82535b 100644 --- a/web/src/locales/zh_TW.po +++ b/web/src/locales/zh_TW.po @@ -10,10 +10,10 @@ msgstr "" "Project-Id-Version: acepanel\n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" -"PO-Revision-Date: 2025-08-22 09:01\n" +"PO-Revision-Date: 2025-10-10 19:57\n" #: src/components/common/AppFooter.vue:13 -#: src/views/dashboard/IndexView.vue:439 +#: src/views/dashboard/IndexView.vue:440 msgid "AcePanel" msgstr "AcePanel" @@ -48,33 +48,33 @@ msgstr "當前狀態無法保存" #: src/components/common/CodeEditor.vue:40 #: src/views/apps/codeserver/IndexView.vue:24 #: src/views/apps/docker/IndexView.vue:24 -#: src/views/apps/fail2ban/IndexView.vue:164 +#: src/views/apps/fail2ban/IndexView.vue:160 #: src/views/apps/frp/IndexView.vue:28 #: src/views/apps/gitea/IndexView.vue:22 #: src/views/apps/memcached/IndexView.vue:44 #: src/views/apps/minio/IndexView.vue:22 #: src/views/apps/mysql/IndexView.vue:47 #: src/views/apps/nginx/IndexView.vue:44 -#: src/views/apps/php/PhpView.vue:146 -#: src/views/apps/php/PhpView.vue:152 +#: src/views/apps/php/PhpView.vue:143 +#: src/views/apps/php/PhpView.vue:149 #: src/views/apps/phpmyadmin/IndexView.vue:37 #: src/views/apps/phpmyadmin/IndexView.vue:44 #: src/views/apps/podman/IndexView.vue:26 #: src/views/apps/podman/IndexView.vue:32 #: src/views/apps/postgresql/IndexView.vue:47 #: src/views/apps/postgresql/IndexView.vue:52 -#: src/views/apps/pureftpd/IndexView.vue:117 +#: src/views/apps/pureftpd/IndexView.vue:115 #: src/views/apps/redis/IndexView.vue:41 -#: src/views/apps/rsync/IndexView.vue:136 -#: src/views/apps/rsync/IndexView.vue:180 -#: src/views/apps/supervisor/IndexView.vue:227 -#: src/views/apps/supervisor/IndexView.vue:292 -#: src/views/setting/IndexView.vue:44 -#: src/views/toolbox/SystemView.vue:51 -#: src/views/toolbox/SystemView.vue:57 -#: src/views/toolbox/SystemView.vue:66 -#: src/views/toolbox/SystemView.vue:72 -#: src/views/toolbox/SystemView.vue:81 +#: src/views/apps/rsync/IndexView.vue:134 +#: src/views/apps/rsync/IndexView.vue:178 +#: src/views/apps/supervisor/IndexView.vue:220 +#: src/views/apps/supervisor/IndexView.vue:285 +#: src/views/setting/IndexView.vue:48 +#: src/views/toolbox/SystemView.vue:50 +#: src/views/toolbox/SystemView.vue:56 +#: src/views/toolbox/SystemView.vue:65 +#: src/views/toolbox/SystemView.vue:71 +#: src/views/toolbox/SystemView.vue:80 #: src/views/website/EditView.vue:115 msgid "Saved successfully" msgstr "儲存成功" @@ -88,20 +88,19 @@ msgid "Select File" msgstr "選擇文件" #: src/components/common/PathSelector.vue:42 -#: src/components/common/PathSelector.vue:331 -#: src/views/apps/fail2ban/IndexView.vue:38 +#: src/components/common/PathSelector.vue:332 +#: src/views/apps/fail2ban/IndexView.vue:37 #: src/views/apps/rsync/IndexView.vue:40 -#: src/views/apps/rsync/IndexView.vue:280 -#: src/views/apps/supervisor/IndexView.vue:48 -#: src/views/apps/supervisor/IndexView.vue:399 +#: src/views/apps/rsync/IndexView.vue:267 +#: src/views/apps/supervisor/IndexView.vue:47 +#: src/views/apps/supervisor/IndexView.vue:384 #: src/views/container/ComposeView.vue:31 #: src/views/container/NetworkView.vue:45 #: src/views/container/VolumeView.vue:26 #: src/views/database/CreateServerModal.vue:55 -#: src/views/database/ServerList.vue:40 +#: src/views/database/ServerList.vue:39 #: src/views/database/UpdateServerModal.vue:55 -#: src/views/file/ListTable.vue:103 -#: src/views/file/SearchModal.vue:20 +#: src/views/file/ListTable.vue:105 #: src/views/file/ToolBar.vue:257 #: src/views/ssh/CreateModal.vue:57 #: src/views/ssh/UpdateModal.vue:63 @@ -114,39 +113,37 @@ msgid "Permissions" msgstr "權限" #: src/components/common/PathSelector.vue:95 -#: src/views/file/ListTable.vue:157 +#: src/views/file/ListTable.vue:159 msgid "Owner / Group" msgstr "所有者 / 群組" #: src/components/common/PathSelector.vue:107 -#: src/views/backup/ListView.vue:43 +#: src/views/backup/ListView.vue:42 #: src/views/container/ImageView.vue:53 -#: src/views/file/ListTable.vue:169 -#: src/views/file/SearchModal.vue:28 +#: src/views/file/ListTable.vue:171 msgid "Size" msgstr "大小" #: src/components/common/PathSelector.vue:115 -#: src/views/file/ListTable.vue:177 -#: src/views/file/SearchModal.vue:36 +#: src/views/file/ListTable.vue:179 msgid "Modification Time" msgstr "修改時間" -#: src/components/common/PathSelector.vue:148 -#: src/views/file/ListTable.vue:456 -#: src/views/file/PathInput.vue:33 +#: src/components/common/PathSelector.vue:149 +#: src/views/file/ListTable.vue:459 +#: src/views/file/PathInput.vue:28 msgid "Invalid path" msgstr "無效路徑" -#: src/components/common/PathSelector.vue:208 -#: src/views/file/ListTable.vue:405 +#: src/components/common/PathSelector.vue:209 +#: src/views/file/ListTable.vue:408 #: src/views/file/ToolBar.vue:37 #: src/views/file/ToolBar.vue:51 msgid "Invalid name" msgstr "無效的名稱" -#: src/components/common/PathSelector.vue:216 -#: src/views/backup/ListView.vue:125 +#: src/components/common/PathSelector.vue:217 +#: src/views/backup/ListView.vue:122 #: src/views/cert/CreateAccountModal.vue:52 #: src/views/cert/CreateCertModal.vue:50 #: src/views/cert/CreateDnsModal.vue:35 @@ -160,45 +157,45 @@ msgstr "無效的名稱" #: src/views/file/ToolBar.vue:45 #: src/views/firewall/CreateForwardModal.vue:41 #: src/views/setting/CreateModal.vue:19 -#: src/views/setting/TokenModal.vue:127 +#: src/views/setting/TokenModal.vue:125 #: src/views/ssh/CreateModal.vue:38 #: src/views/task/CreateModal.vue:51 msgid "Created successfully" msgstr "創建成功" -#: src/components/common/PathSelector.vue:255 +#: src/components/common/PathSelector.vue:256 #: src/views/file/ToolBar.vue:214 msgid "File" msgstr "文件" -#: src/components/common/PathSelector.vue:256 +#: src/components/common/PathSelector.vue:257 #: src/views/file/ToolBar.vue:215 msgid "Folder" msgstr "文件夾" -#: src/components/common/PathSelector.vue:260 -#: src/components/common/PathSelector.vue:323 -#: src/views/setting/TokenModal.vue:268 +#: src/components/common/PathSelector.vue:261 +#: src/components/common/PathSelector.vue:324 +#: src/views/setting/TokenModal.vue:266 #: src/views/website/BulkCreate.vue:127 -#: src/views/website/IndexView.vue:571 +#: src/views/website/PhpView.vue:534 msgid "Create" msgstr "創建" -#: src/components/common/PathSelector.vue:269 -#: src/views/file/PathInput.vue:133 +#: src/components/common/PathSelector.vue:270 +#: src/views/file/PathInput.vue:128 msgid "Root Directory" msgstr "根目錄" -#: src/components/common/PathSelector.vue:335 +#: src/components/common/PathSelector.vue:336 #: src/views/app/VersionModal.vue:97 -#: src/views/apps/fail2ban/IndexView.vue:375 -#: src/views/apps/pureftpd/IndexView.vue:249 -#: src/views/apps/pureftpd/IndexView.vue:271 -#: src/views/apps/rsync/IndexView.vue:329 -#: src/views/apps/s3fs/IndexView.vue:184 -#: src/views/apps/supervisor/IndexView.vue:435 -#: src/views/backup/ListView.vue:244 -#: src/views/backup/ListView.vue:268 +#: src/views/apps/fail2ban/IndexView.vue:368 +#: src/views/apps/pureftpd/IndexView.vue:242 +#: src/views/apps/pureftpd/IndexView.vue:264 +#: src/views/apps/rsync/IndexView.vue:316 +#: src/views/apps/s3fs/IndexView.vue:181 +#: src/views/apps/supervisor/IndexView.vue:420 +#: src/views/backup/ListView.vue:256 +#: src/views/backup/ListView.vue:280 #: src/views/cert/AccountView.vue:268 #: src/views/cert/CertView.vue:535 #: src/views/cert/CertView.vue:559 @@ -211,7 +208,7 @@ msgstr "根目錄" #: src/views/container/ComposeView.vue:348 #: src/views/container/ComposeView.vue:378 #: src/views/container/ContainerCreate.vue:371 -#: src/views/container/ContainerView.vue:485 +#: src/views/container/ContainerView.vue:484 #: src/views/container/ImageView.vue:217 #: src/views/container/NetworkView.vue:313 #: src/views/container/VolumeView.vue:213 @@ -224,13 +221,13 @@ msgstr "根目錄" #: src/views/file/ToolBar.vue:282 #: src/views/firewall/CreateForwardModal.vue:88 #: src/views/firewall/CreateIpModal.vue:121 -#: src/views/firewall/CreateModal.vue:142 +#: src/views/firewall/CreateModal.vue:145 #: src/views/setting/CreateModal.vue:64 #: src/views/setting/PasswordModal.vue:44 #: src/views/setting/TwoFaModal.vue:87 #: src/views/ssh/CreateModal.vue:99 #: src/views/ssh/UpdateModal.vue:105 -#: src/views/task/CreateModal.vue:171 +#: src/views/task/CreateModal.vue:170 #: src/views/website/ProxyBuilderModal.vue:201 msgid "Submit" msgstr "提交" @@ -245,7 +242,7 @@ msgid "Failed to get log stream" msgstr "獲取日誌流失敗" #: src/components/common/RealtimeLogModal.vue:67 -#: src/views/apps/supervisor/IndexView.vue:91 +#: src/views/apps/supervisor/IndexView.vue:90 #: src/views/container/ContainerView.vue:106 #: src/views/container/ContainerView.vue:446 #: src/views/task/CronView.vue:120 @@ -254,19 +251,19 @@ msgid "Logs" msgstr "日誌" #: src/components/common/ServiceStatus.vue:25 -#: src/views/dashboard/IndexView.vue:733 -#: src/views/dashboard/IndexView.vue:741 -#: src/views/dashboard/IndexView.vue:748 -#: src/views/dashboard/IndexView.vue:754 -#: src/views/dashboard/IndexView.vue:765 -#: src/views/dashboard/IndexView.vue:777 +#: src/views/dashboard/IndexView.vue:730 +#: src/views/dashboard/IndexView.vue:738 +#: src/views/dashboard/IndexView.vue:745 +#: src/views/dashboard/IndexView.vue:751 +#: src/views/dashboard/IndexView.vue:762 +#: src/views/dashboard/IndexView.vue:774 msgid "Loading..." msgstr "載入中……" #: src/components/common/ServiceStatus.vue:26 #: src/views/task/SystemView.vue:50 #: src/views/task/TaskView.vue:33 -#: src/views/website/IndexView.vue:31 +#: src/views/website/PhpView.vue:26 msgid "Running" msgstr "運行中" @@ -281,8 +278,8 @@ msgid "Starting..." msgstr "正在啟動……" #: src/components/common/ServiceStatus.vue:48 -#: src/views/apps/supervisor/IndexView.vue:248 -#: src/views/website/IndexView.vue:271 +#: src/views/apps/supervisor/IndexView.vue:241 +#: src/views/website/PhpView.vue:259 msgid "Started successfully" msgstr "啟動成功" @@ -292,8 +289,8 @@ msgid "Stopping..." msgstr "停止中..." #: src/components/common/ServiceStatus.vue:63 -#: src/views/apps/supervisor/IndexView.vue:255 -#: src/views/website/IndexView.vue:273 +#: src/views/apps/supervisor/IndexView.vue:248 +#: src/views/website/PhpView.vue:261 msgid "Stopped successfully" msgstr "停止成功" @@ -302,7 +299,7 @@ msgid "Restarting..." msgstr "重啟中..." #: src/components/common/ServiceStatus.vue:78 -#: src/views/apps/supervisor/IndexView.vue:262 +#: src/views/apps/supervisor/IndexView.vue:255 msgid "Restarted successfully" msgstr "重啟成功" @@ -327,21 +324,21 @@ msgid "Autostart disabled successfully" msgstr "自啟動已成功禁用" #: src/components/common/ServiceStatus.vue:134 -#: src/views/apps/codeserver/IndexView.vue:43 -#: src/views/apps/docker/IndexView.vue:43 -#: src/views/apps/fail2ban/IndexView.vue:252 -#: src/views/apps/gitea/IndexView.vue:41 -#: src/views/apps/memcached/IndexView.vue:63 -#: src/views/apps/minio/IndexView.vue:36 -#: src/views/apps/mysql/IndexView.vue:101 -#: src/views/apps/nginx/IndexView.vue:78 -#: src/views/apps/php/PhpView.vue:225 -#: src/views/apps/podman/IndexView.vue:60 -#: src/views/apps/postgresql/IndexView.vue:88 -#: src/views/apps/pureftpd/IndexView.vue:175 -#: src/views/apps/redis/IndexView.vue:60 -#: src/views/apps/rsync/IndexView.vue:214 -#: src/views/apps/supervisor/IndexView.vue:330 +#: src/views/apps/codeserver/IndexView.vue:32 +#: src/views/apps/docker/IndexView.vue:32 +#: src/views/apps/fail2ban/IndexView.vue:228 +#: src/views/apps/gitea/IndexView.vue:30 +#: src/views/apps/memcached/IndexView.vue:52 +#: src/views/apps/minio/IndexView.vue:30 +#: src/views/apps/mysql/IndexView.vue:72 +#: src/views/apps/nginx/IndexView.vue:58 +#: src/views/apps/php/PhpView.vue:181 +#: src/views/apps/podman/IndexView.vue:40 +#: src/views/apps/postgresql/IndexView.vue:64 +#: src/views/apps/pureftpd/IndexView.vue:158 +#: src/views/apps/redis/IndexView.vue:49 +#: src/views/apps/rsync/IndexView.vue:192 +#: src/views/apps/supervisor/IndexView.vue:299 #: src/views/container/ContainerView.vue:84 msgid "Running Status" msgstr "運行狀態" @@ -354,35 +351,35 @@ msgstr "自啟動開啟" msgid "Autostart Off" msgstr "自動啟動關閉" -#: src/components/common/ServiceStatus.vue:152 -#: src/views/apps/supervisor/IndexView.vue:119 +#: src/components/common/ServiceStatus.vue:151 +#: src/views/apps/supervisor/IndexView.vue:116 #: src/views/container/ComposeView.vue:158 #: src/views/container/ContainerView.vue:130 #: src/views/container/ContainerView.vue:412 msgid "Start" msgstr "開始" -#: src/components/common/ServiceStatus.vue:158 -#: src/views/apps/supervisor/IndexView.vue:145 +#: src/components/common/ServiceStatus.vue:156 +#: src/views/apps/supervisor/IndexView.vue:141 #: src/views/container/ComposeView.vue:197 #: src/views/container/ContainerView.vue:135 #: src/views/container/ContainerView.vue:413 msgid "Stop" msgstr "停止" -#: src/components/common/ServiceStatus.vue:161 +#: src/components/common/ServiceStatus.vue:159 msgid "Are you sure you want to stop %{ service }?" msgstr "您確定要停止 %{ service } 嗎?" -#: src/components/common/ServiceStatus.vue:165 -#: src/views/apps/supervisor/IndexView.vue:174 +#: src/components/common/ServiceStatus.vue:162 +#: src/views/apps/supervisor/IndexView.vue:169 #: src/views/container/ContainerView.vue:140 #: src/views/container/ContainerView.vue:414 -#: src/views/dashboard/IndexView.vue:447 +#: src/views/dashboard/IndexView.vue:448 msgid "Restart" msgstr "重啟" -#: src/components/common/ServiceStatus.vue:174 +#: src/components/common/ServiceStatus.vue:170 #: src/layout/tab/components/ContextMenu.vue:34 msgid "Reload" msgstr "重載" @@ -403,15 +400,11 @@ msgstr "刷新標籤頁" msgid "Switch Theme" msgstr "切換主題" -#: src/layout/header/components/ThemeSetting.vue:19 -msgid "Set Theme Color" -msgstr "設置主題顏色" - #: src/layout/header/components/UserAvatar.vue:13 #: src/views/apps/pureftpd/IndexView.vue:65 -#: src/views/apps/pureftpd/IndexView.vue:256 +#: src/views/apps/pureftpd/IndexView.vue:249 #: src/views/setting/PasswordModal.vue:26 -#: src/views/setting/SettingUser.vue:119 +#: src/views/setting/SettingUser.vue:118 msgid "Change Password" msgstr "更改密碼" @@ -429,14 +422,14 @@ msgstr "提示" #: src/layout/header/components/UserAvatar.vue:29 #: src/views/dashboard/UpdateView.vue:26 -#: src/views/monitor/IndexView.vue:474 +#: src/views/monitor/IndexView.vue:460 msgid "Confirm" msgstr "確認" #: src/layout/header/components/UserAvatar.vue:30 #: src/views/dashboard/UpdateView.vue:27 -#: src/views/file/ListTable.vue:415 -#: src/views/file/ListTable.vue:510 +#: src/views/file/ListTable.vue:418 +#: src/views/file/ListTable.vue:513 #: src/views/file/ToolBar.vue:139 #: src/views/file/ToolBar.vue:226 msgid "Cancel" @@ -448,10 +441,10 @@ msgstr "成功登出!" #: src/layout/header/components/UserAvatar.vue:48 #: src/views/cert/DnsView.vue:56 -#: src/views/firewall/IpRuleView.vue:77 -#: src/views/firewall/IpRuleView.vue:102 -#: src/views/firewall/RuleView.vue:111 -#: src/views/firewall/RuleView.vue:136 +#: src/views/firewall/IpRuleView.vue:76 +#: src/views/firewall/IpRuleView.vue:101 +#: src/views/firewall/RuleView.vue:110 +#: src/views/firewall/RuleView.vue:135 msgid "Unknown" msgstr "未知" @@ -512,8 +505,8 @@ msgstr "備份" #: src/views/cert/CertView.vue:497 #: src/views/cert/CertView.vue:574 #: src/views/cert/UploadCertModal.vue:38 -#: src/views/setting/SettingSafe.vue:54 -#: src/views/website/EditView.vue:355 +#: src/views/setting/SettingSafe.vue:192 +#: src/views/website/EditView.vue:310 msgid "Certificate" msgstr "證書" @@ -526,17 +519,17 @@ msgid "Dashboard" msgstr "儀表板" #: src/locales/menu.ts:12 -#: src/views/app/IndexView.vue:96 -#: src/views/dashboard/IndexView.vue:451 -#: src/views/setting/TokenModal.vue:301 +#: src/views/app/IndexView.vue:94 +#: src/views/dashboard/IndexView.vue:452 +#: src/views/setting/TokenModal.vue:299 msgid "Update" msgstr "更新" #: src/locales/menu.ts:13 -#: src/views/backup/ListView.vue:264 -#: src/views/dashboard/IndexView.vue:425 -#: src/views/database/IndexView.vue:45 -#: src/views/website/IndexView.vue:492 +#: src/views/backup/ListView.vue:276 +#: src/views/dashboard/IndexView.vue:426 +#: src/views/database/IndexView.vue:27 +#: src/views/website/PhpView.vue:455 msgid "Database" msgstr "數據庫" @@ -553,7 +546,8 @@ msgid "Monitoring" msgstr "監控" #: src/locales/menu.ts:17 -#: src/views/firewall/IndexView.vue:28 +#: src/views/firewall/IndexView.vue:23 +#: src/views/website/IndexView.vue:19 msgid "Settings" msgstr "設置" @@ -570,47 +564,39 @@ msgid "Toolbox" msgstr "工具箱" #: src/locales/menu.ts:21 -msgid "System" -msgstr "系統" - -#: src/locales/menu.ts:22 -msgid "Benchmark" -msgstr "跑分" - -#: src/locales/menu.ts:23 -#: src/views/apps/fail2ban/IndexView.vue:322 +#: src/views/apps/fail2ban/IndexView.vue:315 #: src/views/backup/IndexView.vue:37 -#: src/views/backup/ListView.vue:220 -#: src/views/backup/ListView.vue:257 +#: src/views/backup/ListView.vue:232 +#: src/views/backup/ListView.vue:269 #: src/views/cert/CertView.vue:466 #: src/views/cert/CertView.vue:549 #: src/views/cert/CreateCertModal.vue:90 -#: src/views/dashboard/IndexView.vue:421 -#: src/views/task/CreateModal.vue:130 +#: src/views/dashboard/IndexView.vue:422 +#: src/views/task/CreateModal.vue:129 msgid "Website" msgstr "網站" -#: src/locales/menu.ts:24 +#: src/locales/menu.ts:22 msgid "Website Edit" msgstr "網站編輯" -#: src/locales/menu.ts:26 +#: src/locales/menu.ts:24 msgid "Fail2ban Manager" msgstr "Fail2ban 管理器" -#: src/locales/menu.ts:27 +#: src/locales/menu.ts:25 msgid "S3fs Manager" msgstr "S3fs 管理器" -#: src/locales/menu.ts:28 +#: src/locales/menu.ts:26 msgid "Supervisor Manager" msgstr "Supervisor 管理器" -#: src/locales/menu.ts:29 +#: src/locales/menu.ts:27 msgid "Rsync Manager" msgstr "Rsync 管理器" -#: src/locales/menu.ts:30 +#: src/locales/menu.ts:28 msgid "Frp Manager" msgstr "Frp 管理器" @@ -619,39 +605,39 @@ msgstr "Frp 管理器" msgid "Login" msgstr "登錄" -#: src/views/app/IndexView.vue:19 -#: src/views/app/IndexView.vue:154 -#: src/views/app/IndexView.vue:159 -#: src/views/apps/php/PhpView.vue:81 +#: src/views/app/IndexView.vue:18 +#: src/views/app/IndexView.vue:147 +#: src/views/app/IndexView.vue:152 +#: src/views/apps/php/PhpView.vue:80 msgid "Install" msgstr "安裝" -#: src/views/app/IndexView.vue:37 +#: src/views/app/IndexView.vue:35 msgid "App Name" msgstr "應用名稱" -#: src/views/app/IndexView.vue:43 -#: src/views/apps/php/PhpView.vue:50 +#: src/views/app/IndexView.vue:41 +#: src/views/apps/php/PhpView.vue:49 msgid "Description" msgstr "描述" -#: src/views/app/IndexView.vue:49 +#: src/views/app/IndexView.vue:47 msgid "Installed Version" msgstr "已安裝版本" -#: src/views/app/IndexView.vue:55 +#: src/views/app/IndexView.vue:53 msgid "Show in Home" msgstr "在主頁顯示" -#: src/views/app/IndexView.vue:68 -#: src/views/apps/fail2ban/IndexView.vue:60 -#: src/views/apps/fail2ban/IndexView.vue:121 -#: src/views/apps/php/PhpView.vue:57 +#: src/views/app/IndexView.vue:66 +#: src/views/apps/fail2ban/IndexView.vue:59 +#: src/views/apps/fail2ban/IndexView.vue:118 +#: src/views/apps/php/PhpView.vue:56 #: src/views/apps/pureftpd/IndexView.vue:46 #: src/views/apps/rsync/IndexView.vue:69 -#: src/views/apps/s3fs/IndexView.vue:33 -#: src/views/apps/supervisor/IndexView.vue:76 -#: src/views/backup/ListView.vue:58 +#: src/views/apps/s3fs/IndexView.vue:32 +#: src/views/apps/supervisor/IndexView.vue:75 +#: src/views/backup/ListView.vue:57 #: src/views/cert/AccountView.vue:79 #: src/views/cert/CertView.vue:181 #: src/views/cert/DnsView.vue:64 @@ -662,58 +648,57 @@ msgstr "在主頁顯示" #: src/views/container/ImageView.vue:69 #: src/views/container/NetworkView.vue:109 #: src/views/container/VolumeView.vue:63 -#: src/views/database/DatabaseList.vue:74 -#: src/views/database/ServerList.vue:135 -#: src/views/database/UserList.vue:152 -#: src/views/file/ListTable.vue:189 -#: src/views/file/SearchModal.vue:48 -#: src/views/firewall/ForwardView.vue:80 -#: src/views/firewall/IpRuleView.vue:122 -#: src/views/firewall/RuleView.vue:159 +#: src/views/database/DatabaseList.vue:73 +#: src/views/database/ServerList.vue:134 +#: src/views/database/UserList.vue:151 +#: src/views/file/ListTable.vue:191 +#: src/views/firewall/ForwardView.vue:79 +#: src/views/firewall/IpRuleView.vue:121 +#: src/views/firewall/RuleView.vue:158 #: src/views/setting/SettingUser.vue:86 #: src/views/setting/TokenModal.vue:52 #: src/views/task/CronView.vue:102 #: src/views/task/SystemView.vue:96 #: src/views/task/TaskView.vue:55 -#: src/views/website/IndexView.vue:126 +#: src/views/website/PhpView.vue:121 msgid "Actions" msgstr "操作" -#: src/views/app/IndexView.vue:83 +#: src/views/app/IndexView.vue:81 msgid "Updating app %{ app } may reset related configurations to default state, are you sure to continue?" msgstr "更新應用程式 %{ app } 可能會將相關配置重置為默認狀態,您確定要繼續嗎?" -#: src/views/app/IndexView.vue:115 +#: src/views/app/IndexView.vue:110 msgid "Manage" msgstr "管理" -#: src/views/app/IndexView.vue:128 +#: src/views/app/IndexView.vue:122 msgid "Are you sure to uninstall app %{ app }?" msgstr "您確定要卸載應用程式 %{ app } 嗎?" -#: src/views/app/IndexView.vue:138 +#: src/views/app/IndexView.vue:132 msgid "Uninstall" msgstr "卸載" -#: src/views/app/IndexView.vue:183 +#: src/views/app/IndexView.vue:175 msgid "Setup successfully" msgstr "設置成功" +#: src/views/app/IndexView.vue:182 #: src/views/app/IndexView.vue:190 -#: src/views/app/IndexView.vue:198 #: src/views/app/VersionModal.vue:32 msgid "Task submitted, please check the progress in background tasks" msgstr "任務已提交,請在後台任務中查看進度" -#: src/views/app/IndexView.vue:210 +#: src/views/app/IndexView.vue:202 msgid "Cache updated successfully" msgstr "快取更新成功" -#: src/views/app/IndexView.vue:224 +#: src/views/app/IndexView.vue:216 msgid "Update Cache" msgstr "更新快取" -#: src/views/app/IndexView.vue:229 +#: src/views/app/IndexView.vue:220 msgid "Before updating apps, it is strongly recommended to backup/snapshot first, so you can roll back immediately if there are any issues!" msgstr "在更新應用程式之前,強烈建議先進行備份/快照,這樣如果出現任何問題,可以立即回滾!" @@ -729,121 +714,122 @@ msgstr "版本" msgid "Please select a channel" msgstr "請選擇一個渠道" -#: src/views/apps/codeserver/IndexView.vue:39 -#: src/views/apps/docker/IndexView.vue:39 -#: src/views/apps/frp/IndexView.vue:48 -#: src/views/apps/frp/IndexView.vue:73 -#: src/views/apps/gitea/IndexView.vue:37 -#: src/views/apps/memcached/IndexView.vue:59 -#: src/views/apps/minio/IndexView.vue:32 -#: src/views/apps/mysql/IndexView.vue:79 -#: src/views/apps/nginx/IndexView.vue:65 -#: src/views/apps/php/PhpView.vue:194 -#: src/views/apps/php/PhpView.vue:203 -#: src/views/apps/phpmyadmin/IndexView.vue:58 -#: src/views/apps/phpmyadmin/IndexView.vue:67 -#: src/views/apps/podman/IndexView.vue:47 -#: src/views/apps/podman/IndexView.vue:56 -#: src/views/apps/postgresql/IndexView.vue:71 -#: src/views/apps/postgresql/IndexView.vue:80 -#: src/views/apps/pureftpd/IndexView.vue:162 -#: src/views/apps/redis/IndexView.vue:56 -#: src/views/apps/rsync/IndexView.vue:201 -#: src/views/apps/supervisor/IndexView.vue:313 -#: src/views/file/EditModal.vue:31 -#: src/views/file/ListTable.vue:723 -#: src/views/setting/IndexView.vue:65 -#: src/views/toolbox/SystemView.vue:97 -#: src/views/toolbox/SystemView.vue:101 -#: src/views/toolbox/SystemView.vue:105 -#: src/views/toolbox/SystemView.vue:109 -#: src/views/website/EditView.vue:215 -msgid "Save" -msgstr "儲存" - -#: src/views/apps/codeserver/IndexView.vue:46 +#: src/views/apps/codeserver/IndexView.vue:35 #: src/views/apps/frp/IndexView.vue:44 -#: src/views/apps/frp/IndexView.vue:69 -#: src/views/apps/gitea/IndexView.vue:44 -#: src/views/apps/mysql/IndexView.vue:118 -#: src/views/apps/nginx/IndexView.vue:81 -#: src/views/apps/phpmyadmin/IndexView.vue:84 +#: src/views/apps/frp/IndexView.vue:67 +#: src/views/apps/gitea/IndexView.vue:33 +#: src/views/apps/mysql/IndexView.vue:85 +#: src/views/apps/nginx/IndexView.vue:61 +#: src/views/apps/phpmyadmin/IndexView.vue:74 msgid "Modify Configuration" msgstr "修改配置" -#: src/views/apps/codeserver/IndexView.vue:50 +#: src/views/apps/codeserver/IndexView.vue:39 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/codeserver/IndexView.vue:69 -#: src/views/apps/docker/IndexView.vue:65 -#: src/views/apps/fail2ban/IndexView.vue:289 -#: src/views/apps/gitea/IndexView.vue:67 -#: src/views/apps/memcached/IndexView.vue:92 -#: src/views/apps/minio/IndexView.vue:62 -#: src/views/apps/mysql/IndexView.vue:151 -#: src/views/apps/nginx/IndexView.vue:114 -#: src/views/apps/php/PhpView.vue:299 -#: src/views/apps/podman/IndexView.vue:118 -#: src/views/apps/postgresql/IndexView.vue:147 -#: src/views/apps/redis/IndexView.vue:96 -#: src/views/apps/rsync/IndexView.vue:264 -#: src/views/apps/supervisor/IndexView.vue:380 +#: src/views/apps/codeserver/IndexView.vue:57 +#: src/views/apps/docker/IndexView.vue:53 +#: src/views/apps/frp/IndexView.vue:47 +#: src/views/apps/frp/IndexView.vue:70 +#: src/views/apps/gitea/IndexView.vue:55 +#: src/views/apps/memcached/IndexView.vue:70 +#: src/views/apps/minio/IndexView.vue:55 +#: src/views/apps/mysql/IndexView.vue:107 +#: src/views/apps/nginx/IndexView.vue:83 +#: src/views/apps/php/PhpView.vue:225 +#: src/views/apps/php/PhpView.vue:253 +#: src/views/apps/phpmyadmin/IndexView.vue:67 +#: src/views/apps/phpmyadmin/IndexView.vue:96 +#: src/views/apps/podman/IndexView.vue:74 +#: src/views/apps/podman/IndexView.vue:101 +#: src/views/apps/postgresql/IndexView.vue:89 +#: src/views/apps/postgresql/IndexView.vue:116 +#: src/views/apps/pureftpd/IndexView.vue:165 +#: src/views/apps/redis/IndexView.vue:74 +#: src/views/apps/rsync/IndexView.vue:246 +#: src/views/apps/supervisor/IndexView.vue:353 +#: src/views/file/EditModal.vue:31 +#: src/views/file/ListTable.vue:746 +#: src/views/setting/IndexView.vue:84 +#: src/views/toolbox/SystemView.vue:108 +#: src/views/toolbox/SystemView.vue:132 +#: src/views/toolbox/SystemView.vue:157 +#: src/views/toolbox/SystemView.vue:183 +#: src/views/toolbox/SystemView.vue:198 +#: src/views/website/EditView.vue:429 +msgid "Save" +msgstr "儲存" + +#: src/views/apps/codeserver/IndexView.vue:62 +#: src/views/apps/docker/IndexView.vue:58 +#: src/views/apps/fail2ban/IndexView.vue:282 +#: src/views/apps/gitea/IndexView.vue:60 +#: src/views/apps/memcached/IndexView.vue:85 +#: src/views/apps/minio/IndexView.vue:60 +#: src/views/apps/mysql/IndexView.vue:122 +#: src/views/apps/nginx/IndexView.vue:98 +#: src/views/apps/php/PhpView.vue:268 +#: src/views/apps/podman/IndexView.vue:106 +#: src/views/apps/postgresql/IndexView.vue:131 +#: src/views/apps/redis/IndexView.vue:89 +#: src/views/apps/rsync/IndexView.vue:251 +#: src/views/apps/supervisor/IndexView.vue:358 msgid "Runtime Logs" msgstr "運行日誌" -#: src/views/apps/docker/IndexView.vue:46 -#: src/views/website/EditView.vue:401 +#: src/views/apps/docker/IndexView.vue:35 +#: src/views/website/EditView.vue:358 msgid "Configuration" msgstr "配置" -#: src/views/apps/docker/IndexView.vue:49 +#: src/views/apps/docker/IndexView.vue:38 msgid "This modifies the Docker configuration file (/etc/docker/daemon.json)" msgstr "這將修改 Docker 配置文件 (/etc/docker/daemon.json)" -#: src/views/apps/fail2ban/IndexView.vue:44 -#: src/views/apps/phpmyadmin/IndexView.vue:71 -#: src/views/apps/supervisor/IndexView.vue:55 +#: src/views/apps/fail2ban/IndexView.vue:43 +#: src/views/apps/phpmyadmin/IndexView.vue:56 +#: src/views/apps/supervisor/IndexView.vue:54 #: src/views/container/ComposeView.vue:58 #: src/views/container/ContainerView.vue:32 -#: src/views/database/ServerList.vue:114 -#: src/views/database/UserList.vue:131 -#: src/views/firewall/RuleView.vue:62 +#: src/views/database/ServerList.vue:113 +#: src/views/database/UserList.vue:130 +#: src/views/firewall/RuleView.vue:61 #: src/views/task/SystemView.vue:43 #: src/views/task/TaskView.vue:22 msgid "Status" msgstr "狀態" -#: src/views/apps/fail2ban/IndexView.vue:56 -#: src/views/apps/fail2ban/IndexView.vue:365 +#: src/views/apps/fail2ban/IndexView.vue:55 +#: src/views/apps/fail2ban/IndexView.vue:358 msgid "Max Retries" msgstr "最大重試次數" -#: src/views/apps/fail2ban/IndexView.vue:57 -#: src/views/apps/fail2ban/IndexView.vue:371 +#: src/views/apps/fail2ban/IndexView.vue:56 +#: src/views/apps/fail2ban/IndexView.vue:364 msgid "Ban Time" msgstr "封禁時間" -#: src/views/apps/fail2ban/IndexView.vue:58 -#: src/views/apps/fail2ban/IndexView.vue:368 +#: src/views/apps/fail2ban/IndexView.vue:57 +#: src/views/apps/fail2ban/IndexView.vue:361 msgid "Find Time" msgstr "查找時間" -#: src/views/apps/fail2ban/IndexView.vue:78 +#: src/views/apps/fail2ban/IndexView.vue:77 #: src/views/cert/CertView.vue:263 msgid "View" msgstr "查看" -#: src/views/apps/fail2ban/IndexView.vue:89 +#: src/views/apps/fail2ban/IndexView.vue:87 msgid "Are you sure you want to delete rule %{ name }?" msgstr "您確定要刪除規則 %{ name } 嗎?" -#: src/views/apps/fail2ban/IndexView.vue:100 -#: src/views/apps/php/PhpView.vue:109 -#: src/views/apps/pureftpd/IndexView.vue:89 -#: src/views/apps/rsync/IndexView.vue:107 -#: src/views/apps/supervisor/IndexView.vue:202 -#: src/views/backup/ListView.vue:98 +#: src/views/apps/fail2ban/IndexView.vue:98 +#: src/views/apps/php/PhpView.vue:107 +#: src/views/apps/pureftpd/IndexView.vue:88 +#: src/views/apps/rsync/IndexView.vue:106 +#: src/views/apps/supervisor/IndexView.vue:196 +#: src/views/backup/ListView.vue:96 #: src/views/cert/AccountView.vue:127 #: src/views/cert/CertView.vue:314 #: src/views/cert/DnsView.vue:111 @@ -855,174 +841,172 @@ msgstr "您確定要刪除規則 %{ name } 嗎?" #: src/views/container/ImageView.vue:94 #: src/views/container/NetworkView.vue:134 #: src/views/container/VolumeView.vue:88 -#: src/views/database/DatabaseList.vue:98 -#: src/views/database/ServerList.vue:217 -#: src/views/database/UserList.vue:191 -#: src/views/file/ListTable.vue:85 -#: src/views/file/ListTable.vue:289 -#: src/views/file/SearchModal.vue:98 +#: src/views/database/DatabaseList.vue:97 +#: src/views/database/ServerList.vue:214 +#: src/views/database/UserList.vue:189 +#: src/views/file/ListTable.vue:87 +#: src/views/file/ListTable.vue:291 #: src/views/file/ToolBar.vue:238 -#: src/views/firewall/ForwardView.vue:104 -#: src/views/firewall/IpRuleView.vue:146 -#: src/views/firewall/RuleView.vue:183 -#: src/views/setting/SettingUser.vue:142 -#: src/views/setting/TokenModal.vue:92 -#: src/views/ssh/IndexView.vue:93 -#: src/views/task/CronView.vue:155 -#: src/views/task/TaskView.vue:98 -#: src/views/website/IndexView.vue:199 +#: src/views/firewall/ForwardView.vue:103 +#: src/views/firewall/IpRuleView.vue:145 +#: src/views/firewall/RuleView.vue:182 +#: src/views/setting/SettingUser.vue:140 +#: src/views/setting/TokenModal.vue:91 +#: src/views/ssh/IndexView.vue:92 +#: src/views/task/CronView.vue:153 +#: src/views/task/TaskView.vue:97 +#: src/views/website/PhpView.vue:193 msgid "Delete" msgstr "刪除" -#: src/views/apps/fail2ban/IndexView.vue:134 +#: src/views/apps/fail2ban/IndexView.vue:131 msgid "Are you sure you want to unban %{ ip }?" msgstr "您確定要解封 %{ ip } 嗎?" -#: src/views/apps/fail2ban/IndexView.vue:144 +#: src/views/apps/fail2ban/IndexView.vue:141 msgid "Unban" msgstr "解封" -#: src/views/apps/fail2ban/IndexView.vue:192 -#: src/views/apps/pureftpd/IndexView.vue:130 -#: src/views/apps/rsync/IndexView.vue:153 -#: src/views/apps/s3fs/IndexView.vue:84 -#: src/views/apps/supervisor/IndexView.vue:241 +#: src/views/apps/fail2ban/IndexView.vue:188 +#: src/views/apps/pureftpd/IndexView.vue:128 +#: src/views/apps/rsync/IndexView.vue:151 +#: src/views/apps/s3fs/IndexView.vue:82 +#: src/views/apps/supervisor/IndexView.vue:234 #: src/views/database/CreateServerModal.vue:37 msgid "Added successfully" msgstr "添加成功" -#: src/views/apps/fail2ban/IndexView.vue:200 -#: src/views/apps/pureftpd/IndexView.vue:147 -#: src/views/apps/rsync/IndexView.vue:161 -#: src/views/apps/s3fs/IndexView.vue:91 -#: src/views/apps/supervisor/IndexView.vue:269 -#: src/views/backup/ListView.vue:148 -#: src/views/database/DatabaseList.vue:123 -#: src/views/database/ServerList.vue:242 -#: src/views/database/UserList.vue:216 -#: src/views/file/ListTable.vue:272 -#: src/views/file/ListTable.vue:615 -#: src/views/file/SearchModal.vue:81 +#: src/views/apps/fail2ban/IndexView.vue:196 +#: src/views/apps/pureftpd/IndexView.vue:145 +#: src/views/apps/rsync/IndexView.vue:159 +#: src/views/apps/s3fs/IndexView.vue:89 +#: src/views/apps/supervisor/IndexView.vue:262 +#: src/views/backup/ListView.vue:145 +#: src/views/database/DatabaseList.vue:121 +#: src/views/database/ServerList.vue:238 +#: src/views/database/UserList.vue:213 +#: src/views/file/ListTable.vue:274 +#: src/views/file/ListTable.vue:618 #: src/views/file/ToolBar.vue:189 -#: src/views/firewall/ForwardView.vue:131 -#: src/views/firewall/ForwardView.vue:149 -#: src/views/firewall/IpRuleView.vue:173 -#: src/views/firewall/IpRuleView.vue:191 -#: src/views/firewall/RuleView.vue:210 -#: src/views/firewall/RuleView.vue:228 -#: src/views/setting/SettingUser.vue:178 -#: src/views/setting/TokenModal.vue:116 -#: src/views/task/CronView.vue:198 -#: src/views/task/TaskView.vue:124 -#: src/views/website/IndexView.vue:301 -#: src/views/website/IndexView.vue:357 +#: 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/setting/SettingUser.vue:175 +#: src/views/setting/TokenModal.vue:114 +#: src/views/task/CronView.vue:195 +#: src/views/task/TaskView.vue:122 +#: src/views/website/PhpView.vue:285 +#: src/views/website/PhpView.vue:332 msgid "Deleted successfully" msgstr "刪除成功" -#: src/views/apps/fail2ban/IndexView.vue:213 +#: src/views/apps/fail2ban/IndexView.vue:209 msgid "Unbanned successfully" msgstr "解封成功" -#: src/views/apps/fail2ban/IndexView.vue:239 -msgid "Save Whitelist" -msgstr "儲存白名單" - -#: src/views/apps/fail2ban/IndexView.vue:248 -#: src/views/apps/fail2ban/IndexView.vue:294 -#: src/views/apps/fail2ban/IndexView.vue:298 -msgid "Add Rule" -msgstr "新增規則" - -#: src/views/apps/fail2ban/IndexView.vue:255 +#: src/views/apps/fail2ban/IndexView.vue:231 msgid "IP Whitelist" msgstr "IP 白名單" -#: src/views/apps/fail2ban/IndexView.vue:260 +#: src/views/apps/fail2ban/IndexView.vue:236 msgid "IP whitelist, separated by commas" msgstr "IP 白名單,以逗號分隔" -#: src/views/apps/fail2ban/IndexView.vue:265 +#: src/views/apps/fail2ban/IndexView.vue:241 +msgid "Save Whitelist" +msgstr "儲存白名單" + +#: src/views/apps/fail2ban/IndexView.vue:246 msgid "Rule Management" msgstr "規則管理" -#: src/views/apps/fail2ban/IndexView.vue:266 +#: src/views/apps/fail2ban/IndexView.vue:248 msgid "Rule List" msgstr "規則列表" -#: src/views/apps/fail2ban/IndexView.vue:304 +#: src/views/apps/fail2ban/IndexView.vue:277 +#: src/views/apps/fail2ban/IndexView.vue:287 +#: src/views/apps/fail2ban/IndexView.vue:291 +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 在查找時間(秒)內超過最大重試次數,它將被禁止訪問指定的禁止時間(秒)" -#: src/views/apps/fail2ban/IndexView.vue:311 +#: 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 "受保護的連接埠會自動獲取。如果您修改了某個規則對應的連接埠,請刪除並重新添加該規則,否則保護可能無效" -#: src/views/apps/fail2ban/IndexView.vue:318 +#: src/views/apps/fail2ban/IndexView.vue:311 #: src/views/cert/CertView.vue:87 #: src/views/cert/DnsView.vue:38 #: src/views/cert/ObtainModal.vue:58 #: src/views/database/CreateServerModal.vue:63 -#: src/views/database/DatabaseList.vue:12 -#: src/views/database/ServerList.vue:17 -#: src/views/database/UserList.vue:17 +#: src/views/database/DatabaseList.vue:11 +#: src/views/database/ServerList.vue:16 +#: src/views/database/UserList.vue:16 msgid "Type" msgstr "類型" -#: src/views/apps/fail2ban/IndexView.vue:323 -#: src/views/apps/fail2ban/IndexView.vue:354 +#: src/views/apps/fail2ban/IndexView.vue:316 +#: src/views/apps/fail2ban/IndexView.vue:347 msgid "Service" msgstr "服務" -#: src/views/apps/fail2ban/IndexView.vue:328 -#: src/views/apps/fail2ban/IndexView.vue:332 -#: src/views/task/CreateModal.vue:144 -#: src/views/task/CreateModal.vue:149 +#: src/views/apps/fail2ban/IndexView.vue:321 +#: src/views/apps/fail2ban/IndexView.vue:325 +#: src/views/task/CreateModal.vue:143 +#: src/views/task/CreateModal.vue:148 msgid "Select Website" msgstr "選擇網站" -#: src/views/apps/fail2ban/IndexView.vue:335 +#: src/views/apps/fail2ban/IndexView.vue:328 msgid "Protection Mode" msgstr "保護模式" -#: src/views/apps/fail2ban/IndexView.vue:340 +#: src/views/apps/fail2ban/IndexView.vue:333 #: src/views/apps/pureftpd/IndexView.vue:39 msgid "Path" msgstr "路徑" -#: src/views/apps/fail2ban/IndexView.vue:347 -#: src/views/apps/fail2ban/IndexView.vue:351 +#: src/views/apps/fail2ban/IndexView.vue:340 +#: src/views/apps/fail2ban/IndexView.vue:344 msgid "Protection Path" msgstr "保護路徑" -#: src/views/apps/fail2ban/IndexView.vue:379 -#: src/views/apps/fail2ban/IndexView.vue:383 +#: src/views/apps/fail2ban/IndexView.vue:372 +#: src/views/apps/fail2ban/IndexView.vue:376 msgid "View Rule" msgstr "查看規則" -#: src/views/apps/fail2ban/IndexView.vue:387 +#: src/views/apps/fail2ban/IndexView.vue:380 msgid "Rule Information" msgstr "規則信息" -#: src/views/apps/fail2ban/IndexView.vue:390 +#: src/views/apps/fail2ban/IndexView.vue:383 msgid "Currently Banned" msgstr "當前已封禁" -#: src/views/apps/fail2ban/IndexView.vue:394 +#: src/views/apps/fail2ban/IndexView.vue:387 msgid "Total Bans" msgstr "總封禁次數" -#: src/views/apps/fail2ban/IndexView.vue:399 +#: src/views/apps/fail2ban/IndexView.vue:392 msgid "Ban List" msgstr "封禁列表" -#: src/views/apps/gitea/IndexView.vue:48 +#: src/views/apps/gitea/IndexView.vue:37 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:18 #: src/views/apps/mysql/IndexView.vue:31 #: src/views/apps/nginx/IndexView.vue:28 -#: src/views/apps/php/PhpView.vue:124 +#: src/views/apps/php/PhpView.vue:121 #: src/views/apps/postgresql/IndexView.vue:31 #: src/views/apps/redis/IndexView.vue:25 msgid "Property" @@ -1031,122 +1015,127 @@ msgstr "屬性" #: src/views/apps/memcached/IndexView.vue:25 #: src/views/apps/mysql/IndexView.vue:38 #: src/views/apps/nginx/IndexView.vue:35 -#: src/views/apps/php/PhpView.vue:131 +#: src/views/apps/php/PhpView.vue:128 #: src/views/apps/postgresql/IndexView.vue:38 #: src/views/apps/redis/IndexView.vue:32 msgid "Current Value" msgstr "當前值" -#: src/views/apps/memcached/IndexView.vue:66 +#: src/views/apps/memcached/IndexView.vue:55 msgid "Service Configuration" msgstr "服務配置" -#: src/views/apps/memcached/IndexView.vue:82 -#: src/views/apps/mysql/IndexView.vue:141 -#: src/views/apps/nginx/IndexView.vue:104 -#: src/views/apps/php/PhpView.vue:289 -#: src/views/apps/postgresql/IndexView.vue:137 -#: src/views/apps/redis/IndexView.vue:86 -#: src/views/dashboard/IndexView.vue:462 +#: src/views/apps/memcached/IndexView.vue:75 +#: src/views/apps/mysql/IndexView.vue:112 +#: src/views/apps/nginx/IndexView.vue:88 +#: src/views/apps/php/PhpView.vue:258 +#: src/views/apps/postgresql/IndexView.vue:121 +#: src/views/apps/redis/IndexView.vue:79 +#: src/views/dashboard/IndexView.vue:463 msgid "Load Status" msgstr "負載狀態" -#: src/views/apps/minio/IndexView.vue:39 +#: src/views/apps/minio/IndexView.vue:33 #: src/views/container/ComposeView.vue:338 #: src/views/container/ComposeView.vue:368 #: src/views/container/ContainerCreate.vue:353 msgid "Environment Variables" msgstr "環境變數" -#: src/views/apps/minio/IndexView.vue:43 +#: src/views/apps/minio/IndexView.vue:37 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/IndexView.vue:53 #: src/views/apps/mysql/IndexView.vue:59 #: src/views/apps/nginx/IndexView.vue:50 -#: src/views/apps/php/PhpView.vue:158 -#: src/views/apps/php/PhpView.vue:164 +#: src/views/apps/php/PhpView.vue:155 +#: src/views/apps/php/PhpView.vue:161 #: src/views/apps/postgresql/IndexView.vue:57 -#: src/views/apps/supervisor/IndexView.vue:233 +#: src/views/apps/supervisor/IndexView.vue:226 #: src/views/website/EditView.vue:160 msgid "Cleared successfully" msgstr "清除成功" #: src/views/apps/mysql/IndexView.vue:65 -#: src/views/apps/pureftpd/IndexView.vue:140 -#: src/views/database/DatabaseList.vue:129 -#: src/views/database/ServerList.vue:248 +#: src/views/apps/pureftpd/IndexView.vue:138 +#: src/views/database/DatabaseList.vue:127 +#: src/views/database/ServerList.vue:244 #: src/views/database/UpdateServerModal.vue:21 #: src/views/database/UpdateUserModal.vue:18 -#: src/views/database/UserList.vue:222 +#: src/views/database/UserList.vue:219 #: src/views/file/PermissionModal.vue:29 -#: src/views/setting/SettingUser.vue:166 -#: src/views/setting/SettingUser.vue:172 -#: src/views/task/CronView.vue:180 -#: src/views/task/CronView.vue:207 -#: src/views/website/IndexView.vue:284 -#: src/views/website/IndexView.vue:310 +#: src/views/setting/SettingUser.vue:163 +#: src/views/setting/SettingUser.vue:169 +#: src/views/task/CronView.vue:177 +#: src/views/task/CronView.vue:204 +#: src/views/website/PhpView.vue:268 +#: src/views/website/SettingView.vue:29 msgid "Modified successfully" msgstr "修改成功" -#: src/views/apps/mysql/IndexView.vue:88 -#: src/views/apps/nginx/IndexView.vue:74 -#: src/views/apps/postgresql/IndexView.vue:84 -#: src/views/apps/supervisor/IndexView.vue:326 -msgid "Clear Log" -msgstr "清除日誌" - -#: src/views/apps/mysql/IndexView.vue:97 -#: src/views/apps/php/PhpView.vue:221 -msgid "Clear Slow Log" -msgstr "清除慢查詢日誌" - -#: src/views/apps/mysql/IndexView.vue:104 -#: src/views/toolbox/SystemView.vue:205 -#: src/views/toolbox/SystemView.vue:207 +#: src/views/apps/mysql/IndexView.vue:75 +#: src/views/toolbox/SystemView.vue:191 +#: src/views/toolbox/SystemView.vue:193 msgid "Root Password" msgstr "Root 密碼" -#: src/views/apps/mysql/IndexView.vue:112 +#: src/views/apps/mysql/IndexView.vue:79 +#: src/views/website/SettingView.vue:55 +#: src/views/website/SettingView.vue:75 +#: src/views/website/SettingView.vue:95 +#: src/views/website/SettingView.vue:128 msgid "Save Changes" msgstr "保存更改" -#: src/views/apps/mysql/IndexView.vue:122 +#: src/views/apps/mysql/IndexView.vue:89 msgid "This modifies the MySQL main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" msgstr "這將修改 MySQL 主配置文件。如果您不了解每個參數的含義,請不要隨意修改!" -#: src/views/apps/mysql/IndexView.vue:154 +#: src/views/apps/mysql/IndexView.vue:124 +#: src/views/apps/nginx/IndexView.vue:105 +#: src/views/apps/php/PhpView.vue:275 +#: src/views/apps/postgresql/IndexView.vue:135 +#: src/views/apps/supervisor/IndexView.vue:365 +msgid "Clear Log" +msgstr "清除日誌" + +#: src/views/apps/mysql/IndexView.vue:128 msgid "Slow Query Log" msgstr "慢查詢日誌" -#: src/views/apps/nginx/IndexView.vue:85 +#: src/views/apps/mysql/IndexView.vue:130 +#: src/views/apps/php/PhpView.vue:285 +msgid "Clear Slow Log" +msgstr "清除慢查詢日誌" + +#: src/views/apps/nginx/IndexView.vue:65 msgid "This modifies the OpenResty main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!" msgstr "這將修改 OpenResty 主配置文件。如果您不理解每個參數的含義,請不要隨意修改!" -#: src/views/apps/nginx/IndexView.vue:117 -#: src/views/apps/php/PhpView.vue:302 +#: src/views/apps/nginx/IndexView.vue:101 +#: src/views/apps/php/PhpView.vue:271 msgid "Error Logs" msgstr "錯誤日誌" -#: src/views/apps/php/PhpView.vue:43 +#: src/views/apps/php/PhpView.vue:42 msgid "Extension Name" msgstr "擴展名稱" -#: src/views/apps/php/PhpView.vue:71 +#: src/views/apps/php/PhpView.vue:70 msgid "Are you sure you want to install %{ name }?" msgstr "您確定要安裝 %{ name } 嗎?" -#: src/views/apps/php/PhpView.vue:97 +#: src/views/apps/php/PhpView.vue:95 msgid "Are you sure you want to uninstall %{ name }?" msgstr "您確定要卸載 %{ name } 嗎?" -#: src/views/apps/php/PhpView.vue:140 +#: src/views/apps/php/PhpView.vue:137 msgid "Set successfully" msgstr "設置成功" -#: src/views/apps/php/PhpView.vue:170 -#: src/views/apps/php/PhpView.vue:176 +#: src/views/apps/php/PhpView.vue:167 +#: src/views/apps/php/PhpView.vue:173 msgid "Task submitted, please check progress in background tasks" msgstr "任務已提交,請在後台任務中查看進度" @@ -1154,100 +1143,96 @@ msgstr "任務已提交,請在後台任務中查看進度" msgid "Set as CLI Default Version" msgstr "設置為 CLI 默認版本" -#: src/views/apps/php/PhpView.vue:212 -msgid "Clear Error Log" -msgstr "清除錯誤日誌" - -#: src/views/apps/php/PhpView.vue:228 +#: src/views/apps/php/PhpView.vue:189 msgid "Extension Management" msgstr "擴展管理" -#: src/views/apps/php/PhpView.vue:241 -#: src/views/apps/postgresql/IndexView.vue:91 -#: src/views/apps/redis/IndexView.vue:63 -#: src/views/apps/rsync/IndexView.vue:241 -#: src/views/apps/supervisor/IndexView.vue:357 +#: src/views/apps/php/PhpView.vue:202 +#: src/views/apps/postgresql/IndexView.vue:67 +#: src/views/apps/redis/IndexView.vue:52 +#: src/views/apps/rsync/IndexView.vue:224 +#: src/views/apps/supervisor/IndexView.vue:331 msgid "Main Configuration" msgstr "主要配置" -#: src/views/apps/php/PhpView.vue:245 +#: src/views/apps/php/PhpView.vue:206 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/apps/php/PhpView.vue:265 +#: src/views/apps/php/PhpView.vue:230 msgid "FPM Configuration" msgstr "FPM 配置" -#: src/views/apps/php/PhpView.vue:269 +#: src/views/apps/php/PhpView.vue:234 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/apps/php/PhpView.vue:305 -#: src/views/apps/postgresql/IndexView.vue:150 +#: src/views/apps/php/PhpView.vue:281 +#: src/views/apps/postgresql/IndexView.vue:141 msgid "Slow Logs" msgstr "慢日誌" -#: src/views/apps/phpmyadmin/IndexView.vue:73 +#: src/views/apps/phpmyadmin/IndexView.vue:58 msgid "Access Information" msgstr "訪問信息" -#: src/views/apps/phpmyadmin/IndexView.vue:75 +#: src/views/apps/phpmyadmin/IndexView.vue:60 msgid "Access URL:" msgstr "訪問 URL:" -#: src/views/apps/phpmyadmin/IndexView.vue:78 +#: src/views/apps/phpmyadmin/IndexView.vue:63 msgid "Modify Port" msgstr "修改連接埠" -#: src/views/apps/phpmyadmin/IndexView.vue:80 +#: src/views/apps/phpmyadmin/IndexView.vue:70 msgid "Modify phpMyAdmin access port" msgstr "修改 phpMyAdmin 訪問連接埠" -#: src/views/apps/phpmyadmin/IndexView.vue:88 +#: src/views/apps/phpmyadmin/IndexView.vue:78 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:64 +#: src/views/apps/podman/IndexView.vue:44 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:72 +#: src/views/apps/podman/IndexView.vue:52 msgid "Registry Configuration" msgstr "註冊表配置" -#: src/views/apps/podman/IndexView.vue:76 +#: src/views/apps/podman/IndexView.vue:56 msgid "This modifies the Podman registry configuration file (/etc/containers/registries.conf)" msgstr "這會修改 Podman 註冊表配置文件 (/etc/containers/registries.conf)" -#: src/views/apps/podman/IndexView.vue:95 +#: src/views/apps/podman/IndexView.vue:79 msgid "Storage Configuration" msgstr "儲存配置" -#: src/views/apps/podman/IndexView.vue:99 +#: src/views/apps/podman/IndexView.vue:83 msgid "This modifies the Podman storage configuration file (/etc/containers/storage.conf)" msgstr "這會修改 Podman 儲存配置文件 (/etc/containers/storage.conf)" -#: src/views/apps/postgresql/IndexView.vue:95 +#: src/views/apps/postgresql/IndexView.vue:71 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:114 +#: src/views/apps/postgresql/IndexView.vue:94 msgid "User Configuration" msgstr "用戶配置" -#: src/views/apps/postgresql/IndexView.vue:118 +#: src/views/apps/postgresql/IndexView.vue:98 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/pureftpd/IndexView.vue:32 -#: src/views/apps/pureftpd/IndexView.vue:221 +#: src/views/apps/pureftpd/IndexView.vue:214 #: src/views/container/ImageView.vue:198 #: src/views/database/CreateDatabaseModal.vue:94 #: src/views/database/CreateServerModal.vue:94 #: src/views/database/CreateUserModal.vue:77 -#: src/views/database/ServerList.vue:47 +#: src/views/database/ServerList.vue:46 #: src/views/database/UpdateServerModal.vue:86 -#: src/views/database/UserList.vue:40 +#: src/views/database/UserList.vue:39 #: src/views/login/IndexView.vue:133 #: src/views/setting/CreateModal.vue:40 #: src/views/setting/SettingUser.vue:19 @@ -1256,59 +1241,59 @@ msgstr "這將修改 PostgreSQL 用戶配置文件。如果您不了解每個參 msgid "Username" msgstr "使用者名稱" -#: src/views/apps/pureftpd/IndexView.vue:76 +#: src/views/apps/pureftpd/IndexView.vue:75 msgid "Are you sure you want to delete user %{ username }?" msgstr "您確定要刪除用戶 %{ username } 嗎?" -#: src/views/apps/pureftpd/IndexView.vue:171 -msgid "Add User" -msgstr "添加用戶" - -#: src/views/apps/pureftpd/IndexView.vue:178 +#: src/views/apps/pureftpd/IndexView.vue:161 msgid "Port Settings" msgstr "連接埠設置" -#: src/views/apps/pureftpd/IndexView.vue:180 +#: src/views/apps/pureftpd/IndexView.vue:168 msgid "Modify Pure-Ftpd listening port" msgstr "修改 Pure-Ftpd 監聽連接埠" -#: src/views/apps/pureftpd/IndexView.vue:184 +#: src/views/apps/pureftpd/IndexView.vue:172 msgid "User Management" msgstr "用戶管理" -#: src/views/apps/pureftpd/IndexView.vue:208 +#: src/views/apps/pureftpd/IndexView.vue:176 +msgid "Add User" +msgstr "添加用戶" + +#: src/views/apps/pureftpd/IndexView.vue:201 msgid "Run Log" msgstr "運行日誌" -#: src/views/apps/pureftpd/IndexView.vue:213 -#: src/views/apps/pureftpd/IndexView.vue:217 +#: src/views/apps/pureftpd/IndexView.vue:206 +#: src/views/apps/pureftpd/IndexView.vue:210 #: src/views/database/CreateDatabaseModal.vue:79 #: src/views/database/CreateUserModal.vue:55 -#: src/views/database/IndexView.vue:36 +#: src/views/database/IndexView.vue:42 #: src/views/setting/CreateModal.vue:32 -#: src/views/setting/IndexView.vue:69 +#: src/views/setting/IndexView.vue:76 msgid "Create User" msgstr "建立使用者" -#: src/views/apps/pureftpd/IndexView.vue:226 +#: src/views/apps/pureftpd/IndexView.vue:219 #: src/views/container/ImageView.vue:203 #: src/views/database/CreateDatabaseModal.vue:99 #: src/views/database/CreateUserModal.vue:82 msgid "Enter username" msgstr "輸入使用者名稱" -#: src/views/apps/pureftpd/IndexView.vue:229 -#: src/views/apps/pureftpd/IndexView.vue:260 -#: src/views/apps/rsync/IndexView.vue:304 -#: src/views/apps/rsync/IndexView.vue:358 +#: src/views/apps/pureftpd/IndexView.vue:222 +#: src/views/apps/pureftpd/IndexView.vue:253 +#: src/views/apps/rsync/IndexView.vue:291 +#: src/views/apps/rsync/IndexView.vue:345 #: src/views/container/ImageView.vue:206 #: src/views/database/CreateDatabaseModal.vue:102 #: src/views/database/CreateServerModal.vue:102 #: src/views/database/CreateUserModal.vue:85 -#: src/views/database/ServerList.vue:56 +#: src/views/database/ServerList.vue:55 #: src/views/database/UpdateServerModal.vue:94 #: src/views/database/UpdateUserModal.vue:55 -#: src/views/database/UserList.vue:50 +#: src/views/database/UserList.vue:49 #: src/views/login/IndexView.vue:142 #: src/views/setting/CreateModal.vue:47 #: src/views/setting/PasswordModal.vue:34 @@ -1319,301 +1304,301 @@ msgstr "輸入使用者名稱" msgid "Password" msgstr "密碼" -#: src/views/apps/pureftpd/IndexView.vue:236 -#: src/views/apps/pureftpd/IndexView.vue:266 +#: src/views/apps/pureftpd/IndexView.vue:229 +#: src/views/apps/pureftpd/IndexView.vue:259 msgid "It is recommended to use the generator to generate a random password" msgstr "建議使用生成器生成隨機密碼" -#: src/views/apps/pureftpd/IndexView.vue:240 +#: src/views/apps/pureftpd/IndexView.vue:233 #: src/views/apps/rsync/IndexView.vue:47 -#: src/views/apps/rsync/IndexView.vue:288 -#: src/views/apps/rsync/IndexView.vue:342 +#: src/views/apps/rsync/IndexView.vue:275 +#: src/views/apps/rsync/IndexView.vue:329 #: src/views/container/ComposeView.vue:38 -#: src/views/website/IndexView.vue:44 -#: src/views/website/IndexView.vue:549 +#: src/views/website/PhpView.vue:39 +#: src/views/website/PhpView.vue:512 msgid "Directory" msgstr "目錄" -#: src/views/apps/pureftpd/IndexView.vue:245 +#: src/views/apps/pureftpd/IndexView.vue:238 msgid "Enter the directory authorized to the user" msgstr "輸入授權給用戶的目錄" -#: src/views/apps/redis/IndexView.vue:67 +#: src/views/apps/redis/IndexView.vue:56 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:54 -#: src/views/apps/rsync/IndexView.vue:296 -#: src/views/apps/rsync/IndexView.vue:350 -#: src/views/database/IndexView.vue:48 -#: src/views/setting/IndexView.vue:79 +#: src/views/apps/rsync/IndexView.vue:283 +#: src/views/apps/rsync/IndexView.vue:337 +#: src/views/database/IndexView.vue:28 +#: src/views/setting/IndexView.vue:70 #: src/views/task/SystemView.vue:37 msgid "User" msgstr "用戶" #: src/views/apps/rsync/IndexView.vue:61 -#: src/views/apps/rsync/IndexView.vue:312 -#: src/views/apps/rsync/IndexView.vue:367 +#: src/views/apps/rsync/IndexView.vue:299 +#: src/views/apps/rsync/IndexView.vue:354 #: src/views/database/CreateDatabaseModal.vue:111 #: src/views/database/CreateServerModal.vue:73 -#: src/views/database/ServerList.vue:87 +#: src/views/database/ServerList.vue:86 #: src/views/database/UpdateServerModal.vue:65 -#: src/views/database/UserList.vue:81 +#: src/views/database/UserList.vue:80 #: src/views/ssh/CreateModal.vue:62 #: src/views/ssh/UpdateModal.vue:68 -#: src/views/toolbox/SystemView.vue:156 +#: src/views/toolbox/SystemView.vue:137 msgid "Host" msgstr "主機" #: src/views/apps/rsync/IndexView.vue:67 -#: src/views/apps/rsync/IndexView.vue:320 -#: src/views/apps/rsync/IndexView.vue:375 +#: src/views/apps/rsync/IndexView.vue:307 +#: src/views/apps/rsync/IndexView.vue:362 #: src/views/database/CreateServerModal.vue:111 #: src/views/database/CreateUserModal.vue:116 -#: src/views/database/DatabaseList.vue:57 -#: src/views/database/ServerList.vue:97 +#: 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:114 +#: src/views/database/UserList.vue:113 msgid "Comment" msgstr "註釋" #: src/views/apps/rsync/IndexView.vue:83 -#: src/views/apps/supervisor/IndexView.vue:104 +#: src/views/apps/supervisor/IndexView.vue:102 msgid "Configure" msgstr "配置" -#: src/views/apps/rsync/IndexView.vue:94 +#: src/views/apps/rsync/IndexView.vue:93 msgid "Are you sure you want to delete module %{ name }?" msgstr "您確定要刪除模組 %{ name } 嗎?" -#: src/views/apps/rsync/IndexView.vue:210 -#: src/views/apps/rsync/IndexView.vue:272 -msgid "Add Module" -msgstr "添加模組" - -#: src/views/apps/rsync/IndexView.vue:217 +#: src/views/apps/rsync/IndexView.vue:195 msgid "Module Management" msgstr "模組管理" -#: src/views/apps/rsync/IndexView.vue:245 +#: src/views/apps/rsync/IndexView.vue:199 +#: src/views/apps/rsync/IndexView.vue:259 +msgid "Add Module" +msgstr "添加模組" + +#: src/views/apps/rsync/IndexView.vue:228 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:285 -#: src/views/apps/supervisor/IndexView.vue:404 +#: src/views/apps/rsync/IndexView.vue:272 +#: src/views/apps/supervisor/IndexView.vue:389 msgid "Name cannot contain Chinese characters" msgstr "名稱不能包含中文字符" -#: src/views/apps/rsync/IndexView.vue:293 -#: src/views/apps/rsync/IndexView.vue:347 +#: src/views/apps/rsync/IndexView.vue:280 +#: src/views/apps/rsync/IndexView.vue:334 msgid "Please enter absolute path" msgstr "請輸入絕對路徑" -#: src/views/apps/rsync/IndexView.vue:301 -#: src/views/apps/rsync/IndexView.vue:355 +#: src/views/apps/rsync/IndexView.vue:288 +#: src/views/apps/rsync/IndexView.vue:342 msgid "Enter module username" msgstr "輸入模組用戶名" -#: src/views/apps/rsync/IndexView.vue:309 -#: src/views/apps/rsync/IndexView.vue:364 +#: src/views/apps/rsync/IndexView.vue:296 +#: src/views/apps/rsync/IndexView.vue:351 msgid "Enter module password" msgstr "輸入模組密碼" -#: src/views/apps/rsync/IndexView.vue:317 -#: src/views/apps/rsync/IndexView.vue:372 +#: src/views/apps/rsync/IndexView.vue:304 +#: src/views/apps/rsync/IndexView.vue:359 msgid "Enter allowed hosts, separate multiple hosts with spaces" msgstr "輸入允許的主機,多個主機用空格分隔" -#: src/views/apps/rsync/IndexView.vue:325 -#: src/views/apps/rsync/IndexView.vue:380 +#: src/views/apps/rsync/IndexView.vue:312 +#: src/views/apps/rsync/IndexView.vue:367 msgid "Enter comments" msgstr "輸入註釋" -#: src/views/apps/rsync/IndexView.vue:334 +#: src/views/apps/rsync/IndexView.vue:321 msgid "Module Configuration" msgstr "模組配置" -#: src/views/apps/s3fs/IndexView.vue:25 +#: src/views/apps/s3fs/IndexView.vue:24 msgid "Mount Path" msgstr "掛載路徑" -#: src/views/apps/s3fs/IndexView.vue:46 +#: src/views/apps/s3fs/IndexView.vue:45 msgid "Are you sure you want to delete mount %{ path }?" msgstr "您確定要刪除掛載 %{ path } 嗎?" -#: src/views/apps/s3fs/IndexView.vue:58 +#: src/views/apps/s3fs/IndexView.vue:57 msgid "Unmount" msgstr "卸載" -#: src/views/apps/s3fs/IndexView.vue:105 -#: src/views/apps/s3fs/IndexView.vue:131 -#: src/views/apps/s3fs/IndexView.vue:135 +#: 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 "添加掛載" -#: src/views/apps/s3fs/IndexView.vue:144 +#: src/views/apps/s3fs/IndexView.vue:141 msgid "Enter Bucket name (COS format: xxxx-ID)" msgstr "輸入存儲桶名稱(COS 格式:xxxx-ID)" -#: src/views/apps/s3fs/IndexView.vue:152 +#: src/views/apps/s3fs/IndexView.vue:149 msgid "Enter AK key" msgstr "輸入 AK 密鑰" -#: src/views/apps/s3fs/IndexView.vue:160 +#: src/views/apps/s3fs/IndexView.vue:157 msgid "Enter SK key" msgstr "輸入 SK 密鑰" -#: src/views/apps/s3fs/IndexView.vue:163 +#: src/views/apps/s3fs/IndexView.vue:160 msgid "Region Endpoint" msgstr "區域端點" -#: src/views/apps/s3fs/IndexView.vue:169 +#: src/views/apps/s3fs/IndexView.vue:166 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:175 +#: src/views/apps/s3fs/IndexView.vue:172 msgid "Mount Directory" msgstr "掛載目錄" -#: src/views/apps/s3fs/IndexView.vue:180 +#: src/views/apps/s3fs/IndexView.vue:177 msgid "Enter mount directory (e.g., /oss)" msgstr "輸入掛載目錄(例如,/oss)" -#: src/views/apps/supervisor/IndexView.vue:69 +#: src/views/apps/supervisor/IndexView.vue:68 msgid "Uptime" msgstr "運行時間" -#: src/views/apps/supervisor/IndexView.vue:132 +#: src/views/apps/supervisor/IndexView.vue:128 msgid "Are you sure you want to stop process %{ name }?" msgstr "您確定要停止進程 %{ name } 嗎?" -#: src/views/apps/supervisor/IndexView.vue:161 +#: src/views/apps/supervisor/IndexView.vue:156 msgid "Are you sure you want to restart process %{ name }?" msgstr "您確定要重啟進程 %{ name } 嗎?" -#: src/views/apps/supervisor/IndexView.vue:189 +#: src/views/apps/supervisor/IndexView.vue:183 msgid "Are you sure you want to delete process %{ name }?" msgstr "您確定要刪除進程 %{ name } 嗎?" -#: src/views/apps/supervisor/IndexView.vue:322 -#: src/views/apps/supervisor/IndexView.vue:391 -msgid "Add Process" -msgstr "添加進程" - -#: src/views/apps/supervisor/IndexView.vue:333 +#: src/views/apps/supervisor/IndexView.vue:302 msgid "Process Management" msgstr "進程管理" -#: src/views/apps/supervisor/IndexView.vue:361 +#: src/views/apps/supervisor/IndexView.vue:306 +#: src/views/apps/supervisor/IndexView.vue:376 +msgid "Add Process" +msgstr "添加進程" + +#: src/views/apps/supervisor/IndexView.vue:335 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:383 +#: src/views/apps/supervisor/IndexView.vue:361 msgid "Daemon Logs" msgstr "守護進程日誌" -#: src/views/apps/supervisor/IndexView.vue:407 +#: src/views/apps/supervisor/IndexView.vue:392 msgid "Start Command" msgstr "啟動命令" -#: src/views/apps/supervisor/IndexView.vue:412 +#: src/views/apps/supervisor/IndexView.vue:397 msgid "Please enter absolute path for files in start command" msgstr "請在啟動命令中輸入文件的絕對路徑" -#: src/views/apps/supervisor/IndexView.vue:415 +#: src/views/apps/supervisor/IndexView.vue:400 msgid "Working Directory" msgstr "工作目錄" -#: src/views/apps/supervisor/IndexView.vue:420 +#: src/views/apps/supervisor/IndexView.vue:405 msgid "Please enter absolute path for working directory" msgstr "請輸入工作目錄的絕對路徑" -#: src/views/apps/supervisor/IndexView.vue:423 +#: src/views/apps/supervisor/IndexView.vue:408 msgid "Run As User" msgstr "以用戶身份運行" -#: src/views/apps/supervisor/IndexView.vue:428 +#: src/views/apps/supervisor/IndexView.vue:413 msgid "Usually www is sufficient" msgstr "通常 www 就足夠了" -#: src/views/apps/supervisor/IndexView.vue:431 +#: src/views/apps/supervisor/IndexView.vue:416 msgid "Number of Processes" msgstr "進程數量" -#: src/views/apps/supervisor/IndexView.vue:441 +#: src/views/apps/supervisor/IndexView.vue:426 msgid "Process Configuration" msgstr "進程配置" -#: src/views/backup/ListView.vue:36 +#: src/views/backup/ListView.vue:35 msgid "Filename" msgstr "檔案名稱" -#: src/views/backup/ListView.vue:49 -#: src/views/database/ServerList.vue:126 -#: src/views/database/UserList.vue:143 +#: src/views/backup/ListView.vue:48 +#: src/views/database/ServerList.vue:125 +#: src/views/database/UserList.vue:142 msgid "Update Date" msgstr "更新日期" -#: src/views/backup/ListView.vue:76 +#: src/views/backup/ListView.vue:75 msgid "Restore" msgstr "恢復" -#: src/views/backup/ListView.vue:87 +#: src/views/backup/ListView.vue:85 msgid "Are you sure you want to delete this backup?" msgstr "您確定要刪除此備份嗎?" -#: src/views/backup/ListView.vue:131 +#: src/views/backup/ListView.vue:128 msgid "Restoring..." msgstr "正在恢復……" -#: src/views/backup/ListView.vue:138 +#: src/views/backup/ListView.vue:135 msgid "Restored successfully" msgstr "恢復成功" -#: src/views/backup/ListView.vue:182 -#: src/views/backup/ListView.vue:212 +#: src/views/backup/ListView.vue:194 +#: src/views/backup/ListView.vue:224 msgid "Create Backup" msgstr "創建備份" -#: src/views/backup/ListView.vue:185 +#: src/views/backup/ListView.vue:197 #: src/views/backup/UploadModal.vue:39 msgid "Upload Backup" msgstr "上傳備份" -#: src/views/backup/ListView.vue:224 -#: src/views/backup/ListView.vue:261 +#: src/views/backup/ListView.vue:236 +#: src/views/backup/ListView.vue:273 msgid "Select website" msgstr "選擇網站" -#: src/views/backup/ListView.vue:227 +#: src/views/backup/ListView.vue:239 #: src/views/database/CreateDatabaseModal.vue:71 -#: src/views/database/DatabaseList.vue:35 -#: src/views/task/CreateModal.vue:154 -#: src/views/task/CreateModal.vue:156 -#: src/views/website/IndexView.vue:513 -#: src/views/website/IndexView.vue:518 +#: src/views/database/DatabaseList.vue:34 +#: src/views/task/CreateModal.vue:153 +#: src/views/task/CreateModal.vue:155 +#: src/views/website/PhpView.vue:476 +#: src/views/website/PhpView.vue:481 msgid "Database Name" msgstr "數據庫名稱" -#: src/views/backup/ListView.vue:232 +#: src/views/backup/ListView.vue:244 #: src/views/database/CreateDatabaseModal.vue:76 #: src/views/database/CreateUserModal.vue:113 #: src/views/database/UpdateUserModal.vue:67 msgid "Enter database name" msgstr "輸入數據庫名稱" -#: src/views/backup/ListView.vue:235 -#: src/views/task/CreateModal.vue:158 -#: src/views/task/CreateModal.vue:161 +#: src/views/backup/ListView.vue:247 +#: src/views/task/CreateModal.vue:157 +#: src/views/task/CreateModal.vue:160 msgid "Save Directory" msgstr "保存目錄" -#: src/views/backup/ListView.vue:240 +#: src/views/backup/ListView.vue:252 msgid "Leave empty to use default path" msgstr "留空以使用默認路徑" -#: src/views/backup/ListView.vue:249 +#: src/views/backup/ListView.vue:261 msgid "Restore Backup" msgstr "恢復備份" @@ -1649,11 +1634,10 @@ msgstr "密鑰類型" #: src/views/cert/AccountView.vue:101 #: src/views/cert/CertView.vue:288 #: src/views/cert/DnsView.vue:85 -#: src/views/database/ServerList.vue:184 -#: src/views/database/UserList.vue:169 +#: src/views/database/ServerList.vue:182 +#: src/views/database/UserList.vue:168 #: src/views/file/PermissionModal.vue:123 #: src/views/setting/TokenModal.vue:69 -#: src/views/toolbox/SystemView.vue:118 msgid "Modify" msgstr "修改" @@ -1730,8 +1714,8 @@ msgstr "輸入 HMAC" #: src/views/cert/CertView.vue:450 #: src/views/cert/CreateCertModal.vue:74 #: src/views/cert/ObtainModal.vue:57 -#: src/views/website/EditView.vue:232 -#: src/views/website/IndexView.vue:457 +#: src/views/website/EditView.vue:178 +#: src/views/website/PhpView.vue:420 msgid "Domain" msgstr "域名" @@ -1740,15 +1724,15 @@ msgstr "域名" #: src/views/cert/CertView.vue:135 #: src/views/cert/CertView.vue:154 #: src/views/container/ContainerCreate.vue:55 -#: src/views/database/ServerList.vue:52 -#: src/views/database/ServerList.vue:67 -#: src/views/database/UserList.vue:46 -#: src/views/database/UserList.vue:86 -#: src/views/firewall/ForwardView.vue:26 -#: src/views/firewall/IpRuleView.vue:26 -#: src/views/firewall/IpRuleView.vue:43 -#: src/views/firewall/RuleView.vue:26 -#: src/views/firewall/RuleView.vue:43 +#: 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 "無" @@ -1763,14 +1747,14 @@ msgid "Associated Account" msgstr "關聯帳戶" #: src/views/cert/CertView.vue:130 -#: src/views/website/EditView.vue:306 +#: src/views/website/EditView.vue:261 msgid "Issuer" msgstr "頒發者" #: src/views/cert/CertView.vue:139 #: src/views/setting/TokenModal.vue:43 -#: src/views/setting/TokenModal.vue:258 -#: src/views/setting/TokenModal.vue:291 +#: src/views/setting/TokenModal.vue:256 +#: src/views/setting/TokenModal.vue:289 msgid "Expiration Time" msgstr "過期時間" @@ -1847,25 +1831,25 @@ msgstr "選擇用於證書頒發的 DNS" #: src/views/cert/CertView.vue:502 #: src/views/cert/UploadCertModal.vue:42 -#: src/views/website/EditView.vue:359 +#: src/views/website/EditView.vue:314 msgid "Enter the content of the PEM certificate file" msgstr "輸入 PEM 證書文件的內容" #: src/views/cert/CertView.vue:509 #: src/views/cert/CertView.vue:586 #: src/views/cert/UploadCertModal.vue:46 -#: src/views/setting/SettingSafe.vue:61 +#: src/views/setting/SettingSafe.vue:199 #: src/views/ssh/CreateModal.vue:78 #: src/views/ssh/CreateModal.vue:89 #: src/views/ssh/UpdateModal.vue:84 #: src/views/ssh/UpdateModal.vue:95 -#: src/views/website/EditView.vue:363 +#: src/views/website/EditView.vue:318 msgid "Private Key" msgstr "私鑰" #: src/views/cert/CertView.vue:514 #: src/views/cert/UploadCertModal.vue:50 -#: src/views/website/EditView.vue:367 +#: src/views/website/EditView.vue:322 msgid "Enter the content of the KEY private key file" msgstr "輸入 KEY 私鑰文件的內容" @@ -1890,12 +1874,12 @@ msgid "View Certificate" msgstr "查看證書" #: src/views/cert/CreateAccountModal.vue:64 -#: src/views/cert/IndexView.vue:106 +#: src/views/cert/IndexView.vue:110 msgid "Create Account" msgstr "創建賬戶" #: src/views/cert/CreateCertModal.vue:59 -#: src/views/cert/IndexView.vue:102 +#: src/views/cert/IndexView.vue:107 msgid "Create Certificate" msgstr "建立憑證" @@ -1904,7 +1888,7 @@ msgid "You can automatically issue and deploy certificates by selecting either W msgstr "您可以通過選擇網站或 DNS 來自動頒發和部署憑證,或者手動輸入域名並設置 DNS 解析以頒發憑證" #: src/views/cert/CreateDnsModal.vue:44 -#: src/views/cert/IndexView.vue:110 +#: src/views/cert/IndexView.vue:113 msgid "Create DNS" msgstr "創建 DNS" @@ -2018,23 +2002,23 @@ msgstr "修改 DNS" msgid "Enter note name" msgstr "輸入備註名稱" -#: src/views/cert/IndexView.vue:98 -#: src/views/cert/UploadCertModal.vue:30 -msgid "Upload Certificate" -msgstr "上傳證書" - -#: src/views/cert/IndexView.vue:115 +#: src/views/cert/IndexView.vue:96 msgid "Certificate List" msgstr "證書列表" -#: src/views/cert/IndexView.vue:118 +#: src/views/cert/IndexView.vue:97 msgid "Account List" msgstr "賬戶列表" -#: src/views/cert/IndexView.vue:121 +#: src/views/cert/IndexView.vue:98 msgid "DNS List" msgstr "DNS 列表" +#: src/views/cert/IndexView.vue:104 +#: src/views/cert/UploadCertModal.vue:30 +msgid "Upload Certificate" +msgstr "上傳證書" + #: src/views/cert/ObtainModal.vue:18 msgid "Automatic" msgstr "自動" @@ -2089,11 +2073,11 @@ msgid "Creation Time" msgstr "創建時間" #: src/views/container/ComposeView.vue:96 -#: src/views/file/ListTable.vue:68 -#: src/views/file/ListTable.vue:220 -#: src/views/ssh/IndexView.vue:71 -#: src/views/task/CronView.vue:133 -#: src/views/website/IndexView.vue:141 +#: src/views/file/ListTable.vue:70 +#: src/views/file/ListTable.vue:222 +#: src/views/ssh/IndexView.vue:70 +#: src/views/task/CronView.vue:132 +#: src/views/website/PhpView.vue:136 msgid "Edit" msgstr "編輯" @@ -2145,7 +2129,7 @@ msgstr "編排名稱" #: src/views/container/ComposeView.vue:331 #: src/views/container/ComposeView.vue:361 -#: src/views/container/IndexView.vue:24 +#: src/views/container/IndexView.vue:23 msgid "Compose" msgstr "編排" @@ -2239,8 +2223,8 @@ msgid "Add" msgstr "添加" #: src/views/container/ContainerCreate.vue:245 -#: src/views/dashboard/IndexView.vue:141 -#: src/views/dashboard/IndexView.vue:797 +#: src/views/dashboard/IndexView.vue:142 +#: src/views/dashboard/IndexView.vue:794 #: src/views/monitor/IndexView.vue:286 msgid "Network" msgstr "網絡" @@ -2258,9 +2242,9 @@ msgid "Container Directory" msgstr "容器目錄" #: src/views/container/ContainerCreate.vue:255 -#: src/views/file/ListTable.vue:73 -#: src/views/file/ListTable.vue:145 -#: src/views/file/ListTable.vue:300 +#: src/views/file/ListTable.vue:75 +#: src/views/file/ListTable.vue:147 +#: src/views/file/ListTable.vue:302 #: src/views/file/PermissionModal.vue:113 #: src/views/file/ToolBar.vue:235 msgid "Permission" @@ -2285,12 +2269,12 @@ msgid "Entrypoint" msgstr "進入點" #: src/views/container/ContainerCreate.vue:307 -#: src/views/dashboard/IndexView.vue:533 +#: src/views/dashboard/IndexView.vue:534 #: src/views/monitor/IndexView.vue:205 #: src/views/monitor/IndexView.vue:216 #: src/views/monitor/IndexView.vue:238 #: src/views/task/SystemView.vue:78 -#: src/views/toolbox/BenchmarkView.vue:188 +#: src/views/toolbox/BenchmarkView.vue:177 msgid "Memory" msgstr "記憶體" @@ -2346,9 +2330,9 @@ msgid "Ports (Host->Container)" msgstr "端口(主機->容器)" #: src/views/container/ContainerView.vue:122 -#: src/views/container/ContainerView.vue:469 -#: src/views/file/ListTable.vue:84 -#: src/views/file/ListTable.vue:264 +#: src/views/container/ContainerView.vue:468 +#: src/views/file/ListTable.vue:86 +#: src/views/file/ListTable.vue:266 msgid "Rename" msgstr "重新命名" @@ -2368,7 +2352,7 @@ msgid "Resume" msgstr "恢復" #: src/views/container/ContainerView.vue:200 -#: src/views/file/ListTable.vue:364 +#: src/views/file/ListTable.vue:366 msgid "More" msgstr "更多" @@ -2435,12 +2419,12 @@ msgstr "請選擇要恢復的容器" msgid "Cleanup Containers" msgstr "清理容器" -#: src/views/container/ContainerView.vue:476 -#: src/views/file/ListTable.vue:719 +#: src/views/container/ContainerView.vue:475 +#: src/views/file/ListTable.vue:742 msgid "New Name" msgstr "新名稱" -#: src/views/container/ContainerView.vue:481 +#: src/views/container/ContainerView.vue:480 msgid "Enter new name" msgstr "輸入新名稱" @@ -2451,10 +2435,10 @@ msgstr "容器數量" #: src/views/container/ImageView.vue:84 #: src/views/container/NetworkView.vue:124 #: src/views/container/VolumeView.vue:78 -#: src/views/firewall/ForwardView.vue:93 -#: src/views/firewall/IpRuleView.vue:135 -#: src/views/firewall/RuleView.vue:172 -#: src/views/task/TaskView.vue:87 +#: 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 "您確定要刪除嗎?" @@ -2490,19 +2474,19 @@ msgstr "身份驗證" msgid "Enter password" msgstr "輸入密碼" -#: src/views/container/IndexView.vue:21 +#: src/views/container/IndexView.vue:22 msgid "Containers" msgstr "容器" -#: src/views/container/IndexView.vue:27 +#: src/views/container/IndexView.vue:24 msgid "Images" msgstr "映像" -#: src/views/container/IndexView.vue:30 +#: src/views/container/IndexView.vue:25 msgid "Networks" msgstr "網絡" -#: src/views/container/IndexView.vue:33 +#: src/views/container/IndexView.vue:26 msgid "Volumes" msgstr "卷" @@ -2585,7 +2569,7 @@ msgid "Option Value" msgstr "選項值" #: src/views/container/VolumeView.vue:47 -#: src/views/dashboard/IndexView.vue:644 +#: src/views/dashboard/IndexView.vue:645 msgid "Mount Point" msgstr "掛載點" @@ -2602,63 +2586,63 @@ msgstr "清理卷" msgid "Volume Name" msgstr "卷名稱" -#: src/views/dashboard/IndexView.vue:129 +#: src/views/dashboard/IndexView.vue:130 msgid "Running blocked" msgstr "運行阻塞" -#: src/views/dashboard/IndexView.vue:131 +#: src/views/dashboard/IndexView.vue:132 msgid "Running slowly" msgstr "運行緩慢" -#: src/views/dashboard/IndexView.vue:133 +#: src/views/dashboard/IndexView.vue:134 msgid "Running normally" msgstr "運行正常" -#: src/views/dashboard/IndexView.vue:135 +#: src/views/dashboard/IndexView.vue:136 msgid "Running smoothly" msgstr "運行流暢" -#: src/views/dashboard/IndexView.vue:141 -#: src/views/dashboard/IndexView.vue:798 -#: src/views/dashboard/IndexView.vue:818 -#: src/views/toolbox/BenchmarkView.vue:219 +#: src/views/dashboard/IndexView.vue:142 +#: src/views/dashboard/IndexView.vue:795 +#: src/views/dashboard/IndexView.vue:815 +#: src/views/toolbox/BenchmarkView.vue:203 msgid "Disk" msgstr "磁碟" -#: src/views/dashboard/IndexView.vue:164 -#: src/views/dashboard/IndexView.vue:181 +#: src/views/dashboard/IndexView.vue:165 +#: src/views/dashboard/IndexView.vue:182 msgid "Send" msgstr "發送" -#: src/views/dashboard/IndexView.vue:164 -#: src/views/dashboard/IndexView.vue:205 +#: src/views/dashboard/IndexView.vue:165 +#: src/views/dashboard/IndexView.vue:206 msgid "Receive" msgstr "接收" -#: src/views/dashboard/IndexView.vue:165 -#: src/views/dashboard/IndexView.vue:181 -#: src/views/dashboard/IndexView.vue:842 +#: src/views/dashboard/IndexView.vue:166 +#: src/views/dashboard/IndexView.vue:182 +#: src/views/dashboard/IndexView.vue:839 #: src/views/file/PermissionModal.vue:88 #: src/views/file/PermissionModal.vue:97 #: src/views/file/PermissionModal.vue:106 msgid "Read" msgstr "讀取" -#: src/views/dashboard/IndexView.vue:165 -#: src/views/dashboard/IndexView.vue:205 -#: src/views/dashboard/IndexView.vue:843 +#: src/views/dashboard/IndexView.vue:166 +#: src/views/dashboard/IndexView.vue:206 +#: src/views/dashboard/IndexView.vue:840 #: src/views/file/PermissionModal.vue:89 #: src/views/file/PermissionModal.vue:98 #: src/views/file/PermissionModal.vue:107 msgid "Write" msgstr "寫入" -#: src/views/dashboard/IndexView.vue:173 +#: src/views/dashboard/IndexView.vue:174 msgid "Unit %{unit}" msgstr "單位 %{unit}" -#: src/views/dashboard/IndexView.vue:187 -#: src/views/dashboard/IndexView.vue:211 +#: src/views/dashboard/IndexView.vue:188 +#: src/views/dashboard/IndexView.vue:212 #: src/views/monitor/IndexView.vue:93 #: src/views/monitor/IndexView.vue:115 #: src/views/monitor/IndexView.vue:137 @@ -2672,8 +2656,8 @@ msgstr "單位 %{unit}" msgid "Maximum" msgstr "最大值" -#: src/views/dashboard/IndexView.vue:188 -#: src/views/dashboard/IndexView.vue:212 +#: src/views/dashboard/IndexView.vue:189 +#: src/views/dashboard/IndexView.vue:213 #: src/views/monitor/IndexView.vue:94 #: src/views/monitor/IndexView.vue:116 #: src/views/monitor/IndexView.vue:138 @@ -2687,8 +2671,8 @@ msgstr "最大值" msgid "Minimum" msgstr "最小值" -#: src/views/dashboard/IndexView.vue:192 -#: src/views/dashboard/IndexView.vue:216 +#: src/views/dashboard/IndexView.vue:193 +#: src/views/dashboard/IndexView.vue:217 #: src/views/monitor/IndexView.vue:98 #: src/views/monitor/IndexView.vue:120 #: src/views/monitor/IndexView.vue:142 @@ -2702,211 +2686,211 @@ msgstr "最小值" msgid "Average" msgstr "平均值" -#: src/views/dashboard/IndexView.vue:324 +#: src/views/dashboard/IndexView.vue:325 msgid "Panel restarting..." msgstr "面板重啟中……" -#: src/views/dashboard/IndexView.vue:326 +#: src/views/dashboard/IndexView.vue:327 msgid "Panel restarted successfully" msgstr "面板重啟成功" -#: src/views/dashboard/IndexView.vue:338 +#: src/views/dashboard/IndexView.vue:339 msgid "Current version is the latest" msgstr "當前版本是最新版本" -#: src/views/dashboard/IndexView.vue:434 -#: src/views/task/IndexView.vue:29 +#: src/views/dashboard/IndexView.vue:435 +#: src/views/task/IndexView.vue:23 msgid "Scheduled Tasks" msgstr "計劃任務" -#: src/views/dashboard/IndexView.vue:443 +#: src/views/dashboard/IndexView.vue:444 msgid "Sponsor Support" msgstr "贊助支持" -#: src/views/dashboard/IndexView.vue:449 +#: src/views/dashboard/IndexView.vue:450 msgid "Are you sure you want to restart the panel?" msgstr "您確定要重啟面板嗎?" -#: src/views/dashboard/IndexView.vue:457 +#: src/views/dashboard/IndexView.vue:458 msgid "Resource Overview" msgstr "資源概覽" -#: src/views/dashboard/IndexView.vue:474 +#: src/views/dashboard/IndexView.vue:475 msgid "Last 1 minute" msgstr "最近 1 分鐘" -#: src/views/dashboard/IndexView.vue:481 +#: src/views/dashboard/IndexView.vue:482 msgid "Last 5 minutes" msgstr "最近 5 分鐘" -#: src/views/dashboard/IndexView.vue:488 +#: src/views/dashboard/IndexView.vue:489 msgid "Last 15 minutes" msgstr "最近 15 分鐘" -#: src/views/dashboard/IndexView.vue:506 -#: src/views/dashboard/IndexView.vue:517 +#: src/views/dashboard/IndexView.vue:507 +#: src/views/dashboard/IndexView.vue:518 msgid "cores" msgstr "核心" -#: src/views/dashboard/IndexView.vue:511 +#: src/views/dashboard/IndexView.vue:512 msgid "Model" msgstr "型號" -#: src/views/dashboard/IndexView.vue:515 +#: src/views/dashboard/IndexView.vue:516 msgid "Parameters" msgstr "參數" -#: src/views/dashboard/IndexView.vue:518 +#: src/views/dashboard/IndexView.vue:519 msgid "cache" msgstr "快取" -#: src/views/dashboard/IndexView.vue:524 +#: src/views/dashboard/IndexView.vue:525 #: src/views/monitor/IndexView.vue:179 msgid "Usage" msgstr "使用率" -#: src/views/dashboard/IndexView.vue:525 +#: src/views/dashboard/IndexView.vue:526 msgid "Frequency" msgstr "頻率" -#: src/views/dashboard/IndexView.vue:545 +#: src/views/dashboard/IndexView.vue:546 msgid "Active" msgstr "活躍" -#: src/views/dashboard/IndexView.vue:551 +#: src/views/dashboard/IndexView.vue:552 msgid "Inactive" msgstr "非活躍" -#: src/views/dashboard/IndexView.vue:557 +#: src/views/dashboard/IndexView.vue:558 msgid "Free" msgstr "空閒" -#: src/views/dashboard/IndexView.vue:563 +#: src/views/dashboard/IndexView.vue:564 msgid "Shared" msgstr "共享" -#: src/views/dashboard/IndexView.vue:569 +#: src/views/dashboard/IndexView.vue:570 msgid "Committed" msgstr "已提交" -#: src/views/dashboard/IndexView.vue:575 +#: src/views/dashboard/IndexView.vue:576 msgid "Commit Limit" msgstr "提交限制" -#: src/views/dashboard/IndexView.vue:581 -#: src/views/toolbox/SystemView.vue:149 +#: src/views/dashboard/IndexView.vue:582 +#: src/views/toolbox/SystemView.vue:125 msgid "SWAP Size" msgstr "SWAP 大小" -#: src/views/dashboard/IndexView.vue:587 +#: src/views/dashboard/IndexView.vue:588 msgid "SWAP Used" msgstr "已用 SWAP" -#: src/views/dashboard/IndexView.vue:593 +#: src/views/dashboard/IndexView.vue:594 msgid "SWAP Available" msgstr "可用 SWAP" -#: src/views/dashboard/IndexView.vue:599 +#: src/views/dashboard/IndexView.vue:600 msgid "Physical Memory Size" msgstr "物理記憶體大小" -#: src/views/dashboard/IndexView.vue:605 +#: src/views/dashboard/IndexView.vue:606 msgid "Physical Memory Used" msgstr "已用物理記憶體" -#: src/views/dashboard/IndexView.vue:611 +#: src/views/dashboard/IndexView.vue:612 msgid "Physical Memory Available" msgstr "可用實體記憶體" -#: src/views/dashboard/IndexView.vue:648 +#: src/views/dashboard/IndexView.vue:649 msgid "File System" msgstr "檔案系統" -#: src/views/dashboard/IndexView.vue:652 +#: src/views/dashboard/IndexView.vue:653 msgid "Inodes Usage" msgstr "Inodes 使用率" -#: src/views/dashboard/IndexView.vue:656 +#: src/views/dashboard/IndexView.vue:657 msgid "Inodes Total" msgstr "Inodes 總數" -#: src/views/dashboard/IndexView.vue:660 +#: src/views/dashboard/IndexView.vue:661 msgid "Inodes Used" msgstr "已用 Inodes" -#: src/views/dashboard/IndexView.vue:664 +#: src/views/dashboard/IndexView.vue:665 msgid "Inodes Available" msgstr "可用 Inodes" -#: src/views/dashboard/IndexView.vue:681 +#: src/views/dashboard/IndexView.vue:682 msgid "Quick Apps" msgstr "快速應用" -#: src/views/dashboard/IndexView.vue:724 +#: src/views/dashboard/IndexView.vue:721 msgid "You have not set any apps to display here!" msgstr "您尚未設置任何要在此處顯示的應用!" -#: src/views/dashboard/IndexView.vue:728 +#: src/views/dashboard/IndexView.vue:725 msgid "Environment Information" msgstr "環境資訊" -#: src/views/dashboard/IndexView.vue:731 +#: src/views/dashboard/IndexView.vue:728 msgid "System Hostname" msgstr "系統主機名" -#: src/views/dashboard/IndexView.vue:737 +#: src/views/dashboard/IndexView.vue:734 msgid "System Version" msgstr "系統版本" -#: src/views/dashboard/IndexView.vue:746 +#: src/views/dashboard/IndexView.vue:743 msgid "System Kernel Version" msgstr "系統內核版本" -#: src/views/dashboard/IndexView.vue:752 +#: src/views/dashboard/IndexView.vue:749 msgid "System Uptime" msgstr "系統運行時間" -#: src/views/dashboard/IndexView.vue:758 +#: src/views/dashboard/IndexView.vue:755 msgid "Panel Internal Version" msgstr "面板內部版本" -#: src/views/dashboard/IndexView.vue:770 +#: src/views/dashboard/IndexView.vue:767 msgid "Panel Compile Information" msgstr "面板編譯資訊" -#: src/views/dashboard/IndexView.vue:787 +#: src/views/dashboard/IndexView.vue:784 msgid "Real-time Monitoring" msgstr "即時監控" -#: src/views/dashboard/IndexView.vue:801 +#: src/views/dashboard/IndexView.vue:798 msgid "Unit" msgstr "單位" -#: src/views/dashboard/IndexView.vue:809 +#: src/views/dashboard/IndexView.vue:806 msgid "Network Card" msgstr "網卡" -#: src/views/dashboard/IndexView.vue:829 +#: src/views/dashboard/IndexView.vue:826 msgid "Total Sent" msgstr "總發送量" -#: src/views/dashboard/IndexView.vue:831 +#: src/views/dashboard/IndexView.vue:828 msgid "Total Received" msgstr "總接收量" -#: src/views/dashboard/IndexView.vue:834 +#: src/views/dashboard/IndexView.vue:831 msgid "Real-time Sent" msgstr "實時發送" -#: src/views/dashboard/IndexView.vue:838 +#: src/views/dashboard/IndexView.vue:835 msgid "Real-time Received" msgstr "實時接收" -#: src/views/dashboard/IndexView.vue:845 +#: src/views/dashboard/IndexView.vue:842 msgid "Real-time Read/Write" msgstr "實時讀/寫" -#: src/views/dashboard/IndexView.vue:848 +#: src/views/dashboard/IndexView.vue:845 msgid "Read/Write Latency" msgstr "讀/寫延遲" @@ -2930,11 +2914,11 @@ msgstr "面板更新成功" msgid "Update canceled" msgstr "更新已取消" -#: src/views/dashboard/UpdateView.vue:59 +#: src/views/dashboard/UpdateView.vue:73 msgid "Update Now" msgstr "立即更新" -#: src/views/dashboard/UpdateView.vue:85 +#: src/views/dashboard/UpdateView.vue:80 msgid "Loading update information, please wait a moment" msgstr "正在加載更新資訊,請稍候" @@ -2954,15 +2938,15 @@ msgid "Specific" msgstr "特定" #: src/views/database/CreateDatabaseModal.vue:55 -#: src/views/database/IndexView.vue:32 +#: src/views/database/IndexView.vue:39 msgid "Create Database" msgstr "創建數據庫" #: src/views/database/CreateDatabaseModal.vue:63 #: src/views/database/CreateUserModal.vue:69 -#: src/views/database/DatabaseList.vue:42 -#: src/views/database/IndexView.vue:51 -#: src/views/database/UserList.vue:91 +#: src/views/database/DatabaseList.vue:41 +#: src/views/database/IndexView.vue:29 +#: src/views/database/UserList.vue:90 msgid "Server" msgstr "伺服器" @@ -2995,7 +2979,7 @@ msgid "Enter supported host address" msgstr "輸入支持的主機地址" #: src/views/database/CreateServerModal.vue:47 -#: src/views/database/IndexView.vue:40 +#: src/views/database/IndexView.vue:49 msgid "Add Server" msgstr "添加伺服器" @@ -3015,12 +2999,12 @@ msgstr "輸入數據庫伺服器主機" #: src/views/database/CreateServerModal.vue:84 #: src/views/database/UpdateServerModal.vue:76 -#: src/views/firewall/ForwardView.vue:32 -#: src/views/firewall/RuleView.vue:49 +#: src/views/firewall/ForwardView.vue:31 +#: src/views/firewall/RuleView.vue:48 #: src/views/setting/SettingBase.vue:49 #: src/views/ssh/CreateModal.vue:68 #: src/views/ssh/UpdateModal.vue:74 -#: src/views/website/IndexView.vue:468 +#: src/views/website/PhpView.vue:431 msgid "Port" msgstr "端口" @@ -3055,7 +3039,7 @@ msgstr "主機(僅限MySQL)" #: src/views/database/CreateUserModal.vue:110 #: src/views/database/UpdateUserModal.vue:64 -#: src/views/database/UserList.vue:99 +#: src/views/database/UserList.vue:98 msgid "Privileges" msgstr "權限" @@ -3064,61 +3048,60 @@ msgstr "權限" msgid "Enter database user comment" msgstr "輸入數據庫用戶備註" -#: src/views/database/DatabaseList.vue:47 +#: src/views/database/DatabaseList.vue:46 msgid "Encoding" msgstr "編碼" -#: src/views/database/DatabaseList.vue:87 +#: src/views/database/DatabaseList.vue:86 msgid "Are you sure you want to delete this database?" msgstr "您確定要刪除這個數據庫嗎?" -#: src/views/database/ServerList.vue:76 -#: src/views/database/UserList.vue:70 -#: src/views/file/ListTable.vue:516 -#: src/views/file/ListTable.vue:536 -#: src/views/file/SearchModal.vue:65 +#: src/views/database/ServerList.vue:75 +#: src/views/database/UserList.vue:69 +#: src/views/file/ListTable.vue:519 +#: src/views/file/ListTable.vue:539 #: src/views/file/ToolBar.vue:145 #: src/views/file/ToolBar.vue:165 -#: src/views/setting/TokenModal.vue:165 +#: src/views/setting/TokenModal.vue:163 msgid "Copied successfully" msgstr "複製成功" -#: src/views/database/ServerList.vue:80 -#: src/views/database/UserList.vue:74 -#: src/views/file/ListTable.vue:71 -#: src/views/file/ListTable.vue:298 +#: src/views/database/ServerList.vue:79 +#: src/views/database/UserList.vue:73 +#: src/views/file/ListTable.vue:73 +#: src/views/file/ListTable.vue:300 #: src/views/file/ToolBar.vue:232 msgid "Copy" msgstr "複製" -#: src/views/database/ServerList.vue:121 -#: src/views/database/UserList.vue:138 +#: src/views/database/ServerList.vue:120 +#: src/views/database/UserList.vue:137 msgid "Valid" msgstr "有效" -#: src/views/database/ServerList.vue:121 -#: src/views/database/UserList.vue:138 +#: src/views/database/ServerList.vue:120 +#: src/views/database/UserList.vue:137 msgid "Invalid" msgstr "無效" -#: src/views/database/ServerList.vue:147 -#: src/views/toolbox/SystemView.vue:87 +#: src/views/database/ServerList.vue:146 +#: src/views/toolbox/SystemView.vue:86 msgid "Synchronized successfully" msgstr "同步成功" -#: src/views/database/ServerList.vue:153 +#: src/views/database/ServerList.vue:152 msgid "Are you sure you want to synchronize database users (excluding password) to the panel?" msgstr "您確定要將數據庫用戶(不包括密碼)同步到面板嗎?" -#: src/views/database/ServerList.vue:165 +#: src/views/database/ServerList.vue:164 msgid "Sync" msgstr "同步" -#: src/views/database/ServerList.vue:195 +#: src/views/database/ServerList.vue:192 msgid "Built-in servers cannot be deleted. If you need to delete them, please uninstall the corresponding app" msgstr "內置服務器無法刪除。如果需要刪除它們,請卸載相應的應用" -#: src/views/database/ServerList.vue:206 +#: src/views/database/ServerList.vue:203 msgid "Are you sure you want to delete the server?" msgstr "您確定要刪除該服務器嗎?" @@ -3130,11 +3113,11 @@ msgstr "修改服務器" msgid "Modify User" msgstr "修改用戶" -#: src/views/database/UserList.vue:61 +#: src/views/database/UserList.vue:60 msgid "Not saved" msgstr "未保存" -#: src/views/database/UserList.vue:180 +#: src/views/database/UserList.vue:178 msgid "Are you sure you want to delete the user?" msgstr "您確定要刪除該用戶嗎?" @@ -3156,9 +3139,9 @@ msgstr "壓縮成功" #: src/views/file/CompressModal.vue:73 #: src/views/file/CompressModal.vue:105 -#: src/views/file/ListTable.vue:75 -#: src/views/file/ListTable.vue:245 -#: src/views/file/ListTable.vue:301 +#: src/views/file/ListTable.vue:77 +#: src/views/file/ListTable.vue:247 +#: src/views/file/ListTable.vue:303 #: src/views/file/ToolBar.vue:234 msgid "Compress" msgstr "壓縮" @@ -3183,120 +3166,119 @@ msgstr "編輯 - %{ file }" msgid "Refresh" msgstr "重新整理" -#: src/views/file/ListTable.vue:65 -#: src/views/file/ListTable.vue:222 +#: src/views/file/ListTable.vue:67 +#: src/views/file/ListTable.vue:224 msgid "Open" msgstr "開啟" -#: src/views/file/ListTable.vue:67 -#: src/views/file/ListTable.vue:220 +#: src/views/file/ListTable.vue:69 +#: src/views/file/ListTable.vue:222 msgid "Preview" msgstr "預覽" -#: src/views/file/ListTable.vue:72 -#: src/views/file/ListTable.vue:299 +#: src/views/file/ListTable.vue:74 +#: src/views/file/ListTable.vue:301 #: src/views/file/ToolBar.vue:233 msgid "Move" msgstr "移動" -#: src/views/file/ListTable.vue:75 -#: src/views/file/ListTable.vue:247 +#: src/views/file/ListTable.vue:77 +#: src/views/file/ListTable.vue:249 msgid "Download" msgstr "下載" -#: src/views/file/ListTable.vue:79 -#: src/views/file/ListTable.vue:303 -#: src/views/file/ListTable.vue:741 +#: src/views/file/ListTable.vue:81 +#: src/views/file/ListTable.vue:305 +#: src/views/file/ListTable.vue:764 msgid "Uncompress" msgstr "解壓縮" -#: src/views/file/ListTable.vue:89 +#: src/views/file/ListTable.vue:91 #: src/views/file/ToolBar.vue:229 msgid "Paste" msgstr "貼上" -#: src/views/file/ListTable.vue:279 -#: src/views/file/SearchModal.vue:88 +#: src/views/file/ListTable.vue:281 msgid "Are you sure you want to delete %{ name }?" msgstr "您確定要刪除 %{ name } 嗎?" -#: src/views/file/ListTable.vue:320 -#: src/views/file/ListTable.vue:335 -#: src/views/file/ListTable.vue:575 -#: src/views/file/ListTable.vue:588 +#: src/views/file/ListTable.vue:322 +#: src/views/file/ListTable.vue:337 +#: src/views/file/ListTable.vue:578 +#: src/views/file/ListTable.vue:591 #: src/views/file/ToolBar.vue:77 #: src/views/file/ToolBar.vue:94 msgid "Marked successfully, please navigate to the destination path to paste" msgstr "標記成功,請導航到目標路徑進行粘貼" -#: src/views/file/ListTable.vue:412 -#: src/views/file/ListTable.vue:499 +#: src/views/file/ListTable.vue:415 +#: src/views/file/ListTable.vue:502 #: src/views/file/ToolBar.vue:128 msgid "Warning" msgstr "警告" -#: src/views/file/ListTable.vue:413 +#: src/views/file/ListTable.vue:416 msgid "There are items with the same name. Do you want to overwrite?" msgstr "存在同名項目。您要覆蓋嗎?" -#: src/views/file/ListTable.vue:414 -#: src/views/file/ListTable.vue:509 +#: src/views/file/ListTable.vue:417 +#: src/views/file/ListTable.vue:512 #: src/views/file/ToolBar.vue:138 msgid "Overwrite" msgstr "覆蓋" -#: src/views/file/ListTable.vue:421 -#: src/views/file/ListTable.vue:437 +#: src/views/file/ListTable.vue:424 +#: src/views/file/ListTable.vue:440 msgid "Renamed %{ source } to %{ target } successfully" msgstr "成功將 %{ source } 重命名為 %{ target }" -#: src/views/file/ListTable.vue:459 +#: src/views/file/ListTable.vue:462 msgid "Uncompressing..." msgstr "解壓中……" -#: src/views/file/ListTable.vue:466 +#: src/views/file/ListTable.vue:469 msgid "Uncompressed successfully" msgstr "解壓成功" -#: src/views/file/ListTable.vue:475 +#: src/views/file/ListTable.vue:478 #: src/views/file/ToolBar.vue:104 msgid "Please mark the files/folders to copy or move first" msgstr "請先標記要複製或移動的文件/文件夾" -#: src/views/file/ListTable.vue:500 +#: src/views/file/ListTable.vue:503 #: src/views/file/ToolBar.vue:129 -msgid "There are items with the same name. %{ items } Do you want to overwrite?" -msgstr "存在同名項目。%{ items } 是否要覆蓋?" +msgid "There are items with the same name %{ items } Do you want to overwrite?" +msgstr "" -#: src/views/file/ListTable.vue:522 -#: src/views/file/ListTable.vue:542 +#: src/views/file/ListTable.vue:525 +#: src/views/file/ListTable.vue:545 #: src/views/file/ToolBar.vue:151 #: src/views/file/ToolBar.vue:171 msgid "Moved successfully" msgstr "移動成功" -#: src/views/file/ListTable.vue:528 +#: src/views/file/ListTable.vue:531 #: src/views/file/ToolBar.vue:157 msgid "Canceled" msgstr "已取消" -#: src/views/file/ListTable.vue:711 +#: src/views/file/ListTable.vue:734 msgid "Rename - %{ source }" msgstr "重命名 - %{ source }" -#: src/views/file/ListTable.vue:729 +#: src/views/file/ListTable.vue:752 msgid "Uncompress - %{ file }" msgstr "解壓 - %{ file }" -#: src/views/file/ListTable.vue:737 +#: src/views/file/ListTable.vue:760 msgid "Uncompress to" msgstr "解壓到" -#: src/views/file/PathInput.vue:154 +#: src/views/file/PathInput.vue:149 msgid "Enter search content" msgstr "輸入搜索內容" -#: src/views/file/PathInput.vue:157 +#: src/views/file/PathInput.vue:152 msgid "Include subdirectories" msgstr "包括子目錄" @@ -3332,14 +3314,6 @@ msgstr "其他" msgid "Preview - " msgstr "預覽 - " -#: src/views/file/SearchModal.vue:71 -msgid "Copy Path" -msgstr "複製路徑" - -#: src/views/file/SearchModal.vue:154 -msgid "%{ keyword } - Search Results" -msgstr "%{ keyword } - 搜尋結果" - #: src/views/file/ToolBar.vue:60 msgid "Download task created successfully" msgstr "下載任務創建成功" @@ -3387,21 +3361,21 @@ msgid "For large files, it is recommended to use SFTP and other methods to uploa msgstr "對於大檔案,建議使用 SFTP 等方法上傳" #: src/views/firewall/CreateForwardModal.vue:50 -#: src/views/firewall/ForwardView.vue:166 +#: src/views/firewall/ForwardView.vue:163 msgid "Create Forwarding" msgstr "創建轉發" #: src/views/firewall/CreateForwardModal.vue:58 #: src/views/firewall/CreateIpModal.vue:100 -#: src/views/firewall/CreateModal.vue:99 -#: src/views/firewall/ForwardView.vue:15 -#: src/views/firewall/IpRuleView.vue:15 -#: src/views/firewall/RuleView.vue:15 +#: src/views/firewall/CreateModal.vue:102 +#: src/views/firewall/ForwardView.vue:14 +#: src/views/firewall/IpRuleView.vue:14 +#: src/views/firewall/RuleView.vue:14 msgid "Transport Protocol" msgstr "傳輸協議" #: src/views/firewall/CreateForwardModal.vue:61 -#: src/views/firewall/ForwardView.vue:44 +#: src/views/firewall/ForwardView.vue:43 msgid "Target IP" msgstr "目標 IP" @@ -3410,61 +3384,61 @@ msgid "Source Port" msgstr "源端口" #: src/views/firewall/CreateForwardModal.vue:76 -#: src/views/firewall/ForwardView.vue:62 +#: src/views/firewall/ForwardView.vue:61 msgid "Target Port" msgstr "目標端口" #: src/views/firewall/CreateIpModal.vue:38 #: src/views/firewall/CreateModal.vue:38 -#: src/views/firewall/IpRuleView.vue:69 -#: src/views/firewall/RuleView.vue:103 +#: 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:71 -#: src/views/firewall/RuleView.vue:105 +#: 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:73 -#: src/views/firewall/RuleView.vue:107 +#: 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:98 -#: src/views/firewall/RuleView.vue:132 +#: 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:100 -#: src/views/firewall/RuleView.vue:134 +#: src/views/firewall/IpRuleView.vue:99 +#: src/views/firewall/RuleView.vue:133 msgid "Outbound" msgstr "出站" #: src/views/firewall/CreateIpModal.vue:81 -#: src/views/firewall/CreateModal.vue:80 +#: src/views/firewall/CreateModal.vue:83 msgid "%{ address } created successfully" msgstr "%{ address } 創建成功" #: src/views/firewall/CreateIpModal.vue:92 -#: src/views/firewall/CreateModal.vue:91 -#: src/views/firewall/IpRuleView.vue:208 -#: src/views/firewall/RuleView.vue:245 +#: src/views/firewall/CreateModal.vue:94 +#: 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:102 -#: src/views/firewall/IpRuleView.vue:32 -#: src/views/firewall/RuleView.vue:32 +#: src/views/firewall/CreateModal.vue:105 +#: src/views/firewall/IpRuleView.vue:31 +#: src/views/firewall/RuleView.vue:31 msgid "Network Protocol" msgstr "網路協議" @@ -3473,83 +3447,83 @@ msgid "IP Address" msgstr "IP 地址" #: src/views/firewall/CreateIpModal.vue:110 -#: src/views/firewall/CreateModal.vue:131 +#: src/views/firewall/CreateModal.vue:134 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:134 -#: src/views/firewall/IpRuleView.vue:49 -#: src/views/firewall/RuleView.vue:83 +#: src/views/firewall/CreateModal.vue:137 +#: 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:137 -#: src/views/firewall/IpRuleView.vue:85 -#: src/views/firewall/RuleView.vue:119 +#: src/views/firewall/CreateModal.vue:140 +#: src/views/firewall/IpRuleView.vue:84 +#: src/views/firewall/RuleView.vue:118 msgid "Direction" msgstr "方向" -#: src/views/firewall/CreateModal.vue:107 +#: src/views/firewall/CreateModal.vue:110 msgid "Start Port" msgstr "起始端口" -#: src/views/firewall/CreateModal.vue:117 +#: src/views/firewall/CreateModal.vue:120 msgid "End Port" msgstr "結束連接埠" -#: src/views/firewall/CreateModal.vue:127 -#: src/views/firewall/IpRuleView.vue:110 -#: src/views/firewall/RuleView.vue:144 +#: src/views/firewall/CreateModal.vue:130 +#: src/views/firewall/IpRuleView.vue:109 +#: src/views/firewall/RuleView.vue:143 msgid "Target" msgstr "目標" -#: src/views/firewall/ForwardView.vue:137 -#: src/views/firewall/IpRuleView.vue:179 -#: src/views/firewall/RuleView.vue:216 +#: 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:172 -#: src/views/firewall/IpRuleView.vue:214 -#: src/views/firewall/RuleView.vue:251 -#: src/views/website/IndexView.vue:389 +#: src/views/firewall/ForwardView.vue:168 +#: src/views/firewall/IpRuleView.vue:210 +#: src/views/firewall/RuleView.vue:247 +#: src/views/website/PhpView.vue:363 msgid "Batch Delete" msgstr "批量刪除" -#: src/views/firewall/ForwardView.vue:175 -#: src/views/firewall/IpRuleView.vue:217 -#: src/views/firewall/RuleView.vue:254 +#: 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 "您確定要批量刪除嗎?" -#: src/views/firewall/IndexView.vue:19 +#: src/views/firewall/IndexView.vue:20 msgid "Port Rules" msgstr "連接埠規則" -#: src/views/firewall/IndexView.vue:22 +#: src/views/firewall/IndexView.vue:21 msgid "IP Rules" msgstr "IP 規則" -#: src/views/firewall/IndexView.vue:25 +#: src/views/firewall/IndexView.vue:22 msgid "Port Forwarding" msgstr "連接埠轉發" -#: src/views/firewall/IpRuleView.vue:75 -#: src/views/firewall/RuleView.vue:109 +#: src/views/firewall/IpRuleView.vue:74 +#: src/views/firewall/RuleView.vue:108 msgid "Mark" msgstr "標記" -#: src/views/firewall/RuleView.vue:74 +#: src/views/firewall/RuleView.vue:73 msgid "In Use" msgstr "使用中" -#: src/views/firewall/RuleView.vue:76 +#: src/views/firewall/RuleView.vue:75 msgid "Not Used" msgstr "未使用" -#: src/views/firewall/RuleView.vue:151 +#: src/views/firewall/RuleView.vue:150 msgid "All" msgstr "所有" @@ -3652,31 +3626,31 @@ msgstr "每秒入流量" msgid "Operation successful" msgstr "操作成功" -#: src/views/monitor/IndexView.vue:451 -msgid "Clear Monitoring Records" -msgstr "清除監控記錄" - -#: src/views/monitor/IndexView.vue:454 -#: src/views/website/EditView.vue:224 -msgid "Are you sure you want to clear?" -msgstr "確定要清除嗎?" - -#: src/views/monitor/IndexView.vue:465 +#: src/views/monitor/IndexView.vue:450 msgid "Enable Monitoring" msgstr "啟用監控" -#: src/views/monitor/IndexView.vue:468 +#: src/views/monitor/IndexView.vue:454 msgid "Save Days" msgstr "保存天數" -#: src/views/monitor/IndexView.vue:470 +#: src/views/monitor/IndexView.vue:456 msgid "days" msgstr "天" -#: src/views/monitor/IndexView.vue:476 +#: src/views/monitor/IndexView.vue:465 msgid "Time Selection" msgstr "時間選擇" +#: src/views/monitor/IndexView.vue:474 +msgid "Clear Monitoring Records" +msgstr "清除監控記錄" + +#: src/views/monitor/IndexView.vue:477 +#: src/views/website/EditView.vue:409 +msgid "Are you sure you want to clear?" +msgstr "確定要清除嗎?" + #: src/views/setting/CreateModal.vue:44 msgid "Enter user name" msgstr "輸入用戶名" @@ -3690,20 +3664,20 @@ msgstr "輸入用戶密碼" msgid "Enter user email" msgstr "輸入用戶郵箱" -#: src/views/setting/IndexView.vue:47 +#: src/views/setting/IndexView.vue:51 msgid "Panel is restarting, page will refresh in 3 seconds" msgstr "面板正在重啟,頁面將在 3 秒後刷新" -#: src/views/setting/IndexView.vue:73 +#: src/views/setting/IndexView.vue:68 msgid "Basic" msgstr "基本" -#: src/views/setting/IndexView.vue:76 +#: src/views/setting/IndexView.vue:69 msgid "Safe" msgstr "安全" #: src/views/setting/PasswordModal.vue:16 -#: src/views/setting/TokenModal.vue:183 +#: src/views/setting/TokenModal.vue:181 #: src/views/setting/TwoFaModal.vue:24 #: src/views/ssh/UpdateModal.vue:30 msgid "Updated successfully" @@ -3754,51 +3728,91 @@ msgstr "預設備份目錄" msgid "/www/backup" msgstr "/www/backup" -#: src/views/setting/SettingSafe.vue:12 +#: src/views/setting/SettingSafe.vue:17 msgid "Login Timeout" msgstr "登錄超時" -#: src/views/setting/SettingSafe.vue:15 +#: src/views/setting/SettingSafe.vue:22 +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:30 msgid "120" msgstr "120" -#: src/views/setting/SettingSafe.vue:21 +#: src/views/setting/SettingSafe.vue:36 #: src/views/website/ProxyBuilderModal.vue:188 msgid "minutes" msgstr "分鐘" -#: src/views/setting/SettingSafe.vue:25 +#: src/views/setting/SettingSafe.vue:45 msgid "Access Entrance" msgstr "訪問入口" -#: src/views/setting/SettingSafe.vue:26 -msgid "/admin" -msgstr "/admin" +#: src/views/setting/SettingSafe.vue:50 +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:28 +#: src/views/setting/SettingSafe.vue:63 +msgid "Request IP Header" +msgstr "" + +#: src/views/setting/SettingSafe.vue:68 +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:74 +msgid "X-Real-IP" +msgstr "" + +#: src/views/setting/SettingSafe.vue:81 msgid "Bind Domain" msgstr "綁定域名" -#: src/views/setting/SettingSafe.vue:35 +#: src/views/setting/SettingSafe.vue:86 +msgid "Restrict panel access to the specified domain names. Leave blank to allow access from any domain" +msgstr "" + +#: src/views/setting/SettingSafe.vue:103 msgid "Bind IP" msgstr "綁定 IP" -#: src/views/setting/SettingSafe.vue:38 +#: src/views/setting/SettingSafe.vue:108 +msgid "Restrict panel access to the specified IP addresses. Leave blank to allow access from any IP" +msgstr "" + +#: src/views/setting/SettingSafe.vue:121 msgid "Bind UA" msgstr "綁定 UA" -#: src/views/setting/SettingSafe.vue:45 +#: src/views/setting/SettingSafe.vue:126 +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:143 msgid "Offline Mode" msgstr "離線模式" -#: src/views/setting/SettingSafe.vue:48 +#: src/views/setting/SettingSafe.vue:148 +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:161 msgid "Auto Update" msgstr "自動更新" -#: src/views/setting/SettingSafe.vue:51 +#: src/views/setting/SettingSafe.vue:166 +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:179 msgid "Panel HTTPS" msgstr "面板 HTTPS" +#: src/views/setting/SettingSafe.vue:184 +msgid "Enable HTTPS for the panel to ensure secure communication. You need to provide a valid SSL certificate and private key" +msgstr "" + #: src/views/setting/SettingUser.vue:53 msgid "2FA" msgstr "兩步驗證" @@ -3808,11 +3822,11 @@ msgid "Disabled successfully" msgstr "禁用成功" #: src/views/setting/SettingUser.vue:103 -#: src/views/setting/TokenModal.vue:204 +#: src/views/setting/TokenModal.vue:202 msgid "Access Tokens" msgstr "訪問令牌" -#: src/views/setting/SettingUser.vue:131 +#: src/views/setting/SettingUser.vue:129 msgid "Are you sure you want to delete this user?" msgstr "您確定要刪除該用戶嗎?" @@ -3820,43 +3834,43 @@ msgstr "您確定要刪除該用戶嗎?" msgid "ID" msgstr "ID" -#: src/views/setting/TokenModal.vue:81 +#: src/views/setting/TokenModal.vue:80 msgid "Are you sure you want to delete this access token?" msgstr "您確定要刪除此訪問令牌嗎?" -#: src/views/setting/TokenModal.vue:144 +#: src/views/setting/TokenModal.vue:142 msgid "Token is only displayed once, please save it before closing the dialog." msgstr "令牌只顯示一次,請在關閉對話框前保存。" -#: src/views/setting/TokenModal.vue:161 +#: src/views/setting/TokenModal.vue:159 msgid "Copy and close" msgstr "複製並關閉" -#: src/views/setting/TokenModal.vue:168 +#: src/views/setting/TokenModal.vue:166 msgid "Copy failed" msgstr "複製失敗" -#: src/views/setting/TokenModal.vue:214 -#: src/views/setting/TokenModal.vue:242 +#: src/views/setting/TokenModal.vue:212 +#: src/views/setting/TokenModal.vue:240 msgid "Create Access Token" msgstr "創建訪問令牌" -#: src/views/setting/TokenModal.vue:251 -#: src/views/setting/TokenModal.vue:284 +#: src/views/setting/TokenModal.vue:249 +#: src/views/setting/TokenModal.vue:282 msgid "IP White List" msgstr "IP 白名單" -#: src/views/setting/TokenModal.vue:254 -#: src/views/setting/TokenModal.vue:287 +#: 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:262 -#: src/views/setting/TokenModal.vue:295 +#: src/views/setting/TokenModal.vue:260 +#: src/views/setting/TokenModal.vue:293 msgid "Please select the expiration time" msgstr "請選擇到期時間" -#: src/views/setting/TokenModal.vue:275 +#: src/views/setting/TokenModal.vue:273 msgid "Modify Access Token" msgstr "修改訪問令牌" @@ -3885,7 +3899,7 @@ msgid "Enter the code" msgstr "輸入代碼" #: src/views/ssh/CreateModal.vue:50 -#: src/views/ssh/IndexView.vue:231 +#: src/views/ssh/IndexView.vue:245 msgid "Create Host" msgstr "創建主機" @@ -3899,19 +3913,19 @@ msgstr "驗證方式" msgid "Remarks" msgstr "備註" -#: src/views/ssh/IndexView.vue:43 +#: src/views/ssh/IndexView.vue:42 msgid "Please create a host first" msgstr "請先創建一個主機" -#: src/views/ssh/IndexView.vue:82 +#: src/views/ssh/IndexView.vue:81 msgid "Are you sure you want to delete this host?" msgstr "您確定要刪除這個主機嗎?" -#: src/views/ssh/IndexView.vue:162 +#: src/views/ssh/IndexView.vue:161 msgid "Connection closed. Please refresh." msgstr "連接已關閉。請刷新。" -#: src/views/ssh/IndexView.vue:167 +#: src/views/ssh/IndexView.vue:166 msgid "Connection error. Please refresh." msgstr "連接錯誤。請刷新。" @@ -3950,15 +3964,15 @@ msgstr "日誌輪替" #: src/views/task/CreateModal.vue:107 #: src/views/task/CreateModal.vue:108 #: src/views/task/CronView.vue:29 -#: src/views/task/CronView.vue:257 -#: src/views/task/CronView.vue:258 +#: src/views/task/CronView.vue:254 +#: src/views/task/CronView.vue:255 #: src/views/task/TaskView.vue:15 msgid "Task Name" msgstr "任務名稱" #: src/views/task/CreateModal.vue:110 #: src/views/task/CronView.vue:73 -#: src/views/task/CronView.vue:260 +#: src/views/task/CronView.vue:257 msgid "Task Schedule" msgstr "任務計劃" @@ -3966,19 +3980,19 @@ msgstr "任務計劃" msgid "Script Content" msgstr "腳本內容" -#: src/views/task/CreateModal.vue:128 +#: src/views/task/CreateModal.vue:127 msgid "Backup Type" msgstr "備份類型" -#: src/views/task/CreateModal.vue:132 +#: src/views/task/CreateModal.vue:131 msgid "MySQL Database" msgstr "MySQL 數據庫" -#: src/views/task/CreateModal.vue:135 +#: src/views/task/CreateModal.vue:134 msgid "PostgreSQL Database" msgstr "PostgreSQL 數據庫" -#: src/views/task/CreateModal.vue:164 +#: src/views/task/CreateModal.vue:163 msgid "Retention Count" msgstr "保留數量" @@ -3990,26 +4004,26 @@ msgstr "已啟用" msgid "Last Update Time" msgstr "最後更新時間" -#: src/views/task/CronView.vue:144 +#: src/views/task/CronView.vue:142 msgid "Are you sure you want to delete this task?" msgstr "您確定要刪除此任務嗎?" -#: src/views/task/CronView.vue:249 +#: src/views/task/CronView.vue:246 msgid "Edit Task" msgstr "編輯任務" -#: src/views/task/IndexView.vue:25 -msgid "Create Task" -msgstr "創建任務" - -#: src/views/task/IndexView.vue:32 +#: src/views/task/IndexView.vue:24 msgid "System Processes" msgstr "系統進程" -#: src/views/task/IndexView.vue:35 +#: src/views/task/IndexView.vue:25 msgid "Panel Tasks" msgstr "面板任務" +#: src/views/task/IndexView.vue:31 +msgid "Create Task" +msgstr "創建任務" + #: src/views/task/SystemView.vue:25 msgid "Parent PID" msgstr "父進程 PID" @@ -4067,12 +4081,12 @@ msgstr "失敗" msgid "Completion Time" msgstr "完成時間" -#: src/views/task/TaskView.vue:136 +#: src/views/task/TaskView.vue:134 msgid "If logs cannot be loaded, please disable ad blockers!" msgstr "如果無法加載日誌,請禁用廣告攔截器!" #: src/views/toolbox/BenchmarkView.vue:12 -#: src/views/toolbox/BenchmarkView.vue:123 +#: src/views/toolbox/BenchmarkView.vue:117 msgid "CPU" msgstr "CPU" @@ -4084,129 +4098,137 @@ msgstr "CPU" #: src/views/toolbox/BenchmarkView.vue:55 #: src/views/toolbox/BenchmarkView.vue:58 #: src/views/toolbox/BenchmarkView.vue:59 -#: src/views/toolbox/BenchmarkView.vue:114 -#: src/views/toolbox/BenchmarkView.vue:179 -#: src/views/toolbox/BenchmarkView.vue:210 +#: src/views/toolbox/BenchmarkView.vue:113 +#: src/views/toolbox/BenchmarkView.vue:173 +#: src/views/toolbox/BenchmarkView.vue:199 msgid "Pending benchmark" msgstr "待跑分" -#: src/views/toolbox/BenchmarkView.vue:90 +#: 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 "跑分結果僅供參考,由於系統資源調度、快取和其他因素,可能與實際性能有所不同!" -#: src/views/toolbox/BenchmarkView.vue:97 +#: src/views/toolbox/BenchmarkView.vue:96 msgid "Benchmarking in progress, it may take some time..." msgstr "跑分正在進行中,可能需要一些時間……" -#: src/views/toolbox/BenchmarkView.vue:100 +#: src/views/toolbox/BenchmarkView.vue:99 msgid "Current project: %{ current }" msgstr "當前項目:%{ current }" -#: src/views/toolbox/BenchmarkView.vue:128 +#: src/views/toolbox/BenchmarkView.vue:122 msgid "Image Processing" msgstr "圖像處理" -#: src/views/toolbox/BenchmarkView.vue:134 +#: src/views/toolbox/BenchmarkView.vue:128 msgid "Machine Learning" msgstr "機器學習" -#: src/views/toolbox/BenchmarkView.vue:140 +#: src/views/toolbox/BenchmarkView.vue:134 msgid "Program Compilation" msgstr "程序編譯" -#: src/views/toolbox/BenchmarkView.vue:146 +#: src/views/toolbox/BenchmarkView.vue:140 msgid "AES Encryption" msgstr "AES 加密" -#: src/views/toolbox/BenchmarkView.vue:152 +#: src/views/toolbox/BenchmarkView.vue:146 msgid "Compression/Decompression" msgstr "壓縮/解壓縮" -#: src/views/toolbox/BenchmarkView.vue:158 +#: src/views/toolbox/BenchmarkView.vue:152 msgid "Physics Simulation" msgstr "物理模擬" -#: src/views/toolbox/BenchmarkView.vue:164 +#: src/views/toolbox/BenchmarkView.vue:158 msgid "JSON Parsing" msgstr "JSON 解析" -#: src/views/toolbox/BenchmarkView.vue:193 +#: src/views/toolbox/BenchmarkView.vue:182 msgid "Memory Bandwidth" msgstr "記憶體頻寬" -#: src/views/toolbox/BenchmarkView.vue:197 +#: src/views/toolbox/BenchmarkView.vue:186 msgid "Memory Latency" msgstr "記憶體延遲" -#: src/views/toolbox/BenchmarkView.vue:224 +#: src/views/toolbox/BenchmarkView.vue:208 msgid "4KB Read" msgstr "4KB 讀取" -#: src/views/toolbox/BenchmarkView.vue:230 +#: src/views/toolbox/BenchmarkView.vue:214 msgid "4KB Write" msgstr "4KB 寫入" -#: src/views/toolbox/BenchmarkView.vue:236 +#: src/views/toolbox/BenchmarkView.vue:220 msgid "64KB Read" msgstr "64KB 讀取" -#: src/views/toolbox/BenchmarkView.vue:242 +#: src/views/toolbox/BenchmarkView.vue:226 msgid "64KB Write" msgstr "64KB 寫入" -#: src/views/toolbox/BenchmarkView.vue:248 +#: src/views/toolbox/BenchmarkView.vue:232 msgid "1MB Read" msgstr "1MB 讀取" -#: src/views/toolbox/BenchmarkView.vue:254 +#: src/views/toolbox/BenchmarkView.vue:238 msgid "1MB Write" msgstr "1MB 寫入" -#: src/views/toolbox/BenchmarkView.vue:273 +#: src/views/toolbox/BenchmarkView.vue:257 msgid "Benchmarking..." msgstr "跑分中……" -#: src/views/toolbox/BenchmarkView.vue:273 +#: src/views/toolbox/BenchmarkView.vue:257 msgid "Start Benchmark" msgstr "開始跑分" -#: src/views/toolbox/SystemView.vue:125 +#: src/views/toolbox/IndexView.vue:18 +msgid "System" +msgstr "系統" + +#: src/views/toolbox/IndexView.vue:19 +msgid "Benchmark" +msgstr "跑分" + +#: src/views/toolbox/SystemView.vue:96 msgid "DNS modifications will revert to default after system restart." msgstr "DNS 修改將在系統重新啟動後恢復為預設設置。" -#: src/views/toolbox/SystemView.vue:141 +#: src/views/toolbox/SystemView.vue:117 msgid "Total %{ total }, used %{ used }, free %{ free }" msgstr "總計 %{ total },已使用 %{ used },可用 %{ free }" -#: src/views/toolbox/SystemView.vue:159 +#: src/views/toolbox/SystemView.vue:139 msgid "Hostname" msgstr "主機名" -#: src/views/toolbox/SystemView.vue:177 +#: src/views/toolbox/SystemView.vue:142 +msgid "Hosts" +msgstr "" + +#: src/views/toolbox/SystemView.vue:160 msgid "Time" msgstr "時間" -#: src/views/toolbox/SystemView.vue:181 +#: src/views/toolbox/SystemView.vue:164 msgid "After manually changing the time, it may still be overwritten by system automatic time synchronization." msgstr "手動更改時間後,系統自動時間同步可能仍會覆蓋設置。" -#: src/views/toolbox/SystemView.vue:187 +#: src/views/toolbox/SystemView.vue:170 msgid "Select Timezone" msgstr "選擇時區" -#: src/views/toolbox/SystemView.vue:190 +#: src/views/toolbox/SystemView.vue:173 msgid "Please select a timezone" msgstr "請選擇時區" -#: src/views/toolbox/SystemView.vue:194 +#: src/views/toolbox/SystemView.vue:177 msgid "Modify Time" msgstr "修改時間" -#: src/views/toolbox/SystemView.vue:197 -msgid "NTP Time Synchronization" -msgstr "NTP 時間同步" - -#: src/views/toolbox/SystemView.vue:199 +#: src/views/toolbox/SystemView.vue:186 msgid "Synchronize Time" msgstr "同步時間" @@ -4215,12 +4237,12 @@ msgid "The format is incorrect, please check" msgstr "格式不正確,請檢查" #: src/views/website/BulkCreate.vue:59 -#: src/views/website/IndexView.vue:327 +#: src/views/website/PhpView.vue:302 msgid "Website %{ name } created successfully" msgstr "網站 %{ name } 創建成功" #: src/views/website/BulkCreate.vue:77 -#: src/views/website/IndexView.vue:400 +#: src/views/website/PhpView.vue:358 msgid "Bulk Create Website" msgstr "批量創建網站" @@ -4253,7 +4275,7 @@ msgid "Remark: The remark of the website, can be empty." msgstr "備註:網站的備註,可以為空。" #: src/views/website/EditView.vue:54 -#: src/views/website/IndexView.vue:241 +#: src/views/website/PhpView.vue:229 msgid "Not used" msgstr "未使用" @@ -4277,224 +4299,221 @@ msgstr "簽發成功" msgid "The selected certificate is invalid" msgstr "所選證書無效" -#: src/views/website/EditView.vue:179 -msgid "If you modify the original text, other modifications will not take effect after clicking save!" -msgstr "如果修改原文,點擊保存後其他修改將不會生效!" +#: src/views/website/EditView.vue:176 +msgid "Domain & Listening" +msgstr "域名和監聽" -#: src/views/website/EditView.vue:188 -msgid "Reset Configuration" -msgstr "重置配置" +#: src/views/website/EditView.vue:186 +msgid "Listening Address" +msgstr "監聽地址" -#: src/views/website/EditView.vue:191 -msgid "Are you sure you want to reset the configuration?" -msgstr "您確定要重置配置嗎?" +#: src/views/website/EditView.vue:204 +msgid "Basic Settings" +msgstr "基本設置" -#: src/views/website/EditView.vue:200 +#: src/views/website/EditView.vue:206 +msgid "Website Directory" +msgstr "網站目錄" + +#: src/views/website/EditView.vue:209 +msgid "Enter website directory (absolute path)" +msgstr "輸入網站目錄(絕對路徑)" + +#: src/views/website/EditView.vue:212 +msgid "Running Directory" +msgstr "運行目錄" + +#: src/views/website/EditView.vue:216 +msgid "Enter running directory (needed for Laravel etc.) (absolute path)" +msgstr "輸入運行目錄(Laravel等需要)(絕對路徑)" + +#: src/views/website/EditView.vue:220 +msgid "Default Document" +msgstr "預設文件" + +#: src/views/website/EditView.vue:223 +#: src/views/website/PhpView.vue:443 +msgid "PHP Version" +msgstr "PHP 版本" + +#: src/views/website/EditView.vue:228 +#: src/views/website/PhpView.vue:447 +msgid "Select PHP Version" +msgstr "選擇 PHP 版本" + +#: src/views/website/EditView.vue:233 +msgid "Anti-cross-site Attack (PHP)" +msgstr "防跨站攻擊 (PHP)" + +#: src/views/website/EditView.vue:248 +msgid "One-click Certificate Issuance" +msgstr "一鍵簽發證書" + +#: src/views/website/EditView.vue:251 +msgid "Certificate Information" +msgstr "證書資訊" + +#: src/views/website/EditView.vue:253 +msgid "Certificate Validity" +msgstr "證書有效期" + +#: src/views/website/EditView.vue:267 +msgid "Domains" +msgstr "域名" + +#: src/views/website/EditView.vue:282 +msgid "Main Switch" +msgstr "主開關" + +#: src/views/website/EditView.vue:288 +msgid "Use Existing Certificate" +msgstr "使用現有證書" + +#: src/views/website/EditView.vue:302 +msgid "HTTP Redirect" +msgstr "HTTP 重定向" + +#: src/views/website/EditView.vue:305 +msgid "OCSP Stapling" +msgstr "OCSP 裝訂" + +#: src/views/website/EditView.vue:330 +msgid "Rewrite" +msgstr "重寫" + +#: src/views/website/EditView.vue:333 #: src/views/website/ProxyBuilderModal.vue:123 msgid "Generate Reverse Proxy Configuration" msgstr "生成反向代理配置" -#: src/views/website/EditView.vue:211 -msgid "One-click Certificate Issuance" -msgstr "一鍵簽發證書" - -#: src/views/website/EditView.vue:221 -msgid "Clear Logs" -msgstr "清除日誌" - -#: src/views/website/EditView.vue:230 -msgid "Domain & Listening" -msgstr "域名和監聽" - -#: src/views/website/EditView.vue:240 -msgid "Listening Address" -msgstr "監聽地址" - -#: src/views/website/EditView.vue:258 -msgid "Basic Settings" -msgstr "基本設置" - -#: src/views/website/EditView.vue:260 -msgid "Website Directory" -msgstr "網站目錄" - -#: src/views/website/EditView.vue:263 -msgid "Enter website directory (absolute path)" -msgstr "輸入網站目錄(絕對路徑)" - -#: src/views/website/EditView.vue:266 -msgid "Running Directory" -msgstr "運行目錄" - -#: src/views/website/EditView.vue:270 -msgid "Enter running directory (needed for Laravel etc.) (absolute path)" -msgstr "輸入運行目錄(Laravel等需要)(絕對路徑)" - -#: src/views/website/EditView.vue:274 -msgid "Default Document" -msgstr "預設文件" - -#: src/views/website/EditView.vue:277 -#: src/views/website/IndexView.vue:480 -msgid "PHP Version" -msgstr "PHP 版本" - -#: src/views/website/EditView.vue:282 -#: src/views/website/IndexView.vue:484 -msgid "Select PHP Version" -msgstr "選擇 PHP 版本" - -#: src/views/website/EditView.vue:287 -msgid "Anti-cross-site Attack (PHP)" -msgstr "防跨站攻擊 (PHP)" - -#: src/views/website/EditView.vue:296 -msgid "Certificate Information" -msgstr "證書資訊" - -#: src/views/website/EditView.vue:298 -msgid "Certificate Validity" -msgstr "證書有效期" - -#: src/views/website/EditView.vue:312 -msgid "Domains" -msgstr "域名" - -#: src/views/website/EditView.vue:327 -msgid "Main Switch" -msgstr "主開關" - -#: src/views/website/EditView.vue:333 -msgid "Use Existing Certificate" -msgstr "使用現有證書" - -#: src/views/website/EditView.vue:347 -msgid "HTTP Redirect" -msgstr "HTTP 重定向" - -#: src/views/website/EditView.vue:350 -msgid "OCSP Stapling" -msgstr "OCSP 裝訂" - -#: src/views/website/EditView.vue:375 -msgid "Rewrite" -msgstr "重寫" - -#: src/views/website/EditView.vue:378 +#: src/views/website/EditView.vue:336 msgid "Presets" msgstr "預設" -#: src/views/website/EditView.vue:405 +#: src/views/website/EditView.vue:362 +msgid "If you modify the original text, other modifications will not take effect after clicking save!" +msgstr "如果修改原文,點擊保存後其他修改將不會生效!" + +#: src/views/website/EditView.vue:369 msgid "If you do not understand the configuration rules, please do not modify them arbitrarily, otherwise it may cause the website to be inaccessible or panel function abnormalities! If you have already encountered a problem, try resetting the configuration!" msgstr "如果您不了解配置規則,請不要隨意修改,否則可能導致網站無法訪問或面板功能異常!如果您已經遇到問題,請嘗試重置配置!" -#: src/views/website/EditView.vue:424 +#: src/views/website/EditView.vue:377 +msgid "Reset Configuration" +msgstr "重置配置" + +#: src/views/website/EditView.vue:380 +msgid "Are you sure you want to reset the configuration?" +msgstr "您確定要重置配置嗎?" + +#: src/views/website/EditView.vue:395 msgid "Access Log" msgstr "訪問日誌" -#: src/views/website/EditView.vue:428 -#: src/views/website/EditView.vue:440 +#: src/views/website/EditView.vue:399 +#: src/views/website/EditView.vue:419 msgid "All logs can be viewed by downloading the file" msgstr "所有日誌可通過下載文件查看" -#: src/views/website/EditView.vue:430 -#: src/views/website/EditView.vue:442 +#: src/views/website/EditView.vue:401 +#: src/views/website/EditView.vue:421 msgid "view" msgstr "查看" -#: src/views/website/EditView.vue:436 +#: src/views/website/EditView.vue:406 +msgid "Clear Logs" +msgstr "清除日誌" + +#: src/views/website/EditView.vue:415 msgid "Error Log" msgstr "錯誤日誌" -#: src/views/website/IndexView.vue:24 -#: src/views/website/IndexView.vue:443 +#: src/views/website/IndexView.vue:16 +msgid "Reverse Proxy" +msgstr "" + +#: src/views/website/IndexView.vue:17 +msgid "Classic PHP" +msgstr "" + +#: src/views/website/IndexView.vue:18 +msgid "Pure Static" +msgstr "" + +#: src/views/website/PhpView.vue:19 +#: src/views/website/PhpView.vue:406 msgid "Website Name" msgstr "網站名稱" -#: src/views/website/IndexView.vue:77 +#: src/views/website/PhpView.vue:72 msgid "Certificate expiration" msgstr "證書有效期限" -#: src/views/website/IndexView.vue:91 +#: src/views/website/PhpView.vue:86 msgid "Not configured" msgstr "未設定" -#: src/views/website/IndexView.vue:94 +#: src/views/website/PhpView.vue:89 msgid "Expired %{ days } days ago" msgstr "%{ days } 天前過期" -#: src/views/website/IndexView.vue:99 +#: src/views/website/PhpView.vue:94 msgid "Expires in %{ days } days" msgstr "%{ days } 天後過期" -#: src/views/website/IndexView.vue:109 -#: src/views/website/IndexView.vue:561 -#: src/views/website/IndexView.vue:566 +#: src/views/website/PhpView.vue:104 +#: src/views/website/PhpView.vue:524 +#: src/views/website/PhpView.vue:529 msgid "Remark" msgstr "備註" -#: src/views/website/IndexView.vue:165 +#: src/views/website/PhpView.vue:159 msgid "Are you sure you want to delete website %{ name }?" msgstr "您確定要刪除網站 %{ name } 嗎?" -#: src/views/website/IndexView.vue:176 +#: src/views/website/PhpView.vue:170 msgid "Delete website directory" msgstr "刪除網站目錄" -#: src/views/website/IndexView.vue:184 +#: src/views/website/PhpView.vue:178 msgid "Delete local database with the same name" msgstr "刪除同名的本地數據庫" -#: src/views/website/IndexView.vue:348 +#: src/views/website/PhpView.vue:323 msgid "Please select the websites to delete" msgstr "請選擇要刪除的網站" -#: src/views/website/IndexView.vue:383 -#: src/views/website/IndexView.vue:577 -msgid "Modify Default Page" -msgstr "修改預設頁面" - -#: src/views/website/IndexView.vue:393 -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/IndexView.vue:404 -#: src/views/website/IndexView.vue:434 +#: src/views/website/PhpView.vue:355 +#: src/views/website/PhpView.vue:397 msgid "Create Website" msgstr "創建網站" -#: src/views/website/IndexView.vue:449 +#: src/views/website/PhpView.vue:367 +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/PhpView.vue:412 msgid "Recommended to use English for the website name, it cannot be modified after setting" msgstr "建議使用英文作為網站名稱,設置後無法修改" -#: src/views/website/IndexView.vue:496 +#: src/views/website/PhpView.vue:459 msgid "Select Database" msgstr "選擇數據庫" -#: src/views/website/IndexView.vue:524 -#: src/views/website/IndexView.vue:529 +#: src/views/website/PhpView.vue:487 +#: src/views/website/PhpView.vue:492 msgid "Database User" msgstr "數據庫用戶" -#: src/views/website/IndexView.vue:538 -#: src/views/website/IndexView.vue:544 +#: src/views/website/PhpView.vue:501 +#: src/views/website/PhpView.vue:507 msgid "Database Password" msgstr "數據庫密碼" -#: src/views/website/IndexView.vue:555 +#: src/views/website/PhpView.vue:518 msgid "Website root directory (if left empty, defaults to website directory/website name)" msgstr "網站根目錄(如果留空,默認為網站目錄/網站名稱)" -#: src/views/website/IndexView.vue:585 -#: src/views/website/IndexView.vue:585 -msgid "Default Page" -msgstr "默認頁面" - -#: src/views/website/IndexView.vue:599 -#: src/views/website/IndexView.vue:599 -msgid "Stop Page" -msgstr "停止頁面" - #: src/views/website/ProxyBuilderModal.vue:24 msgid "Disabled buffer and enabled cache cannot be used simultaneously" msgstr "禁用緩衝區和啟用快取不能同時使用" @@ -4603,3 +4622,35 @@ msgstr "目標內容" msgid "Replacement content" msgstr "替換內容" +#: src/views/website/SettingView.vue:40 +msgid "Default Page" +msgstr "默認頁面" + +#: src/views/website/SettingView.vue:60 +msgid "404 Page" +msgstr "" + +#: src/views/website/SettingView.vue:80 +msgid "Stop Page" +msgstr "停止頁面" + +#: src/views/website/SettingView.vue:100 +msgid "Default Site" +msgstr "" + +#: src/views/website/SettingView.vue:103 +msgid "Default Settings" +msgstr "" + +#: src/views/website/SettingView.vue:105 +msgid "Default TLS Version" +msgstr "" + +#: src/views/website/SettingView.vue:117 +msgid "Default Cipher Suites" +msgstr "" + +#: src/views/website/SettingView.vue:122 +msgid "Enter the default cipher suite, leave blank to reset to default" +msgstr "" +