diff --git a/web/src/locales/en.po b/web/src/locales/en.po index 998d2385..14c91f4e 100644 --- a/web/src/locales/en.po +++ b/web/src/locales/en.po @@ -37,7 +37,7 @@ msgid "Login Page" msgstr "" #: src/views/app/IndexView.vue:19 src/views/app/IndexView.vue:159 -#: src/views/app/IndexView.vue:164 +#: src/views/app/IndexView.vue:164 src/views/apps/php/PhpView.vue:91 msgid "Install" msgstr "" @@ -45,7 +45,7 @@ msgstr "" msgid "App Name" msgstr "" -#: src/views/app/IndexView.vue:44 +#: src/views/app/IndexView.vue:44 src/views/apps/php/PhpView.vue:59 msgid "Description" msgstr "" @@ -57,7 +57,11 @@ msgstr "" msgid "Show in Home" msgstr "" -#: src/views/app/IndexView.vue:71 src/views/backup/ListView.vue:58 +#: src/views/app/IndexView.vue:71 src/views/apps/fail2ban/IndexView.vue:70 +#: src/views/apps/fail2ban/IndexView.vue:132 src/views/apps/php/PhpView.vue:66 +#: src/views/apps/pureftpd/IndexView.vue:55 +#: src/views/apps/s3fs/IndexView.vue:33 +#: src/views/apps/supervisor/IndexView.vue:87 src/views/backup/ListView.vue:58 #: src/views/cert/AccountView.vue:79 src/views/cert/CertView.vue:182 #: src/views/cert/DnsView.vue:64 src/views/container/ComposeView.vue:74 #: src/views/container/ContainerCreate.vue:170 @@ -138,10 +142,14 @@ msgstr "" msgid "Please select a channel" msgstr "" -#: src/views/app/VersionModal.vue:89 src/views/backup/ListView.vue:237 -#: src/views/backup/ListView.vue:257 src/views/cert/AccountView.vue:258 -#: src/views/cert/CertView.vue:513 src/views/cert/CertView.vue:537 -#: src/views/cert/CreateAccountModal.vue:114 +#: src/views/app/VersionModal.vue:89 src/views/apps/fail2ban/IndexView.vue:451 +#: src/views/apps/pureftpd/IndexView.vue:320 +#: src/views/apps/pureftpd/IndexView.vue:340 +#: src/views/apps/s3fs/IndexView.vue:174 +#: src/views/apps/supervisor/IndexView.vue:513 +#: src/views/backup/ListView.vue:237 src/views/backup/ListView.vue:257 +#: src/views/cert/AccountView.vue:258 src/views/cert/CertView.vue:513 +#: src/views/cert/CertView.vue:537 src/views/cert/CreateAccountModal.vue:114 #: src/views/cert/CreateCertModal.vue:111 src/views/cert/CreateDnsModal.vue:173 #: src/views/cert/DnsView.vue:370 src/views/cert/ObtainModal.vue:126 #: src/views/cert/UploadCertModal.vue:55 @@ -165,13 +173,1415 @@ msgstr "" msgid "Submit" msgstr "" -#: src/views/backup/IndexView.vue:37 src/views/backup/ListView.vue:217 -#: src/views/backup/ListView.vue:250 src/views/cert/CertView.vue:464 -#: src/views/cert/CertView.vue:527 src/views/cert/CreateCertModal.vue:86 -#: src/views/dashboard/IndexView.vue:418 src/views/task/CreateModal.vue:130 +#: src/views/apps/benchmark/IndexView.vue:12 +#: src/views/apps/benchmark/IndexView.vue:165 +msgid "CPU" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:67 +#: src/views/apps/benchmark/IndexView.vue:68 +#: src/views/apps/benchmark/IndexView.vue:74 +#: src/views/apps/benchmark/IndexView.vue:75 +#: src/views/apps/benchmark/IndexView.vue:76 +#: src/views/apps/benchmark/IndexView.vue:77 +#: src/views/apps/benchmark/IndexView.vue:80 +#: src/views/apps/benchmark/IndexView.vue:81 +#: src/views/apps/benchmark/IndexView.vue:82 +#: src/views/apps/benchmark/IndexView.vue:83 +#: src/views/apps/benchmark/IndexView.vue:86 +#: src/views/apps/benchmark/IndexView.vue:87 +#: src/views/apps/benchmark/IndexView.vue:88 +#: src/views/apps/benchmark/IndexView.vue:89 +#: src/views/apps/benchmark/IndexView.vue:92 +#: src/views/apps/benchmark/IndexView.vue:93 +#: src/views/apps/benchmark/IndexView.vue:94 +#: src/views/apps/benchmark/IndexView.vue:95 +#: src/views/apps/benchmark/IndexView.vue:156 +#: src/views/apps/benchmark/IndexView.vue:256 +#: src/views/apps/benchmark/IndexView.vue:287 +msgid "Pending benchmark" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:129 +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/apps/benchmark/IndexView.vue:136 +msgid "Benchmarking in progress, it may take some time..." +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:139 +msgid "Current project: %{ current }" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:151 +msgid "Single-core" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:153 +msgid "Multi-core" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:170 +msgid "Image Processing" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:173 +#: src/views/apps/benchmark/IndexView.vue:184 +#: src/views/apps/benchmark/IndexView.vue:195 +#: src/views/apps/benchmark/IndexView.vue:206 +#: src/views/apps/benchmark/IndexView.vue:217 +#: src/views/apps/benchmark/IndexView.vue:228 +#: src/views/apps/benchmark/IndexView.vue:239 +msgid "Single-core %{ single } / Multi-core %{ multi }" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:181 +msgid "Machine Learning" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:192 +msgid "Program Compilation" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:203 +msgid "AES Encryption" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:214 +msgid "Compression/Decompression" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:225 +msgid "Physics Simulation" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:236 +msgid "JSON Parsing" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:265 +#: src/views/container/ContainerCreate.vue:291 +#: src/views/dashboard/IndexView.vue:530 src/views/monitor/IndexView.vue:205 +#: src/views/monitor/IndexView.vue:216 src/views/monitor/IndexView.vue:238 +#: src/views/task/SystemView.vue:78 +msgid "Memory" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:270 +msgid "Memory Bandwidth" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:274 +msgid "Memory Latency" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:296 +#: src/views/dashboard/IndexView.vue:795 src/views/dashboard/IndexView.vue:815 +msgid "Disk" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:301 +msgid "4KB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:304 +#: src/views/apps/benchmark/IndexView.vue:315 +#: src/views/apps/benchmark/IndexView.vue:326 +#: src/views/apps/benchmark/IndexView.vue:337 +#: src/views/apps/benchmark/IndexView.vue:348 +#: src/views/apps/benchmark/IndexView.vue:359 +#: src/views/apps/benchmark/IndexView.vue:370 +#: src/views/apps/benchmark/IndexView.vue:381 +msgid "Speed %{ speed } / %{ iops } IOPS" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:312 +msgid "4KB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:323 +msgid "64KB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:334 +msgid "64KB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:345 +msgid "512KB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:356 +msgid "512KB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:367 +msgid "1MB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:378 +msgid "1MB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:402 +msgid "Benchmarking..." +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:402 +msgid "Start Benchmark" +msgstr "" + +#: src/views/apps/benchmark/route.ts:17 +msgid "Rat Benchmark" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:25 +#: src/views/apps/fail2ban/IndexView.vue:42 src/views/apps/frp/IndexView.vue:30 +#: src/views/apps/frp/IndexView.vue:31 src/views/apps/gitea/IndexView.vue:20 +#: src/views/apps/memcached/IndexView.vue:22 +#: src/views/apps/minio/IndexView.vue:20 src/views/apps/mysql/IndexView.vue:35 +#: src/views/apps/nginx/IndexView.vue:33 src/views/apps/php/PhpView.vue:47 +#: src/views/apps/podman/IndexView.vue:21 +#: src/views/apps/postgresql/IndexView.vue:35 +#: src/views/apps/pureftpd/IndexView.vue:25 +#: src/views/apps/redis/IndexView.vue:29 +#: src/views/apps/supervisor/IndexView.vue:54 +#: src/views/dashboard/IndexView.vue:133 +msgid "Running normally" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:25 +#: src/views/apps/fail2ban/IndexView.vue:42 src/views/apps/frp/IndexView.vue:30 +#: src/views/apps/frp/IndexView.vue:31 src/views/apps/gitea/IndexView.vue:20 +#: src/views/apps/memcached/IndexView.vue:22 +#: src/views/apps/minio/IndexView.vue:20 src/views/apps/mysql/IndexView.vue:35 +#: src/views/apps/nginx/IndexView.vue:33 src/views/apps/php/PhpView.vue:47 +#: src/views/apps/podman/IndexView.vue:21 +#: src/views/apps/postgresql/IndexView.vue:35 +#: src/views/apps/pureftpd/IndexView.vue:25 +#: src/views/apps/redis/IndexView.vue:29 +#: src/views/apps/supervisor/IndexView.vue:54 src/views/task/SystemView.vue:54 +msgid "Stopped" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:38 +#: src/views/apps/fail2ban/IndexView.vue:176 +#: src/views/apps/frp/IndexView.vue:53 src/views/apps/gitea/IndexView.vue:37 +#: src/views/apps/memcached/IndexView.vue:61 +#: src/views/apps/minio/IndexView.vue:37 src/views/apps/mysql/IndexView.vue:64 +#: src/views/apps/nginx/IndexView.vue:62 src/views/apps/php/PhpView.vue:162 +#: src/views/apps/php/PhpView.vue:168 +#: src/views/apps/phpmyadmin/IndexView.vue:37 +#: src/views/apps/phpmyadmin/IndexView.vue:44 +#: src/views/apps/podman/IndexView.vue:39 +#: src/views/apps/podman/IndexView.vue:45 +#: src/views/apps/postgresql/IndexView.vue:64 +#: src/views/apps/postgresql/IndexView.vue:69 +#: src/views/apps/pureftpd/IndexView.vue:133 +#: src/views/apps/redis/IndexView.vue:58 +#: src/views/apps/supervisor/IndexView.vue:241 +#: src/views/apps/supervisor/IndexView.vue:341 +#: src/views/apps/toolbox/IndexView.vue:51 +#: src/views/apps/toolbox/IndexView.vue:57 +#: src/views/apps/toolbox/IndexView.vue:66 +#: src/views/apps/toolbox/IndexView.vue:72 +#: src/views/apps/toolbox/IndexView.vue:81 src/views/setting/SettingBase.vue:35 +#: src/views/setting/SettingHttps.vue:27 src/views/website/EditView.vue:115 +msgid "Saved successfully" +msgstr "Saved successfully" + +#: src/views/apps/docker/IndexView.vue:44 +#: src/views/apps/fail2ban/IndexView.vue:211 +#: src/views/apps/frp/IndexView.vue:60 src/views/apps/gitea/IndexView.vue:43 +#: src/views/apps/memcached/IndexView.vue:67 +#: src/views/apps/minio/IndexView.vue:43 src/views/apps/mysql/IndexView.vue:93 +#: src/views/apps/nginx/IndexView.vue:85 src/views/apps/php/PhpView.vue:197 +#: src/views/apps/podman/IndexView.vue:51 +#: src/views/apps/postgresql/IndexView.vue:90 +#: src/views/apps/pureftpd/IndexView.vue:139 +#: src/views/apps/redis/IndexView.vue:64 +#: src/views/apps/supervisor/IndexView.vue:268 +#: src/views/apps/supervisor/IndexView.vue:297 +#, fuzzy +msgid "Started successfully" +msgstr "Saved successfully" + +#: src/views/apps/docker/IndexView.vue:51 +#: src/views/apps/fail2ban/IndexView.vue:228 +#: src/views/apps/frp/IndexView.vue:66 src/views/apps/gitea/IndexView.vue:49 +#: src/views/apps/memcached/IndexView.vue:84 +#: src/views/apps/minio/IndexView.vue:49 src/views/apps/mysql/IndexView.vue:99 +#: src/views/apps/nginx/IndexView.vue:91 src/views/apps/php/PhpView.vue:203 +#: src/views/apps/podman/IndexView.vue:57 +#: src/views/apps/postgresql/IndexView.vue:96 +#: src/views/apps/pureftpd/IndexView.vue:156 +#: src/views/apps/redis/IndexView.vue:81 +#: src/views/apps/supervisor/IndexView.vue:275 +#: src/views/apps/supervisor/IndexView.vue:304 +#, fuzzy +msgid "Stopped successfully" +msgstr "Saved successfully" + +#: src/views/apps/docker/IndexView.vue:58 +#: src/views/apps/fail2ban/IndexView.vue:234 +#: src/views/apps/frp/IndexView.vue:72 src/views/apps/gitea/IndexView.vue:55 +#: src/views/apps/memcached/IndexView.vue:90 +#: src/views/apps/minio/IndexView.vue:55 src/views/apps/mysql/IndexView.vue:105 +#: src/views/apps/nginx/IndexView.vue:97 src/views/apps/php/PhpView.vue:209 +#: src/views/apps/podman/IndexView.vue:63 +#: src/views/apps/postgresql/IndexView.vue:102 +#: src/views/apps/pureftpd/IndexView.vue:162 +#: src/views/apps/redis/IndexView.vue:87 +#: src/views/apps/supervisor/IndexView.vue:282 +#: src/views/apps/supervisor/IndexView.vue:311 +#, fuzzy +msgid "Restarted successfully" +msgstr "Saved successfully" + +#: src/views/apps/docker/IndexView.vue:66 +#: src/views/apps/fail2ban/IndexView.vue:218 +#: src/views/apps/frp/IndexView.vue:79 src/views/apps/gitea/IndexView.vue:62 +#: src/views/apps/memcached/IndexView.vue:74 +#: src/views/apps/minio/IndexView.vue:62 src/views/apps/mysql/IndexView.vue:83 +#: src/views/apps/nginx/IndexView.vue:75 src/views/apps/php/PhpView.vue:187 +#: src/views/apps/podman/IndexView.vue:70 +#: src/views/apps/postgresql/IndexView.vue:80 +#: src/views/apps/redis/IndexView.vue:71 +#: src/views/apps/supervisor/IndexView.vue:255 +#, fuzzy +msgid "Autostart enabled successfully" +msgstr "Saved successfully" + +#: src/views/apps/docker/IndexView.vue:69 +#: src/views/apps/fail2ban/IndexView.vue:221 +#: src/views/apps/frp/IndexView.vue:82 src/views/apps/gitea/IndexView.vue:65 +#: src/views/apps/memcached/IndexView.vue:77 +#: src/views/apps/minio/IndexView.vue:65 src/views/apps/mysql/IndexView.vue:86 +#: src/views/apps/nginx/IndexView.vue:78 src/views/apps/php/PhpView.vue:190 +#: src/views/apps/podman/IndexView.vue:73 +#: src/views/apps/postgresql/IndexView.vue:83 +#: src/views/apps/redis/IndexView.vue:74 +#: src/views/apps/supervisor/IndexView.vue:260 +#, fuzzy +msgid "Autostart disabled successfully" +msgstr "Saved successfully" + +#: src/views/apps/docker/IndexView.vue:90 src/views/apps/frp/IndexView.vue:135 +#: src/views/apps/frp/IndexView.vue:191 src/views/apps/gitea/IndexView.vue:87 +#: src/views/apps/memcached/IndexView.vue:110 +#: src/views/apps/minio/IndexView.vue:82 src/views/apps/mysql/IndexView.vue:130 +#: src/views/apps/nginx/IndexView.vue:123 src/views/apps/php/PhpView.vue:250 +#: src/views/apps/php/PhpView.vue:259 +#: src/views/apps/phpmyadmin/IndexView.vue:58 +#: src/views/apps/phpmyadmin/IndexView.vue:67 +#: src/views/apps/podman/IndexView.vue:95 +#: src/views/apps/podman/IndexView.vue:104 +#: src/views/apps/postgresql/IndexView.vue:128 +#: src/views/apps/postgresql/IndexView.vue:137 +#: src/views/apps/pureftpd/IndexView.vue:209 +#: src/views/apps/redis/IndexView.vue:107 +#: src/views/apps/supervisor/IndexView.vue:362 +#: src/views/apps/toolbox/IndexView.vue:97 +#: src/views/apps/toolbox/IndexView.vue:101 +#: src/views/apps/toolbox/IndexView.vue:105 +#: src/views/apps/toolbox/IndexView.vue:109 src/views/file/EditModal.vue:31 +#: src/views/file/ListTable.vue:703 src/views/setting/SettingBase.vue:95 +#: src/views/setting/SettingHttps.vue:56 src/views/website/EditView.vue:211 +msgid "Save" +msgstr "Save" + +#: src/views/apps/docker/IndexView.vue:94 +#: src/views/apps/docker/IndexView.vue:96 +#: src/views/apps/fail2ban/IndexView.vue:309 +#: src/views/apps/fail2ban/IndexView.vue:311 +#: src/views/apps/frp/IndexView.vue:99 src/views/apps/frp/IndexView.vue:155 +#: src/views/apps/gitea/IndexView.vue:91 src/views/apps/gitea/IndexView.vue:92 +#: src/views/apps/memcached/IndexView.vue:114 +#: src/views/apps/memcached/IndexView.vue:116 +#: src/views/apps/minio/IndexView.vue:86 src/views/apps/minio/IndexView.vue:87 +#: src/views/apps/mysql/IndexView.vue:152 +#: src/views/apps/mysql/IndexView.vue:154 +#: src/views/apps/nginx/IndexView.vue:136 +#: src/views/apps/nginx/IndexView.vue:137 src/views/apps/php/PhpView.vue:281 +#: src/views/apps/php/PhpView.vue:283 src/views/apps/podman/IndexView.vue:108 +#: src/views/apps/podman/IndexView.vue:113 +#: src/views/apps/postgresql/IndexView.vue:145 +#: src/views/apps/postgresql/IndexView.vue:147 +#: src/views/apps/pureftpd/IndexView.vue:222 +#: src/views/apps/pureftpd/IndexView.vue:224 +#: src/views/apps/redis/IndexView.vue:111 +#: src/views/apps/redis/IndexView.vue:113 +#: src/views/apps/supervisor/IndexView.vue:379 +#: src/views/apps/supervisor/IndexView.vue:381 +#: src/views/container/ContainerView.vue:80 +msgid "Running Status" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:99 +#: src/views/apps/fail2ban/IndexView.vue:314 +#: src/views/apps/frp/IndexView.vue:102 src/views/apps/frp/IndexView.vue:158 +#: src/views/apps/gitea/IndexView.vue:95 +#: src/views/apps/memcached/IndexView.vue:119 +#: src/views/apps/minio/IndexView.vue:90 src/views/apps/mysql/IndexView.vue:157 +#: src/views/apps/nginx/IndexView.vue:140 src/views/apps/php/PhpView.vue:286 +#: src/views/apps/podman/IndexView.vue:116 +#: src/views/apps/postgresql/IndexView.vue:150 +#: src/views/apps/redis/IndexView.vue:116 +#: src/views/apps/supervisor/IndexView.vue:384 +msgid "Autostart On" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:100 +#: src/views/apps/fail2ban/IndexView.vue:315 +#: src/views/apps/frp/IndexView.vue:103 src/views/apps/frp/IndexView.vue:159 +#: src/views/apps/gitea/IndexView.vue:96 +#: src/views/apps/memcached/IndexView.vue:120 +#: src/views/apps/minio/IndexView.vue:91 src/views/apps/mysql/IndexView.vue:158 +#: src/views/apps/nginx/IndexView.vue:141 src/views/apps/php/PhpView.vue:287 +#: src/views/apps/podman/IndexView.vue:117 +#: src/views/apps/postgresql/IndexView.vue:151 +#: src/views/apps/redis/IndexView.vue:117 +#: src/views/apps/supervisor/IndexView.vue:385 +msgid "Autostart Off" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:110 +#: src/views/apps/fail2ban/IndexView.vue:325 +#: src/views/apps/frp/IndexView.vue:113 src/views/apps/frp/IndexView.vue:169 +#: src/views/apps/gitea/IndexView.vue:106 +#: src/views/apps/memcached/IndexView.vue:130 +#: src/views/apps/minio/IndexView.vue:101 +#: src/views/apps/mysql/IndexView.vue:168 +#: src/views/apps/nginx/IndexView.vue:151 src/views/apps/php/PhpView.vue:297 +#: src/views/apps/podman/IndexView.vue:127 +#: src/views/apps/postgresql/IndexView.vue:161 +#: src/views/apps/pureftpd/IndexView.vue:238 +#: src/views/apps/redis/IndexView.vue:127 +#: src/views/apps/supervisor/IndexView.vue:131 +#: src/views/apps/supervisor/IndexView.vue:395 +#: src/views/container/ComposeView.vue:150 +#: src/views/container/ContainerView.vue:127 +#: src/views/container/ContainerView.vue:405 +msgid "Start" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:116 +#: src/views/apps/fail2ban/IndexView.vue:331 +#: src/views/apps/frp/IndexView.vue:119 src/views/apps/frp/IndexView.vue:175 +#: src/views/apps/gitea/IndexView.vue:112 +#: src/views/apps/memcached/IndexView.vue:136 +#: src/views/apps/minio/IndexView.vue:107 +#: src/views/apps/mysql/IndexView.vue:174 +#: src/views/apps/nginx/IndexView.vue:157 src/views/apps/php/PhpView.vue:303 +#: src/views/apps/podman/IndexView.vue:133 +#: src/views/apps/postgresql/IndexView.vue:167 +#: src/views/apps/pureftpd/IndexView.vue:244 +#: src/views/apps/redis/IndexView.vue:133 +#: src/views/apps/supervisor/IndexView.vue:155 +#: src/views/apps/supervisor/IndexView.vue:401 +#: src/views/container/ComposeView.vue:179 +#: src/views/container/ContainerView.vue:132 +#: src/views/container/ContainerView.vue:406 +msgid "Stop" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:119 +msgid "Are you sure you want to stop Docker?" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:123 +#: src/views/apps/fail2ban/IndexView.vue:338 +#: src/views/apps/frp/IndexView.vue:126 src/views/apps/frp/IndexView.vue:182 +#: src/views/apps/gitea/IndexView.vue:119 +#: src/views/apps/memcached/IndexView.vue:143 +#: src/views/apps/minio/IndexView.vue:114 +#: src/views/apps/mysql/IndexView.vue:181 +#: src/views/apps/nginx/IndexView.vue:164 src/views/apps/php/PhpView.vue:310 +#: src/views/apps/podman/IndexView.vue:140 +#: src/views/apps/postgresql/IndexView.vue:174 +#: src/views/apps/pureftpd/IndexView.vue:251 +#: src/views/apps/redis/IndexView.vue:140 +#: src/views/apps/supervisor/IndexView.vue:182 +#: src/views/apps/supervisor/IndexView.vue:408 +#: src/views/container/ContainerView.vue:137 +#: src/views/container/ContainerView.vue:407 +#: src/views/dashboard/IndexView.vue:444 +msgid "Restart" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:130 src/views/website/EditView.vue:388 +msgid "Configuration" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:133 +msgid "This modifies the Docker configuration file (/etc/docker/daemon.json)" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:149 +#: src/views/apps/fail2ban/IndexView.vue:381 +#: src/views/apps/gitea/IndexView.vue:144 +#: src/views/apps/memcached/IndexView.vue:176 +#: src/views/apps/minio/IndexView.vue:139 +#: src/views/apps/mysql/IndexView.vue:227 +#: src/views/apps/nginx/IndexView.vue:203 src/views/apps/php/PhpView.vue:382 +#: src/views/apps/podman/IndexView.vue:185 +#: src/views/apps/postgresql/IndexView.vue:233 +#: src/views/apps/redis/IndexView.vue:176 +#: src/views/apps/supervisor/IndexView.vue:458 +msgid "Runtime Logs" +msgstr "" + +#: src/views/apps/docker/route.ts:17 +msgid "Docker" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:47 +#: src/views/apps/supervisor/IndexView.vue:59 +#: src/views/apps/supervisor/IndexView.vue:477 +#: 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/UpdateServerModal.vue:55 src/views/file/ListTable.vue:99 +#: src/views/file/SearchModal.vue:20 src/views/file/ToolBar.vue:257 +#: src/views/ssh/CreateModal.vue:57 src/views/ssh/UpdateModal.vue:63 +#: src/views/task/SystemView.vue:18 +msgid "Name" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:53 +#: src/views/apps/phpmyadmin/IndexView.vue:71 +#: src/views/apps/supervisor/IndexView.vue:66 +#: 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/task/SystemView.vue:43 +#: src/views/task/TaskView.vue:22 +msgid "Status" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:66 +#: src/views/apps/fail2ban/IndexView.vue:441 +msgid "Max Retries" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:67 +#: src/views/apps/fail2ban/IndexView.vue:447 +msgid "Ban Time" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:68 +#: src/views/apps/fail2ban/IndexView.vue:444 +msgid "Find Time" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:89 src/views/cert/CertView.vue:265 +msgid "View" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:100 +msgid "Are you sure you want to delete rule %{ name }?" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:111 src/views/apps/php/PhpView.vue:117 +#: src/views/apps/pureftpd/IndexView.vue:97 +#: src/views/apps/supervisor/IndexView.vue:208 src/views/backup/ListView.vue:99 +#: src/views/cert/AccountView.vue:128 src/views/cert/CertView.vue:316 +#: src/views/cert/DnsView.vue:112 src/views/container/ComposeView.vue:208 +#: src/views/container/ContainerCreate.vue:229 +#: src/views/container/ContainerCreate.vue:276 +#: src/views/container/ContainerView.vue:157 +#: src/views/container/ContainerView.vue:411 +#: src/views/container/ImageView.vue:95 src/views/container/NetworkView.vue:135 +#: src/views/container/VolumeView.vue:89 src/views/database/DatabaseList.vue:99 +#: src/views/database/ServerList.vue:218 src/views/database/UserList.vue:192 +#: src/views/file/ListTable.vue:81 src/views/file/ListTable.vue:285 +#: src/views/file/SearchModal.vue:98 src/views/file/ToolBar.vue:238 +#: src/views/firewall/ForwardView.vue:105 src/views/firewall/IpRuleView.vue:147 +#: src/views/firewall/RuleView.vue:184 src/views/ssh/IndexView.vue:93 +#: src/views/task/CronView.vue:157 src/views/task/TaskView.vue:99 +#: src/views/website/IndexView.vue:169 +msgid "Delete" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:146 +msgid "Are you sure you want to unban %{ ip }?" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:156 +msgid "Unban" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:240 +#: src/views/apps/nginx/IndexView.vue:103 src/views/apps/php/PhpView.vue:215 +#: src/views/apps/postgresql/IndexView.vue:108 +#, fuzzy +msgid "Reloaded successfully" +msgstr "Saved successfully" + +#: src/views/apps/fail2ban/IndexView.vue:247 +#: src/views/apps/pureftpd/IndexView.vue:175 +#: src/views/apps/s3fs/IndexView.vue:83 +#: src/views/apps/supervisor/IndexView.vue:290 +#: src/views/database/CreateServerModal.vue:37 +#, fuzzy +msgid "Added successfully" +msgstr "Saved successfully" + +#: src/views/apps/fail2ban/IndexView.vue:255 +#: src/views/apps/pureftpd/IndexView.vue:192 +#: src/views/apps/s3fs/IndexView.vue:90 +#: src/views/apps/supervisor/IndexView.vue:318 +#: src/views/backup/ListView.vue:149 src/views/database/DatabaseList.vue:124 +#: src/views/database/ServerList.vue:243 src/views/database/UserList.vue:217 +#: src/views/file/ListTable.vue:268 src/views/file/ListTable.vue:595 +#: src/views/file/SearchModal.vue:81 src/views/file/ToolBar.vue:189 +#: src/views/firewall/ForwardView.vue:132 +#: src/views/firewall/ForwardView.vue:150 src/views/firewall/IpRuleView.vue:174 +#: src/views/firewall/IpRuleView.vue:192 src/views/firewall/RuleView.vue:211 +#: src/views/firewall/RuleView.vue:229 src/views/task/CronView.vue:200 +#: src/views/task/TaskView.vue:125 src/views/website/IndexView.vue:270 +#: src/views/website/IndexView.vue:324 +#, fuzzy +msgid "Deleted successfully" +msgstr "Saved successfully" + +#: src/views/apps/fail2ban/IndexView.vue:268 +#, fuzzy +msgid "Unbanned successfully" +msgstr "Saved successfully" + +#: src/views/apps/fail2ban/IndexView.vue:296 +msgid "Save Whitelist" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:305 +#: src/views/apps/fail2ban/IndexView.vue:386 +#: src/views/apps/fail2ban/IndexView.vue:387 +msgid "Add Rule" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:334 +msgid "" +"Stopping Fail2ban will disable all rules. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:342 +#: src/views/apps/nginx/IndexView.vue:168 src/views/apps/php/PhpView.vue:314 +#: src/views/apps/postgresql/IndexView.vue:178 +msgid "Reload" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:347 +msgid "IP Whitelist" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:352 +msgid "IP whitelist, separated by commas" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:357 +msgid "Rule Management" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:358 +msgid "Rule List" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:390 +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:393 +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:397 src/views/cert/CertView.vue:87 +#: src/views/cert/DnsView.vue:38 src/views/cert/ObtainModal.vue:54 +#: src/views/database/CreateServerModal.vue:63 +#: src/views/database/DatabaseList.vue:12 src/views/database/ServerList.vue:17 +#: src/views/database/UserList.vue:17 +msgid "Type" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:401 src/views/backup/IndexView.vue:37 +#: src/views/backup/ListView.vue:217 src/views/backup/ListView.vue:250 +#: src/views/cert/CertView.vue:464 src/views/cert/CertView.vue:527 +#: src/views/cert/CreateCertModal.vue:86 src/views/dashboard/IndexView.vue:418 +#: src/views/task/CreateModal.vue:130 msgid "Website" msgstr "" +#: src/views/apps/fail2ban/IndexView.vue:402 +#: src/views/apps/fail2ban/IndexView.vue:430 +msgid "Service" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:407 +#: src/views/apps/fail2ban/IndexView.vue:411 src/views/task/CreateModal.vue:140 +#: src/views/task/CreateModal.vue:142 +#, fuzzy +msgid "Select Website" +msgstr "Certificate" + +#: src/views/apps/fail2ban/IndexView.vue:414 +msgid "Protection Mode" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:419 +#: src/views/apps/pureftpd/IndexView.vue:48 +msgid "Path" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:426 +#: src/views/apps/fail2ban/IndexView.vue:428 +msgid "Protection Path" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:455 +#: src/views/apps/fail2ban/IndexView.vue:456 +#, fuzzy +msgid "View Rule" +msgstr "Certificate" + +#: src/views/apps/fail2ban/IndexView.vue:458 +#, fuzzy +msgid "Rule Information" +msgstr "Certificate" + +#: src/views/apps/fail2ban/IndexView.vue:461 +msgid "Currently Banned" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:465 +msgid "Total Bans" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:470 +msgid "Ban List" +msgstr "" + +#: src/views/apps/fail2ban/route.ts:17 +msgid "Fail2ban" +msgstr "" + +#: src/views/apps/frp/IndexView.vue:122 +msgid "Are you sure you want to stop Frps?" +msgstr "" + +#: src/views/apps/frp/IndexView.vue:131 src/views/apps/frp/IndexView.vue:187 +#: src/views/apps/gitea/IndexView.vue:125 +#: src/views/apps/mysql/IndexView.vue:198 +#: src/views/apps/nginx/IndexView.vue:174 +#: src/views/apps/phpmyadmin/IndexView.vue:84 +#, fuzzy +msgid "Modify Configuration" +msgstr "Certificate" + +#: src/views/apps/frp/IndexView.vue:178 +msgid "Are you sure you want to stop Frpc?" +msgstr "" + +#: src/views/apps/frp/route.ts:17 +msgid "Frp" +msgstr "" + +#: src/views/apps/gitea/IndexView.vue:115 +msgid "Are you sure you want to stop Gitea?" +msgstr "" + +#: src/views/apps/gitea/IndexView.vue:128 +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/gitea/route.ts:17 +msgid "Gitea" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:27 +#: src/views/apps/mysql/IndexView.vue:40 src/views/apps/nginx/IndexView.vue:38 +#: src/views/apps/php/PhpView.vue:132 +#: src/views/apps/postgresql/IndexView.vue:40 +#: src/views/apps/redis/IndexView.vue:34 +msgid "Property" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:34 +#: src/views/apps/mysql/IndexView.vue:47 src/views/apps/nginx/IndexView.vue:45 +#: src/views/apps/php/PhpView.vue:139 +#: src/views/apps/postgresql/IndexView.vue:47 +#: src/views/apps/redis/IndexView.vue:41 +msgid "Current Value" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:139 +msgid "" +"Stopping Memcached will cause websites using Memcached to become " +"inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:150 +#, fuzzy +msgid "Service Configuration" +msgstr "Certificate" + +#: src/views/apps/memcached/IndexView.vue:166 +#: src/views/apps/mysql/IndexView.vue:217 +#: src/views/apps/nginx/IndexView.vue:193 src/views/apps/php/PhpView.vue:372 +#: src/views/apps/postgresql/IndexView.vue:223 +#: src/views/apps/redis/IndexView.vue:166 src/views/dashboard/IndexView.vue:459 +msgid "Load Status" +msgstr "" + +#: src/views/apps/memcached/route.ts:17 +msgid "Memcached" +msgstr "" + +#: src/views/apps/minio/IndexView.vue:110 +msgid "Are you sure you want to stop Minio?" +msgstr "" + +#: src/views/apps/minio/IndexView.vue:120 +#: src/views/container/ComposeView.vue:316 +#: src/views/container/ComposeView.vue:346 +#: src/views/container/ContainerCreate.vue:337 +msgid "Environment Variables" +msgstr "" + +#: src/views/apps/minio/IndexView.vue:123 +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/minio/route.ts:17 +msgid "Minio" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:70 src/views/apps/mysql/IndexView.vue:76 +#: src/views/apps/nginx/IndexView.vue:68 src/views/apps/php/PhpView.vue:174 +#: src/views/apps/php/PhpView.vue:180 +#: src/views/apps/postgresql/IndexView.vue:74 +#: src/views/apps/supervisor/IndexView.vue:247 +#: src/views/website/EditView.vue:160 +#, fuzzy +msgid "Cleared successfully" +msgstr "Saved successfully" + +#: src/views/apps/mysql/IndexView.vue:111 +#: src/views/apps/pureftpd/IndexView.vue:185 +#: src/views/database/DatabaseList.vue:130 +#: src/views/database/ServerList.vue:249 +#: src/views/database/UpdateServerModal.vue:21 +#: src/views/database/UpdateUserModal.vue:18 +#: src/views/database/UserList.vue:223 src/views/file/PermissionModal.vue:29 +#: src/views/task/CronView.vue:182 src/views/task/CronView.vue:209 +#: src/views/website/IndexView.vue:253 src/views/website/IndexView.vue:279 +#, fuzzy +msgid "Modified successfully" +msgstr "Saved successfully" + +#: src/views/apps/mysql/IndexView.vue:139 +#: src/views/apps/nginx/IndexView.vue:132 +#: src/views/apps/postgresql/IndexView.vue:141 +#: src/views/apps/supervisor/IndexView.vue:375 +msgid "Clear Log" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:148 src/views/apps/php/PhpView.vue:277 +msgid "Clear Slow Log" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:177 +msgid "" +"Stopping MySQL will cause websites using MySQL to become inaccessible. Are " +"you sure you want to stop?" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:186 +#: src/views/apps/toolbox/IndexView.vue:185 +#: src/views/apps/toolbox/IndexView.vue:187 +msgid "Root Password" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:193 +#, fuzzy +msgid "Save Changes" +msgstr "Save" + +#: src/views/apps/mysql/IndexView.vue:201 +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:230 +msgid "Slow Query Log" +msgstr "" + +#: src/views/apps/mysql/route.ts:17 +msgid "Percona (MySQL)" +msgstr "" + +#: src/views/apps/nginx/IndexView.vue:160 +msgid "" +"Stopping OpenResty will cause all websites to become inaccessible. Are you " +"sure you want to stop?" +msgstr "" + +#: src/views/apps/nginx/IndexView.vue:177 +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:206 src/views/apps/php/PhpView.vue:385 +msgid "Error Logs" +msgstr "" + +#: src/views/apps/nginx/route.ts:17 +msgid "OpenResty (Nginx)" +msgstr "" + +#: src/views/apps/php/PhpView.vue:52 +msgid "Extension Name" +msgstr "" + +#: src/views/apps/php/PhpView.vue:81 +msgid "Are you sure you want to install %{ name }?" +msgstr "" + +#: src/views/apps/php/PhpView.vue:107 +msgid "Are you sure you want to uninstall %{ name }?" +msgstr "" + +#: src/views/apps/php/PhpView.vue:156 +#, fuzzy +msgid "Set successfully" +msgstr "Saved successfully" + +#: src/views/apps/php/PhpView.vue:221 src/views/apps/php/PhpView.vue:227 +msgid "Task submitted, please check progress in background tasks" +msgstr "" + +#: src/views/apps/php/PhpView.vue:241 +msgid "Set as CLI Default Version" +msgstr "" + +#: src/views/apps/php/PhpView.vue:268 +msgid "Clear Error Log" +msgstr "" + +#: src/views/apps/php/PhpView.vue:306 +msgid "" +"Stopping PHP %{ version } will cause websites using PHP %{ version } to " +"become inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/php/PhpView.vue:321 +msgid "Extension Management" +msgstr "" + +#: src/views/apps/php/PhpView.vue:322 +msgid "Extension List" +msgstr "" + +#: src/views/apps/php/PhpView.vue:334 +#: src/views/apps/postgresql/IndexView.vue:185 +#: src/views/apps/redis/IndexView.vue:147 +#: src/views/apps/supervisor/IndexView.vue:439 +msgid "Main Configuration" +msgstr "" + +#: src/views/apps/php/PhpView.vue:337 +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:353 +msgid "FPM Configuration" +msgstr "" + +#: src/views/apps/php/PhpView.vue:356 +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:388 +#: src/views/apps/postgresql/IndexView.vue:236 +msgid "Slow Logs" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:73 +#, fuzzy +msgid "Access Information" +msgstr "Certificate" + +#: src/views/apps/phpmyadmin/IndexView.vue:75 +msgid "Access URL:" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:78 +#, fuzzy +msgid "Modify Port" +msgstr "Certificate" + +#: src/views/apps/phpmyadmin/IndexView.vue:80 +msgid "Modify phpMyAdmin access port" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:87 +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/phpmyadmin/route.ts:17 +msgid "phpMyAdmin" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:111 +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:136 +msgid "Are you sure you want to stop Podman?" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:147 +msgid "Registry Configuration" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:150 +msgid "" +"This modifies the Podman registry configuration file (/etc/containers/" +"registries.conf)" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:166 +msgid "Storage Configuration" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:169 +msgid "" +"This modifies the Podman storage configuration file (/etc/containers/" +"storage.conf)" +msgstr "" + +#: src/views/apps/podman/route.ts:17 +msgid "Podman" +msgstr "" + +#: src/views/apps/postgresql/IndexView.vue:170 +msgid "" +"Stopping PostgreSQL will cause websites using PostgreSQL to become " +"inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/postgresql/IndexView.vue:188 +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:204 +msgid "User Configuration" +msgstr "" + +#: src/views/apps/postgresql/IndexView.vue:207 +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/postgresql/route.ts:17 +msgid "PostgreSQL" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:41 +#: src/views/apps/pureftpd/IndexView.vue:294 +#: src/views/container/ImageView.vue:197 +#: src/views/database/CreateDatabaseModal.vue:89 +#: src/views/database/CreateServerModal.vue:94 +#: src/views/database/CreateUserModal.vue:70 +#: src/views/database/ServerList.vue:47 +#: src/views/database/UpdateServerModal.vue:86 +#: src/views/database/UserList.vue:40 src/views/login/IndexView.vue:113 +#: src/views/setting/SettingBase.vue:65 src/views/ssh/CreateModal.vue:83 +#: src/views/ssh/UpdateModal.vue:89 +msgid "Username" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:75 +#: src/views/apps/pureftpd/IndexView.vue:327 +msgid "Change Password" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:86 +msgid "Are you sure you want to delete user %{ username }?" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:146 +#, fuzzy +msgid "Auto-start enabled successfully" +msgstr "Saved successfully" + +#: src/views/apps/pureftpd/IndexView.vue:149 +#, fuzzy +msgid "Auto-start disabled successfully" +msgstr "Saved successfully" + +#: src/views/apps/pureftpd/IndexView.vue:218 +#, fuzzy +msgid "Add User" +msgstr "Certificate" + +#: src/views/apps/pureftpd/IndexView.vue:227 +msgid "Auto-start On" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:228 +msgid "Auto-start Off" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:247 +msgid "" +"Stopping Pure-Ftpd will cause FTP service to be unavailable. Are you sure " +"you want to stop it?" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:256 +msgid "Port Settings" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:258 +msgid "Modify Pure-Ftpd listening port" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:262 +msgid "User Management" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:263 +msgid "User List" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:286 +msgid "Run Log" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:291 +#: src/views/apps/pureftpd/IndexView.vue:292 +#: src/views/database/CreateDatabaseModal.vue:78 +#: src/views/database/CreateUserModal.vue:54 +#: src/views/database/IndexView.vue:36 +msgid "Create User" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:299 +#: src/views/container/ImageView.vue:202 +#: src/views/database/CreateDatabaseModal.vue:94 +#: src/views/database/CreateUserModal.vue:75 +msgid "Enter username" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:302 +#: src/views/apps/pureftpd/IndexView.vue:331 +#: src/views/container/ImageView.vue:205 +#: src/views/database/CreateDatabaseModal.vue:97 +#: src/views/database/CreateServerModal.vue:102 +#: src/views/database/CreateUserModal.vue:78 +#: src/views/database/ServerList.vue:56 +#: src/views/database/UpdateServerModal.vue:94 +#: src/views/database/UpdateUserModal.vue:49 src/views/database/UserList.vue:50 +#: src/views/login/IndexView.vue:121 src/views/setting/SettingBase.vue:68 +#: src/views/ssh/CreateModal.vue:77 src/views/ssh/CreateModal.vue:86 +#: src/views/ssh/UpdateModal.vue:83 src/views/ssh/UpdateModal.vue:92 +msgid "Password" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:308 +#: src/views/apps/pureftpd/IndexView.vue:336 +msgid "It is recommended to use the generator to generate a random password" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:311 +#: src/views/container/ComposeView.vue:38 src/views/website/IndexView.vue:44 +#: src/views/website/IndexView.vue:504 +msgid "Directory" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:316 +msgid "Enter the directory authorized to the user" +msgstr "" + +#: src/views/apps/pureftpd/route.ts:17 +msgid "Pure-FTPd" +msgstr "" + +#: src/views/apps/redis/IndexView.vue:136 +msgid "" +"Stopping Redis will cause websites using Redis to become inaccessible. Are " +"you sure you want to stop?" +msgstr "" + +#: src/views/apps/redis/IndexView.vue:150 +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/redis/route.ts:17 +msgid "Redis" +msgstr "" + +#: src/views/apps/rsync/route.ts:17 +msgid "Rsync" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:25 +msgid "Mount Path" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:47 +msgid "Are you sure you want to delete mount %{ path }?" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:57 +msgid "Unmount" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:104 src/views/apps/s3fs/IndexView.vue:130 +#: src/views/apps/s3fs/IndexView.vue:131 +msgid "Add Mount" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:107 +msgid "Mount List" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:138 +msgid "Enter Bucket name (COS format: xxxx-ID)" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:146 +msgid "Enter AK key" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:154 +msgid "Enter SK key" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:157 +msgid "Region Endpoint" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:162 +msgid "" +"Enter complete URL of region endpoint (e.g., https://oss-cn-" +"beijing.aliyuncs.com)" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:165 +msgid "Mount Directory" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:170 +msgid "Enter mount directory (e.g., /oss)" +msgstr "" + +#: src/views/apps/s3fs/route.ts:17 +msgid "S3FS" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:80 +msgid "Uptime" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:103 +#: src/views/container/ContainerView.vue:103 +#: src/views/container/ContainerView.vue:439 src/views/task/CronView.vue:122 +#: src/views/task/TaskView.vue:75 +msgid "Logs" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:116 +msgid "Configure" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:144 +msgid "Are you sure you want to stop process %{ name }?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:171 +msgid "Are you sure you want to restart process %{ name }?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:197 +msgid "Are you sure you want to delete process %{ name }?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:371 +#: src/views/apps/supervisor/IndexView.vue:469 +msgid "Add Process" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:404 +msgid "" +"Stopping Supervisor will cause all processes managed by Supervisor to be " +"killed. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:415 +msgid "Process Management" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:416 +msgid "Process List" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:442 +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:461 +msgid "Daemon Logs" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:482 +msgid "Name cannot contain Chinese characters" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:485 +msgid "Start Command" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:490 +msgid "Please enter absolute path for files in start command" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:493 +msgid "Working Directory" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:498 +msgid "Please enter absolute path for working directory" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:501 +msgid "Run As User" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:506 +msgid "Usually www is sufficient" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:509 +msgid "Number of Processes" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:519 +msgid "Process Configuration" +msgstr "" + +#: src/views/apps/supervisor/route.ts:17 +msgid "Supervisor" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:87 +#: src/views/database/ServerList.vue:148 +#, fuzzy +msgid "Synchronized successfully" +msgstr "Saved successfully" + +#: src/views/apps/toolbox/IndexView.vue:118 src/views/cert/AccountView.vue:102 +#: src/views/cert/CertView.vue:290 src/views/cert/DnsView.vue:86 +#: src/views/database/ServerList.vue:185 src/views/database/UserList.vue:170 +#: src/views/file/PermissionModal.vue:123 +msgid "Modify" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:124 +msgid "DNS modifications will revert to default after system restart." +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:138 +msgid "Total %{ total }, used %{ used }, free %{ free }" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:141 +#: src/views/dashboard/IndexView.vue:578 +msgid "SWAP Size" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:148 +#: src/views/database/CreateDatabaseModal.vue:106 +#: src/views/database/CreateServerModal.vue:73 +#: src/views/database/ServerList.vue:87 +#: src/views/database/UpdateServerModal.vue:65 +#: src/views/database/UserList.vue:81 src/views/ssh/CreateModal.vue:62 +#: src/views/ssh/UpdateModal.vue:68 +msgid "Host" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:151 +msgid "Hostname" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:169 +msgid "Time" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:171 +msgid "" +"After manually changing the time, it may still be overwritten by system " +"automatic time synchronization." +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:173 +#, fuzzy +msgid "Select Timezone" +msgstr "Certificate" + +#: src/views/apps/toolbox/IndexView.vue:174 +msgid "Please select a timezone" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:176 +#, fuzzy +msgid "Modify Time" +msgstr "Certificate" + +#: src/views/apps/toolbox/IndexView.vue:179 +msgid "NTP Time Synchronization" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:180 +#, fuzzy +msgid "Synchronize Time" +msgstr "Saved successfully" + +#: src/views/apps/toolbox/route.ts:17 +msgid "Toolbox" +msgstr "" + #: src/views/backup/ListView.vue:36 msgid "Filename" msgstr "" @@ -194,25 +1604,6 @@ msgstr "" msgid "Are you sure you want to delete this backup?" msgstr "" -#: src/views/backup/ListView.vue:99 src/views/cert/AccountView.vue:128 -#: src/views/cert/CertView.vue:316 src/views/cert/DnsView.vue:112 -#: src/views/container/ComposeView.vue:208 -#: src/views/container/ContainerCreate.vue:229 -#: src/views/container/ContainerCreate.vue:276 -#: src/views/container/ContainerView.vue:157 -#: src/views/container/ContainerView.vue:411 -#: src/views/container/ImageView.vue:95 src/views/container/NetworkView.vue:135 -#: src/views/container/VolumeView.vue:89 src/views/database/DatabaseList.vue:99 -#: src/views/database/ServerList.vue:218 src/views/database/UserList.vue:192 -#: src/views/file/ListTable.vue:81 src/views/file/ListTable.vue:285 -#: src/views/file/SearchModal.vue:98 src/views/file/ToolBar.vue:238 -#: src/views/firewall/ForwardView.vue:105 src/views/firewall/IpRuleView.vue:147 -#: src/views/firewall/RuleView.vue:184 src/views/ssh/IndexView.vue:93 -#: src/views/task/CronView.vue:157 src/views/task/TaskView.vue:99 -#: src/views/website/IndexView.vue:169 -msgid "Delete" -msgstr "" - #: src/views/backup/ListView.vue:126 src/views/cert/CreateAccountModal.vue:49 #: src/views/cert/CreateCertModal.vue:50 src/views/cert/CreateDnsModal.vue:35 #: src/views/cert/UploadCertModal.vue:21 @@ -238,20 +1629,6 @@ msgstr "" msgid "Restored successfully" msgstr "Saved successfully" -#: src/views/backup/ListView.vue:149 src/views/database/DatabaseList.vue:124 -#: src/views/database/ServerList.vue:243 src/views/database/UserList.vue:217 -#: src/views/file/ListTable.vue:268 src/views/file/ListTable.vue:595 -#: src/views/file/SearchModal.vue:81 src/views/file/ToolBar.vue:189 -#: src/views/firewall/ForwardView.vue:132 -#: src/views/firewall/ForwardView.vue:150 src/views/firewall/IpRuleView.vue:174 -#: src/views/firewall/IpRuleView.vue:192 src/views/firewall/RuleView.vue:211 -#: src/views/firewall/RuleView.vue:229 src/views/task/CronView.vue:200 -#: src/views/task/TaskView.vue:125 src/views/website/IndexView.vue:270 -#: src/views/website/IndexView.vue:324 -#, fuzzy -msgid "Deleted successfully" -msgstr "Saved successfully" - #: src/views/backup/ListView.vue:182 src/views/backup/ListView.vue:209 msgid "Create Backup" msgstr "" @@ -326,12 +1703,6 @@ msgstr "" msgid "Key Type" msgstr "" -#: src/views/cert/AccountView.vue:102 src/views/cert/CertView.vue:290 -#: src/views/cert/DnsView.vue:86 src/views/database/ServerList.vue:185 -#: src/views/database/UserList.vue:170 src/views/file/PermissionModal.vue:123 -msgid "Modify" -msgstr "" - #: src/views/cert/AccountView.vue:110 src/views/cert/CertView.vue:299 #: src/views/cert/DnsView.vue:95 #, fuzzy @@ -412,14 +1783,6 @@ msgstr "" msgid "None" msgstr "" -#: src/views/cert/CertView.vue:87 src/views/cert/DnsView.vue:38 -#: src/views/cert/ObtainModal.vue:54 -#: src/views/database/CreateServerModal.vue:63 -#: src/views/database/DatabaseList.vue:12 src/views/database/ServerList.vue:17 -#: src/views/database/UserList.vue:17 -msgid "Type" -msgstr "" - #: src/views/cert/CertView.vue:109 src/views/file/ToolBar.vue:221 #: src/views/file/UploadModal.vue:38 msgid "Upload" @@ -463,10 +1826,6 @@ msgstr "Saved successfully" msgid "Renew" msgstr "" -#: src/views/cert/CertView.vue:265 -msgid "View" -msgstr "" - #: src/views/cert/CertView.vue:305 msgid "Are you sure you want to delete the certificate?" msgstr "" @@ -789,30 +2148,6 @@ msgstr "Certificate" msgid "Issuance Mode" msgstr "" -#: 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/UpdateServerModal.vue:55 src/views/file/ListTable.vue:99 -#: src/views/file/SearchModal.vue:20 src/views/file/ToolBar.vue:257 -#: src/views/ssh/CreateModal.vue:57 src/views/ssh/UpdateModal.vue:63 -#: src/views/task/SystemView.vue:18 -msgid "Name" -msgstr "" - -#: src/views/container/ComposeView.vue:38 src/views/website/IndexView.vue:44 -#: src/views/website/IndexView.vue:504 -msgid "Directory" -msgstr "" - -#: 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/task/SystemView.vue:43 -#: src/views/task/TaskView.vue:22 -msgid "Status" -msgstr "" - #: src/views/container/ComposeView.vue:65 src/views/container/ImageView.vue:60 #: src/views/container/NetworkView.vue:100 #: src/views/container/VolumeView.vue:54 src/views/task/CronView.vue:84 @@ -845,12 +2180,6 @@ msgstr "" msgid "Force pull images" msgstr "" -#: src/views/container/ComposeView.vue:150 -#: src/views/container/ContainerView.vue:127 -#: src/views/container/ContainerView.vue:405 -msgid "Start" -msgstr "" - #: src/views/container/ComposeView.vue:162 #: src/views/container/ContainerView.vue:245 #: src/views/container/ContainerView.vue:316 @@ -862,12 +2191,6 @@ msgstr "Saved successfully" msgid "Are you sure you want to stop compose %{ name }?" msgstr "" -#: src/views/container/ComposeView.vue:179 -#: src/views/container/ContainerView.vue:132 -#: src/views/container/ContainerView.vue:406 -msgid "Stop" -msgstr "" - #: src/views/container/ComposeView.vue:191 #: src/views/container/ContainerView.vue:280 #: src/views/container/ContainerView.vue:358 @@ -896,12 +2219,6 @@ msgstr "" msgid "Compose" msgstr "" -#: src/views/container/ComposeView.vue:316 -#: src/views/container/ComposeView.vue:346 -#: src/views/container/ContainerCreate.vue:337 -msgid "Environment Variables" -msgstr "" - #: src/views/container/ComposeView.vue:320 #: src/views/container/ComposeView.vue:350 #: src/views/container/ContainerCreate.vue:341 @@ -1033,13 +2350,6 @@ msgstr "" msgid "Entrypoint" msgstr "" -#: src/views/container/ContainerCreate.vue:291 -#: src/views/dashboard/IndexView.vue:530 src/views/monitor/IndexView.vue:205 -#: src/views/monitor/IndexView.vue:216 src/views/monitor/IndexView.vue:238 -#: src/views/task/SystemView.vue:78 -msgid "Memory" -msgstr "" - #: src/views/container/ContainerCreate.vue:301 msgid "CPU Shares" msgstr "" @@ -1091,28 +2401,12 @@ msgstr "" msgid "Ports (Host->Container)" msgstr "" -#: src/views/container/ContainerView.vue:80 -msgid "Running Status" -msgstr "" - -#: src/views/container/ContainerView.vue:103 -#: src/views/container/ContainerView.vue:439 src/views/task/CronView.vue:122 -#: src/views/task/TaskView.vue:75 -msgid "Logs" -msgstr "" - #: src/views/container/ContainerView.vue:119 #: src/views/container/ContainerView.vue:462 src/views/file/ListTable.vue:80 #: src/views/file/ListTable.vue:260 msgid "Rename" msgstr "" -#: src/views/container/ContainerView.vue:137 -#: src/views/container/ContainerView.vue:407 -#: src/views/dashboard/IndexView.vue:444 -msgid "Restart" -msgstr "" - #: src/views/container/ContainerView.vue:142 #: src/views/container/ContainerView.vue:408 msgid "Force Stop" @@ -1245,37 +2539,6 @@ msgstr "" msgid "Authentication" msgstr "" -#: src/views/container/ImageView.vue:197 -#: src/views/database/CreateDatabaseModal.vue:89 -#: src/views/database/CreateServerModal.vue:94 -#: src/views/database/CreateUserModal.vue:70 -#: src/views/database/ServerList.vue:47 -#: src/views/database/UpdateServerModal.vue:86 -#: src/views/database/UserList.vue:40 src/views/login/IndexView.vue:113 -#: src/views/setting/SettingBase.vue:65 src/views/ssh/CreateModal.vue:83 -#: src/views/ssh/UpdateModal.vue:89 -msgid "Username" -msgstr "" - -#: src/views/container/ImageView.vue:202 -#: src/views/database/CreateDatabaseModal.vue:94 -#: src/views/database/CreateUserModal.vue:75 -msgid "Enter username" -msgstr "" - -#: src/views/container/ImageView.vue:205 -#: src/views/database/CreateDatabaseModal.vue:97 -#: src/views/database/CreateServerModal.vue:102 -#: src/views/database/CreateUserModal.vue:78 -#: src/views/database/ServerList.vue:56 -#: src/views/database/UpdateServerModal.vue:94 -#: src/views/database/UpdateUserModal.vue:49 src/views/database/UserList.vue:50 -#: src/views/login/IndexView.vue:121 src/views/setting/SettingBase.vue:68 -#: src/views/ssh/CreateModal.vue:77 src/views/ssh/CreateModal.vue:86 -#: src/views/ssh/UpdateModal.vue:83 src/views/ssh/UpdateModal.vue:92 -msgid "Password" -msgstr "" - #: src/views/container/ImageView.vue:211 #: src/views/database/CreateDatabaseModal.vue:103 #: src/views/database/CreateUserModal.vue:84 @@ -1404,10 +2667,6 @@ msgstr "" msgid "Running slowly" msgstr "" -#: src/views/dashboard/IndexView.vue:133 -msgid "Running normally" -msgstr "" - #: src/views/dashboard/IndexView.vue:135 msgid "Running smoothly" msgstr "" @@ -1445,10 +2704,6 @@ msgstr "" msgid "Resource Overview" msgstr "" -#: src/views/dashboard/IndexView.vue:459 -msgid "Load Status" -msgstr "" - #: src/views/dashboard/IndexView.vue:471 msgid "Last 1 minute" msgstr "" @@ -1509,10 +2764,6 @@ msgstr "" msgid "Commit Limit" msgstr "" -#: src/views/dashboard/IndexView.vue:578 -msgid "SWAP Size" -msgstr "" - #: src/views/dashboard/IndexView.vue:584 msgid "SWAP Used" msgstr "" @@ -1599,10 +2850,6 @@ msgstr "" msgid "Real-time Monitoring" msgstr "" -#: src/views/dashboard/IndexView.vue:795 src/views/dashboard/IndexView.vue:815 -msgid "Disk" -msgstr "" - #: src/views/dashboard/IndexView.vue:798 msgid "Unit" msgstr "" @@ -1720,12 +2967,6 @@ msgstr "" msgid "Select server" msgstr "" -#: src/views/database/CreateDatabaseModal.vue:78 -#: src/views/database/CreateUserModal.vue:54 -#: src/views/database/IndexView.vue:36 -msgid "Create User" -msgstr "" - #: src/views/database/CreateDatabaseModal.vue:81 msgid "Authorized User" msgstr "" @@ -1734,15 +2975,6 @@ msgstr "" msgid "Enter authorized username (leave empty for no authorization)" msgstr "" -#: src/views/database/CreateDatabaseModal.vue:106 -#: src/views/database/CreateServerModal.vue:73 -#: src/views/database/ServerList.vue:87 -#: src/views/database/UpdateServerModal.vue:65 -#: src/views/database/UserList.vue:81 src/views/ssh/CreateModal.vue:62 -#: src/views/ssh/UpdateModal.vue:68 -msgid "Host" -msgstr "" - #: src/views/database/CreateDatabaseModal.vue:110 #: src/views/database/CreateUserModal.vue:91 msgid "Select host" @@ -1758,11 +2990,6 @@ msgstr "" msgid "Enter supported host address" msgstr "" -#: src/views/database/CreateServerModal.vue:37 -#, fuzzy -msgid "Added successfully" -msgstr "Saved successfully" - #: src/views/database/CreateServerModal.vue:47 #: src/views/database/IndexView.vue:40 msgid "Add Server" @@ -1841,17 +3068,6 @@ msgstr "" msgid "Are you sure you want to delete this database?" msgstr "" -#: src/views/database/DatabaseList.vue:130 -#: src/views/database/ServerList.vue:249 -#: src/views/database/UpdateServerModal.vue:21 -#: src/views/database/UpdateUserModal.vue:18 -#: src/views/database/UserList.vue:223 src/views/file/PermissionModal.vue:29 -#: src/views/task/CronView.vue:182 src/views/task/CronView.vue:209 -#: src/views/website/IndexView.vue:253 src/views/website/IndexView.vue:279 -#, fuzzy -msgid "Modified successfully" -msgstr "Saved successfully" - #: src/views/database/IndexView.vue:48 src/views/task/SystemView.vue:37 msgid "User" msgstr "" @@ -1878,11 +3094,6 @@ msgstr "" msgid "Invalid" msgstr "" -#: src/views/database/ServerList.vue:148 -#, fuzzy -msgid "Synchronized successfully" -msgstr "Saved successfully" - #: src/views/database/ServerList.vue:154 msgid "" "Are you sure you want to synchronize database users (excluding password) to " @@ -1964,12 +3175,6 @@ msgstr "" msgid "Refresh" msgstr "" -#: src/views/file/EditModal.vue:31 src/views/file/ListTable.vue:703 -#: src/views/setting/SettingBase.vue:95 src/views/setting/SettingHttps.vue:56 -#: src/views/website/EditView.vue:211 -msgid "Save" -msgstr "Save" - #: src/views/file/ListTable.vue:64 src/views/file/ListTable.vue:218 msgid "Open" msgstr "" @@ -2506,11 +3711,6 @@ msgstr "" msgid "Panel Settings" msgstr "" -#: src/views/setting/SettingBase.vue:35 src/views/setting/SettingHttps.vue:27 -#: src/views/website/EditView.vue:115 -msgid "Saved successfully" -msgstr "Saved successfully" - #: src/views/setting/SettingBase.vue:53 msgid "" "Modifying panel port/entrance requires corresponding changes in the browser " @@ -2675,11 +3875,6 @@ msgstr "" msgid "PostgreSQL Database" msgstr "" -#: src/views/task/CreateModal.vue:140 src/views/task/CreateModal.vue:142 -#, fuzzy -msgid "Select Website" -msgstr "Certificate" - #: src/views/task/CreateModal.vue:153 msgid "Retention Count" msgstr "" @@ -2735,10 +3930,6 @@ msgstr "" msgid "Sleeping" msgstr "" -#: src/views/task/SystemView.vue:54 -msgid "Stopped" -msgstr "" - #: src/views/task/SystemView.vue:56 msgid "Idle" msgstr "" @@ -2815,11 +4006,6 @@ msgstr "Saved successfully" msgid "The selected certificate is invalid" msgstr "" -#: src/views/website/EditView.vue:160 -#, fuzzy -msgid "Cleared successfully" -msgstr "Saved successfully" - #: src/views/website/EditView.vue:178 msgid "" "If you modify the original text, other modifications will not take effect " @@ -2930,10 +4116,6 @@ msgstr "" msgid "Presets" msgstr "" -#: src/views/website/EditView.vue:388 -msgid "Configuration" -msgstr "" - #: src/views/website/EditView.vue:391 msgid "" "If you do not understand the configuration rules, please do not modify them " diff --git a/web/src/locales/frontend.pot b/web/src/locales/frontend.pot index 579d1106..fc5aadd5 100644 --- a/web/src/locales/frontend.pot +++ b/web/src/locales/frontend.pot @@ -30,6 +30,7 @@ msgstr "" #: src/views/app/IndexView.vue:19 #: src/views/app/IndexView.vue:159 #: src/views/app/IndexView.vue:164 +#: src/views/apps/php/PhpView.vue:91 msgid "Install" msgstr "" @@ -38,6 +39,7 @@ msgid "App Name" msgstr "" #: src/views/app/IndexView.vue:44 +#: src/views/apps/php/PhpView.vue:59 msgid "Description" msgstr "" @@ -50,6 +52,12 @@ msgid "Show in Home" msgstr "" #: src/views/app/IndexView.vue:71 +#: src/views/apps/fail2ban/IndexView.vue:70 +#: src/views/apps/fail2ban/IndexView.vue:132 +#: src/views/apps/php/PhpView.vue:66 +#: src/views/apps/pureftpd/IndexView.vue:55 +#: src/views/apps/s3fs/IndexView.vue:33 +#: src/views/apps/supervisor/IndexView.vue:87 #: src/views/backup/ListView.vue:58 #: src/views/cert/AccountView.vue:79 #: src/views/cert/CertView.vue:182 @@ -137,6 +145,11 @@ msgid "Please select a channel" msgstr "" #: src/views/app/VersionModal.vue:89 +#: src/views/apps/fail2ban/IndexView.vue:451 +#: src/views/apps/pureftpd/IndexView.vue:320 +#: src/views/apps/pureftpd/IndexView.vue:340 +#: src/views/apps/s3fs/IndexView.vue:174 +#: src/views/apps/supervisor/IndexView.vue:513 #: src/views/backup/ListView.vue:237 #: src/views/backup/ListView.vue:257 #: src/views/cert/AccountView.vue:258 @@ -172,42 +185,581 @@ msgstr "" msgid "Submit" msgstr "" -#: src/views/backup/IndexView.vue:37 -#: src/views/backup/ListView.vue:217 -#: src/views/backup/ListView.vue:250 -#: src/views/cert/CertView.vue:464 -#: src/views/cert/CertView.vue:527 -#: src/views/cert/CreateCertModal.vue:86 -#: src/views/dashboard/IndexView.vue:418 -#: src/views/task/CreateModal.vue:130 -msgid "Website" +#: src/views/apps/benchmark/IndexView.vue:12 +#: src/views/apps/benchmark/IndexView.vue:165 +msgid "CPU" msgstr "" -#: src/views/backup/ListView.vue:36 -msgid "Filename" +#: src/views/apps/benchmark/IndexView.vue:67 +#: src/views/apps/benchmark/IndexView.vue:68 +#: src/views/apps/benchmark/IndexView.vue:74 +#: src/views/apps/benchmark/IndexView.vue:75 +#: src/views/apps/benchmark/IndexView.vue:76 +#: src/views/apps/benchmark/IndexView.vue:77 +#: src/views/apps/benchmark/IndexView.vue:80 +#: src/views/apps/benchmark/IndexView.vue:81 +#: src/views/apps/benchmark/IndexView.vue:82 +#: src/views/apps/benchmark/IndexView.vue:83 +#: src/views/apps/benchmark/IndexView.vue:86 +#: src/views/apps/benchmark/IndexView.vue:87 +#: src/views/apps/benchmark/IndexView.vue:88 +#: src/views/apps/benchmark/IndexView.vue:89 +#: src/views/apps/benchmark/IndexView.vue:92 +#: src/views/apps/benchmark/IndexView.vue:93 +#: src/views/apps/benchmark/IndexView.vue:94 +#: src/views/apps/benchmark/IndexView.vue:95 +#: src/views/apps/benchmark/IndexView.vue:156 +#: src/views/apps/benchmark/IndexView.vue:256 +#: src/views/apps/benchmark/IndexView.vue:287 +msgid "Pending benchmark" msgstr "" -#: src/views/backup/ListView.vue:43 -#: src/views/container/ImageView.vue:53 -#: src/views/file/ListTable.vue:165 -#: src/views/file/SearchModal.vue:28 -msgid "Size" +#: src/views/apps/benchmark/IndexView.vue:129 +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/backup/ListView.vue:49 -#: src/views/database/ServerList.vue:126 -#: src/views/database/UserList.vue:143 -msgid "Update Date" +#: src/views/apps/benchmark/IndexView.vue:136 +msgid "Benchmarking in progress, it may take some time..." msgstr "" -#: src/views/backup/ListView.vue:77 -msgid "Restore" +#: src/views/apps/benchmark/IndexView.vue:139 +msgid "Current project: %{ current }" msgstr "" -#: src/views/backup/ListView.vue:88 -msgid "Are you sure you want to delete this backup?" +#: src/views/apps/benchmark/IndexView.vue:151 +msgid "Single-core" msgstr "" +#: src/views/apps/benchmark/IndexView.vue:153 +msgid "Multi-core" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:170 +msgid "Image Processing" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:173 +#: src/views/apps/benchmark/IndexView.vue:184 +#: src/views/apps/benchmark/IndexView.vue:195 +#: src/views/apps/benchmark/IndexView.vue:206 +#: src/views/apps/benchmark/IndexView.vue:217 +#: src/views/apps/benchmark/IndexView.vue:228 +#: src/views/apps/benchmark/IndexView.vue:239 +msgid "Single-core %{ single } / Multi-core %{ multi }" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:181 +msgid "Machine Learning" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:192 +msgid "Program Compilation" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:203 +msgid "AES Encryption" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:214 +msgid "Compression/Decompression" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:225 +msgid "Physics Simulation" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:236 +msgid "JSON Parsing" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:265 +#: src/views/container/ContainerCreate.vue:291 +#: src/views/dashboard/IndexView.vue:530 +#: src/views/monitor/IndexView.vue:205 +#: src/views/monitor/IndexView.vue:216 +#: src/views/monitor/IndexView.vue:238 +#: src/views/task/SystemView.vue:78 +msgid "Memory" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:270 +msgid "Memory Bandwidth" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:274 +msgid "Memory Latency" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:296 +#: src/views/dashboard/IndexView.vue:795 +#: src/views/dashboard/IndexView.vue:815 +msgid "Disk" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:301 +msgid "4KB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:304 +#: src/views/apps/benchmark/IndexView.vue:315 +#: src/views/apps/benchmark/IndexView.vue:326 +#: src/views/apps/benchmark/IndexView.vue:337 +#: src/views/apps/benchmark/IndexView.vue:348 +#: src/views/apps/benchmark/IndexView.vue:359 +#: src/views/apps/benchmark/IndexView.vue:370 +#: src/views/apps/benchmark/IndexView.vue:381 +msgid "Speed %{ speed } / %{ iops } IOPS" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:312 +msgid "4KB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:323 +msgid "64KB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:334 +msgid "64KB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:345 +msgid "512KB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:356 +msgid "512KB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:367 +msgid "1MB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:378 +msgid "1MB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:402 +msgid "Benchmarking..." +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:402 +msgid "Start Benchmark" +msgstr "" + +#: src/views/apps/benchmark/route.ts:17 +msgid "Rat Benchmark" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:25 +#: src/views/apps/fail2ban/IndexView.vue:42 +#: src/views/apps/frp/IndexView.vue:30 +#: src/views/apps/frp/IndexView.vue:31 +#: src/views/apps/gitea/IndexView.vue:20 +#: src/views/apps/memcached/IndexView.vue:22 +#: src/views/apps/minio/IndexView.vue:20 +#: src/views/apps/mysql/IndexView.vue:35 +#: src/views/apps/nginx/IndexView.vue:33 +#: src/views/apps/php/PhpView.vue:47 +#: src/views/apps/podman/IndexView.vue:21 +#: src/views/apps/postgresql/IndexView.vue:35 +#: src/views/apps/pureftpd/IndexView.vue:25 +#: src/views/apps/redis/IndexView.vue:29 +#: src/views/apps/supervisor/IndexView.vue:54 +#: src/views/dashboard/IndexView.vue:133 +msgid "Running normally" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:25 +#: src/views/apps/fail2ban/IndexView.vue:42 +#: src/views/apps/frp/IndexView.vue:30 +#: src/views/apps/frp/IndexView.vue:31 +#: src/views/apps/gitea/IndexView.vue:20 +#: src/views/apps/memcached/IndexView.vue:22 +#: src/views/apps/minio/IndexView.vue:20 +#: src/views/apps/mysql/IndexView.vue:35 +#: src/views/apps/nginx/IndexView.vue:33 +#: src/views/apps/php/PhpView.vue:47 +#: src/views/apps/podman/IndexView.vue:21 +#: src/views/apps/postgresql/IndexView.vue:35 +#: src/views/apps/pureftpd/IndexView.vue:25 +#: src/views/apps/redis/IndexView.vue:29 +#: src/views/apps/supervisor/IndexView.vue:54 +#: src/views/task/SystemView.vue:54 +msgid "Stopped" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:38 +#: src/views/apps/fail2ban/IndexView.vue:176 +#: src/views/apps/frp/IndexView.vue:53 +#: src/views/apps/gitea/IndexView.vue:37 +#: src/views/apps/memcached/IndexView.vue:61 +#: src/views/apps/minio/IndexView.vue:37 +#: src/views/apps/mysql/IndexView.vue:64 +#: src/views/apps/nginx/IndexView.vue:62 +#: src/views/apps/php/PhpView.vue:162 +#: src/views/apps/php/PhpView.vue:168 +#: src/views/apps/phpmyadmin/IndexView.vue:37 +#: src/views/apps/phpmyadmin/IndexView.vue:44 +#: src/views/apps/podman/IndexView.vue:39 +#: src/views/apps/podman/IndexView.vue:45 +#: src/views/apps/postgresql/IndexView.vue:64 +#: src/views/apps/postgresql/IndexView.vue:69 +#: src/views/apps/pureftpd/IndexView.vue:133 +#: src/views/apps/redis/IndexView.vue:58 +#: src/views/apps/supervisor/IndexView.vue:241 +#: src/views/apps/supervisor/IndexView.vue:341 +#: src/views/apps/toolbox/IndexView.vue:51 +#: src/views/apps/toolbox/IndexView.vue:57 +#: src/views/apps/toolbox/IndexView.vue:66 +#: src/views/apps/toolbox/IndexView.vue:72 +#: src/views/apps/toolbox/IndexView.vue:81 +#: src/views/setting/SettingBase.vue:35 +#: src/views/setting/SettingHttps.vue:27 +#: src/views/website/EditView.vue:115 +msgid "Saved successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:44 +#: src/views/apps/fail2ban/IndexView.vue:211 +#: src/views/apps/frp/IndexView.vue:60 +#: src/views/apps/gitea/IndexView.vue:43 +#: src/views/apps/memcached/IndexView.vue:67 +#: src/views/apps/minio/IndexView.vue:43 +#: src/views/apps/mysql/IndexView.vue:93 +#: src/views/apps/nginx/IndexView.vue:85 +#: src/views/apps/php/PhpView.vue:197 +#: src/views/apps/podman/IndexView.vue:51 +#: src/views/apps/postgresql/IndexView.vue:90 +#: src/views/apps/pureftpd/IndexView.vue:139 +#: src/views/apps/redis/IndexView.vue:64 +#: src/views/apps/supervisor/IndexView.vue:268 +#: src/views/apps/supervisor/IndexView.vue:297 +msgid "Started successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:51 +#: src/views/apps/fail2ban/IndexView.vue:228 +#: src/views/apps/frp/IndexView.vue:66 +#: src/views/apps/gitea/IndexView.vue:49 +#: src/views/apps/memcached/IndexView.vue:84 +#: src/views/apps/minio/IndexView.vue:49 +#: src/views/apps/mysql/IndexView.vue:99 +#: src/views/apps/nginx/IndexView.vue:91 +#: src/views/apps/php/PhpView.vue:203 +#: src/views/apps/podman/IndexView.vue:57 +#: src/views/apps/postgresql/IndexView.vue:96 +#: src/views/apps/pureftpd/IndexView.vue:156 +#: src/views/apps/redis/IndexView.vue:81 +#: src/views/apps/supervisor/IndexView.vue:275 +#: src/views/apps/supervisor/IndexView.vue:304 +msgid "Stopped successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:58 +#: src/views/apps/fail2ban/IndexView.vue:234 +#: src/views/apps/frp/IndexView.vue:72 +#: src/views/apps/gitea/IndexView.vue:55 +#: src/views/apps/memcached/IndexView.vue:90 +#: src/views/apps/minio/IndexView.vue:55 +#: src/views/apps/mysql/IndexView.vue:105 +#: src/views/apps/nginx/IndexView.vue:97 +#: src/views/apps/php/PhpView.vue:209 +#: src/views/apps/podman/IndexView.vue:63 +#: src/views/apps/postgresql/IndexView.vue:102 +#: src/views/apps/pureftpd/IndexView.vue:162 +#: src/views/apps/redis/IndexView.vue:87 +#: src/views/apps/supervisor/IndexView.vue:282 +#: src/views/apps/supervisor/IndexView.vue:311 +msgid "Restarted successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:66 +#: src/views/apps/fail2ban/IndexView.vue:218 +#: src/views/apps/frp/IndexView.vue:79 +#: src/views/apps/gitea/IndexView.vue:62 +#: src/views/apps/memcached/IndexView.vue:74 +#: src/views/apps/minio/IndexView.vue:62 +#: src/views/apps/mysql/IndexView.vue:83 +#: src/views/apps/nginx/IndexView.vue:75 +#: src/views/apps/php/PhpView.vue:187 +#: src/views/apps/podman/IndexView.vue:70 +#: src/views/apps/postgresql/IndexView.vue:80 +#: src/views/apps/redis/IndexView.vue:71 +#: src/views/apps/supervisor/IndexView.vue:255 +msgid "Autostart enabled successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:69 +#: src/views/apps/fail2ban/IndexView.vue:221 +#: src/views/apps/frp/IndexView.vue:82 +#: src/views/apps/gitea/IndexView.vue:65 +#: src/views/apps/memcached/IndexView.vue:77 +#: src/views/apps/minio/IndexView.vue:65 +#: src/views/apps/mysql/IndexView.vue:86 +#: src/views/apps/nginx/IndexView.vue:78 +#: src/views/apps/php/PhpView.vue:190 +#: src/views/apps/podman/IndexView.vue:73 +#: src/views/apps/postgresql/IndexView.vue:83 +#: src/views/apps/redis/IndexView.vue:74 +#: src/views/apps/supervisor/IndexView.vue:260 +msgid "Autostart disabled successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:90 +#: src/views/apps/frp/IndexView.vue:135 +#: src/views/apps/frp/IndexView.vue:191 +#: src/views/apps/gitea/IndexView.vue:87 +#: src/views/apps/memcached/IndexView.vue:110 +#: src/views/apps/minio/IndexView.vue:82 +#: src/views/apps/mysql/IndexView.vue:130 +#: src/views/apps/nginx/IndexView.vue:123 +#: src/views/apps/php/PhpView.vue:250 +#: src/views/apps/php/PhpView.vue:259 +#: src/views/apps/phpmyadmin/IndexView.vue:58 +#: src/views/apps/phpmyadmin/IndexView.vue:67 +#: src/views/apps/podman/IndexView.vue:95 +#: src/views/apps/podman/IndexView.vue:104 +#: src/views/apps/postgresql/IndexView.vue:128 +#: src/views/apps/postgresql/IndexView.vue:137 +#: src/views/apps/pureftpd/IndexView.vue:209 +#: src/views/apps/redis/IndexView.vue:107 +#: src/views/apps/supervisor/IndexView.vue:362 +#: src/views/apps/toolbox/IndexView.vue:97 +#: src/views/apps/toolbox/IndexView.vue:101 +#: src/views/apps/toolbox/IndexView.vue:105 +#: src/views/apps/toolbox/IndexView.vue:109 +#: src/views/file/EditModal.vue:31 +#: src/views/file/ListTable.vue:703 +#: src/views/setting/SettingBase.vue:95 +#: src/views/setting/SettingHttps.vue:56 +#: src/views/website/EditView.vue:211 +msgid "Save" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:94 +#: src/views/apps/docker/IndexView.vue:96 +#: src/views/apps/fail2ban/IndexView.vue:309 +#: src/views/apps/fail2ban/IndexView.vue:311 +#: src/views/apps/frp/IndexView.vue:99 +#: src/views/apps/frp/IndexView.vue:155 +#: src/views/apps/gitea/IndexView.vue:91 +#: src/views/apps/gitea/IndexView.vue:92 +#: src/views/apps/memcached/IndexView.vue:114 +#: src/views/apps/memcached/IndexView.vue:116 +#: src/views/apps/minio/IndexView.vue:86 +#: src/views/apps/minio/IndexView.vue:87 +#: src/views/apps/mysql/IndexView.vue:152 +#: src/views/apps/mysql/IndexView.vue:154 +#: src/views/apps/nginx/IndexView.vue:136 +#: src/views/apps/nginx/IndexView.vue:137 +#: src/views/apps/php/PhpView.vue:281 +#: src/views/apps/php/PhpView.vue:283 +#: src/views/apps/podman/IndexView.vue:108 +#: src/views/apps/podman/IndexView.vue:113 +#: src/views/apps/postgresql/IndexView.vue:145 +#: src/views/apps/postgresql/IndexView.vue:147 +#: src/views/apps/pureftpd/IndexView.vue:222 +#: src/views/apps/pureftpd/IndexView.vue:224 +#: src/views/apps/redis/IndexView.vue:111 +#: src/views/apps/redis/IndexView.vue:113 +#: src/views/apps/supervisor/IndexView.vue:379 +#: src/views/apps/supervisor/IndexView.vue:381 +#: src/views/container/ContainerView.vue:80 +msgid "Running Status" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:99 +#: src/views/apps/fail2ban/IndexView.vue:314 +#: src/views/apps/frp/IndexView.vue:102 +#: src/views/apps/frp/IndexView.vue:158 +#: src/views/apps/gitea/IndexView.vue:95 +#: src/views/apps/memcached/IndexView.vue:119 +#: src/views/apps/minio/IndexView.vue:90 +#: src/views/apps/mysql/IndexView.vue:157 +#: src/views/apps/nginx/IndexView.vue:140 +#: src/views/apps/php/PhpView.vue:286 +#: src/views/apps/podman/IndexView.vue:116 +#: src/views/apps/postgresql/IndexView.vue:150 +#: src/views/apps/redis/IndexView.vue:116 +#: src/views/apps/supervisor/IndexView.vue:384 +msgid "Autostart On" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:100 +#: src/views/apps/fail2ban/IndexView.vue:315 +#: src/views/apps/frp/IndexView.vue:103 +#: src/views/apps/frp/IndexView.vue:159 +#: src/views/apps/gitea/IndexView.vue:96 +#: src/views/apps/memcached/IndexView.vue:120 +#: src/views/apps/minio/IndexView.vue:91 +#: src/views/apps/mysql/IndexView.vue:158 +#: src/views/apps/nginx/IndexView.vue:141 +#: src/views/apps/php/PhpView.vue:287 +#: src/views/apps/podman/IndexView.vue:117 +#: src/views/apps/postgresql/IndexView.vue:151 +#: src/views/apps/redis/IndexView.vue:117 +#: src/views/apps/supervisor/IndexView.vue:385 +msgid "Autostart Off" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:110 +#: src/views/apps/fail2ban/IndexView.vue:325 +#: src/views/apps/frp/IndexView.vue:113 +#: src/views/apps/frp/IndexView.vue:169 +#: src/views/apps/gitea/IndexView.vue:106 +#: src/views/apps/memcached/IndexView.vue:130 +#: src/views/apps/minio/IndexView.vue:101 +#: src/views/apps/mysql/IndexView.vue:168 +#: src/views/apps/nginx/IndexView.vue:151 +#: src/views/apps/php/PhpView.vue:297 +#: src/views/apps/podman/IndexView.vue:127 +#: src/views/apps/postgresql/IndexView.vue:161 +#: src/views/apps/pureftpd/IndexView.vue:238 +#: src/views/apps/redis/IndexView.vue:127 +#: src/views/apps/supervisor/IndexView.vue:131 +#: src/views/apps/supervisor/IndexView.vue:395 +#: src/views/container/ComposeView.vue:150 +#: src/views/container/ContainerView.vue:127 +#: src/views/container/ContainerView.vue:405 +msgid "Start" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:116 +#: src/views/apps/fail2ban/IndexView.vue:331 +#: src/views/apps/frp/IndexView.vue:119 +#: src/views/apps/frp/IndexView.vue:175 +#: src/views/apps/gitea/IndexView.vue:112 +#: src/views/apps/memcached/IndexView.vue:136 +#: src/views/apps/minio/IndexView.vue:107 +#: src/views/apps/mysql/IndexView.vue:174 +#: src/views/apps/nginx/IndexView.vue:157 +#: src/views/apps/php/PhpView.vue:303 +#: src/views/apps/podman/IndexView.vue:133 +#: src/views/apps/postgresql/IndexView.vue:167 +#: src/views/apps/pureftpd/IndexView.vue:244 +#: src/views/apps/redis/IndexView.vue:133 +#: src/views/apps/supervisor/IndexView.vue:155 +#: src/views/apps/supervisor/IndexView.vue:401 +#: src/views/container/ComposeView.vue:179 +#: src/views/container/ContainerView.vue:132 +#: src/views/container/ContainerView.vue:406 +msgid "Stop" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:119 +msgid "Are you sure you want to stop Docker?" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:123 +#: src/views/apps/fail2ban/IndexView.vue:338 +#: src/views/apps/frp/IndexView.vue:126 +#: src/views/apps/frp/IndexView.vue:182 +#: src/views/apps/gitea/IndexView.vue:119 +#: src/views/apps/memcached/IndexView.vue:143 +#: src/views/apps/minio/IndexView.vue:114 +#: src/views/apps/mysql/IndexView.vue:181 +#: src/views/apps/nginx/IndexView.vue:164 +#: src/views/apps/php/PhpView.vue:310 +#: src/views/apps/podman/IndexView.vue:140 +#: src/views/apps/postgresql/IndexView.vue:174 +#: src/views/apps/pureftpd/IndexView.vue:251 +#: src/views/apps/redis/IndexView.vue:140 +#: src/views/apps/supervisor/IndexView.vue:182 +#: src/views/apps/supervisor/IndexView.vue:408 +#: src/views/container/ContainerView.vue:137 +#: src/views/container/ContainerView.vue:407 +#: src/views/dashboard/IndexView.vue:444 +msgid "Restart" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:130 +#: src/views/website/EditView.vue:388 +msgid "Configuration" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:133 +msgid "This modifies the Docker configuration file (/etc/docker/daemon.json)" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:149 +#: src/views/apps/fail2ban/IndexView.vue:381 +#: src/views/apps/gitea/IndexView.vue:144 +#: src/views/apps/memcached/IndexView.vue:176 +#: src/views/apps/minio/IndexView.vue:139 +#: src/views/apps/mysql/IndexView.vue:227 +#: src/views/apps/nginx/IndexView.vue:203 +#: src/views/apps/php/PhpView.vue:382 +#: src/views/apps/podman/IndexView.vue:185 +#: src/views/apps/postgresql/IndexView.vue:233 +#: src/views/apps/redis/IndexView.vue:176 +#: src/views/apps/supervisor/IndexView.vue:458 +msgid "Runtime Logs" +msgstr "" + +#: src/views/apps/docker/route.ts:17 +msgid "Docker" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:47 +#: src/views/apps/supervisor/IndexView.vue:59 +#: src/views/apps/supervisor/IndexView.vue:477 +#: 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/UpdateServerModal.vue:55 +#: src/views/file/ListTable.vue:99 +#: src/views/file/SearchModal.vue:20 +#: src/views/file/ToolBar.vue:257 +#: src/views/ssh/CreateModal.vue:57 +#: src/views/ssh/UpdateModal.vue:63 +#: src/views/task/SystemView.vue:18 +msgid "Name" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:53 +#: src/views/apps/phpmyadmin/IndexView.vue:71 +#: src/views/apps/supervisor/IndexView.vue:66 +#: 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/task/SystemView.vue:43 +#: src/views/task/TaskView.vue:22 +msgid "Status" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:66 +#: src/views/apps/fail2ban/IndexView.vue:441 +msgid "Max Retries" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:67 +#: src/views/apps/fail2ban/IndexView.vue:447 +msgid "Ban Time" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:68 +#: src/views/apps/fail2ban/IndexView.vue:444 +msgid "Find Time" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:89 +#: src/views/cert/CertView.vue:265 +msgid "View" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:100 +msgid "Are you sure you want to delete rule %{ name }?" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:111 +#: src/views/apps/php/PhpView.vue:117 +#: src/views/apps/pureftpd/IndexView.vue:97 +#: src/views/apps/supervisor/IndexView.vue:208 #: src/views/backup/ListView.vue:99 #: src/views/cert/AccountView.vue:128 #: src/views/cert/CertView.vue:316 @@ -237,6 +789,873 @@ msgstr "" msgid "Delete" msgstr "" +#: src/views/apps/fail2ban/IndexView.vue:146 +msgid "Are you sure you want to unban %{ ip }?" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:156 +msgid "Unban" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:240 +#: src/views/apps/nginx/IndexView.vue:103 +#: src/views/apps/php/PhpView.vue:215 +#: src/views/apps/postgresql/IndexView.vue:108 +msgid "Reloaded successfully" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:247 +#: src/views/apps/pureftpd/IndexView.vue:175 +#: src/views/apps/s3fs/IndexView.vue:83 +#: src/views/apps/supervisor/IndexView.vue:290 +#: src/views/database/CreateServerModal.vue:37 +msgid "Added successfully" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:255 +#: src/views/apps/pureftpd/IndexView.vue:192 +#: src/views/apps/s3fs/IndexView.vue:90 +#: src/views/apps/supervisor/IndexView.vue:318 +#: src/views/backup/ListView.vue:149 +#: src/views/database/DatabaseList.vue:124 +#: src/views/database/ServerList.vue:243 +#: src/views/database/UserList.vue:217 +#: src/views/file/ListTable.vue:268 +#: src/views/file/ListTable.vue:595 +#: src/views/file/SearchModal.vue:81 +#: src/views/file/ToolBar.vue:189 +#: src/views/firewall/ForwardView.vue:132 +#: src/views/firewall/ForwardView.vue:150 +#: src/views/firewall/IpRuleView.vue:174 +#: src/views/firewall/IpRuleView.vue:192 +#: src/views/firewall/RuleView.vue:211 +#: src/views/firewall/RuleView.vue:229 +#: src/views/task/CronView.vue:200 +#: src/views/task/TaskView.vue:125 +#: src/views/website/IndexView.vue:270 +#: src/views/website/IndexView.vue:324 +msgid "Deleted successfully" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:268 +msgid "Unbanned successfully" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:296 +msgid "Save Whitelist" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:305 +#: src/views/apps/fail2ban/IndexView.vue:386 +#: src/views/apps/fail2ban/IndexView.vue:387 +msgid "Add Rule" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:334 +msgid "Stopping Fail2ban will disable all rules. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:342 +#: src/views/apps/nginx/IndexView.vue:168 +#: src/views/apps/php/PhpView.vue:314 +#: src/views/apps/postgresql/IndexView.vue:178 +msgid "Reload" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:347 +msgid "IP Whitelist" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:352 +msgid "IP whitelist, separated by commas" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:357 +msgid "Rule Management" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:358 +msgid "Rule List" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:390 +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:393 +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:397 +#: src/views/cert/CertView.vue:87 +#: src/views/cert/DnsView.vue:38 +#: src/views/cert/ObtainModal.vue:54 +#: src/views/database/CreateServerModal.vue:63 +#: src/views/database/DatabaseList.vue:12 +#: src/views/database/ServerList.vue:17 +#: src/views/database/UserList.vue:17 +msgid "Type" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:401 +#: src/views/backup/IndexView.vue:37 +#: src/views/backup/ListView.vue:217 +#: src/views/backup/ListView.vue:250 +#: src/views/cert/CertView.vue:464 +#: src/views/cert/CertView.vue:527 +#: src/views/cert/CreateCertModal.vue:86 +#: src/views/dashboard/IndexView.vue:418 +#: src/views/task/CreateModal.vue:130 +msgid "Website" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:402 +#: src/views/apps/fail2ban/IndexView.vue:430 +msgid "Service" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:407 +#: src/views/apps/fail2ban/IndexView.vue:411 +#: src/views/task/CreateModal.vue:140 +#: src/views/task/CreateModal.vue:142 +msgid "Select Website" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:414 +msgid "Protection Mode" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:419 +#: src/views/apps/pureftpd/IndexView.vue:48 +msgid "Path" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:426 +#: src/views/apps/fail2ban/IndexView.vue:428 +msgid "Protection Path" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:455 +#: src/views/apps/fail2ban/IndexView.vue:456 +msgid "View Rule" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:458 +msgid "Rule Information" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:461 +msgid "Currently Banned" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:465 +msgid "Total Bans" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:470 +msgid "Ban List" +msgstr "" + +#: src/views/apps/fail2ban/route.ts:17 +msgid "Fail2ban" +msgstr "" + +#: src/views/apps/frp/IndexView.vue:122 +msgid "Are you sure you want to stop Frps?" +msgstr "" + +#: src/views/apps/frp/IndexView.vue:131 +#: src/views/apps/frp/IndexView.vue:187 +#: src/views/apps/gitea/IndexView.vue:125 +#: src/views/apps/mysql/IndexView.vue:198 +#: src/views/apps/nginx/IndexView.vue:174 +#: src/views/apps/phpmyadmin/IndexView.vue:84 +msgid "Modify Configuration" +msgstr "" + +#: src/views/apps/frp/IndexView.vue:178 +msgid "Are you sure you want to stop Frpc?" +msgstr "" + +#: src/views/apps/frp/route.ts:17 +msgid "Frp" +msgstr "" + +#: src/views/apps/gitea/IndexView.vue:115 +msgid "Are you sure you want to stop Gitea?" +msgstr "" + +#: src/views/apps/gitea/IndexView.vue:128 +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/gitea/route.ts:17 +msgid "Gitea" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:27 +#: src/views/apps/mysql/IndexView.vue:40 +#: src/views/apps/nginx/IndexView.vue:38 +#: src/views/apps/php/PhpView.vue:132 +#: src/views/apps/postgresql/IndexView.vue:40 +#: src/views/apps/redis/IndexView.vue:34 +msgid "Property" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:34 +#: src/views/apps/mysql/IndexView.vue:47 +#: src/views/apps/nginx/IndexView.vue:45 +#: src/views/apps/php/PhpView.vue:139 +#: src/views/apps/postgresql/IndexView.vue:47 +#: src/views/apps/redis/IndexView.vue:41 +msgid "Current Value" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:139 +msgid "Stopping Memcached will cause websites using Memcached to become inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:150 +msgid "Service Configuration" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:166 +#: src/views/apps/mysql/IndexView.vue:217 +#: src/views/apps/nginx/IndexView.vue:193 +#: src/views/apps/php/PhpView.vue:372 +#: src/views/apps/postgresql/IndexView.vue:223 +#: src/views/apps/redis/IndexView.vue:166 +#: src/views/dashboard/IndexView.vue:459 +msgid "Load Status" +msgstr "" + +#: src/views/apps/memcached/route.ts:17 +msgid "Memcached" +msgstr "" + +#: src/views/apps/minio/IndexView.vue:110 +msgid "Are you sure you want to stop Minio?" +msgstr "" + +#: src/views/apps/minio/IndexView.vue:120 +#: src/views/container/ComposeView.vue:316 +#: src/views/container/ComposeView.vue:346 +#: src/views/container/ContainerCreate.vue:337 +msgid "Environment Variables" +msgstr "" + +#: src/views/apps/minio/IndexView.vue:123 +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/minio/route.ts:17 +msgid "Minio" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:70 +#: src/views/apps/mysql/IndexView.vue:76 +#: src/views/apps/nginx/IndexView.vue:68 +#: src/views/apps/php/PhpView.vue:174 +#: src/views/apps/php/PhpView.vue:180 +#: src/views/apps/postgresql/IndexView.vue:74 +#: src/views/apps/supervisor/IndexView.vue:247 +#: src/views/website/EditView.vue:160 +msgid "Cleared successfully" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:111 +#: src/views/apps/pureftpd/IndexView.vue:185 +#: src/views/database/DatabaseList.vue:130 +#: src/views/database/ServerList.vue:249 +#: src/views/database/UpdateServerModal.vue:21 +#: src/views/database/UpdateUserModal.vue:18 +#: src/views/database/UserList.vue:223 +#: src/views/file/PermissionModal.vue:29 +#: src/views/task/CronView.vue:182 +#: src/views/task/CronView.vue:209 +#: src/views/website/IndexView.vue:253 +#: src/views/website/IndexView.vue:279 +msgid "Modified successfully" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:139 +#: src/views/apps/nginx/IndexView.vue:132 +#: src/views/apps/postgresql/IndexView.vue:141 +#: src/views/apps/supervisor/IndexView.vue:375 +msgid "Clear Log" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:148 +#: src/views/apps/php/PhpView.vue:277 +msgid "Clear Slow Log" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:177 +msgid "Stopping MySQL will cause websites using MySQL to become inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:186 +#: src/views/apps/toolbox/IndexView.vue:185 +#: src/views/apps/toolbox/IndexView.vue:187 +msgid "Root Password" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:193 +msgid "Save Changes" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:201 +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:230 +msgid "Slow Query Log" +msgstr "" + +#: src/views/apps/mysql/route.ts:17 +msgid "Percona (MySQL)" +msgstr "" + +#: src/views/apps/nginx/IndexView.vue:160 +msgid "Stopping OpenResty will cause all websites to become inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/nginx/IndexView.vue:177 +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:206 +#: src/views/apps/php/PhpView.vue:385 +msgid "Error Logs" +msgstr "" + +#: src/views/apps/nginx/route.ts:17 +msgid "OpenResty (Nginx)" +msgstr "" + +#: src/views/apps/php/PhpView.vue:52 +msgid "Extension Name" +msgstr "" + +#: src/views/apps/php/PhpView.vue:81 +msgid "Are you sure you want to install %{ name }?" +msgstr "" + +#: src/views/apps/php/PhpView.vue:107 +msgid "Are you sure you want to uninstall %{ name }?" +msgstr "" + +#: src/views/apps/php/PhpView.vue:156 +msgid "Set successfully" +msgstr "" + +#: src/views/apps/php/PhpView.vue:221 +#: src/views/apps/php/PhpView.vue:227 +msgid "Task submitted, please check progress in background tasks" +msgstr "" + +#: src/views/apps/php/PhpView.vue:241 +msgid "Set as CLI Default Version" +msgstr "" + +#: src/views/apps/php/PhpView.vue:268 +msgid "Clear Error Log" +msgstr "" + +#: src/views/apps/php/PhpView.vue:306 +msgid "Stopping PHP %{ version } will cause websites using PHP %{ version } to become inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/php/PhpView.vue:321 +msgid "Extension Management" +msgstr "" + +#: src/views/apps/php/PhpView.vue:322 +msgid "Extension List" +msgstr "" + +#: src/views/apps/php/PhpView.vue:334 +#: src/views/apps/postgresql/IndexView.vue:185 +#: src/views/apps/redis/IndexView.vue:147 +#: src/views/apps/supervisor/IndexView.vue:439 +msgid "Main Configuration" +msgstr "" + +#: src/views/apps/php/PhpView.vue:337 +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:353 +msgid "FPM Configuration" +msgstr "" + +#: src/views/apps/php/PhpView.vue:356 +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:388 +#: src/views/apps/postgresql/IndexView.vue:236 +msgid "Slow Logs" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:73 +msgid "Access Information" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:75 +msgid "Access URL:" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:78 +msgid "Modify Port" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:80 +msgid "Modify phpMyAdmin access port" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:87 +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/phpmyadmin/route.ts:17 +msgid "phpMyAdmin" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:111 +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:136 +msgid "Are you sure you want to stop Podman?" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:147 +msgid "Registry Configuration" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:150 +msgid "This modifies the Podman registry configuration file (/etc/containers/registries.conf)" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:166 +msgid "Storage Configuration" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:169 +msgid "This modifies the Podman storage configuration file (/etc/containers/storage.conf)" +msgstr "" + +#: src/views/apps/podman/route.ts:17 +msgid "Podman" +msgstr "" + +#: src/views/apps/postgresql/IndexView.vue:170 +msgid "Stopping PostgreSQL will cause websites using PostgreSQL to become inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/postgresql/IndexView.vue:188 +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:204 +msgid "User Configuration" +msgstr "" + +#: src/views/apps/postgresql/IndexView.vue:207 +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/postgresql/route.ts:17 +msgid "PostgreSQL" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:41 +#: src/views/apps/pureftpd/IndexView.vue:294 +#: src/views/container/ImageView.vue:197 +#: src/views/database/CreateDatabaseModal.vue:89 +#: src/views/database/CreateServerModal.vue:94 +#: src/views/database/CreateUserModal.vue:70 +#: src/views/database/ServerList.vue:47 +#: src/views/database/UpdateServerModal.vue:86 +#: src/views/database/UserList.vue:40 +#: src/views/login/IndexView.vue:113 +#: src/views/setting/SettingBase.vue:65 +#: src/views/ssh/CreateModal.vue:83 +#: src/views/ssh/UpdateModal.vue:89 +msgid "Username" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:75 +#: src/views/apps/pureftpd/IndexView.vue:327 +msgid "Change Password" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:86 +msgid "Are you sure you want to delete user %{ username }?" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:146 +msgid "Auto-start enabled successfully" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:149 +msgid "Auto-start disabled successfully" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:218 +msgid "Add User" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:227 +msgid "Auto-start On" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:228 +msgid "Auto-start Off" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:247 +msgid "Stopping Pure-Ftpd will cause FTP service to be unavailable. Are you sure you want to stop it?" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:256 +msgid "Port Settings" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:258 +msgid "Modify Pure-Ftpd listening port" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:262 +msgid "User Management" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:263 +msgid "User List" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:286 +msgid "Run Log" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:291 +#: src/views/apps/pureftpd/IndexView.vue:292 +#: src/views/database/CreateDatabaseModal.vue:78 +#: src/views/database/CreateUserModal.vue:54 +#: src/views/database/IndexView.vue:36 +msgid "Create User" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:299 +#: src/views/container/ImageView.vue:202 +#: src/views/database/CreateDatabaseModal.vue:94 +#: src/views/database/CreateUserModal.vue:75 +msgid "Enter username" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:302 +#: src/views/apps/pureftpd/IndexView.vue:331 +#: src/views/container/ImageView.vue:205 +#: src/views/database/CreateDatabaseModal.vue:97 +#: src/views/database/CreateServerModal.vue:102 +#: src/views/database/CreateUserModal.vue:78 +#: src/views/database/ServerList.vue:56 +#: src/views/database/UpdateServerModal.vue:94 +#: src/views/database/UpdateUserModal.vue:49 +#: src/views/database/UserList.vue:50 +#: src/views/login/IndexView.vue:121 +#: src/views/setting/SettingBase.vue:68 +#: src/views/ssh/CreateModal.vue:77 +#: src/views/ssh/CreateModal.vue:86 +#: src/views/ssh/UpdateModal.vue:83 +#: src/views/ssh/UpdateModal.vue:92 +msgid "Password" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:308 +#: src/views/apps/pureftpd/IndexView.vue:336 +msgid "It is recommended to use the generator to generate a random password" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:311 +#: src/views/container/ComposeView.vue:38 +#: src/views/website/IndexView.vue:44 +#: src/views/website/IndexView.vue:504 +msgid "Directory" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:316 +msgid "Enter the directory authorized to the user" +msgstr "" + +#: src/views/apps/pureftpd/route.ts:17 +msgid "Pure-FTPd" +msgstr "" + +#: src/views/apps/redis/IndexView.vue:136 +msgid "Stopping Redis will cause websites using Redis to become inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/redis/IndexView.vue:150 +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/redis/route.ts:17 +msgid "Redis" +msgstr "" + +#: src/views/apps/rsync/route.ts:17 +msgid "Rsync" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:25 +msgid "Mount Path" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:47 +msgid "Are you sure you want to delete mount %{ path }?" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:57 +msgid "Unmount" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:104 +#: src/views/apps/s3fs/IndexView.vue:130 +#: src/views/apps/s3fs/IndexView.vue:131 +msgid "Add Mount" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:107 +msgid "Mount List" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:138 +msgid "Enter Bucket name (COS format: xxxx-ID)" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:146 +msgid "Enter AK key" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:154 +msgid "Enter SK key" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:157 +msgid "Region Endpoint" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:162 +msgid "Enter complete URL of region endpoint (e.g., https://oss-cn-beijing.aliyuncs.com)" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:165 +msgid "Mount Directory" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:170 +msgid "Enter mount directory (e.g., /oss)" +msgstr "" + +#: src/views/apps/s3fs/route.ts:17 +msgid "S3FS" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:80 +msgid "Uptime" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:103 +#: src/views/container/ContainerView.vue:103 +#: src/views/container/ContainerView.vue:439 +#: src/views/task/CronView.vue:122 +#: src/views/task/TaskView.vue:75 +msgid "Logs" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:116 +msgid "Configure" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:144 +msgid "Are you sure you want to stop process %{ name }?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:171 +msgid "Are you sure you want to restart process %{ name }?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:197 +msgid "Are you sure you want to delete process %{ name }?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:371 +#: src/views/apps/supervisor/IndexView.vue:469 +msgid "Add Process" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:404 +msgid "Stopping Supervisor will cause all processes managed by Supervisor to be killed. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:415 +msgid "Process Management" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:416 +msgid "Process List" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:442 +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:461 +msgid "Daemon Logs" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:482 +msgid "Name cannot contain Chinese characters" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:485 +msgid "Start Command" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:490 +msgid "Please enter absolute path for files in start command" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:493 +msgid "Working Directory" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:498 +msgid "Please enter absolute path for working directory" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:501 +msgid "Run As User" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:506 +msgid "Usually www is sufficient" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:509 +msgid "Number of Processes" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:519 +msgid "Process Configuration" +msgstr "" + +#: src/views/apps/supervisor/route.ts:17 +msgid "Supervisor" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:87 +#: src/views/database/ServerList.vue:148 +msgid "Synchronized successfully" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:118 +#: src/views/cert/AccountView.vue:102 +#: src/views/cert/CertView.vue:290 +#: src/views/cert/DnsView.vue:86 +#: src/views/database/ServerList.vue:185 +#: src/views/database/UserList.vue:170 +#: src/views/file/PermissionModal.vue:123 +msgid "Modify" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:124 +msgid "DNS modifications will revert to default after system restart." +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:138 +msgid "Total %{ total }, used %{ used }, free %{ free }" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:141 +#: src/views/dashboard/IndexView.vue:578 +msgid "SWAP Size" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:148 +#: src/views/database/CreateDatabaseModal.vue:106 +#: src/views/database/CreateServerModal.vue:73 +#: src/views/database/ServerList.vue:87 +#: src/views/database/UpdateServerModal.vue:65 +#: src/views/database/UserList.vue:81 +#: src/views/ssh/CreateModal.vue:62 +#: src/views/ssh/UpdateModal.vue:68 +msgid "Host" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:151 +msgid "Hostname" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:169 +msgid "Time" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:171 +msgid "After manually changing the time, it may still be overwritten by system automatic time synchronization." +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:173 +msgid "Select Timezone" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:174 +msgid "Please select a timezone" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:176 +msgid "Modify Time" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:179 +msgid "NTP Time Synchronization" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:180 +msgid "Synchronize Time" +msgstr "" + +#: src/views/apps/toolbox/route.ts:17 +msgid "Toolbox" +msgstr "" + +#: src/views/backup/ListView.vue:36 +msgid "Filename" +msgstr "" + +#: src/views/backup/ListView.vue:43 +#: src/views/container/ImageView.vue:53 +#: src/views/file/ListTable.vue:165 +#: src/views/file/SearchModal.vue:28 +msgid "Size" +msgstr "" + +#: src/views/backup/ListView.vue:49 +#: src/views/database/ServerList.vue:126 +#: src/views/database/UserList.vue:143 +msgid "Update Date" +msgstr "" + +#: src/views/backup/ListView.vue:77 +msgid "Restore" +msgstr "" + +#: src/views/backup/ListView.vue:88 +msgid "Are you sure you want to delete this backup?" +msgstr "" + #: src/views/backup/ListView.vue:126 #: src/views/cert/CreateAccountModal.vue:49 #: src/views/cert/CreateCertModal.vue:50 @@ -265,27 +1684,6 @@ msgstr "" msgid "Restored successfully" msgstr "" -#: src/views/backup/ListView.vue:149 -#: src/views/database/DatabaseList.vue:124 -#: src/views/database/ServerList.vue:243 -#: src/views/database/UserList.vue:217 -#: src/views/file/ListTable.vue:268 -#: src/views/file/ListTable.vue:595 -#: src/views/file/SearchModal.vue:81 -#: src/views/file/ToolBar.vue:189 -#: src/views/firewall/ForwardView.vue:132 -#: src/views/firewall/ForwardView.vue:150 -#: src/views/firewall/IpRuleView.vue:174 -#: src/views/firewall/IpRuleView.vue:192 -#: src/views/firewall/RuleView.vue:211 -#: src/views/firewall/RuleView.vue:229 -#: src/views/task/CronView.vue:200 -#: src/views/task/TaskView.vue:125 -#: src/views/website/IndexView.vue:270 -#: src/views/website/IndexView.vue:324 -msgid "Deleted successfully" -msgstr "" - #: src/views/backup/ListView.vue:182 #: src/views/backup/ListView.vue:209 msgid "Create Backup" @@ -371,15 +1769,6 @@ msgstr "" msgid "Key Type" msgstr "" -#: src/views/cert/AccountView.vue:102 -#: src/views/cert/CertView.vue:290 -#: src/views/cert/DnsView.vue:86 -#: src/views/database/ServerList.vue:185 -#: src/views/database/UserList.vue:170 -#: src/views/file/PermissionModal.vue:123 -msgid "Modify" -msgstr "" - #: src/views/cert/AccountView.vue:110 #: src/views/cert/CertView.vue:299 #: src/views/cert/DnsView.vue:95 @@ -474,16 +1863,6 @@ msgstr "" msgid "None" msgstr "" -#: src/views/cert/CertView.vue:87 -#: src/views/cert/DnsView.vue:38 -#: src/views/cert/ObtainModal.vue:54 -#: src/views/database/CreateServerModal.vue:63 -#: src/views/database/DatabaseList.vue:12 -#: src/views/database/ServerList.vue:17 -#: src/views/database/UserList.vue:17 -msgid "Type" -msgstr "" - #: src/views/cert/CertView.vue:109 #: src/views/file/ToolBar.vue:221 #: src/views/file/UploadModal.vue:38 @@ -531,10 +1910,6 @@ msgstr "" msgid "Renew" msgstr "" -#: src/views/cert/CertView.vue:265 -msgid "View" -msgstr "" - #: src/views/cert/CertView.vue:305 msgid "Are you sure you want to delete the certificate?" msgstr "" @@ -880,37 +2255,6 @@ msgstr "" msgid "Issuance Mode" msgstr "" -#: 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/UpdateServerModal.vue:55 -#: src/views/file/ListTable.vue:99 -#: src/views/file/SearchModal.vue:20 -#: src/views/file/ToolBar.vue:257 -#: src/views/ssh/CreateModal.vue:57 -#: src/views/ssh/UpdateModal.vue:63 -#: src/views/task/SystemView.vue:18 -msgid "Name" -msgstr "" - -#: src/views/container/ComposeView.vue:38 -#: src/views/website/IndexView.vue:44 -#: src/views/website/IndexView.vue:504 -msgid "Directory" -msgstr "" - -#: 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/task/SystemView.vue:43 -#: src/views/task/TaskView.vue:22 -msgid "Status" -msgstr "" - #: src/views/container/ComposeView.vue:65 #: src/views/container/ImageView.vue:60 #: src/views/container/NetworkView.vue:100 @@ -947,12 +2291,6 @@ msgstr "" msgid "Force pull images" msgstr "" -#: src/views/container/ComposeView.vue:150 -#: src/views/container/ContainerView.vue:127 -#: src/views/container/ContainerView.vue:405 -msgid "Start" -msgstr "" - #: src/views/container/ComposeView.vue:162 #: src/views/container/ContainerView.vue:245 #: src/views/container/ContainerView.vue:316 @@ -963,12 +2301,6 @@ msgstr "" msgid "Are you sure you want to stop compose %{ name }?" msgstr "" -#: src/views/container/ComposeView.vue:179 -#: src/views/container/ContainerView.vue:132 -#: src/views/container/ContainerView.vue:406 -msgid "Stop" -msgstr "" - #: src/views/container/ComposeView.vue:191 #: src/views/container/ContainerView.vue:280 #: src/views/container/ContainerView.vue:358 @@ -997,12 +2329,6 @@ msgstr "" msgid "Compose" msgstr "" -#: src/views/container/ComposeView.vue:316 -#: src/views/container/ComposeView.vue:346 -#: src/views/container/ContainerCreate.vue:337 -msgid "Environment Variables" -msgstr "" - #: src/views/container/ComposeView.vue:320 #: src/views/container/ComposeView.vue:350 #: src/views/container/ContainerCreate.vue:341 @@ -1137,15 +2463,6 @@ msgstr "" msgid "Entrypoint" msgstr "" -#: src/views/container/ContainerCreate.vue:291 -#: src/views/dashboard/IndexView.vue:530 -#: src/views/monitor/IndexView.vue:205 -#: src/views/monitor/IndexView.vue:216 -#: src/views/monitor/IndexView.vue:238 -#: src/views/task/SystemView.vue:78 -msgid "Memory" -msgstr "" - #: src/views/container/ContainerCreate.vue:301 msgid "CPU Shares" msgstr "" @@ -1197,17 +2514,6 @@ msgstr "" msgid "Ports (Host->Container)" msgstr "" -#: src/views/container/ContainerView.vue:80 -msgid "Running Status" -msgstr "" - -#: src/views/container/ContainerView.vue:103 -#: src/views/container/ContainerView.vue:439 -#: src/views/task/CronView.vue:122 -#: src/views/task/TaskView.vue:75 -msgid "Logs" -msgstr "" - #: src/views/container/ContainerView.vue:119 #: src/views/container/ContainerView.vue:462 #: src/views/file/ListTable.vue:80 @@ -1215,12 +2521,6 @@ msgstr "" msgid "Rename" msgstr "" -#: src/views/container/ContainerView.vue:137 -#: src/views/container/ContainerView.vue:407 -#: src/views/dashboard/IndexView.vue:444 -msgid "Restart" -msgstr "" - #: src/views/container/ContainerView.vue:142 #: src/views/container/ContainerView.vue:408 msgid "Force Stop" @@ -1352,43 +2652,6 @@ msgstr "" msgid "Authentication" msgstr "" -#: src/views/container/ImageView.vue:197 -#: src/views/database/CreateDatabaseModal.vue:89 -#: src/views/database/CreateServerModal.vue:94 -#: src/views/database/CreateUserModal.vue:70 -#: src/views/database/ServerList.vue:47 -#: src/views/database/UpdateServerModal.vue:86 -#: src/views/database/UserList.vue:40 -#: src/views/login/IndexView.vue:113 -#: src/views/setting/SettingBase.vue:65 -#: src/views/ssh/CreateModal.vue:83 -#: src/views/ssh/UpdateModal.vue:89 -msgid "Username" -msgstr "" - -#: src/views/container/ImageView.vue:202 -#: src/views/database/CreateDatabaseModal.vue:94 -#: src/views/database/CreateUserModal.vue:75 -msgid "Enter username" -msgstr "" - -#: src/views/container/ImageView.vue:205 -#: src/views/database/CreateDatabaseModal.vue:97 -#: src/views/database/CreateServerModal.vue:102 -#: src/views/database/CreateUserModal.vue:78 -#: src/views/database/ServerList.vue:56 -#: src/views/database/UpdateServerModal.vue:94 -#: src/views/database/UpdateUserModal.vue:49 -#: src/views/database/UserList.vue:50 -#: src/views/login/IndexView.vue:121 -#: src/views/setting/SettingBase.vue:68 -#: src/views/ssh/CreateModal.vue:77 -#: src/views/ssh/CreateModal.vue:86 -#: src/views/ssh/UpdateModal.vue:83 -#: src/views/ssh/UpdateModal.vue:92 -msgid "Password" -msgstr "" - #: src/views/container/ImageView.vue:211 #: src/views/database/CreateDatabaseModal.vue:103 #: src/views/database/CreateUserModal.vue:84 @@ -1520,10 +2783,6 @@ msgstr "" msgid "Running slowly" msgstr "" -#: src/views/dashboard/IndexView.vue:133 -msgid "Running normally" -msgstr "" - #: src/views/dashboard/IndexView.vue:135 msgid "Running smoothly" msgstr "" @@ -1561,10 +2820,6 @@ msgstr "" msgid "Resource Overview" msgstr "" -#: src/views/dashboard/IndexView.vue:459 -msgid "Load Status" -msgstr "" - #: src/views/dashboard/IndexView.vue:471 msgid "Last 1 minute" msgstr "" @@ -1627,10 +2882,6 @@ msgstr "" msgid "Commit Limit" msgstr "" -#: src/views/dashboard/IndexView.vue:578 -msgid "SWAP Size" -msgstr "" - #: src/views/dashboard/IndexView.vue:584 msgid "SWAP Used" msgstr "" @@ -1720,11 +2971,6 @@ msgstr "" msgid "Real-time Monitoring" msgstr "" -#: src/views/dashboard/IndexView.vue:795 -#: src/views/dashboard/IndexView.vue:815 -msgid "Disk" -msgstr "" - #: src/views/dashboard/IndexView.vue:798 msgid "Unit" msgstr "" @@ -1849,12 +3095,6 @@ msgstr "" msgid "Select server" msgstr "" -#: src/views/database/CreateDatabaseModal.vue:78 -#: src/views/database/CreateUserModal.vue:54 -#: src/views/database/IndexView.vue:36 -msgid "Create User" -msgstr "" - #: src/views/database/CreateDatabaseModal.vue:81 msgid "Authorized User" msgstr "" @@ -1863,16 +3103,6 @@ msgstr "" msgid "Enter authorized username (leave empty for no authorization)" msgstr "" -#: src/views/database/CreateDatabaseModal.vue:106 -#: src/views/database/CreateServerModal.vue:73 -#: src/views/database/ServerList.vue:87 -#: src/views/database/UpdateServerModal.vue:65 -#: src/views/database/UserList.vue:81 -#: src/views/ssh/CreateModal.vue:62 -#: src/views/ssh/UpdateModal.vue:68 -msgid "Host" -msgstr "" - #: src/views/database/CreateDatabaseModal.vue:110 #: src/views/database/CreateUserModal.vue:91 msgid "Select host" @@ -1888,10 +3118,6 @@ msgstr "" msgid "Enter supported host address" msgstr "" -#: src/views/database/CreateServerModal.vue:37 -msgid "Added successfully" -msgstr "" - #: src/views/database/CreateServerModal.vue:47 #: src/views/database/IndexView.vue:40 msgid "Add Server" @@ -1975,19 +3201,6 @@ msgstr "" msgid "Are you sure you want to delete this database?" msgstr "" -#: src/views/database/DatabaseList.vue:130 -#: src/views/database/ServerList.vue:249 -#: src/views/database/UpdateServerModal.vue:21 -#: src/views/database/UpdateUserModal.vue:18 -#: src/views/database/UserList.vue:223 -#: src/views/file/PermissionModal.vue:29 -#: src/views/task/CronView.vue:182 -#: src/views/task/CronView.vue:209 -#: src/views/website/IndexView.vue:253 -#: src/views/website/IndexView.vue:279 -msgid "Modified successfully" -msgstr "" - #: src/views/database/IndexView.vue:48 #: src/views/task/SystemView.vue:37 msgid "User" @@ -2021,10 +3234,6 @@ msgstr "" msgid "Invalid" msgstr "" -#: src/views/database/ServerList.vue:148 -msgid "Synchronized successfully" -msgstr "" - #: src/views/database/ServerList.vue:154 msgid "Are you sure you want to synchronize database users (excluding password) to the panel?" msgstr "" @@ -2102,14 +3311,6 @@ msgstr "" msgid "Refresh" msgstr "" -#: src/views/file/EditModal.vue:31 -#: src/views/file/ListTable.vue:703 -#: src/views/setting/SettingBase.vue:95 -#: src/views/setting/SettingHttps.vue:56 -#: src/views/website/EditView.vue:211 -msgid "Save" -msgstr "" - #: src/views/file/ListTable.vue:64 #: src/views/file/ListTable.vue:218 msgid "Open" @@ -2698,12 +3899,6 @@ msgstr "" msgid "Panel Settings" msgstr "" -#: src/views/setting/SettingBase.vue:35 -#: src/views/setting/SettingHttps.vue:27 -#: src/views/website/EditView.vue:115 -msgid "Saved successfully" -msgstr "" - #: src/views/setting/SettingBase.vue:53 msgid "Modifying panel port/entrance requires corresponding changes in the browser address bar to access the panel!" msgstr "" @@ -2873,11 +4068,6 @@ msgstr "" msgid "PostgreSQL Database" msgstr "" -#: src/views/task/CreateModal.vue:140 -#: src/views/task/CreateModal.vue:142 -msgid "Select Website" -msgstr "" - #: src/views/task/CreateModal.vue:153 msgid "Retention Count" msgstr "" @@ -2932,10 +4122,6 @@ msgstr "" msgid "Sleeping" msgstr "" -#: src/views/task/SystemView.vue:54 -msgid "Stopped" -msgstr "" - #: src/views/task/SystemView.vue:56 msgid "Idle" msgstr "" @@ -3011,10 +4197,6 @@ msgstr "" msgid "The selected certificate is invalid" msgstr "" -#: src/views/website/EditView.vue:160 -msgid "Cleared successfully" -msgstr "" - #: src/views/website/EditView.vue:178 msgid "If you modify the original text, other modifications will not take effect after clicking save!" msgstr "" @@ -3122,10 +4304,6 @@ msgstr "" msgid "Presets" msgstr "" -#: src/views/website/EditView.vue:388 -msgid "Configuration" -msgstr "" - #: src/views/website/EditView.vue:391 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 "" diff --git a/web/src/locales/zh_CN.po b/web/src/locales/zh_CN.po index 3b5919d4..c747f48f 100644 --- a/web/src/locales/zh_CN.po +++ b/web/src/locales/zh_CN.po @@ -36,7 +36,7 @@ msgid "Login Page" msgstr "" #: src/views/app/IndexView.vue:19 src/views/app/IndexView.vue:159 -#: src/views/app/IndexView.vue:164 +#: src/views/app/IndexView.vue:164 src/views/apps/php/PhpView.vue:91 msgid "Install" msgstr "" @@ -44,7 +44,7 @@ msgstr "" msgid "App Name" msgstr "" -#: src/views/app/IndexView.vue:44 +#: src/views/app/IndexView.vue:44 src/views/apps/php/PhpView.vue:59 msgid "Description" msgstr "" @@ -56,7 +56,11 @@ msgstr "" msgid "Show in Home" msgstr "" -#: src/views/app/IndexView.vue:71 src/views/backup/ListView.vue:58 +#: src/views/app/IndexView.vue:71 src/views/apps/fail2ban/IndexView.vue:70 +#: src/views/apps/fail2ban/IndexView.vue:132 src/views/apps/php/PhpView.vue:66 +#: src/views/apps/pureftpd/IndexView.vue:55 +#: src/views/apps/s3fs/IndexView.vue:33 +#: src/views/apps/supervisor/IndexView.vue:87 src/views/backup/ListView.vue:58 #: src/views/cert/AccountView.vue:79 src/views/cert/CertView.vue:182 #: src/views/cert/DnsView.vue:64 src/views/container/ComposeView.vue:74 #: src/views/container/ContainerCreate.vue:170 @@ -135,10 +139,14 @@ msgstr "" msgid "Please select a channel" msgstr "" -#: src/views/app/VersionModal.vue:89 src/views/backup/ListView.vue:237 -#: src/views/backup/ListView.vue:257 src/views/cert/AccountView.vue:258 -#: src/views/cert/CertView.vue:513 src/views/cert/CertView.vue:537 -#: src/views/cert/CreateAccountModal.vue:114 +#: src/views/app/VersionModal.vue:89 src/views/apps/fail2ban/IndexView.vue:451 +#: src/views/apps/pureftpd/IndexView.vue:320 +#: src/views/apps/pureftpd/IndexView.vue:340 +#: src/views/apps/s3fs/IndexView.vue:174 +#: src/views/apps/supervisor/IndexView.vue:513 +#: src/views/backup/ListView.vue:237 src/views/backup/ListView.vue:257 +#: src/views/cert/AccountView.vue:258 src/views/cert/CertView.vue:513 +#: src/views/cert/CertView.vue:537 src/views/cert/CreateAccountModal.vue:114 #: src/views/cert/CreateCertModal.vue:111 src/views/cert/CreateDnsModal.vue:173 #: src/views/cert/DnsView.vue:370 src/views/cert/ObtainModal.vue:126 #: src/views/cert/UploadCertModal.vue:55 @@ -162,13 +170,1388 @@ msgstr "" msgid "Submit" msgstr "" -#: src/views/backup/IndexView.vue:37 src/views/backup/ListView.vue:217 -#: src/views/backup/ListView.vue:250 src/views/cert/CertView.vue:464 -#: src/views/cert/CertView.vue:527 src/views/cert/CreateCertModal.vue:86 -#: src/views/dashboard/IndexView.vue:418 src/views/task/CreateModal.vue:130 +#: src/views/apps/benchmark/IndexView.vue:12 +#: src/views/apps/benchmark/IndexView.vue:165 +msgid "CPU" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:67 +#: src/views/apps/benchmark/IndexView.vue:68 +#: src/views/apps/benchmark/IndexView.vue:74 +#: src/views/apps/benchmark/IndexView.vue:75 +#: src/views/apps/benchmark/IndexView.vue:76 +#: src/views/apps/benchmark/IndexView.vue:77 +#: src/views/apps/benchmark/IndexView.vue:80 +#: src/views/apps/benchmark/IndexView.vue:81 +#: src/views/apps/benchmark/IndexView.vue:82 +#: src/views/apps/benchmark/IndexView.vue:83 +#: src/views/apps/benchmark/IndexView.vue:86 +#: src/views/apps/benchmark/IndexView.vue:87 +#: src/views/apps/benchmark/IndexView.vue:88 +#: src/views/apps/benchmark/IndexView.vue:89 +#: src/views/apps/benchmark/IndexView.vue:92 +#: src/views/apps/benchmark/IndexView.vue:93 +#: src/views/apps/benchmark/IndexView.vue:94 +#: src/views/apps/benchmark/IndexView.vue:95 +#: src/views/apps/benchmark/IndexView.vue:156 +#: src/views/apps/benchmark/IndexView.vue:256 +#: src/views/apps/benchmark/IndexView.vue:287 +msgid "Pending benchmark" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:129 +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/apps/benchmark/IndexView.vue:136 +msgid "Benchmarking in progress, it may take some time..." +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:139 +msgid "Current project: %{ current }" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:151 +msgid "Single-core" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:153 +msgid "Multi-core" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:170 +msgid "Image Processing" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:173 +#: src/views/apps/benchmark/IndexView.vue:184 +#: src/views/apps/benchmark/IndexView.vue:195 +#: src/views/apps/benchmark/IndexView.vue:206 +#: src/views/apps/benchmark/IndexView.vue:217 +#: src/views/apps/benchmark/IndexView.vue:228 +#: src/views/apps/benchmark/IndexView.vue:239 +msgid "Single-core %{ single } / Multi-core %{ multi }" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:181 +msgid "Machine Learning" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:192 +msgid "Program Compilation" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:203 +msgid "AES Encryption" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:214 +msgid "Compression/Decompression" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:225 +msgid "Physics Simulation" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:236 +msgid "JSON Parsing" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:265 +#: src/views/container/ContainerCreate.vue:291 +#: src/views/dashboard/IndexView.vue:530 src/views/monitor/IndexView.vue:205 +#: src/views/monitor/IndexView.vue:216 src/views/monitor/IndexView.vue:238 +#: src/views/task/SystemView.vue:78 +msgid "Memory" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:270 +msgid "Memory Bandwidth" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:274 +msgid "Memory Latency" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:296 +#: src/views/dashboard/IndexView.vue:795 src/views/dashboard/IndexView.vue:815 +msgid "Disk" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:301 +msgid "4KB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:304 +#: src/views/apps/benchmark/IndexView.vue:315 +#: src/views/apps/benchmark/IndexView.vue:326 +#: src/views/apps/benchmark/IndexView.vue:337 +#: src/views/apps/benchmark/IndexView.vue:348 +#: src/views/apps/benchmark/IndexView.vue:359 +#: src/views/apps/benchmark/IndexView.vue:370 +#: src/views/apps/benchmark/IndexView.vue:381 +msgid "Speed %{ speed } / %{ iops } IOPS" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:312 +msgid "4KB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:323 +msgid "64KB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:334 +msgid "64KB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:345 +msgid "512KB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:356 +msgid "512KB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:367 +msgid "1MB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:378 +msgid "1MB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:402 +msgid "Benchmarking..." +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:402 +msgid "Start Benchmark" +msgstr "" + +#: src/views/apps/benchmark/route.ts:17 +msgid "Rat Benchmark" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:25 +#: src/views/apps/fail2ban/IndexView.vue:42 src/views/apps/frp/IndexView.vue:30 +#: src/views/apps/frp/IndexView.vue:31 src/views/apps/gitea/IndexView.vue:20 +#: src/views/apps/memcached/IndexView.vue:22 +#: src/views/apps/minio/IndexView.vue:20 src/views/apps/mysql/IndexView.vue:35 +#: src/views/apps/nginx/IndexView.vue:33 src/views/apps/php/PhpView.vue:47 +#: src/views/apps/podman/IndexView.vue:21 +#: src/views/apps/postgresql/IndexView.vue:35 +#: src/views/apps/pureftpd/IndexView.vue:25 +#: src/views/apps/redis/IndexView.vue:29 +#: src/views/apps/supervisor/IndexView.vue:54 +#: src/views/dashboard/IndexView.vue:133 +msgid "Running normally" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:25 +#: src/views/apps/fail2ban/IndexView.vue:42 src/views/apps/frp/IndexView.vue:30 +#: src/views/apps/frp/IndexView.vue:31 src/views/apps/gitea/IndexView.vue:20 +#: src/views/apps/memcached/IndexView.vue:22 +#: src/views/apps/minio/IndexView.vue:20 src/views/apps/mysql/IndexView.vue:35 +#: src/views/apps/nginx/IndexView.vue:33 src/views/apps/php/PhpView.vue:47 +#: src/views/apps/podman/IndexView.vue:21 +#: src/views/apps/postgresql/IndexView.vue:35 +#: src/views/apps/pureftpd/IndexView.vue:25 +#: src/views/apps/redis/IndexView.vue:29 +#: src/views/apps/supervisor/IndexView.vue:54 src/views/task/SystemView.vue:54 +msgid "Stopped" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:38 +#: src/views/apps/fail2ban/IndexView.vue:176 +#: src/views/apps/frp/IndexView.vue:53 src/views/apps/gitea/IndexView.vue:37 +#: src/views/apps/memcached/IndexView.vue:61 +#: src/views/apps/minio/IndexView.vue:37 src/views/apps/mysql/IndexView.vue:64 +#: src/views/apps/nginx/IndexView.vue:62 src/views/apps/php/PhpView.vue:162 +#: src/views/apps/php/PhpView.vue:168 +#: src/views/apps/phpmyadmin/IndexView.vue:37 +#: src/views/apps/phpmyadmin/IndexView.vue:44 +#: src/views/apps/podman/IndexView.vue:39 +#: src/views/apps/podman/IndexView.vue:45 +#: src/views/apps/postgresql/IndexView.vue:64 +#: src/views/apps/postgresql/IndexView.vue:69 +#: src/views/apps/pureftpd/IndexView.vue:133 +#: src/views/apps/redis/IndexView.vue:58 +#: src/views/apps/supervisor/IndexView.vue:241 +#: src/views/apps/supervisor/IndexView.vue:341 +#: src/views/apps/toolbox/IndexView.vue:51 +#: src/views/apps/toolbox/IndexView.vue:57 +#: src/views/apps/toolbox/IndexView.vue:66 +#: src/views/apps/toolbox/IndexView.vue:72 +#: src/views/apps/toolbox/IndexView.vue:81 src/views/setting/SettingBase.vue:35 +#: src/views/setting/SettingHttps.vue:27 src/views/website/EditView.vue:115 +msgid "Saved successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:44 +#: src/views/apps/fail2ban/IndexView.vue:211 +#: src/views/apps/frp/IndexView.vue:60 src/views/apps/gitea/IndexView.vue:43 +#: src/views/apps/memcached/IndexView.vue:67 +#: src/views/apps/minio/IndexView.vue:43 src/views/apps/mysql/IndexView.vue:93 +#: src/views/apps/nginx/IndexView.vue:85 src/views/apps/php/PhpView.vue:197 +#: src/views/apps/podman/IndexView.vue:51 +#: src/views/apps/postgresql/IndexView.vue:90 +#: src/views/apps/pureftpd/IndexView.vue:139 +#: src/views/apps/redis/IndexView.vue:64 +#: src/views/apps/supervisor/IndexView.vue:268 +#: src/views/apps/supervisor/IndexView.vue:297 +msgid "Started successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:51 +#: src/views/apps/fail2ban/IndexView.vue:228 +#: src/views/apps/frp/IndexView.vue:66 src/views/apps/gitea/IndexView.vue:49 +#: src/views/apps/memcached/IndexView.vue:84 +#: src/views/apps/minio/IndexView.vue:49 src/views/apps/mysql/IndexView.vue:99 +#: src/views/apps/nginx/IndexView.vue:91 src/views/apps/php/PhpView.vue:203 +#: src/views/apps/podman/IndexView.vue:57 +#: src/views/apps/postgresql/IndexView.vue:96 +#: src/views/apps/pureftpd/IndexView.vue:156 +#: src/views/apps/redis/IndexView.vue:81 +#: src/views/apps/supervisor/IndexView.vue:275 +#: src/views/apps/supervisor/IndexView.vue:304 +msgid "Stopped successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:58 +#: src/views/apps/fail2ban/IndexView.vue:234 +#: src/views/apps/frp/IndexView.vue:72 src/views/apps/gitea/IndexView.vue:55 +#: src/views/apps/memcached/IndexView.vue:90 +#: src/views/apps/minio/IndexView.vue:55 src/views/apps/mysql/IndexView.vue:105 +#: src/views/apps/nginx/IndexView.vue:97 src/views/apps/php/PhpView.vue:209 +#: src/views/apps/podman/IndexView.vue:63 +#: src/views/apps/postgresql/IndexView.vue:102 +#: src/views/apps/pureftpd/IndexView.vue:162 +#: src/views/apps/redis/IndexView.vue:87 +#: src/views/apps/supervisor/IndexView.vue:282 +#: src/views/apps/supervisor/IndexView.vue:311 +msgid "Restarted successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:66 +#: src/views/apps/fail2ban/IndexView.vue:218 +#: src/views/apps/frp/IndexView.vue:79 src/views/apps/gitea/IndexView.vue:62 +#: src/views/apps/memcached/IndexView.vue:74 +#: src/views/apps/minio/IndexView.vue:62 src/views/apps/mysql/IndexView.vue:83 +#: src/views/apps/nginx/IndexView.vue:75 src/views/apps/php/PhpView.vue:187 +#: src/views/apps/podman/IndexView.vue:70 +#: src/views/apps/postgresql/IndexView.vue:80 +#: src/views/apps/redis/IndexView.vue:71 +#: src/views/apps/supervisor/IndexView.vue:255 +msgid "Autostart enabled successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:69 +#: src/views/apps/fail2ban/IndexView.vue:221 +#: src/views/apps/frp/IndexView.vue:82 src/views/apps/gitea/IndexView.vue:65 +#: src/views/apps/memcached/IndexView.vue:77 +#: src/views/apps/minio/IndexView.vue:65 src/views/apps/mysql/IndexView.vue:86 +#: src/views/apps/nginx/IndexView.vue:78 src/views/apps/php/PhpView.vue:190 +#: src/views/apps/podman/IndexView.vue:73 +#: src/views/apps/postgresql/IndexView.vue:83 +#: src/views/apps/redis/IndexView.vue:74 +#: src/views/apps/supervisor/IndexView.vue:260 +msgid "Autostart disabled successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:90 src/views/apps/frp/IndexView.vue:135 +#: src/views/apps/frp/IndexView.vue:191 src/views/apps/gitea/IndexView.vue:87 +#: src/views/apps/memcached/IndexView.vue:110 +#: src/views/apps/minio/IndexView.vue:82 src/views/apps/mysql/IndexView.vue:130 +#: src/views/apps/nginx/IndexView.vue:123 src/views/apps/php/PhpView.vue:250 +#: src/views/apps/php/PhpView.vue:259 +#: src/views/apps/phpmyadmin/IndexView.vue:58 +#: src/views/apps/phpmyadmin/IndexView.vue:67 +#: src/views/apps/podman/IndexView.vue:95 +#: src/views/apps/podman/IndexView.vue:104 +#: src/views/apps/postgresql/IndexView.vue:128 +#: src/views/apps/postgresql/IndexView.vue:137 +#: src/views/apps/pureftpd/IndexView.vue:209 +#: src/views/apps/redis/IndexView.vue:107 +#: src/views/apps/supervisor/IndexView.vue:362 +#: src/views/apps/toolbox/IndexView.vue:97 +#: src/views/apps/toolbox/IndexView.vue:101 +#: src/views/apps/toolbox/IndexView.vue:105 +#: src/views/apps/toolbox/IndexView.vue:109 src/views/file/EditModal.vue:31 +#: src/views/file/ListTable.vue:703 src/views/setting/SettingBase.vue:95 +#: src/views/setting/SettingHttps.vue:56 src/views/website/EditView.vue:211 +msgid "Save" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:94 +#: src/views/apps/docker/IndexView.vue:96 +#: src/views/apps/fail2ban/IndexView.vue:309 +#: src/views/apps/fail2ban/IndexView.vue:311 +#: src/views/apps/frp/IndexView.vue:99 src/views/apps/frp/IndexView.vue:155 +#: src/views/apps/gitea/IndexView.vue:91 src/views/apps/gitea/IndexView.vue:92 +#: src/views/apps/memcached/IndexView.vue:114 +#: src/views/apps/memcached/IndexView.vue:116 +#: src/views/apps/minio/IndexView.vue:86 src/views/apps/minio/IndexView.vue:87 +#: src/views/apps/mysql/IndexView.vue:152 +#: src/views/apps/mysql/IndexView.vue:154 +#: src/views/apps/nginx/IndexView.vue:136 +#: src/views/apps/nginx/IndexView.vue:137 src/views/apps/php/PhpView.vue:281 +#: src/views/apps/php/PhpView.vue:283 src/views/apps/podman/IndexView.vue:108 +#: src/views/apps/podman/IndexView.vue:113 +#: src/views/apps/postgresql/IndexView.vue:145 +#: src/views/apps/postgresql/IndexView.vue:147 +#: src/views/apps/pureftpd/IndexView.vue:222 +#: src/views/apps/pureftpd/IndexView.vue:224 +#: src/views/apps/redis/IndexView.vue:111 +#: src/views/apps/redis/IndexView.vue:113 +#: src/views/apps/supervisor/IndexView.vue:379 +#: src/views/apps/supervisor/IndexView.vue:381 +#: src/views/container/ContainerView.vue:80 +msgid "Running Status" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:99 +#: src/views/apps/fail2ban/IndexView.vue:314 +#: src/views/apps/frp/IndexView.vue:102 src/views/apps/frp/IndexView.vue:158 +#: src/views/apps/gitea/IndexView.vue:95 +#: src/views/apps/memcached/IndexView.vue:119 +#: src/views/apps/minio/IndexView.vue:90 src/views/apps/mysql/IndexView.vue:157 +#: src/views/apps/nginx/IndexView.vue:140 src/views/apps/php/PhpView.vue:286 +#: src/views/apps/podman/IndexView.vue:116 +#: src/views/apps/postgresql/IndexView.vue:150 +#: src/views/apps/redis/IndexView.vue:116 +#: src/views/apps/supervisor/IndexView.vue:384 +msgid "Autostart On" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:100 +#: src/views/apps/fail2ban/IndexView.vue:315 +#: src/views/apps/frp/IndexView.vue:103 src/views/apps/frp/IndexView.vue:159 +#: src/views/apps/gitea/IndexView.vue:96 +#: src/views/apps/memcached/IndexView.vue:120 +#: src/views/apps/minio/IndexView.vue:91 src/views/apps/mysql/IndexView.vue:158 +#: src/views/apps/nginx/IndexView.vue:141 src/views/apps/php/PhpView.vue:287 +#: src/views/apps/podman/IndexView.vue:117 +#: src/views/apps/postgresql/IndexView.vue:151 +#: src/views/apps/redis/IndexView.vue:117 +#: src/views/apps/supervisor/IndexView.vue:385 +msgid "Autostart Off" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:110 +#: src/views/apps/fail2ban/IndexView.vue:325 +#: src/views/apps/frp/IndexView.vue:113 src/views/apps/frp/IndexView.vue:169 +#: src/views/apps/gitea/IndexView.vue:106 +#: src/views/apps/memcached/IndexView.vue:130 +#: src/views/apps/minio/IndexView.vue:101 +#: src/views/apps/mysql/IndexView.vue:168 +#: src/views/apps/nginx/IndexView.vue:151 src/views/apps/php/PhpView.vue:297 +#: src/views/apps/podman/IndexView.vue:127 +#: src/views/apps/postgresql/IndexView.vue:161 +#: src/views/apps/pureftpd/IndexView.vue:238 +#: src/views/apps/redis/IndexView.vue:127 +#: src/views/apps/supervisor/IndexView.vue:131 +#: src/views/apps/supervisor/IndexView.vue:395 +#: src/views/container/ComposeView.vue:150 +#: src/views/container/ContainerView.vue:127 +#: src/views/container/ContainerView.vue:405 +msgid "Start" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:116 +#: src/views/apps/fail2ban/IndexView.vue:331 +#: src/views/apps/frp/IndexView.vue:119 src/views/apps/frp/IndexView.vue:175 +#: src/views/apps/gitea/IndexView.vue:112 +#: src/views/apps/memcached/IndexView.vue:136 +#: src/views/apps/minio/IndexView.vue:107 +#: src/views/apps/mysql/IndexView.vue:174 +#: src/views/apps/nginx/IndexView.vue:157 src/views/apps/php/PhpView.vue:303 +#: src/views/apps/podman/IndexView.vue:133 +#: src/views/apps/postgresql/IndexView.vue:167 +#: src/views/apps/pureftpd/IndexView.vue:244 +#: src/views/apps/redis/IndexView.vue:133 +#: src/views/apps/supervisor/IndexView.vue:155 +#: src/views/apps/supervisor/IndexView.vue:401 +#: src/views/container/ComposeView.vue:179 +#: src/views/container/ContainerView.vue:132 +#: src/views/container/ContainerView.vue:406 +msgid "Stop" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:119 +msgid "Are you sure you want to stop Docker?" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:123 +#: src/views/apps/fail2ban/IndexView.vue:338 +#: src/views/apps/frp/IndexView.vue:126 src/views/apps/frp/IndexView.vue:182 +#: src/views/apps/gitea/IndexView.vue:119 +#: src/views/apps/memcached/IndexView.vue:143 +#: src/views/apps/minio/IndexView.vue:114 +#: src/views/apps/mysql/IndexView.vue:181 +#: src/views/apps/nginx/IndexView.vue:164 src/views/apps/php/PhpView.vue:310 +#: src/views/apps/podman/IndexView.vue:140 +#: src/views/apps/postgresql/IndexView.vue:174 +#: src/views/apps/pureftpd/IndexView.vue:251 +#: src/views/apps/redis/IndexView.vue:140 +#: src/views/apps/supervisor/IndexView.vue:182 +#: src/views/apps/supervisor/IndexView.vue:408 +#: src/views/container/ContainerView.vue:137 +#: src/views/container/ContainerView.vue:407 +#: src/views/dashboard/IndexView.vue:444 +msgid "Restart" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:130 src/views/website/EditView.vue:388 +msgid "Configuration" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:133 +msgid "This modifies the Docker configuration file (/etc/docker/daemon.json)" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:149 +#: src/views/apps/fail2ban/IndexView.vue:381 +#: src/views/apps/gitea/IndexView.vue:144 +#: src/views/apps/memcached/IndexView.vue:176 +#: src/views/apps/minio/IndexView.vue:139 +#: src/views/apps/mysql/IndexView.vue:227 +#: src/views/apps/nginx/IndexView.vue:203 src/views/apps/php/PhpView.vue:382 +#: src/views/apps/podman/IndexView.vue:185 +#: src/views/apps/postgresql/IndexView.vue:233 +#: src/views/apps/redis/IndexView.vue:176 +#: src/views/apps/supervisor/IndexView.vue:458 +msgid "Runtime Logs" +msgstr "" + +#: src/views/apps/docker/route.ts:17 +msgid "Docker" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:47 +#: src/views/apps/supervisor/IndexView.vue:59 +#: src/views/apps/supervisor/IndexView.vue:477 +#: 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/UpdateServerModal.vue:55 src/views/file/ListTable.vue:99 +#: src/views/file/SearchModal.vue:20 src/views/file/ToolBar.vue:257 +#: src/views/ssh/CreateModal.vue:57 src/views/ssh/UpdateModal.vue:63 +#: src/views/task/SystemView.vue:18 +msgid "Name" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:53 +#: src/views/apps/phpmyadmin/IndexView.vue:71 +#: src/views/apps/supervisor/IndexView.vue:66 +#: 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/task/SystemView.vue:43 +#: src/views/task/TaskView.vue:22 +msgid "Status" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:66 +#: src/views/apps/fail2ban/IndexView.vue:441 +msgid "Max Retries" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:67 +#: src/views/apps/fail2ban/IndexView.vue:447 +msgid "Ban Time" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:68 +#: src/views/apps/fail2ban/IndexView.vue:444 +msgid "Find Time" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:89 src/views/cert/CertView.vue:265 +msgid "View" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:100 +msgid "Are you sure you want to delete rule %{ name }?" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:111 src/views/apps/php/PhpView.vue:117 +#: src/views/apps/pureftpd/IndexView.vue:97 +#: src/views/apps/supervisor/IndexView.vue:208 src/views/backup/ListView.vue:99 +#: src/views/cert/AccountView.vue:128 src/views/cert/CertView.vue:316 +#: src/views/cert/DnsView.vue:112 src/views/container/ComposeView.vue:208 +#: src/views/container/ContainerCreate.vue:229 +#: src/views/container/ContainerCreate.vue:276 +#: src/views/container/ContainerView.vue:157 +#: src/views/container/ContainerView.vue:411 +#: src/views/container/ImageView.vue:95 src/views/container/NetworkView.vue:135 +#: src/views/container/VolumeView.vue:89 src/views/database/DatabaseList.vue:99 +#: src/views/database/ServerList.vue:218 src/views/database/UserList.vue:192 +#: src/views/file/ListTable.vue:81 src/views/file/ListTable.vue:285 +#: src/views/file/SearchModal.vue:98 src/views/file/ToolBar.vue:238 +#: src/views/firewall/ForwardView.vue:105 src/views/firewall/IpRuleView.vue:147 +#: src/views/firewall/RuleView.vue:184 src/views/ssh/IndexView.vue:93 +#: src/views/task/CronView.vue:157 src/views/task/TaskView.vue:99 +#: src/views/website/IndexView.vue:169 +msgid "Delete" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:146 +msgid "Are you sure you want to unban %{ ip }?" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:156 +msgid "Unban" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:240 +#: src/views/apps/nginx/IndexView.vue:103 src/views/apps/php/PhpView.vue:215 +#: src/views/apps/postgresql/IndexView.vue:108 +msgid "Reloaded successfully" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:247 +#: src/views/apps/pureftpd/IndexView.vue:175 +#: src/views/apps/s3fs/IndexView.vue:83 +#: src/views/apps/supervisor/IndexView.vue:290 +#: src/views/database/CreateServerModal.vue:37 +msgid "Added successfully" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:255 +#: src/views/apps/pureftpd/IndexView.vue:192 +#: src/views/apps/s3fs/IndexView.vue:90 +#: src/views/apps/supervisor/IndexView.vue:318 +#: src/views/backup/ListView.vue:149 src/views/database/DatabaseList.vue:124 +#: src/views/database/ServerList.vue:243 src/views/database/UserList.vue:217 +#: src/views/file/ListTable.vue:268 src/views/file/ListTable.vue:595 +#: src/views/file/SearchModal.vue:81 src/views/file/ToolBar.vue:189 +#: src/views/firewall/ForwardView.vue:132 +#: src/views/firewall/ForwardView.vue:150 src/views/firewall/IpRuleView.vue:174 +#: src/views/firewall/IpRuleView.vue:192 src/views/firewall/RuleView.vue:211 +#: src/views/firewall/RuleView.vue:229 src/views/task/CronView.vue:200 +#: src/views/task/TaskView.vue:125 src/views/website/IndexView.vue:270 +#: src/views/website/IndexView.vue:324 +msgid "Deleted successfully" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:268 +msgid "Unbanned successfully" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:296 +msgid "Save Whitelist" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:305 +#: src/views/apps/fail2ban/IndexView.vue:386 +#: src/views/apps/fail2ban/IndexView.vue:387 +msgid "Add Rule" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:334 +msgid "" +"Stopping Fail2ban will disable all rules. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:342 +#: src/views/apps/nginx/IndexView.vue:168 src/views/apps/php/PhpView.vue:314 +#: src/views/apps/postgresql/IndexView.vue:178 +msgid "Reload" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:347 +msgid "IP Whitelist" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:352 +msgid "IP whitelist, separated by commas" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:357 +msgid "Rule Management" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:358 +msgid "Rule List" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:390 +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:393 +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:397 src/views/cert/CertView.vue:87 +#: src/views/cert/DnsView.vue:38 src/views/cert/ObtainModal.vue:54 +#: src/views/database/CreateServerModal.vue:63 +#: src/views/database/DatabaseList.vue:12 src/views/database/ServerList.vue:17 +#: src/views/database/UserList.vue:17 +msgid "Type" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:401 src/views/backup/IndexView.vue:37 +#: src/views/backup/ListView.vue:217 src/views/backup/ListView.vue:250 +#: src/views/cert/CertView.vue:464 src/views/cert/CertView.vue:527 +#: src/views/cert/CreateCertModal.vue:86 src/views/dashboard/IndexView.vue:418 +#: src/views/task/CreateModal.vue:130 msgid "Website" msgstr "" +#: src/views/apps/fail2ban/IndexView.vue:402 +#: src/views/apps/fail2ban/IndexView.vue:430 +msgid "Service" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:407 +#: src/views/apps/fail2ban/IndexView.vue:411 src/views/task/CreateModal.vue:140 +#: src/views/task/CreateModal.vue:142 +msgid "Select Website" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:414 +msgid "Protection Mode" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:419 +#: src/views/apps/pureftpd/IndexView.vue:48 +msgid "Path" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:426 +#: src/views/apps/fail2ban/IndexView.vue:428 +msgid "Protection Path" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:455 +#: src/views/apps/fail2ban/IndexView.vue:456 +msgid "View Rule" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:458 +msgid "Rule Information" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:461 +msgid "Currently Banned" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:465 +msgid "Total Bans" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:470 +msgid "Ban List" +msgstr "" + +#: src/views/apps/fail2ban/route.ts:17 +msgid "Fail2ban" +msgstr "" + +#: src/views/apps/frp/IndexView.vue:122 +msgid "Are you sure you want to stop Frps?" +msgstr "" + +#: src/views/apps/frp/IndexView.vue:131 src/views/apps/frp/IndexView.vue:187 +#: src/views/apps/gitea/IndexView.vue:125 +#: src/views/apps/mysql/IndexView.vue:198 +#: src/views/apps/nginx/IndexView.vue:174 +#: src/views/apps/phpmyadmin/IndexView.vue:84 +msgid "Modify Configuration" +msgstr "" + +#: src/views/apps/frp/IndexView.vue:178 +msgid "Are you sure you want to stop Frpc?" +msgstr "" + +#: src/views/apps/frp/route.ts:17 +msgid "Frp" +msgstr "" + +#: src/views/apps/gitea/IndexView.vue:115 +msgid "Are you sure you want to stop Gitea?" +msgstr "" + +#: src/views/apps/gitea/IndexView.vue:128 +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/gitea/route.ts:17 +msgid "Gitea" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:27 +#: src/views/apps/mysql/IndexView.vue:40 src/views/apps/nginx/IndexView.vue:38 +#: src/views/apps/php/PhpView.vue:132 +#: src/views/apps/postgresql/IndexView.vue:40 +#: src/views/apps/redis/IndexView.vue:34 +msgid "Property" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:34 +#: src/views/apps/mysql/IndexView.vue:47 src/views/apps/nginx/IndexView.vue:45 +#: src/views/apps/php/PhpView.vue:139 +#: src/views/apps/postgresql/IndexView.vue:47 +#: src/views/apps/redis/IndexView.vue:41 +msgid "Current Value" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:139 +msgid "" +"Stopping Memcached will cause websites using Memcached to become " +"inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:150 +msgid "Service Configuration" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:166 +#: src/views/apps/mysql/IndexView.vue:217 +#: src/views/apps/nginx/IndexView.vue:193 src/views/apps/php/PhpView.vue:372 +#: src/views/apps/postgresql/IndexView.vue:223 +#: src/views/apps/redis/IndexView.vue:166 src/views/dashboard/IndexView.vue:459 +msgid "Load Status" +msgstr "" + +#: src/views/apps/memcached/route.ts:17 +msgid "Memcached" +msgstr "" + +#: src/views/apps/minio/IndexView.vue:110 +msgid "Are you sure you want to stop Minio?" +msgstr "" + +#: src/views/apps/minio/IndexView.vue:120 +#: src/views/container/ComposeView.vue:316 +#: src/views/container/ComposeView.vue:346 +#: src/views/container/ContainerCreate.vue:337 +msgid "Environment Variables" +msgstr "" + +#: src/views/apps/minio/IndexView.vue:123 +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/minio/route.ts:17 +msgid "Minio" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:70 src/views/apps/mysql/IndexView.vue:76 +#: src/views/apps/nginx/IndexView.vue:68 src/views/apps/php/PhpView.vue:174 +#: src/views/apps/php/PhpView.vue:180 +#: src/views/apps/postgresql/IndexView.vue:74 +#: src/views/apps/supervisor/IndexView.vue:247 +#: src/views/website/EditView.vue:160 +msgid "Cleared successfully" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:111 +#: src/views/apps/pureftpd/IndexView.vue:185 +#: src/views/database/DatabaseList.vue:130 +#: src/views/database/ServerList.vue:249 +#: src/views/database/UpdateServerModal.vue:21 +#: src/views/database/UpdateUserModal.vue:18 +#: src/views/database/UserList.vue:223 src/views/file/PermissionModal.vue:29 +#: src/views/task/CronView.vue:182 src/views/task/CronView.vue:209 +#: src/views/website/IndexView.vue:253 src/views/website/IndexView.vue:279 +msgid "Modified successfully" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:139 +#: src/views/apps/nginx/IndexView.vue:132 +#: src/views/apps/postgresql/IndexView.vue:141 +#: src/views/apps/supervisor/IndexView.vue:375 +msgid "Clear Log" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:148 src/views/apps/php/PhpView.vue:277 +msgid "Clear Slow Log" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:177 +msgid "" +"Stopping MySQL will cause websites using MySQL to become inaccessible. Are " +"you sure you want to stop?" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:186 +#: src/views/apps/toolbox/IndexView.vue:185 +#: src/views/apps/toolbox/IndexView.vue:187 +msgid "Root Password" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:193 +msgid "Save Changes" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:201 +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:230 +msgid "Slow Query Log" +msgstr "" + +#: src/views/apps/mysql/route.ts:17 +msgid "Percona (MySQL)" +msgstr "" + +#: src/views/apps/nginx/IndexView.vue:160 +msgid "" +"Stopping OpenResty will cause all websites to become inaccessible. Are you " +"sure you want to stop?" +msgstr "" + +#: src/views/apps/nginx/IndexView.vue:177 +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:206 src/views/apps/php/PhpView.vue:385 +msgid "Error Logs" +msgstr "" + +#: src/views/apps/nginx/route.ts:17 +msgid "OpenResty (Nginx)" +msgstr "" + +#: src/views/apps/php/PhpView.vue:52 +msgid "Extension Name" +msgstr "" + +#: src/views/apps/php/PhpView.vue:81 +msgid "Are you sure you want to install %{ name }?" +msgstr "" + +#: src/views/apps/php/PhpView.vue:107 +msgid "Are you sure you want to uninstall %{ name }?" +msgstr "" + +#: src/views/apps/php/PhpView.vue:156 +msgid "Set successfully" +msgstr "" + +#: src/views/apps/php/PhpView.vue:221 src/views/apps/php/PhpView.vue:227 +msgid "Task submitted, please check progress in background tasks" +msgstr "" + +#: src/views/apps/php/PhpView.vue:241 +msgid "Set as CLI Default Version" +msgstr "" + +#: src/views/apps/php/PhpView.vue:268 +msgid "Clear Error Log" +msgstr "" + +#: src/views/apps/php/PhpView.vue:306 +msgid "" +"Stopping PHP %{ version } will cause websites using PHP %{ version } to " +"become inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/php/PhpView.vue:321 +msgid "Extension Management" +msgstr "" + +#: src/views/apps/php/PhpView.vue:322 +msgid "Extension List" +msgstr "" + +#: src/views/apps/php/PhpView.vue:334 +#: src/views/apps/postgresql/IndexView.vue:185 +#: src/views/apps/redis/IndexView.vue:147 +#: src/views/apps/supervisor/IndexView.vue:439 +msgid "Main Configuration" +msgstr "" + +#: src/views/apps/php/PhpView.vue:337 +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:353 +msgid "FPM Configuration" +msgstr "" + +#: src/views/apps/php/PhpView.vue:356 +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:388 +#: src/views/apps/postgresql/IndexView.vue:236 +msgid "Slow Logs" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:73 +msgid "Access Information" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:75 +msgid "Access URL:" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:78 +msgid "Modify Port" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:80 +msgid "Modify phpMyAdmin access port" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:87 +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/phpmyadmin/route.ts:17 +msgid "phpMyAdmin" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:111 +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:136 +msgid "Are you sure you want to stop Podman?" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:147 +msgid "Registry Configuration" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:150 +msgid "" +"This modifies the Podman registry configuration file (/etc/containers/" +"registries.conf)" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:166 +msgid "Storage Configuration" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:169 +msgid "" +"This modifies the Podman storage configuration file (/etc/containers/" +"storage.conf)" +msgstr "" + +#: src/views/apps/podman/route.ts:17 +msgid "Podman" +msgstr "" + +#: src/views/apps/postgresql/IndexView.vue:170 +msgid "" +"Stopping PostgreSQL will cause websites using PostgreSQL to become " +"inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/postgresql/IndexView.vue:188 +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:204 +msgid "User Configuration" +msgstr "" + +#: src/views/apps/postgresql/IndexView.vue:207 +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/postgresql/route.ts:17 +msgid "PostgreSQL" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:41 +#: src/views/apps/pureftpd/IndexView.vue:294 +#: src/views/container/ImageView.vue:197 +#: src/views/database/CreateDatabaseModal.vue:89 +#: src/views/database/CreateServerModal.vue:94 +#: src/views/database/CreateUserModal.vue:70 +#: src/views/database/ServerList.vue:47 +#: src/views/database/UpdateServerModal.vue:86 +#: src/views/database/UserList.vue:40 src/views/login/IndexView.vue:113 +#: src/views/setting/SettingBase.vue:65 src/views/ssh/CreateModal.vue:83 +#: src/views/ssh/UpdateModal.vue:89 +msgid "Username" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:75 +#: src/views/apps/pureftpd/IndexView.vue:327 +msgid "Change Password" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:86 +msgid "Are you sure you want to delete user %{ username }?" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:146 +msgid "Auto-start enabled successfully" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:149 +msgid "Auto-start disabled successfully" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:218 +msgid "Add User" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:227 +msgid "Auto-start On" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:228 +msgid "Auto-start Off" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:247 +msgid "" +"Stopping Pure-Ftpd will cause FTP service to be unavailable. Are you sure " +"you want to stop it?" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:256 +msgid "Port Settings" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:258 +msgid "Modify Pure-Ftpd listening port" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:262 +msgid "User Management" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:263 +msgid "User List" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:286 +msgid "Run Log" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:291 +#: src/views/apps/pureftpd/IndexView.vue:292 +#: src/views/database/CreateDatabaseModal.vue:78 +#: src/views/database/CreateUserModal.vue:54 +#: src/views/database/IndexView.vue:36 +msgid "Create User" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:299 +#: src/views/container/ImageView.vue:202 +#: src/views/database/CreateDatabaseModal.vue:94 +#: src/views/database/CreateUserModal.vue:75 +msgid "Enter username" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:302 +#: src/views/apps/pureftpd/IndexView.vue:331 +#: src/views/container/ImageView.vue:205 +#: src/views/database/CreateDatabaseModal.vue:97 +#: src/views/database/CreateServerModal.vue:102 +#: src/views/database/CreateUserModal.vue:78 +#: src/views/database/ServerList.vue:56 +#: src/views/database/UpdateServerModal.vue:94 +#: src/views/database/UpdateUserModal.vue:49 src/views/database/UserList.vue:50 +#: src/views/login/IndexView.vue:121 src/views/setting/SettingBase.vue:68 +#: src/views/ssh/CreateModal.vue:77 src/views/ssh/CreateModal.vue:86 +#: src/views/ssh/UpdateModal.vue:83 src/views/ssh/UpdateModal.vue:92 +msgid "Password" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:308 +#: src/views/apps/pureftpd/IndexView.vue:336 +msgid "It is recommended to use the generator to generate a random password" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:311 +#: src/views/container/ComposeView.vue:38 src/views/website/IndexView.vue:44 +#: src/views/website/IndexView.vue:504 +msgid "Directory" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:316 +msgid "Enter the directory authorized to the user" +msgstr "" + +#: src/views/apps/pureftpd/route.ts:17 +msgid "Pure-FTPd" +msgstr "" + +#: src/views/apps/redis/IndexView.vue:136 +msgid "" +"Stopping Redis will cause websites using Redis to become inaccessible. Are " +"you sure you want to stop?" +msgstr "" + +#: src/views/apps/redis/IndexView.vue:150 +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/redis/route.ts:17 +msgid "Redis" +msgstr "" + +#: src/views/apps/rsync/route.ts:17 +msgid "Rsync" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:25 +msgid "Mount Path" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:47 +msgid "Are you sure you want to delete mount %{ path }?" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:57 +msgid "Unmount" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:104 src/views/apps/s3fs/IndexView.vue:130 +#: src/views/apps/s3fs/IndexView.vue:131 +msgid "Add Mount" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:107 +msgid "Mount List" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:138 +msgid "Enter Bucket name (COS format: xxxx-ID)" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:146 +msgid "Enter AK key" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:154 +msgid "Enter SK key" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:157 +msgid "Region Endpoint" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:162 +msgid "" +"Enter complete URL of region endpoint (e.g., https://oss-cn-" +"beijing.aliyuncs.com)" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:165 +msgid "Mount Directory" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:170 +msgid "Enter mount directory (e.g., /oss)" +msgstr "" + +#: src/views/apps/s3fs/route.ts:17 +msgid "S3FS" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:80 +msgid "Uptime" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:103 +#: src/views/container/ContainerView.vue:103 +#: src/views/container/ContainerView.vue:439 src/views/task/CronView.vue:122 +#: src/views/task/TaskView.vue:75 +msgid "Logs" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:116 +msgid "Configure" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:144 +msgid "Are you sure you want to stop process %{ name }?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:171 +msgid "Are you sure you want to restart process %{ name }?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:197 +msgid "Are you sure you want to delete process %{ name }?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:371 +#: src/views/apps/supervisor/IndexView.vue:469 +msgid "Add Process" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:404 +msgid "" +"Stopping Supervisor will cause all processes managed by Supervisor to be " +"killed. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:415 +msgid "Process Management" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:416 +msgid "Process List" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:442 +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:461 +msgid "Daemon Logs" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:482 +msgid "Name cannot contain Chinese characters" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:485 +msgid "Start Command" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:490 +msgid "Please enter absolute path for files in start command" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:493 +msgid "Working Directory" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:498 +msgid "Please enter absolute path for working directory" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:501 +msgid "Run As User" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:506 +msgid "Usually www is sufficient" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:509 +msgid "Number of Processes" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:519 +msgid "Process Configuration" +msgstr "" + +#: src/views/apps/supervisor/route.ts:17 +msgid "Supervisor" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:87 +#: src/views/database/ServerList.vue:148 +msgid "Synchronized successfully" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:118 src/views/cert/AccountView.vue:102 +#: src/views/cert/CertView.vue:290 src/views/cert/DnsView.vue:86 +#: src/views/database/ServerList.vue:185 src/views/database/UserList.vue:170 +#: src/views/file/PermissionModal.vue:123 +msgid "Modify" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:124 +msgid "DNS modifications will revert to default after system restart." +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:138 +msgid "Total %{ total }, used %{ used }, free %{ free }" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:141 +#: src/views/dashboard/IndexView.vue:578 +msgid "SWAP Size" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:148 +#: src/views/database/CreateDatabaseModal.vue:106 +#: src/views/database/CreateServerModal.vue:73 +#: src/views/database/ServerList.vue:87 +#: src/views/database/UpdateServerModal.vue:65 +#: src/views/database/UserList.vue:81 src/views/ssh/CreateModal.vue:62 +#: src/views/ssh/UpdateModal.vue:68 +msgid "Host" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:151 +msgid "Hostname" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:169 +msgid "Time" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:171 +msgid "" +"After manually changing the time, it may still be overwritten by system " +"automatic time synchronization." +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:173 +msgid "Select Timezone" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:174 +msgid "Please select a timezone" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:176 +msgid "Modify Time" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:179 +msgid "NTP Time Synchronization" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:180 +msgid "Synchronize Time" +msgstr "" + +#: src/views/apps/toolbox/route.ts:17 +msgid "Toolbox" +msgstr "" + #: src/views/backup/ListView.vue:36 msgid "Filename" msgstr "" @@ -191,25 +1574,6 @@ msgstr "" msgid "Are you sure you want to delete this backup?" msgstr "" -#: src/views/backup/ListView.vue:99 src/views/cert/AccountView.vue:128 -#: src/views/cert/CertView.vue:316 src/views/cert/DnsView.vue:112 -#: src/views/container/ComposeView.vue:208 -#: src/views/container/ContainerCreate.vue:229 -#: src/views/container/ContainerCreate.vue:276 -#: src/views/container/ContainerView.vue:157 -#: src/views/container/ContainerView.vue:411 -#: src/views/container/ImageView.vue:95 src/views/container/NetworkView.vue:135 -#: src/views/container/VolumeView.vue:89 src/views/database/DatabaseList.vue:99 -#: src/views/database/ServerList.vue:218 src/views/database/UserList.vue:192 -#: src/views/file/ListTable.vue:81 src/views/file/ListTable.vue:285 -#: src/views/file/SearchModal.vue:98 src/views/file/ToolBar.vue:238 -#: src/views/firewall/ForwardView.vue:105 src/views/firewall/IpRuleView.vue:147 -#: src/views/firewall/RuleView.vue:184 src/views/ssh/IndexView.vue:93 -#: src/views/task/CronView.vue:157 src/views/task/TaskView.vue:99 -#: src/views/website/IndexView.vue:169 -msgid "Delete" -msgstr "" - #: src/views/backup/ListView.vue:126 src/views/cert/CreateAccountModal.vue:49 #: src/views/cert/CreateCertModal.vue:50 src/views/cert/CreateDnsModal.vue:35 #: src/views/cert/UploadCertModal.vue:21 @@ -233,19 +1597,6 @@ msgstr "" msgid "Restored successfully" msgstr "" -#: src/views/backup/ListView.vue:149 src/views/database/DatabaseList.vue:124 -#: src/views/database/ServerList.vue:243 src/views/database/UserList.vue:217 -#: src/views/file/ListTable.vue:268 src/views/file/ListTable.vue:595 -#: src/views/file/SearchModal.vue:81 src/views/file/ToolBar.vue:189 -#: src/views/firewall/ForwardView.vue:132 -#: src/views/firewall/ForwardView.vue:150 src/views/firewall/IpRuleView.vue:174 -#: src/views/firewall/IpRuleView.vue:192 src/views/firewall/RuleView.vue:211 -#: src/views/firewall/RuleView.vue:229 src/views/task/CronView.vue:200 -#: src/views/task/TaskView.vue:125 src/views/website/IndexView.vue:270 -#: src/views/website/IndexView.vue:324 -msgid "Deleted successfully" -msgstr "" - #: src/views/backup/ListView.vue:182 src/views/backup/ListView.vue:209 msgid "Create Backup" msgstr "" @@ -320,12 +1671,6 @@ msgstr "" msgid "Key Type" msgstr "" -#: src/views/cert/AccountView.vue:102 src/views/cert/CertView.vue:290 -#: src/views/cert/DnsView.vue:86 src/views/database/ServerList.vue:185 -#: src/views/database/UserList.vue:170 src/views/file/PermissionModal.vue:123 -msgid "Modify" -msgstr "" - #: src/views/cert/AccountView.vue:110 src/views/cert/CertView.vue:299 #: src/views/cert/DnsView.vue:95 msgid "Deletion successful" @@ -404,14 +1749,6 @@ msgstr "" msgid "None" msgstr "" -#: src/views/cert/CertView.vue:87 src/views/cert/DnsView.vue:38 -#: src/views/cert/ObtainModal.vue:54 -#: src/views/database/CreateServerModal.vue:63 -#: src/views/database/DatabaseList.vue:12 src/views/database/ServerList.vue:17 -#: src/views/database/UserList.vue:17 -msgid "Type" -msgstr "" - #: src/views/cert/CertView.vue:109 src/views/file/ToolBar.vue:221 #: src/views/file/UploadModal.vue:38 msgid "Upload" @@ -454,10 +1791,6 @@ msgstr "" msgid "Renew" msgstr "" -#: src/views/cert/CertView.vue:265 -msgid "View" -msgstr "" - #: src/views/cert/CertView.vue:305 msgid "Are you sure you want to delete the certificate?" msgstr "" @@ -771,30 +2104,6 @@ msgstr "" msgid "Issuance Mode" msgstr "" -#: 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/UpdateServerModal.vue:55 src/views/file/ListTable.vue:99 -#: src/views/file/SearchModal.vue:20 src/views/file/ToolBar.vue:257 -#: src/views/ssh/CreateModal.vue:57 src/views/ssh/UpdateModal.vue:63 -#: src/views/task/SystemView.vue:18 -msgid "Name" -msgstr "" - -#: src/views/container/ComposeView.vue:38 src/views/website/IndexView.vue:44 -#: src/views/website/IndexView.vue:504 -msgid "Directory" -msgstr "" - -#: 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/task/SystemView.vue:43 -#: src/views/task/TaskView.vue:22 -msgid "Status" -msgstr "" - #: src/views/container/ComposeView.vue:65 src/views/container/ImageView.vue:60 #: src/views/container/NetworkView.vue:100 #: src/views/container/VolumeView.vue:54 src/views/task/CronView.vue:84 @@ -826,12 +2135,6 @@ msgstr "" msgid "Force pull images" msgstr "" -#: src/views/container/ComposeView.vue:150 -#: src/views/container/ContainerView.vue:127 -#: src/views/container/ContainerView.vue:405 -msgid "Start" -msgstr "" - #: src/views/container/ComposeView.vue:162 #: src/views/container/ContainerView.vue:245 #: src/views/container/ContainerView.vue:316 @@ -842,12 +2145,6 @@ msgstr "" msgid "Are you sure you want to stop compose %{ name }?" msgstr "" -#: src/views/container/ComposeView.vue:179 -#: src/views/container/ContainerView.vue:132 -#: src/views/container/ContainerView.vue:406 -msgid "Stop" -msgstr "" - #: src/views/container/ComposeView.vue:191 #: src/views/container/ContainerView.vue:280 #: src/views/container/ContainerView.vue:358 @@ -875,12 +2172,6 @@ msgstr "" msgid "Compose" msgstr "" -#: src/views/container/ComposeView.vue:316 -#: src/views/container/ComposeView.vue:346 -#: src/views/container/ContainerCreate.vue:337 -msgid "Environment Variables" -msgstr "" - #: src/views/container/ComposeView.vue:320 #: src/views/container/ComposeView.vue:350 #: src/views/container/ContainerCreate.vue:341 @@ -1011,13 +2302,6 @@ msgstr "" msgid "Entrypoint" msgstr "" -#: src/views/container/ContainerCreate.vue:291 -#: src/views/dashboard/IndexView.vue:530 src/views/monitor/IndexView.vue:205 -#: src/views/monitor/IndexView.vue:216 src/views/monitor/IndexView.vue:238 -#: src/views/task/SystemView.vue:78 -msgid "Memory" -msgstr "" - #: src/views/container/ContainerCreate.vue:301 msgid "CPU Shares" msgstr "" @@ -1069,28 +2353,12 @@ msgstr "" msgid "Ports (Host->Container)" msgstr "" -#: src/views/container/ContainerView.vue:80 -msgid "Running Status" -msgstr "" - -#: src/views/container/ContainerView.vue:103 -#: src/views/container/ContainerView.vue:439 src/views/task/CronView.vue:122 -#: src/views/task/TaskView.vue:75 -msgid "Logs" -msgstr "" - #: src/views/container/ContainerView.vue:119 #: src/views/container/ContainerView.vue:462 src/views/file/ListTable.vue:80 #: src/views/file/ListTable.vue:260 msgid "Rename" msgstr "" -#: src/views/container/ContainerView.vue:137 -#: src/views/container/ContainerView.vue:407 -#: src/views/dashboard/IndexView.vue:444 -msgid "Restart" -msgstr "" - #: src/views/container/ContainerView.vue:142 #: src/views/container/ContainerView.vue:408 msgid "Force Stop" @@ -1216,37 +2484,6 @@ msgstr "" msgid "Authentication" msgstr "" -#: src/views/container/ImageView.vue:197 -#: src/views/database/CreateDatabaseModal.vue:89 -#: src/views/database/CreateServerModal.vue:94 -#: src/views/database/CreateUserModal.vue:70 -#: src/views/database/ServerList.vue:47 -#: src/views/database/UpdateServerModal.vue:86 -#: src/views/database/UserList.vue:40 src/views/login/IndexView.vue:113 -#: src/views/setting/SettingBase.vue:65 src/views/ssh/CreateModal.vue:83 -#: src/views/ssh/UpdateModal.vue:89 -msgid "Username" -msgstr "" - -#: src/views/container/ImageView.vue:202 -#: src/views/database/CreateDatabaseModal.vue:94 -#: src/views/database/CreateUserModal.vue:75 -msgid "Enter username" -msgstr "" - -#: src/views/container/ImageView.vue:205 -#: src/views/database/CreateDatabaseModal.vue:97 -#: src/views/database/CreateServerModal.vue:102 -#: src/views/database/CreateUserModal.vue:78 -#: src/views/database/ServerList.vue:56 -#: src/views/database/UpdateServerModal.vue:94 -#: src/views/database/UpdateUserModal.vue:49 src/views/database/UserList.vue:50 -#: src/views/login/IndexView.vue:121 src/views/setting/SettingBase.vue:68 -#: src/views/ssh/CreateModal.vue:77 src/views/ssh/CreateModal.vue:86 -#: src/views/ssh/UpdateModal.vue:83 src/views/ssh/UpdateModal.vue:92 -msgid "Password" -msgstr "" - #: src/views/container/ImageView.vue:211 #: src/views/database/CreateDatabaseModal.vue:103 #: src/views/database/CreateUserModal.vue:84 @@ -1375,10 +2612,6 @@ msgstr "" msgid "Running slowly" msgstr "" -#: src/views/dashboard/IndexView.vue:133 -msgid "Running normally" -msgstr "" - #: src/views/dashboard/IndexView.vue:135 msgid "Running smoothly" msgstr "" @@ -1415,10 +2648,6 @@ msgstr "" msgid "Resource Overview" msgstr "" -#: src/views/dashboard/IndexView.vue:459 -msgid "Load Status" -msgstr "" - #: src/views/dashboard/IndexView.vue:471 msgid "Last 1 minute" msgstr "" @@ -1479,10 +2708,6 @@ msgstr "" msgid "Commit Limit" msgstr "" -#: src/views/dashboard/IndexView.vue:578 -msgid "SWAP Size" -msgstr "" - #: src/views/dashboard/IndexView.vue:584 msgid "SWAP Used" msgstr "" @@ -1569,10 +2794,6 @@ msgstr "" msgid "Real-time Monitoring" msgstr "" -#: src/views/dashboard/IndexView.vue:795 src/views/dashboard/IndexView.vue:815 -msgid "Disk" -msgstr "" - #: src/views/dashboard/IndexView.vue:798 msgid "Unit" msgstr "" @@ -1689,12 +2910,6 @@ msgstr "" msgid "Select server" msgstr "" -#: src/views/database/CreateDatabaseModal.vue:78 -#: src/views/database/CreateUserModal.vue:54 -#: src/views/database/IndexView.vue:36 -msgid "Create User" -msgstr "" - #: src/views/database/CreateDatabaseModal.vue:81 msgid "Authorized User" msgstr "" @@ -1703,15 +2918,6 @@ msgstr "" msgid "Enter authorized username (leave empty for no authorization)" msgstr "" -#: src/views/database/CreateDatabaseModal.vue:106 -#: src/views/database/CreateServerModal.vue:73 -#: src/views/database/ServerList.vue:87 -#: src/views/database/UpdateServerModal.vue:65 -#: src/views/database/UserList.vue:81 src/views/ssh/CreateModal.vue:62 -#: src/views/ssh/UpdateModal.vue:68 -msgid "Host" -msgstr "" - #: src/views/database/CreateDatabaseModal.vue:110 #: src/views/database/CreateUserModal.vue:91 msgid "Select host" @@ -1727,10 +2933,6 @@ msgstr "" msgid "Enter supported host address" msgstr "" -#: src/views/database/CreateServerModal.vue:37 -msgid "Added successfully" -msgstr "" - #: src/views/database/CreateServerModal.vue:47 #: src/views/database/IndexView.vue:40 msgid "Add Server" @@ -1809,16 +3011,6 @@ msgstr "" msgid "Are you sure you want to delete this database?" msgstr "" -#: src/views/database/DatabaseList.vue:130 -#: src/views/database/ServerList.vue:249 -#: src/views/database/UpdateServerModal.vue:21 -#: src/views/database/UpdateUserModal.vue:18 -#: src/views/database/UserList.vue:223 src/views/file/PermissionModal.vue:29 -#: src/views/task/CronView.vue:182 src/views/task/CronView.vue:209 -#: src/views/website/IndexView.vue:253 src/views/website/IndexView.vue:279 -msgid "Modified successfully" -msgstr "" - #: src/views/database/IndexView.vue:48 src/views/task/SystemView.vue:37 msgid "User" msgstr "" @@ -1844,10 +3036,6 @@ msgstr "" msgid "Invalid" msgstr "" -#: src/views/database/ServerList.vue:148 -msgid "Synchronized successfully" -msgstr "" - #: src/views/database/ServerList.vue:154 msgid "" "Are you sure you want to synchronize database users (excluding password) to " @@ -1926,12 +3114,6 @@ msgstr "" msgid "Refresh" msgstr "" -#: src/views/file/EditModal.vue:31 src/views/file/ListTable.vue:703 -#: src/views/setting/SettingBase.vue:95 src/views/setting/SettingHttps.vue:56 -#: src/views/website/EditView.vue:211 -msgid "Save" -msgstr "" - #: src/views/file/ListTable.vue:64 src/views/file/ListTable.vue:218 msgid "Open" msgstr "" @@ -2456,11 +3638,6 @@ msgstr "" msgid "Panel Settings" msgstr "" -#: src/views/setting/SettingBase.vue:35 src/views/setting/SettingHttps.vue:27 -#: src/views/website/EditView.vue:115 -msgid "Saved successfully" -msgstr "" - #: src/views/setting/SettingBase.vue:53 msgid "" "Modifying panel port/entrance requires corresponding changes in the browser " @@ -2621,10 +3798,6 @@ msgstr "" msgid "PostgreSQL Database" msgstr "" -#: src/views/task/CreateModal.vue:140 src/views/task/CreateModal.vue:142 -msgid "Select Website" -msgstr "" - #: src/views/task/CreateModal.vue:153 msgid "Retention Count" msgstr "" @@ -2678,10 +3851,6 @@ msgstr "" msgid "Sleeping" msgstr "" -#: src/views/task/SystemView.vue:54 -msgid "Stopped" -msgstr "" - #: src/views/task/SystemView.vue:56 msgid "Idle" msgstr "" @@ -2754,10 +3923,6 @@ msgstr "" msgid "The selected certificate is invalid" msgstr "" -#: src/views/website/EditView.vue:160 -msgid "Cleared successfully" -msgstr "" - #: src/views/website/EditView.vue:178 msgid "" "If you modify the original text, other modifications will not take effect " @@ -2865,10 +4030,6 @@ msgstr "" msgid "Presets" msgstr "" -#: src/views/website/EditView.vue:388 -msgid "Configuration" -msgstr "" - #: src/views/website/EditView.vue:391 msgid "" "If you do not understand the configuration rules, please do not modify them " diff --git a/web/src/locales/zh_TW.po b/web/src/locales/zh_TW.po index ccdcd749..ba31aeaf 100644 --- a/web/src/locales/zh_TW.po +++ b/web/src/locales/zh_TW.po @@ -36,7 +36,7 @@ msgid "Login Page" msgstr "" #: src/views/app/IndexView.vue:19 src/views/app/IndexView.vue:159 -#: src/views/app/IndexView.vue:164 +#: src/views/app/IndexView.vue:164 src/views/apps/php/PhpView.vue:91 msgid "Install" msgstr "" @@ -44,7 +44,7 @@ msgstr "" msgid "App Name" msgstr "" -#: src/views/app/IndexView.vue:44 +#: src/views/app/IndexView.vue:44 src/views/apps/php/PhpView.vue:59 msgid "Description" msgstr "" @@ -56,7 +56,11 @@ msgstr "" msgid "Show in Home" msgstr "" -#: src/views/app/IndexView.vue:71 src/views/backup/ListView.vue:58 +#: src/views/app/IndexView.vue:71 src/views/apps/fail2ban/IndexView.vue:70 +#: src/views/apps/fail2ban/IndexView.vue:132 src/views/apps/php/PhpView.vue:66 +#: src/views/apps/pureftpd/IndexView.vue:55 +#: src/views/apps/s3fs/IndexView.vue:33 +#: src/views/apps/supervisor/IndexView.vue:87 src/views/backup/ListView.vue:58 #: src/views/cert/AccountView.vue:79 src/views/cert/CertView.vue:182 #: src/views/cert/DnsView.vue:64 src/views/container/ComposeView.vue:74 #: src/views/container/ContainerCreate.vue:170 @@ -135,10 +139,14 @@ msgstr "" msgid "Please select a channel" msgstr "" -#: src/views/app/VersionModal.vue:89 src/views/backup/ListView.vue:237 -#: src/views/backup/ListView.vue:257 src/views/cert/AccountView.vue:258 -#: src/views/cert/CertView.vue:513 src/views/cert/CertView.vue:537 -#: src/views/cert/CreateAccountModal.vue:114 +#: src/views/app/VersionModal.vue:89 src/views/apps/fail2ban/IndexView.vue:451 +#: src/views/apps/pureftpd/IndexView.vue:320 +#: src/views/apps/pureftpd/IndexView.vue:340 +#: src/views/apps/s3fs/IndexView.vue:174 +#: src/views/apps/supervisor/IndexView.vue:513 +#: src/views/backup/ListView.vue:237 src/views/backup/ListView.vue:257 +#: src/views/cert/AccountView.vue:258 src/views/cert/CertView.vue:513 +#: src/views/cert/CertView.vue:537 src/views/cert/CreateAccountModal.vue:114 #: src/views/cert/CreateCertModal.vue:111 src/views/cert/CreateDnsModal.vue:173 #: src/views/cert/DnsView.vue:370 src/views/cert/ObtainModal.vue:126 #: src/views/cert/UploadCertModal.vue:55 @@ -162,13 +170,1388 @@ msgstr "" msgid "Submit" msgstr "" -#: src/views/backup/IndexView.vue:37 src/views/backup/ListView.vue:217 -#: src/views/backup/ListView.vue:250 src/views/cert/CertView.vue:464 -#: src/views/cert/CertView.vue:527 src/views/cert/CreateCertModal.vue:86 -#: src/views/dashboard/IndexView.vue:418 src/views/task/CreateModal.vue:130 +#: src/views/apps/benchmark/IndexView.vue:12 +#: src/views/apps/benchmark/IndexView.vue:165 +msgid "CPU" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:67 +#: src/views/apps/benchmark/IndexView.vue:68 +#: src/views/apps/benchmark/IndexView.vue:74 +#: src/views/apps/benchmark/IndexView.vue:75 +#: src/views/apps/benchmark/IndexView.vue:76 +#: src/views/apps/benchmark/IndexView.vue:77 +#: src/views/apps/benchmark/IndexView.vue:80 +#: src/views/apps/benchmark/IndexView.vue:81 +#: src/views/apps/benchmark/IndexView.vue:82 +#: src/views/apps/benchmark/IndexView.vue:83 +#: src/views/apps/benchmark/IndexView.vue:86 +#: src/views/apps/benchmark/IndexView.vue:87 +#: src/views/apps/benchmark/IndexView.vue:88 +#: src/views/apps/benchmark/IndexView.vue:89 +#: src/views/apps/benchmark/IndexView.vue:92 +#: src/views/apps/benchmark/IndexView.vue:93 +#: src/views/apps/benchmark/IndexView.vue:94 +#: src/views/apps/benchmark/IndexView.vue:95 +#: src/views/apps/benchmark/IndexView.vue:156 +#: src/views/apps/benchmark/IndexView.vue:256 +#: src/views/apps/benchmark/IndexView.vue:287 +msgid "Pending benchmark" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:129 +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/apps/benchmark/IndexView.vue:136 +msgid "Benchmarking in progress, it may take some time..." +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:139 +msgid "Current project: %{ current }" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:151 +msgid "Single-core" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:153 +msgid "Multi-core" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:170 +msgid "Image Processing" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:173 +#: src/views/apps/benchmark/IndexView.vue:184 +#: src/views/apps/benchmark/IndexView.vue:195 +#: src/views/apps/benchmark/IndexView.vue:206 +#: src/views/apps/benchmark/IndexView.vue:217 +#: src/views/apps/benchmark/IndexView.vue:228 +#: src/views/apps/benchmark/IndexView.vue:239 +msgid "Single-core %{ single } / Multi-core %{ multi }" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:181 +msgid "Machine Learning" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:192 +msgid "Program Compilation" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:203 +msgid "AES Encryption" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:214 +msgid "Compression/Decompression" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:225 +msgid "Physics Simulation" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:236 +msgid "JSON Parsing" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:265 +#: src/views/container/ContainerCreate.vue:291 +#: src/views/dashboard/IndexView.vue:530 src/views/monitor/IndexView.vue:205 +#: src/views/monitor/IndexView.vue:216 src/views/monitor/IndexView.vue:238 +#: src/views/task/SystemView.vue:78 +msgid "Memory" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:270 +msgid "Memory Bandwidth" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:274 +msgid "Memory Latency" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:296 +#: src/views/dashboard/IndexView.vue:795 src/views/dashboard/IndexView.vue:815 +msgid "Disk" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:301 +msgid "4KB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:304 +#: src/views/apps/benchmark/IndexView.vue:315 +#: src/views/apps/benchmark/IndexView.vue:326 +#: src/views/apps/benchmark/IndexView.vue:337 +#: src/views/apps/benchmark/IndexView.vue:348 +#: src/views/apps/benchmark/IndexView.vue:359 +#: src/views/apps/benchmark/IndexView.vue:370 +#: src/views/apps/benchmark/IndexView.vue:381 +msgid "Speed %{ speed } / %{ iops } IOPS" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:312 +msgid "4KB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:323 +msgid "64KB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:334 +msgid "64KB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:345 +msgid "512KB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:356 +msgid "512KB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:367 +msgid "1MB Read" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:378 +msgid "1MB Write" +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:402 +msgid "Benchmarking..." +msgstr "" + +#: src/views/apps/benchmark/IndexView.vue:402 +msgid "Start Benchmark" +msgstr "" + +#: src/views/apps/benchmark/route.ts:17 +msgid "Rat Benchmark" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:25 +#: src/views/apps/fail2ban/IndexView.vue:42 src/views/apps/frp/IndexView.vue:30 +#: src/views/apps/frp/IndexView.vue:31 src/views/apps/gitea/IndexView.vue:20 +#: src/views/apps/memcached/IndexView.vue:22 +#: src/views/apps/minio/IndexView.vue:20 src/views/apps/mysql/IndexView.vue:35 +#: src/views/apps/nginx/IndexView.vue:33 src/views/apps/php/PhpView.vue:47 +#: src/views/apps/podman/IndexView.vue:21 +#: src/views/apps/postgresql/IndexView.vue:35 +#: src/views/apps/pureftpd/IndexView.vue:25 +#: src/views/apps/redis/IndexView.vue:29 +#: src/views/apps/supervisor/IndexView.vue:54 +#: src/views/dashboard/IndexView.vue:133 +msgid "Running normally" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:25 +#: src/views/apps/fail2ban/IndexView.vue:42 src/views/apps/frp/IndexView.vue:30 +#: src/views/apps/frp/IndexView.vue:31 src/views/apps/gitea/IndexView.vue:20 +#: src/views/apps/memcached/IndexView.vue:22 +#: src/views/apps/minio/IndexView.vue:20 src/views/apps/mysql/IndexView.vue:35 +#: src/views/apps/nginx/IndexView.vue:33 src/views/apps/php/PhpView.vue:47 +#: src/views/apps/podman/IndexView.vue:21 +#: src/views/apps/postgresql/IndexView.vue:35 +#: src/views/apps/pureftpd/IndexView.vue:25 +#: src/views/apps/redis/IndexView.vue:29 +#: src/views/apps/supervisor/IndexView.vue:54 src/views/task/SystemView.vue:54 +msgid "Stopped" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:38 +#: src/views/apps/fail2ban/IndexView.vue:176 +#: src/views/apps/frp/IndexView.vue:53 src/views/apps/gitea/IndexView.vue:37 +#: src/views/apps/memcached/IndexView.vue:61 +#: src/views/apps/minio/IndexView.vue:37 src/views/apps/mysql/IndexView.vue:64 +#: src/views/apps/nginx/IndexView.vue:62 src/views/apps/php/PhpView.vue:162 +#: src/views/apps/php/PhpView.vue:168 +#: src/views/apps/phpmyadmin/IndexView.vue:37 +#: src/views/apps/phpmyadmin/IndexView.vue:44 +#: src/views/apps/podman/IndexView.vue:39 +#: src/views/apps/podman/IndexView.vue:45 +#: src/views/apps/postgresql/IndexView.vue:64 +#: src/views/apps/postgresql/IndexView.vue:69 +#: src/views/apps/pureftpd/IndexView.vue:133 +#: src/views/apps/redis/IndexView.vue:58 +#: src/views/apps/supervisor/IndexView.vue:241 +#: src/views/apps/supervisor/IndexView.vue:341 +#: src/views/apps/toolbox/IndexView.vue:51 +#: src/views/apps/toolbox/IndexView.vue:57 +#: src/views/apps/toolbox/IndexView.vue:66 +#: src/views/apps/toolbox/IndexView.vue:72 +#: src/views/apps/toolbox/IndexView.vue:81 src/views/setting/SettingBase.vue:35 +#: src/views/setting/SettingHttps.vue:27 src/views/website/EditView.vue:115 +msgid "Saved successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:44 +#: src/views/apps/fail2ban/IndexView.vue:211 +#: src/views/apps/frp/IndexView.vue:60 src/views/apps/gitea/IndexView.vue:43 +#: src/views/apps/memcached/IndexView.vue:67 +#: src/views/apps/minio/IndexView.vue:43 src/views/apps/mysql/IndexView.vue:93 +#: src/views/apps/nginx/IndexView.vue:85 src/views/apps/php/PhpView.vue:197 +#: src/views/apps/podman/IndexView.vue:51 +#: src/views/apps/postgresql/IndexView.vue:90 +#: src/views/apps/pureftpd/IndexView.vue:139 +#: src/views/apps/redis/IndexView.vue:64 +#: src/views/apps/supervisor/IndexView.vue:268 +#: src/views/apps/supervisor/IndexView.vue:297 +msgid "Started successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:51 +#: src/views/apps/fail2ban/IndexView.vue:228 +#: src/views/apps/frp/IndexView.vue:66 src/views/apps/gitea/IndexView.vue:49 +#: src/views/apps/memcached/IndexView.vue:84 +#: src/views/apps/minio/IndexView.vue:49 src/views/apps/mysql/IndexView.vue:99 +#: src/views/apps/nginx/IndexView.vue:91 src/views/apps/php/PhpView.vue:203 +#: src/views/apps/podman/IndexView.vue:57 +#: src/views/apps/postgresql/IndexView.vue:96 +#: src/views/apps/pureftpd/IndexView.vue:156 +#: src/views/apps/redis/IndexView.vue:81 +#: src/views/apps/supervisor/IndexView.vue:275 +#: src/views/apps/supervisor/IndexView.vue:304 +msgid "Stopped successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:58 +#: src/views/apps/fail2ban/IndexView.vue:234 +#: src/views/apps/frp/IndexView.vue:72 src/views/apps/gitea/IndexView.vue:55 +#: src/views/apps/memcached/IndexView.vue:90 +#: src/views/apps/minio/IndexView.vue:55 src/views/apps/mysql/IndexView.vue:105 +#: src/views/apps/nginx/IndexView.vue:97 src/views/apps/php/PhpView.vue:209 +#: src/views/apps/podman/IndexView.vue:63 +#: src/views/apps/postgresql/IndexView.vue:102 +#: src/views/apps/pureftpd/IndexView.vue:162 +#: src/views/apps/redis/IndexView.vue:87 +#: src/views/apps/supervisor/IndexView.vue:282 +#: src/views/apps/supervisor/IndexView.vue:311 +msgid "Restarted successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:66 +#: src/views/apps/fail2ban/IndexView.vue:218 +#: src/views/apps/frp/IndexView.vue:79 src/views/apps/gitea/IndexView.vue:62 +#: src/views/apps/memcached/IndexView.vue:74 +#: src/views/apps/minio/IndexView.vue:62 src/views/apps/mysql/IndexView.vue:83 +#: src/views/apps/nginx/IndexView.vue:75 src/views/apps/php/PhpView.vue:187 +#: src/views/apps/podman/IndexView.vue:70 +#: src/views/apps/postgresql/IndexView.vue:80 +#: src/views/apps/redis/IndexView.vue:71 +#: src/views/apps/supervisor/IndexView.vue:255 +msgid "Autostart enabled successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:69 +#: src/views/apps/fail2ban/IndexView.vue:221 +#: src/views/apps/frp/IndexView.vue:82 src/views/apps/gitea/IndexView.vue:65 +#: src/views/apps/memcached/IndexView.vue:77 +#: src/views/apps/minio/IndexView.vue:65 src/views/apps/mysql/IndexView.vue:86 +#: src/views/apps/nginx/IndexView.vue:78 src/views/apps/php/PhpView.vue:190 +#: src/views/apps/podman/IndexView.vue:73 +#: src/views/apps/postgresql/IndexView.vue:83 +#: src/views/apps/redis/IndexView.vue:74 +#: src/views/apps/supervisor/IndexView.vue:260 +msgid "Autostart disabled successfully" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:90 src/views/apps/frp/IndexView.vue:135 +#: src/views/apps/frp/IndexView.vue:191 src/views/apps/gitea/IndexView.vue:87 +#: src/views/apps/memcached/IndexView.vue:110 +#: src/views/apps/minio/IndexView.vue:82 src/views/apps/mysql/IndexView.vue:130 +#: src/views/apps/nginx/IndexView.vue:123 src/views/apps/php/PhpView.vue:250 +#: src/views/apps/php/PhpView.vue:259 +#: src/views/apps/phpmyadmin/IndexView.vue:58 +#: src/views/apps/phpmyadmin/IndexView.vue:67 +#: src/views/apps/podman/IndexView.vue:95 +#: src/views/apps/podman/IndexView.vue:104 +#: src/views/apps/postgresql/IndexView.vue:128 +#: src/views/apps/postgresql/IndexView.vue:137 +#: src/views/apps/pureftpd/IndexView.vue:209 +#: src/views/apps/redis/IndexView.vue:107 +#: src/views/apps/supervisor/IndexView.vue:362 +#: src/views/apps/toolbox/IndexView.vue:97 +#: src/views/apps/toolbox/IndexView.vue:101 +#: src/views/apps/toolbox/IndexView.vue:105 +#: src/views/apps/toolbox/IndexView.vue:109 src/views/file/EditModal.vue:31 +#: src/views/file/ListTable.vue:703 src/views/setting/SettingBase.vue:95 +#: src/views/setting/SettingHttps.vue:56 src/views/website/EditView.vue:211 +msgid "Save" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:94 +#: src/views/apps/docker/IndexView.vue:96 +#: src/views/apps/fail2ban/IndexView.vue:309 +#: src/views/apps/fail2ban/IndexView.vue:311 +#: src/views/apps/frp/IndexView.vue:99 src/views/apps/frp/IndexView.vue:155 +#: src/views/apps/gitea/IndexView.vue:91 src/views/apps/gitea/IndexView.vue:92 +#: src/views/apps/memcached/IndexView.vue:114 +#: src/views/apps/memcached/IndexView.vue:116 +#: src/views/apps/minio/IndexView.vue:86 src/views/apps/minio/IndexView.vue:87 +#: src/views/apps/mysql/IndexView.vue:152 +#: src/views/apps/mysql/IndexView.vue:154 +#: src/views/apps/nginx/IndexView.vue:136 +#: src/views/apps/nginx/IndexView.vue:137 src/views/apps/php/PhpView.vue:281 +#: src/views/apps/php/PhpView.vue:283 src/views/apps/podman/IndexView.vue:108 +#: src/views/apps/podman/IndexView.vue:113 +#: src/views/apps/postgresql/IndexView.vue:145 +#: src/views/apps/postgresql/IndexView.vue:147 +#: src/views/apps/pureftpd/IndexView.vue:222 +#: src/views/apps/pureftpd/IndexView.vue:224 +#: src/views/apps/redis/IndexView.vue:111 +#: src/views/apps/redis/IndexView.vue:113 +#: src/views/apps/supervisor/IndexView.vue:379 +#: src/views/apps/supervisor/IndexView.vue:381 +#: src/views/container/ContainerView.vue:80 +msgid "Running Status" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:99 +#: src/views/apps/fail2ban/IndexView.vue:314 +#: src/views/apps/frp/IndexView.vue:102 src/views/apps/frp/IndexView.vue:158 +#: src/views/apps/gitea/IndexView.vue:95 +#: src/views/apps/memcached/IndexView.vue:119 +#: src/views/apps/minio/IndexView.vue:90 src/views/apps/mysql/IndexView.vue:157 +#: src/views/apps/nginx/IndexView.vue:140 src/views/apps/php/PhpView.vue:286 +#: src/views/apps/podman/IndexView.vue:116 +#: src/views/apps/postgresql/IndexView.vue:150 +#: src/views/apps/redis/IndexView.vue:116 +#: src/views/apps/supervisor/IndexView.vue:384 +msgid "Autostart On" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:100 +#: src/views/apps/fail2ban/IndexView.vue:315 +#: src/views/apps/frp/IndexView.vue:103 src/views/apps/frp/IndexView.vue:159 +#: src/views/apps/gitea/IndexView.vue:96 +#: src/views/apps/memcached/IndexView.vue:120 +#: src/views/apps/minio/IndexView.vue:91 src/views/apps/mysql/IndexView.vue:158 +#: src/views/apps/nginx/IndexView.vue:141 src/views/apps/php/PhpView.vue:287 +#: src/views/apps/podman/IndexView.vue:117 +#: src/views/apps/postgresql/IndexView.vue:151 +#: src/views/apps/redis/IndexView.vue:117 +#: src/views/apps/supervisor/IndexView.vue:385 +msgid "Autostart Off" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:110 +#: src/views/apps/fail2ban/IndexView.vue:325 +#: src/views/apps/frp/IndexView.vue:113 src/views/apps/frp/IndexView.vue:169 +#: src/views/apps/gitea/IndexView.vue:106 +#: src/views/apps/memcached/IndexView.vue:130 +#: src/views/apps/minio/IndexView.vue:101 +#: src/views/apps/mysql/IndexView.vue:168 +#: src/views/apps/nginx/IndexView.vue:151 src/views/apps/php/PhpView.vue:297 +#: src/views/apps/podman/IndexView.vue:127 +#: src/views/apps/postgresql/IndexView.vue:161 +#: src/views/apps/pureftpd/IndexView.vue:238 +#: src/views/apps/redis/IndexView.vue:127 +#: src/views/apps/supervisor/IndexView.vue:131 +#: src/views/apps/supervisor/IndexView.vue:395 +#: src/views/container/ComposeView.vue:150 +#: src/views/container/ContainerView.vue:127 +#: src/views/container/ContainerView.vue:405 +msgid "Start" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:116 +#: src/views/apps/fail2ban/IndexView.vue:331 +#: src/views/apps/frp/IndexView.vue:119 src/views/apps/frp/IndexView.vue:175 +#: src/views/apps/gitea/IndexView.vue:112 +#: src/views/apps/memcached/IndexView.vue:136 +#: src/views/apps/minio/IndexView.vue:107 +#: src/views/apps/mysql/IndexView.vue:174 +#: src/views/apps/nginx/IndexView.vue:157 src/views/apps/php/PhpView.vue:303 +#: src/views/apps/podman/IndexView.vue:133 +#: src/views/apps/postgresql/IndexView.vue:167 +#: src/views/apps/pureftpd/IndexView.vue:244 +#: src/views/apps/redis/IndexView.vue:133 +#: src/views/apps/supervisor/IndexView.vue:155 +#: src/views/apps/supervisor/IndexView.vue:401 +#: src/views/container/ComposeView.vue:179 +#: src/views/container/ContainerView.vue:132 +#: src/views/container/ContainerView.vue:406 +msgid "Stop" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:119 +msgid "Are you sure you want to stop Docker?" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:123 +#: src/views/apps/fail2ban/IndexView.vue:338 +#: src/views/apps/frp/IndexView.vue:126 src/views/apps/frp/IndexView.vue:182 +#: src/views/apps/gitea/IndexView.vue:119 +#: src/views/apps/memcached/IndexView.vue:143 +#: src/views/apps/minio/IndexView.vue:114 +#: src/views/apps/mysql/IndexView.vue:181 +#: src/views/apps/nginx/IndexView.vue:164 src/views/apps/php/PhpView.vue:310 +#: src/views/apps/podman/IndexView.vue:140 +#: src/views/apps/postgresql/IndexView.vue:174 +#: src/views/apps/pureftpd/IndexView.vue:251 +#: src/views/apps/redis/IndexView.vue:140 +#: src/views/apps/supervisor/IndexView.vue:182 +#: src/views/apps/supervisor/IndexView.vue:408 +#: src/views/container/ContainerView.vue:137 +#: src/views/container/ContainerView.vue:407 +#: src/views/dashboard/IndexView.vue:444 +msgid "Restart" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:130 src/views/website/EditView.vue:388 +msgid "Configuration" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:133 +msgid "This modifies the Docker configuration file (/etc/docker/daemon.json)" +msgstr "" + +#: src/views/apps/docker/IndexView.vue:149 +#: src/views/apps/fail2ban/IndexView.vue:381 +#: src/views/apps/gitea/IndexView.vue:144 +#: src/views/apps/memcached/IndexView.vue:176 +#: src/views/apps/minio/IndexView.vue:139 +#: src/views/apps/mysql/IndexView.vue:227 +#: src/views/apps/nginx/IndexView.vue:203 src/views/apps/php/PhpView.vue:382 +#: src/views/apps/podman/IndexView.vue:185 +#: src/views/apps/postgresql/IndexView.vue:233 +#: src/views/apps/redis/IndexView.vue:176 +#: src/views/apps/supervisor/IndexView.vue:458 +msgid "Runtime Logs" +msgstr "" + +#: src/views/apps/docker/route.ts:17 +msgid "Docker" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:47 +#: src/views/apps/supervisor/IndexView.vue:59 +#: src/views/apps/supervisor/IndexView.vue:477 +#: 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/UpdateServerModal.vue:55 src/views/file/ListTable.vue:99 +#: src/views/file/SearchModal.vue:20 src/views/file/ToolBar.vue:257 +#: src/views/ssh/CreateModal.vue:57 src/views/ssh/UpdateModal.vue:63 +#: src/views/task/SystemView.vue:18 +msgid "Name" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:53 +#: src/views/apps/phpmyadmin/IndexView.vue:71 +#: src/views/apps/supervisor/IndexView.vue:66 +#: 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/task/SystemView.vue:43 +#: src/views/task/TaskView.vue:22 +msgid "Status" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:66 +#: src/views/apps/fail2ban/IndexView.vue:441 +msgid "Max Retries" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:67 +#: src/views/apps/fail2ban/IndexView.vue:447 +msgid "Ban Time" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:68 +#: src/views/apps/fail2ban/IndexView.vue:444 +msgid "Find Time" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:89 src/views/cert/CertView.vue:265 +msgid "View" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:100 +msgid "Are you sure you want to delete rule %{ name }?" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:111 src/views/apps/php/PhpView.vue:117 +#: src/views/apps/pureftpd/IndexView.vue:97 +#: src/views/apps/supervisor/IndexView.vue:208 src/views/backup/ListView.vue:99 +#: src/views/cert/AccountView.vue:128 src/views/cert/CertView.vue:316 +#: src/views/cert/DnsView.vue:112 src/views/container/ComposeView.vue:208 +#: src/views/container/ContainerCreate.vue:229 +#: src/views/container/ContainerCreate.vue:276 +#: src/views/container/ContainerView.vue:157 +#: src/views/container/ContainerView.vue:411 +#: src/views/container/ImageView.vue:95 src/views/container/NetworkView.vue:135 +#: src/views/container/VolumeView.vue:89 src/views/database/DatabaseList.vue:99 +#: src/views/database/ServerList.vue:218 src/views/database/UserList.vue:192 +#: src/views/file/ListTable.vue:81 src/views/file/ListTable.vue:285 +#: src/views/file/SearchModal.vue:98 src/views/file/ToolBar.vue:238 +#: src/views/firewall/ForwardView.vue:105 src/views/firewall/IpRuleView.vue:147 +#: src/views/firewall/RuleView.vue:184 src/views/ssh/IndexView.vue:93 +#: src/views/task/CronView.vue:157 src/views/task/TaskView.vue:99 +#: src/views/website/IndexView.vue:169 +msgid "Delete" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:146 +msgid "Are you sure you want to unban %{ ip }?" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:156 +msgid "Unban" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:240 +#: src/views/apps/nginx/IndexView.vue:103 src/views/apps/php/PhpView.vue:215 +#: src/views/apps/postgresql/IndexView.vue:108 +msgid "Reloaded successfully" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:247 +#: src/views/apps/pureftpd/IndexView.vue:175 +#: src/views/apps/s3fs/IndexView.vue:83 +#: src/views/apps/supervisor/IndexView.vue:290 +#: src/views/database/CreateServerModal.vue:37 +msgid "Added successfully" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:255 +#: src/views/apps/pureftpd/IndexView.vue:192 +#: src/views/apps/s3fs/IndexView.vue:90 +#: src/views/apps/supervisor/IndexView.vue:318 +#: src/views/backup/ListView.vue:149 src/views/database/DatabaseList.vue:124 +#: src/views/database/ServerList.vue:243 src/views/database/UserList.vue:217 +#: src/views/file/ListTable.vue:268 src/views/file/ListTable.vue:595 +#: src/views/file/SearchModal.vue:81 src/views/file/ToolBar.vue:189 +#: src/views/firewall/ForwardView.vue:132 +#: src/views/firewall/ForwardView.vue:150 src/views/firewall/IpRuleView.vue:174 +#: src/views/firewall/IpRuleView.vue:192 src/views/firewall/RuleView.vue:211 +#: src/views/firewall/RuleView.vue:229 src/views/task/CronView.vue:200 +#: src/views/task/TaskView.vue:125 src/views/website/IndexView.vue:270 +#: src/views/website/IndexView.vue:324 +msgid "Deleted successfully" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:268 +msgid "Unbanned successfully" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:296 +msgid "Save Whitelist" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:305 +#: src/views/apps/fail2ban/IndexView.vue:386 +#: src/views/apps/fail2ban/IndexView.vue:387 +msgid "Add Rule" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:334 +msgid "" +"Stopping Fail2ban will disable all rules. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:342 +#: src/views/apps/nginx/IndexView.vue:168 src/views/apps/php/PhpView.vue:314 +#: src/views/apps/postgresql/IndexView.vue:178 +msgid "Reload" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:347 +msgid "IP Whitelist" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:352 +msgid "IP whitelist, separated by commas" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:357 +msgid "Rule Management" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:358 +msgid "Rule List" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:390 +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:393 +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:397 src/views/cert/CertView.vue:87 +#: src/views/cert/DnsView.vue:38 src/views/cert/ObtainModal.vue:54 +#: src/views/database/CreateServerModal.vue:63 +#: src/views/database/DatabaseList.vue:12 src/views/database/ServerList.vue:17 +#: src/views/database/UserList.vue:17 +msgid "Type" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:401 src/views/backup/IndexView.vue:37 +#: src/views/backup/ListView.vue:217 src/views/backup/ListView.vue:250 +#: src/views/cert/CertView.vue:464 src/views/cert/CertView.vue:527 +#: src/views/cert/CreateCertModal.vue:86 src/views/dashboard/IndexView.vue:418 +#: src/views/task/CreateModal.vue:130 msgid "Website" msgstr "" +#: src/views/apps/fail2ban/IndexView.vue:402 +#: src/views/apps/fail2ban/IndexView.vue:430 +msgid "Service" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:407 +#: src/views/apps/fail2ban/IndexView.vue:411 src/views/task/CreateModal.vue:140 +#: src/views/task/CreateModal.vue:142 +msgid "Select Website" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:414 +msgid "Protection Mode" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:419 +#: src/views/apps/pureftpd/IndexView.vue:48 +msgid "Path" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:426 +#: src/views/apps/fail2ban/IndexView.vue:428 +msgid "Protection Path" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:455 +#: src/views/apps/fail2ban/IndexView.vue:456 +msgid "View Rule" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:458 +msgid "Rule Information" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:461 +msgid "Currently Banned" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:465 +msgid "Total Bans" +msgstr "" + +#: src/views/apps/fail2ban/IndexView.vue:470 +msgid "Ban List" +msgstr "" + +#: src/views/apps/fail2ban/route.ts:17 +msgid "Fail2ban" +msgstr "" + +#: src/views/apps/frp/IndexView.vue:122 +msgid "Are you sure you want to stop Frps?" +msgstr "" + +#: src/views/apps/frp/IndexView.vue:131 src/views/apps/frp/IndexView.vue:187 +#: src/views/apps/gitea/IndexView.vue:125 +#: src/views/apps/mysql/IndexView.vue:198 +#: src/views/apps/nginx/IndexView.vue:174 +#: src/views/apps/phpmyadmin/IndexView.vue:84 +msgid "Modify Configuration" +msgstr "" + +#: src/views/apps/frp/IndexView.vue:178 +msgid "Are you sure you want to stop Frpc?" +msgstr "" + +#: src/views/apps/frp/route.ts:17 +msgid "Frp" +msgstr "" + +#: src/views/apps/gitea/IndexView.vue:115 +msgid "Are you sure you want to stop Gitea?" +msgstr "" + +#: src/views/apps/gitea/IndexView.vue:128 +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/gitea/route.ts:17 +msgid "Gitea" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:27 +#: src/views/apps/mysql/IndexView.vue:40 src/views/apps/nginx/IndexView.vue:38 +#: src/views/apps/php/PhpView.vue:132 +#: src/views/apps/postgresql/IndexView.vue:40 +#: src/views/apps/redis/IndexView.vue:34 +msgid "Property" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:34 +#: src/views/apps/mysql/IndexView.vue:47 src/views/apps/nginx/IndexView.vue:45 +#: src/views/apps/php/PhpView.vue:139 +#: src/views/apps/postgresql/IndexView.vue:47 +#: src/views/apps/redis/IndexView.vue:41 +msgid "Current Value" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:139 +msgid "" +"Stopping Memcached will cause websites using Memcached to become " +"inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:150 +msgid "Service Configuration" +msgstr "" + +#: src/views/apps/memcached/IndexView.vue:166 +#: src/views/apps/mysql/IndexView.vue:217 +#: src/views/apps/nginx/IndexView.vue:193 src/views/apps/php/PhpView.vue:372 +#: src/views/apps/postgresql/IndexView.vue:223 +#: src/views/apps/redis/IndexView.vue:166 src/views/dashboard/IndexView.vue:459 +msgid "Load Status" +msgstr "" + +#: src/views/apps/memcached/route.ts:17 +msgid "Memcached" +msgstr "" + +#: src/views/apps/minio/IndexView.vue:110 +msgid "Are you sure you want to stop Minio?" +msgstr "" + +#: src/views/apps/minio/IndexView.vue:120 +#: src/views/container/ComposeView.vue:316 +#: src/views/container/ComposeView.vue:346 +#: src/views/container/ContainerCreate.vue:337 +msgid "Environment Variables" +msgstr "" + +#: src/views/apps/minio/IndexView.vue:123 +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/minio/route.ts:17 +msgid "Minio" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:70 src/views/apps/mysql/IndexView.vue:76 +#: src/views/apps/nginx/IndexView.vue:68 src/views/apps/php/PhpView.vue:174 +#: src/views/apps/php/PhpView.vue:180 +#: src/views/apps/postgresql/IndexView.vue:74 +#: src/views/apps/supervisor/IndexView.vue:247 +#: src/views/website/EditView.vue:160 +msgid "Cleared successfully" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:111 +#: src/views/apps/pureftpd/IndexView.vue:185 +#: src/views/database/DatabaseList.vue:130 +#: src/views/database/ServerList.vue:249 +#: src/views/database/UpdateServerModal.vue:21 +#: src/views/database/UpdateUserModal.vue:18 +#: src/views/database/UserList.vue:223 src/views/file/PermissionModal.vue:29 +#: src/views/task/CronView.vue:182 src/views/task/CronView.vue:209 +#: src/views/website/IndexView.vue:253 src/views/website/IndexView.vue:279 +msgid "Modified successfully" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:139 +#: src/views/apps/nginx/IndexView.vue:132 +#: src/views/apps/postgresql/IndexView.vue:141 +#: src/views/apps/supervisor/IndexView.vue:375 +msgid "Clear Log" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:148 src/views/apps/php/PhpView.vue:277 +msgid "Clear Slow Log" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:177 +msgid "" +"Stopping MySQL will cause websites using MySQL to become inaccessible. Are " +"you sure you want to stop?" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:186 +#: src/views/apps/toolbox/IndexView.vue:185 +#: src/views/apps/toolbox/IndexView.vue:187 +msgid "Root Password" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:193 +msgid "Save Changes" +msgstr "" + +#: src/views/apps/mysql/IndexView.vue:201 +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:230 +msgid "Slow Query Log" +msgstr "" + +#: src/views/apps/mysql/route.ts:17 +msgid "Percona (MySQL)" +msgstr "" + +#: src/views/apps/nginx/IndexView.vue:160 +msgid "" +"Stopping OpenResty will cause all websites to become inaccessible. Are you " +"sure you want to stop?" +msgstr "" + +#: src/views/apps/nginx/IndexView.vue:177 +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:206 src/views/apps/php/PhpView.vue:385 +msgid "Error Logs" +msgstr "" + +#: src/views/apps/nginx/route.ts:17 +msgid "OpenResty (Nginx)" +msgstr "" + +#: src/views/apps/php/PhpView.vue:52 +msgid "Extension Name" +msgstr "" + +#: src/views/apps/php/PhpView.vue:81 +msgid "Are you sure you want to install %{ name }?" +msgstr "" + +#: src/views/apps/php/PhpView.vue:107 +msgid "Are you sure you want to uninstall %{ name }?" +msgstr "" + +#: src/views/apps/php/PhpView.vue:156 +msgid "Set successfully" +msgstr "" + +#: src/views/apps/php/PhpView.vue:221 src/views/apps/php/PhpView.vue:227 +msgid "Task submitted, please check progress in background tasks" +msgstr "" + +#: src/views/apps/php/PhpView.vue:241 +msgid "Set as CLI Default Version" +msgstr "" + +#: src/views/apps/php/PhpView.vue:268 +msgid "Clear Error Log" +msgstr "" + +#: src/views/apps/php/PhpView.vue:306 +msgid "" +"Stopping PHP %{ version } will cause websites using PHP %{ version } to " +"become inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/php/PhpView.vue:321 +msgid "Extension Management" +msgstr "" + +#: src/views/apps/php/PhpView.vue:322 +msgid "Extension List" +msgstr "" + +#: src/views/apps/php/PhpView.vue:334 +#: src/views/apps/postgresql/IndexView.vue:185 +#: src/views/apps/redis/IndexView.vue:147 +#: src/views/apps/supervisor/IndexView.vue:439 +msgid "Main Configuration" +msgstr "" + +#: src/views/apps/php/PhpView.vue:337 +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:353 +msgid "FPM Configuration" +msgstr "" + +#: src/views/apps/php/PhpView.vue:356 +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:388 +#: src/views/apps/postgresql/IndexView.vue:236 +msgid "Slow Logs" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:73 +msgid "Access Information" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:75 +msgid "Access URL:" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:78 +msgid "Modify Port" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:80 +msgid "Modify phpMyAdmin access port" +msgstr "" + +#: src/views/apps/phpmyadmin/IndexView.vue:87 +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/phpmyadmin/route.ts:17 +msgid "phpMyAdmin" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:111 +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:136 +msgid "Are you sure you want to stop Podman?" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:147 +msgid "Registry Configuration" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:150 +msgid "" +"This modifies the Podman registry configuration file (/etc/containers/" +"registries.conf)" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:166 +msgid "Storage Configuration" +msgstr "" + +#: src/views/apps/podman/IndexView.vue:169 +msgid "" +"This modifies the Podman storage configuration file (/etc/containers/" +"storage.conf)" +msgstr "" + +#: src/views/apps/podman/route.ts:17 +msgid "Podman" +msgstr "" + +#: src/views/apps/postgresql/IndexView.vue:170 +msgid "" +"Stopping PostgreSQL will cause websites using PostgreSQL to become " +"inaccessible. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/postgresql/IndexView.vue:188 +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:204 +msgid "User Configuration" +msgstr "" + +#: src/views/apps/postgresql/IndexView.vue:207 +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/postgresql/route.ts:17 +msgid "PostgreSQL" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:41 +#: src/views/apps/pureftpd/IndexView.vue:294 +#: src/views/container/ImageView.vue:197 +#: src/views/database/CreateDatabaseModal.vue:89 +#: src/views/database/CreateServerModal.vue:94 +#: src/views/database/CreateUserModal.vue:70 +#: src/views/database/ServerList.vue:47 +#: src/views/database/UpdateServerModal.vue:86 +#: src/views/database/UserList.vue:40 src/views/login/IndexView.vue:113 +#: src/views/setting/SettingBase.vue:65 src/views/ssh/CreateModal.vue:83 +#: src/views/ssh/UpdateModal.vue:89 +msgid "Username" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:75 +#: src/views/apps/pureftpd/IndexView.vue:327 +msgid "Change Password" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:86 +msgid "Are you sure you want to delete user %{ username }?" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:146 +msgid "Auto-start enabled successfully" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:149 +msgid "Auto-start disabled successfully" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:218 +msgid "Add User" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:227 +msgid "Auto-start On" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:228 +msgid "Auto-start Off" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:247 +msgid "" +"Stopping Pure-Ftpd will cause FTP service to be unavailable. Are you sure " +"you want to stop it?" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:256 +msgid "Port Settings" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:258 +msgid "Modify Pure-Ftpd listening port" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:262 +msgid "User Management" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:263 +msgid "User List" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:286 +msgid "Run Log" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:291 +#: src/views/apps/pureftpd/IndexView.vue:292 +#: src/views/database/CreateDatabaseModal.vue:78 +#: src/views/database/CreateUserModal.vue:54 +#: src/views/database/IndexView.vue:36 +msgid "Create User" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:299 +#: src/views/container/ImageView.vue:202 +#: src/views/database/CreateDatabaseModal.vue:94 +#: src/views/database/CreateUserModal.vue:75 +msgid "Enter username" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:302 +#: src/views/apps/pureftpd/IndexView.vue:331 +#: src/views/container/ImageView.vue:205 +#: src/views/database/CreateDatabaseModal.vue:97 +#: src/views/database/CreateServerModal.vue:102 +#: src/views/database/CreateUserModal.vue:78 +#: src/views/database/ServerList.vue:56 +#: src/views/database/UpdateServerModal.vue:94 +#: src/views/database/UpdateUserModal.vue:49 src/views/database/UserList.vue:50 +#: src/views/login/IndexView.vue:121 src/views/setting/SettingBase.vue:68 +#: src/views/ssh/CreateModal.vue:77 src/views/ssh/CreateModal.vue:86 +#: src/views/ssh/UpdateModal.vue:83 src/views/ssh/UpdateModal.vue:92 +msgid "Password" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:308 +#: src/views/apps/pureftpd/IndexView.vue:336 +msgid "It is recommended to use the generator to generate a random password" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:311 +#: src/views/container/ComposeView.vue:38 src/views/website/IndexView.vue:44 +#: src/views/website/IndexView.vue:504 +msgid "Directory" +msgstr "" + +#: src/views/apps/pureftpd/IndexView.vue:316 +msgid "Enter the directory authorized to the user" +msgstr "" + +#: src/views/apps/pureftpd/route.ts:17 +msgid "Pure-FTPd" +msgstr "" + +#: src/views/apps/redis/IndexView.vue:136 +msgid "" +"Stopping Redis will cause websites using Redis to become inaccessible. Are " +"you sure you want to stop?" +msgstr "" + +#: src/views/apps/redis/IndexView.vue:150 +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/redis/route.ts:17 +msgid "Redis" +msgstr "" + +#: src/views/apps/rsync/route.ts:17 +msgid "Rsync" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:25 +msgid "Mount Path" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:47 +msgid "Are you sure you want to delete mount %{ path }?" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:57 +msgid "Unmount" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:104 src/views/apps/s3fs/IndexView.vue:130 +#: src/views/apps/s3fs/IndexView.vue:131 +msgid "Add Mount" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:107 +msgid "Mount List" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:138 +msgid "Enter Bucket name (COS format: xxxx-ID)" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:146 +msgid "Enter AK key" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:154 +msgid "Enter SK key" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:157 +msgid "Region Endpoint" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:162 +msgid "" +"Enter complete URL of region endpoint (e.g., https://oss-cn-" +"beijing.aliyuncs.com)" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:165 +msgid "Mount Directory" +msgstr "" + +#: src/views/apps/s3fs/IndexView.vue:170 +msgid "Enter mount directory (e.g., /oss)" +msgstr "" + +#: src/views/apps/s3fs/route.ts:17 +msgid "S3FS" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:80 +msgid "Uptime" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:103 +#: src/views/container/ContainerView.vue:103 +#: src/views/container/ContainerView.vue:439 src/views/task/CronView.vue:122 +#: src/views/task/TaskView.vue:75 +msgid "Logs" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:116 +msgid "Configure" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:144 +msgid "Are you sure you want to stop process %{ name }?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:171 +msgid "Are you sure you want to restart process %{ name }?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:197 +msgid "Are you sure you want to delete process %{ name }?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:371 +#: src/views/apps/supervisor/IndexView.vue:469 +msgid "Add Process" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:404 +msgid "" +"Stopping Supervisor will cause all processes managed by Supervisor to be " +"killed. Are you sure you want to stop?" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:415 +msgid "Process Management" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:416 +msgid "Process List" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:442 +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:461 +msgid "Daemon Logs" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:482 +msgid "Name cannot contain Chinese characters" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:485 +msgid "Start Command" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:490 +msgid "Please enter absolute path for files in start command" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:493 +msgid "Working Directory" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:498 +msgid "Please enter absolute path for working directory" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:501 +msgid "Run As User" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:506 +msgid "Usually www is sufficient" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:509 +msgid "Number of Processes" +msgstr "" + +#: src/views/apps/supervisor/IndexView.vue:519 +msgid "Process Configuration" +msgstr "" + +#: src/views/apps/supervisor/route.ts:17 +msgid "Supervisor" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:87 +#: src/views/database/ServerList.vue:148 +msgid "Synchronized successfully" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:118 src/views/cert/AccountView.vue:102 +#: src/views/cert/CertView.vue:290 src/views/cert/DnsView.vue:86 +#: src/views/database/ServerList.vue:185 src/views/database/UserList.vue:170 +#: src/views/file/PermissionModal.vue:123 +msgid "Modify" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:124 +msgid "DNS modifications will revert to default after system restart." +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:138 +msgid "Total %{ total }, used %{ used }, free %{ free }" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:141 +#: src/views/dashboard/IndexView.vue:578 +msgid "SWAP Size" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:148 +#: src/views/database/CreateDatabaseModal.vue:106 +#: src/views/database/CreateServerModal.vue:73 +#: src/views/database/ServerList.vue:87 +#: src/views/database/UpdateServerModal.vue:65 +#: src/views/database/UserList.vue:81 src/views/ssh/CreateModal.vue:62 +#: src/views/ssh/UpdateModal.vue:68 +msgid "Host" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:151 +msgid "Hostname" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:169 +msgid "Time" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:171 +msgid "" +"After manually changing the time, it may still be overwritten by system " +"automatic time synchronization." +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:173 +msgid "Select Timezone" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:174 +msgid "Please select a timezone" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:176 +msgid "Modify Time" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:179 +msgid "NTP Time Synchronization" +msgstr "" + +#: src/views/apps/toolbox/IndexView.vue:180 +msgid "Synchronize Time" +msgstr "" + +#: src/views/apps/toolbox/route.ts:17 +msgid "Toolbox" +msgstr "" + #: src/views/backup/ListView.vue:36 msgid "Filename" msgstr "" @@ -191,25 +1574,6 @@ msgstr "" msgid "Are you sure you want to delete this backup?" msgstr "" -#: src/views/backup/ListView.vue:99 src/views/cert/AccountView.vue:128 -#: src/views/cert/CertView.vue:316 src/views/cert/DnsView.vue:112 -#: src/views/container/ComposeView.vue:208 -#: src/views/container/ContainerCreate.vue:229 -#: src/views/container/ContainerCreate.vue:276 -#: src/views/container/ContainerView.vue:157 -#: src/views/container/ContainerView.vue:411 -#: src/views/container/ImageView.vue:95 src/views/container/NetworkView.vue:135 -#: src/views/container/VolumeView.vue:89 src/views/database/DatabaseList.vue:99 -#: src/views/database/ServerList.vue:218 src/views/database/UserList.vue:192 -#: src/views/file/ListTable.vue:81 src/views/file/ListTable.vue:285 -#: src/views/file/SearchModal.vue:98 src/views/file/ToolBar.vue:238 -#: src/views/firewall/ForwardView.vue:105 src/views/firewall/IpRuleView.vue:147 -#: src/views/firewall/RuleView.vue:184 src/views/ssh/IndexView.vue:93 -#: src/views/task/CronView.vue:157 src/views/task/TaskView.vue:99 -#: src/views/website/IndexView.vue:169 -msgid "Delete" -msgstr "" - #: src/views/backup/ListView.vue:126 src/views/cert/CreateAccountModal.vue:49 #: src/views/cert/CreateCertModal.vue:50 src/views/cert/CreateDnsModal.vue:35 #: src/views/cert/UploadCertModal.vue:21 @@ -233,19 +1597,6 @@ msgstr "" msgid "Restored successfully" msgstr "" -#: src/views/backup/ListView.vue:149 src/views/database/DatabaseList.vue:124 -#: src/views/database/ServerList.vue:243 src/views/database/UserList.vue:217 -#: src/views/file/ListTable.vue:268 src/views/file/ListTable.vue:595 -#: src/views/file/SearchModal.vue:81 src/views/file/ToolBar.vue:189 -#: src/views/firewall/ForwardView.vue:132 -#: src/views/firewall/ForwardView.vue:150 src/views/firewall/IpRuleView.vue:174 -#: src/views/firewall/IpRuleView.vue:192 src/views/firewall/RuleView.vue:211 -#: src/views/firewall/RuleView.vue:229 src/views/task/CronView.vue:200 -#: src/views/task/TaskView.vue:125 src/views/website/IndexView.vue:270 -#: src/views/website/IndexView.vue:324 -msgid "Deleted successfully" -msgstr "" - #: src/views/backup/ListView.vue:182 src/views/backup/ListView.vue:209 msgid "Create Backup" msgstr "" @@ -320,12 +1671,6 @@ msgstr "" msgid "Key Type" msgstr "" -#: src/views/cert/AccountView.vue:102 src/views/cert/CertView.vue:290 -#: src/views/cert/DnsView.vue:86 src/views/database/ServerList.vue:185 -#: src/views/database/UserList.vue:170 src/views/file/PermissionModal.vue:123 -msgid "Modify" -msgstr "" - #: src/views/cert/AccountView.vue:110 src/views/cert/CertView.vue:299 #: src/views/cert/DnsView.vue:95 msgid "Deletion successful" @@ -404,14 +1749,6 @@ msgstr "" msgid "None" msgstr "" -#: src/views/cert/CertView.vue:87 src/views/cert/DnsView.vue:38 -#: src/views/cert/ObtainModal.vue:54 -#: src/views/database/CreateServerModal.vue:63 -#: src/views/database/DatabaseList.vue:12 src/views/database/ServerList.vue:17 -#: src/views/database/UserList.vue:17 -msgid "Type" -msgstr "" - #: src/views/cert/CertView.vue:109 src/views/file/ToolBar.vue:221 #: src/views/file/UploadModal.vue:38 msgid "Upload" @@ -454,10 +1791,6 @@ msgstr "" msgid "Renew" msgstr "" -#: src/views/cert/CertView.vue:265 -msgid "View" -msgstr "" - #: src/views/cert/CertView.vue:305 msgid "Are you sure you want to delete the certificate?" msgstr "" @@ -771,30 +2104,6 @@ msgstr "" msgid "Issuance Mode" msgstr "" -#: 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/UpdateServerModal.vue:55 src/views/file/ListTable.vue:99 -#: src/views/file/SearchModal.vue:20 src/views/file/ToolBar.vue:257 -#: src/views/ssh/CreateModal.vue:57 src/views/ssh/UpdateModal.vue:63 -#: src/views/task/SystemView.vue:18 -msgid "Name" -msgstr "" - -#: src/views/container/ComposeView.vue:38 src/views/website/IndexView.vue:44 -#: src/views/website/IndexView.vue:504 -msgid "Directory" -msgstr "" - -#: 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/task/SystemView.vue:43 -#: src/views/task/TaskView.vue:22 -msgid "Status" -msgstr "" - #: src/views/container/ComposeView.vue:65 src/views/container/ImageView.vue:60 #: src/views/container/NetworkView.vue:100 #: src/views/container/VolumeView.vue:54 src/views/task/CronView.vue:84 @@ -826,12 +2135,6 @@ msgstr "" msgid "Force pull images" msgstr "" -#: src/views/container/ComposeView.vue:150 -#: src/views/container/ContainerView.vue:127 -#: src/views/container/ContainerView.vue:405 -msgid "Start" -msgstr "" - #: src/views/container/ComposeView.vue:162 #: src/views/container/ContainerView.vue:245 #: src/views/container/ContainerView.vue:316 @@ -842,12 +2145,6 @@ msgstr "" msgid "Are you sure you want to stop compose %{ name }?" msgstr "" -#: src/views/container/ComposeView.vue:179 -#: src/views/container/ContainerView.vue:132 -#: src/views/container/ContainerView.vue:406 -msgid "Stop" -msgstr "" - #: src/views/container/ComposeView.vue:191 #: src/views/container/ContainerView.vue:280 #: src/views/container/ContainerView.vue:358 @@ -875,12 +2172,6 @@ msgstr "" msgid "Compose" msgstr "" -#: src/views/container/ComposeView.vue:316 -#: src/views/container/ComposeView.vue:346 -#: src/views/container/ContainerCreate.vue:337 -msgid "Environment Variables" -msgstr "" - #: src/views/container/ComposeView.vue:320 #: src/views/container/ComposeView.vue:350 #: src/views/container/ContainerCreate.vue:341 @@ -1011,13 +2302,6 @@ msgstr "" msgid "Entrypoint" msgstr "" -#: src/views/container/ContainerCreate.vue:291 -#: src/views/dashboard/IndexView.vue:530 src/views/monitor/IndexView.vue:205 -#: src/views/monitor/IndexView.vue:216 src/views/monitor/IndexView.vue:238 -#: src/views/task/SystemView.vue:78 -msgid "Memory" -msgstr "" - #: src/views/container/ContainerCreate.vue:301 msgid "CPU Shares" msgstr "" @@ -1069,28 +2353,12 @@ msgstr "" msgid "Ports (Host->Container)" msgstr "" -#: src/views/container/ContainerView.vue:80 -msgid "Running Status" -msgstr "" - -#: src/views/container/ContainerView.vue:103 -#: src/views/container/ContainerView.vue:439 src/views/task/CronView.vue:122 -#: src/views/task/TaskView.vue:75 -msgid "Logs" -msgstr "" - #: src/views/container/ContainerView.vue:119 #: src/views/container/ContainerView.vue:462 src/views/file/ListTable.vue:80 #: src/views/file/ListTable.vue:260 msgid "Rename" msgstr "" -#: src/views/container/ContainerView.vue:137 -#: src/views/container/ContainerView.vue:407 -#: src/views/dashboard/IndexView.vue:444 -msgid "Restart" -msgstr "" - #: src/views/container/ContainerView.vue:142 #: src/views/container/ContainerView.vue:408 msgid "Force Stop" @@ -1216,37 +2484,6 @@ msgstr "" msgid "Authentication" msgstr "" -#: src/views/container/ImageView.vue:197 -#: src/views/database/CreateDatabaseModal.vue:89 -#: src/views/database/CreateServerModal.vue:94 -#: src/views/database/CreateUserModal.vue:70 -#: src/views/database/ServerList.vue:47 -#: src/views/database/UpdateServerModal.vue:86 -#: src/views/database/UserList.vue:40 src/views/login/IndexView.vue:113 -#: src/views/setting/SettingBase.vue:65 src/views/ssh/CreateModal.vue:83 -#: src/views/ssh/UpdateModal.vue:89 -msgid "Username" -msgstr "" - -#: src/views/container/ImageView.vue:202 -#: src/views/database/CreateDatabaseModal.vue:94 -#: src/views/database/CreateUserModal.vue:75 -msgid "Enter username" -msgstr "" - -#: src/views/container/ImageView.vue:205 -#: src/views/database/CreateDatabaseModal.vue:97 -#: src/views/database/CreateServerModal.vue:102 -#: src/views/database/CreateUserModal.vue:78 -#: src/views/database/ServerList.vue:56 -#: src/views/database/UpdateServerModal.vue:94 -#: src/views/database/UpdateUserModal.vue:49 src/views/database/UserList.vue:50 -#: src/views/login/IndexView.vue:121 src/views/setting/SettingBase.vue:68 -#: src/views/ssh/CreateModal.vue:77 src/views/ssh/CreateModal.vue:86 -#: src/views/ssh/UpdateModal.vue:83 src/views/ssh/UpdateModal.vue:92 -msgid "Password" -msgstr "" - #: src/views/container/ImageView.vue:211 #: src/views/database/CreateDatabaseModal.vue:103 #: src/views/database/CreateUserModal.vue:84 @@ -1375,10 +2612,6 @@ msgstr "" msgid "Running slowly" msgstr "" -#: src/views/dashboard/IndexView.vue:133 -msgid "Running normally" -msgstr "" - #: src/views/dashboard/IndexView.vue:135 msgid "Running smoothly" msgstr "" @@ -1415,10 +2648,6 @@ msgstr "" msgid "Resource Overview" msgstr "" -#: src/views/dashboard/IndexView.vue:459 -msgid "Load Status" -msgstr "" - #: src/views/dashboard/IndexView.vue:471 msgid "Last 1 minute" msgstr "" @@ -1479,10 +2708,6 @@ msgstr "" msgid "Commit Limit" msgstr "" -#: src/views/dashboard/IndexView.vue:578 -msgid "SWAP Size" -msgstr "" - #: src/views/dashboard/IndexView.vue:584 msgid "SWAP Used" msgstr "" @@ -1569,10 +2794,6 @@ msgstr "" msgid "Real-time Monitoring" msgstr "" -#: src/views/dashboard/IndexView.vue:795 src/views/dashboard/IndexView.vue:815 -msgid "Disk" -msgstr "" - #: src/views/dashboard/IndexView.vue:798 msgid "Unit" msgstr "" @@ -1689,12 +2910,6 @@ msgstr "" msgid "Select server" msgstr "" -#: src/views/database/CreateDatabaseModal.vue:78 -#: src/views/database/CreateUserModal.vue:54 -#: src/views/database/IndexView.vue:36 -msgid "Create User" -msgstr "" - #: src/views/database/CreateDatabaseModal.vue:81 msgid "Authorized User" msgstr "" @@ -1703,15 +2918,6 @@ msgstr "" msgid "Enter authorized username (leave empty for no authorization)" msgstr "" -#: src/views/database/CreateDatabaseModal.vue:106 -#: src/views/database/CreateServerModal.vue:73 -#: src/views/database/ServerList.vue:87 -#: src/views/database/UpdateServerModal.vue:65 -#: src/views/database/UserList.vue:81 src/views/ssh/CreateModal.vue:62 -#: src/views/ssh/UpdateModal.vue:68 -msgid "Host" -msgstr "" - #: src/views/database/CreateDatabaseModal.vue:110 #: src/views/database/CreateUserModal.vue:91 msgid "Select host" @@ -1727,10 +2933,6 @@ msgstr "" msgid "Enter supported host address" msgstr "" -#: src/views/database/CreateServerModal.vue:37 -msgid "Added successfully" -msgstr "" - #: src/views/database/CreateServerModal.vue:47 #: src/views/database/IndexView.vue:40 msgid "Add Server" @@ -1809,16 +3011,6 @@ msgstr "" msgid "Are you sure you want to delete this database?" msgstr "" -#: src/views/database/DatabaseList.vue:130 -#: src/views/database/ServerList.vue:249 -#: src/views/database/UpdateServerModal.vue:21 -#: src/views/database/UpdateUserModal.vue:18 -#: src/views/database/UserList.vue:223 src/views/file/PermissionModal.vue:29 -#: src/views/task/CronView.vue:182 src/views/task/CronView.vue:209 -#: src/views/website/IndexView.vue:253 src/views/website/IndexView.vue:279 -msgid "Modified successfully" -msgstr "" - #: src/views/database/IndexView.vue:48 src/views/task/SystemView.vue:37 msgid "User" msgstr "" @@ -1844,10 +3036,6 @@ msgstr "" msgid "Invalid" msgstr "" -#: src/views/database/ServerList.vue:148 -msgid "Synchronized successfully" -msgstr "" - #: src/views/database/ServerList.vue:154 msgid "" "Are you sure you want to synchronize database users (excluding password) to " @@ -1926,12 +3114,6 @@ msgstr "" msgid "Refresh" msgstr "" -#: src/views/file/EditModal.vue:31 src/views/file/ListTable.vue:703 -#: src/views/setting/SettingBase.vue:95 src/views/setting/SettingHttps.vue:56 -#: src/views/website/EditView.vue:211 -msgid "Save" -msgstr "" - #: src/views/file/ListTable.vue:64 src/views/file/ListTable.vue:218 msgid "Open" msgstr "" @@ -2456,11 +3638,6 @@ msgstr "" msgid "Panel Settings" msgstr "" -#: src/views/setting/SettingBase.vue:35 src/views/setting/SettingHttps.vue:27 -#: src/views/website/EditView.vue:115 -msgid "Saved successfully" -msgstr "" - #: src/views/setting/SettingBase.vue:53 msgid "" "Modifying panel port/entrance requires corresponding changes in the browser " @@ -2621,10 +3798,6 @@ msgstr "" msgid "PostgreSQL Database" msgstr "" -#: src/views/task/CreateModal.vue:140 src/views/task/CreateModal.vue:142 -msgid "Select Website" -msgstr "" - #: src/views/task/CreateModal.vue:153 msgid "Retention Count" msgstr "" @@ -2678,10 +3851,6 @@ msgstr "" msgid "Sleeping" msgstr "" -#: src/views/task/SystemView.vue:54 -msgid "Stopped" -msgstr "" - #: src/views/task/SystemView.vue:56 msgid "Idle" msgstr "" @@ -2754,10 +3923,6 @@ msgstr "" msgid "The selected certificate is invalid" msgstr "" -#: src/views/website/EditView.vue:160 -msgid "Cleared successfully" -msgstr "" - #: src/views/website/EditView.vue:178 msgid "" "If you modify the original text, other modifications will not take effect " @@ -2865,10 +4030,6 @@ msgstr "" msgid "Presets" msgstr "" -#: src/views/website/EditView.vue:388 -msgid "Configuration" -msgstr "" - #: src/views/website/EditView.vue:391 msgid "" "If you do not understand the configuration rules, please do not modify them " diff --git a/web/src/views/apps/benchmark/IndexView.vue b/web/src/views/apps/benchmark/IndexView.vue index c86c597f..a8336b13 100644 --- a/web/src/views/apps/benchmark/IndexView.vue +++ b/web/src/views/apps/benchmark/IndexView.vue @@ -5,9 +5,11 @@ defineOptions({ import benchmark from '@/api/apps/benchmark' import TheIcon from '@/components/custom/TheIcon.vue' +import { useGettext } from 'vue3-gettext' +const { $gettext } = useGettext() const inTest = ref(false) -const current = ref('CPU') +const current = ref($gettext('CPU')) const progress = ref(0) const tests = [ @@ -62,35 +64,35 @@ const cpuTotal = computed(() => { const memory = ref({ score: 0, - bandwidth: '待跑分', - latency: '待跑分' + bandwidth: $gettext('Pending benchmark'), + latency: $gettext('Pending benchmark') }) const disk = ref({ score: 0, 1024: { - read_iops: '待跑分', - read_speed: '待跑分', - write_iops: '待跑分', - write_speed: '待跑分' + read_iops: $gettext('Pending benchmark'), + read_speed: $gettext('Pending benchmark'), + write_iops: $gettext('Pending benchmark'), + write_speed: $gettext('Pending benchmark') }, 4: { - read_iops: '待跑分', - read_speed: '待跑分', - write_iops: '待跑分', - write_speed: '待跑分' + read_iops: $gettext('Pending benchmark'), + read_speed: $gettext('Pending benchmark'), + write_iops: $gettext('Pending benchmark'), + write_speed: $gettext('Pending benchmark') }, 512: { - read_iops: '待跑分', - read_speed: '待跑分', - write_iops: '待跑分', - write_speed: '待跑分' + read_iops: $gettext('Pending benchmark'), + read_speed: $gettext('Pending benchmark'), + write_iops: $gettext('Pending benchmark'), + write_speed: $gettext('Pending benchmark') }, 64: { - read_iops: '待跑分', - read_speed: '待跑分', - write_iops: '待跑分', - write_speed: '待跑分' + read_iops: $gettext('Pending benchmark'), + read_speed: $gettext('Pending benchmark'), + write_iops: $gettext('Pending benchmark'), + write_speed: $gettext('Pending benchmark') } }) @@ -123,10 +125,18 @@ const handleTest = async () => { - 跑分结果仅供参考,受系统资源调度和缓存等因素影响可能与实际性能有所偏差! + {{ + $gettext( + 'Benchmark results are for reference only and may differ from actual performance due to system resource scheduling, caching, and other factors!' + ) + }} - - 当前项目:{{ current }} + + {{ $gettext('Current project: %{ current }', { current: current }) }} @@ -138,12 +148,12 @@ const handleTest = async () => { - 图像处理 - 单核 {{ cpu.image.single }} / 多核 {{ cpu.image.multi }} + {{ $gettext('Image Processing') }} + + {{ + $gettext('Single-core %{ single } / Multi-core %{ multi }', { + single: cpu.image.single, + multi: cpu.image.multi + }) + }} + - 机器学习 - 单核 {{ cpu.machine.single }} / 多核 {{ cpu.machine.multi }} + {{ $gettext('Machine Learning') }} + + {{ + $gettext('Single-core %{ single } / Multi-core %{ multi }', { + single: cpu.machine.single, + multi: cpu.machine.multi + }) + }} + - 程序编译 - 单核 {{ cpu.compile.single }} / 多核 {{ cpu.compile.multi }} + {{ $gettext('Program Compilation') }} + + {{ + $gettext('Single-core %{ single } / Multi-core %{ multi }', { + single: cpu.compile.single, + multi: cpu.compile.multi + }) + }} + - AES 加密 - 单核 {{ cpu.encryption.single }} / 多核 {{ cpu.encryption.multi }} + {{ $gettext('AES Encryption') }} + + {{ + $gettext('Single-core %{ single } / Multi-core %{ multi }', { + single: cpu.encryption.single, + multi: cpu.encryption.multi + }) + }} + - 压缩/解压缩 - 单核 {{ cpu.compression.single }} / 多核 {{ cpu.compression.multi }} + {{ $gettext('Compression/Decompression') }} + + {{ + $gettext('Single-core %{ single } / Multi-core %{ multi }', { + single: cpu.compression.single, + multi: cpu.compression.multi + }) + }} + - 物理仿真 - 单核 {{ cpu.physics.single }} / 多核 {{ cpu.physics.multi }} + {{ $gettext('Physics Simulation') }} + + {{ + $gettext('Single-core %{ single } / Multi-core %{ multi }', { + single: cpu.physics.single, + multi: cpu.physics.multi + }) + }} + - JSON 解析 - 单核 {{ cpu.json.single }} / 多核 {{ cpu.json.multi }} + {{ $gettext('JSON Parsing') }} + + {{ + $gettext('Single-core %{ single } / Multi-core %{ multi }', { + single: cpu.json.single, + multi: cpu.json.multi + }) + }} + @@ -194,7 +253,7 @@ const handleTest = async () => {
-
待跑分
+
{{ $gettext('Pending benchmark') }}
{ > - 内存 + {{ $gettext('Memory') }} - 内存带宽 + {{ $gettext('Memory Bandwidth') }} {{ memory.bandwidth }} - 内存延迟 + {{ $gettext('Memory Latency') }} {{ memory.latency }} @@ -225,7 +284,7 @@ const handleTest = async () => {
-
待跑分
+
{{ $gettext('Pending benchmark') }}
{ > - 硬盘 + {{ $gettext('Disk') }} - 4KB 读取 - 速度 {{ disk['4'].read_speed }} / {{ disk['4'].read_iops }} IOPS + {{ $gettext('4KB Read') }} + + {{ + $gettext('Speed %{ speed } / %{ iops } IOPS', { + speed: disk['4'].read_speed, + iops: disk['4'].read_iops + }) + }} + - 4KB 写入 - 速度 {{ disk['4'].write_speed }} / {{ disk['4'].write_iops }} IOPS + {{ $gettext('4KB Write') }} + + {{ + $gettext('Speed %{ speed } / %{ iops } IOPS', { + speed: disk['4'].write_speed, + iops: disk['4'].write_iops + }) + }} + - 64KB 读取 - 速度 {{ disk['64'].read_speed }} / {{ disk['64'].read_iops }} IOPS + {{ $gettext('64KB Read') }} + + {{ + $gettext('Speed %{ speed } / %{ iops } IOPS', { + speed: disk['64'].read_speed, + iops: disk['64'].read_iops + }) + }} + - 64KB 写入 - 速度 {{ disk['64'].write_speed }} / {{ disk['64'].write_iops }} IOPS + {{ $gettext('64KB Write') }} + + {{ + $gettext('Speed %{ speed } / %{ iops } IOPS', { + speed: disk['64'].write_speed, + iops: disk['64'].write_iops + }) + }} + - 512KB 读取 - 速度 {{ disk['512'].read_speed }} / {{ disk['512'].read_iops }} IOPS + {{ $gettext('512KB Read') }} + + {{ + $gettext('Speed %{ speed } / %{ iops } IOPS', { + speed: disk['512'].read_speed, + iops: disk['512'].read_iops + }) + }} + - 512KB 写入 - 速度 {{ disk['512'].write_speed }} / {{ disk['512'].write_iops }} IOPS + {{ $gettext('512KB Write') }} + + {{ + $gettext('Speed %{ speed } / %{ iops } IOPS', { + speed: disk['512'].write_speed, + iops: disk['512'].write_iops + }) + }} + - 1MB 读取 - 速度 {{ disk['1024'].read_speed }} / {{ disk['1024'].read_iops }} IOPS + {{ $gettext('1MB Read') }} + + {{ + $gettext('Speed %{ speed } / %{ iops } IOPS', { + speed: disk['1024'].read_speed, + iops: disk['1024'].read_iops + }) + }} + - 1MB 写入 - 速度 {{ disk['1024'].write_speed }} / {{ disk['1024'].write_iops }} IOPS + {{ $gettext('1MB Write') }} + + {{ + $gettext('Speed %{ speed } / %{ iops } IOPS', { + speed: disk['1024'].write_speed, + iops: disk['1024'].write_iops + }) + }} + @@ -284,7 +399,7 @@ const handleTest = async () => { mt-40 w-200 > - {{ inTest ? '跑分中...' : '开始跑分' }} + {{ inTest ? $gettext('Benchmarking...') : $gettext('Start Benchmark') }}
diff --git a/web/src/views/apps/benchmark/route.ts b/web/src/views/apps/benchmark/route.ts index 01cbc0dd..450929a4 100644 --- a/web/src/views/apps/benchmark/route.ts +++ b/web/src/views/apps/benchmark/route.ts @@ -1,4 +1,5 @@ import type { RouteType } from '~/types/router' +import { $gettext } from '@/utils/gettext' const Layout = () => import('@/layout/IndexView.vue') @@ -13,7 +14,7 @@ export default { path: '', component: () => import('./IndexView.vue'), meta: { - title: '耗子跑分', + title: $gettext('Rat Benchmark'), icon: 'dashicons:performance', role: ['admin'], requireAuth: true diff --git a/web/src/views/apps/docker/IndexView.vue b/web/src/views/apps/docker/IndexView.vue index bec2d2e9..40850246 100644 --- a/web/src/views/apps/docker/IndexView.vue +++ b/web/src/views/apps/docker/IndexView.vue @@ -5,10 +5,12 @@ defineOptions({ import Editor from '@guolao/vue-monaco-editor' import { NButton, NPopconfirm } from 'naive-ui' +import { useGettext } from 'vue3-gettext' import docker from '@/api/apps/docker' import systemctl from '@/api/panel/systemctl' +const { $gettext } = useGettext() const currentTab = ref('status') const status = ref(false) const isEnabled = ref(false) @@ -20,7 +22,7 @@ const { data: config } = useRequest(docker.getConfig, { }) const statusStr = computed(() => { - return status.value ? '正常运行中' : '已停止运行' + return status.value ? $gettext('Running normally') : $gettext('Stopped') }) const getStatus = async () => { @@ -33,27 +35,27 @@ const getIsEnabled = async () => { const handleSaveConfig = () => { useRequest(docker.updateConfig(config.value)).onSuccess(() => { - window.$message.success('保存成功') + window.$message.success($gettext('Saved successfully')) }) } const handleStart = () => { useRequest(systemctl.start('docker')).onSuccess(() => { - window.$message.success('启动成功') + window.$message.success($gettext('Started successfully')) getStatus() }) } const handleStop = () => { useRequest(systemctl.stop('docker')).onSuccess(() => { - window.$message.success('停止成功') + window.$message.success($gettext('Stopped successfully')) getStatus() }) } const handleRestart = () => { useRequest(systemctl.restart('docker')).onSuccess(() => { - window.$message.success('重启成功') + window.$message.success($gettext('Restarted successfully')) getStatus() }) } @@ -61,10 +63,10 @@ const handleRestart = () => { const handleIsEnabled = async () => { if (isEnabled.value) { await systemctl.enable('docker') - window.$message.success('开启自启动成功') + window.$message.success($gettext('Autostart enabled successfully')) } else { await systemctl.disable('docker') - window.$message.success('禁用自启动成功') + window.$message.success($gettext('Autostart disabled successfully')) } await getIsEnabled() } @@ -85,17 +87,17 @@ onMounted(() => { @click="handleSaveConfig" > - 保存 + {{ $gettext('Save') }} - + - + @@ -105,30 +107,30 @@ onMounted(() => { - 启动 + {{ $gettext('Start') }} - 确定要停止 Docker 吗? + {{ $gettext('Are you sure you want to stop Docker?') }} - 重启 + {{ $gettext('Restart') }} - + - 此处修改的是 Docker 配置文件(/etc/docker/daemon.json) + {{ $gettext('This modifies the Docker configuration file (/etc/docker/daemon.json)') }} { /> - + diff --git a/web/src/views/apps/docker/route.ts b/web/src/views/apps/docker/route.ts index 55cd9d93..08372357 100644 --- a/web/src/views/apps/docker/route.ts +++ b/web/src/views/apps/docker/route.ts @@ -1,4 +1,5 @@ import type { RouteType } from '~/types/router' +import { $gettext } from '@/utils/gettext' const Layout = () => import('@/layout/IndexView.vue') @@ -13,7 +14,7 @@ export default { path: '', component: () => import('./IndexView.vue'), meta: { - title: 'Docker', + title: $gettext('Docker'), icon: 'logos:docker-icon', role: ['admin'], requireAuth: true diff --git a/web/src/views/apps/fail2ban/IndexView.vue b/web/src/views/apps/fail2ban/IndexView.vue index e6892c37..78fa0d8e 100644 --- a/web/src/views/apps/fail2ban/IndexView.vue +++ b/web/src/views/apps/fail2ban/IndexView.vue @@ -4,6 +4,7 @@ defineOptions({ }) import { NButton, NDataTable, NInput, NPopconfirm, NSwitch } from 'naive-ui' +import { useGettext } from 'vue3-gettext' import fail2ban from '@/api/apps/fail2ban' import app from '@/api/panel/app' @@ -11,6 +12,7 @@ import systemctl from '@/api/panel/systemctl' import website from '@/api/panel/website' import { renderIcon } from '@/utils' +const { $gettext } = useGettext() const currentTab = ref('status') const status = ref(false) const isEnabled = ref(false) @@ -37,18 +39,18 @@ const statusType = computed(() => { return status.value ? 'success' : 'error' }) const statusStr = computed(() => { - return status.value ? '正常运行中' : '已停止运行' + return status.value ? $gettext('Running normally') : $gettext('Stopped') }) const jailsColumns: any = [ { - title: '名称', + title: $gettext('Name'), key: 'name', minWidth: 250, ellipsis: { tooltip: true } }, { - title: '状态', + title: $gettext('Status'), key: 'enabled', minWidth: 60, align: 'center', @@ -61,11 +63,11 @@ const jailsColumns: any = [ }) } }, - { title: '最大尝试', key: 'max_retry', minWidth: 150, ellipsis: { tooltip: true } }, - { title: '封禁时间', key: 'ban_time', minWidth: 150, ellipsis: { tooltip: true } }, - { title: '周期', key: 'find_time', minWidth: 150, ellipsis: { tooltip: true } }, + { title: $gettext('Max Retries'), key: 'max_retry', minWidth: 150, ellipsis: { tooltip: true } }, + { title: $gettext('Ban Time'), key: 'ban_time', minWidth: 150, ellipsis: { tooltip: true } }, + { title: $gettext('Find Time'), key: 'find_time', minWidth: 150, ellipsis: { tooltip: true } }, { - title: '操作', + title: $gettext('Actions'), key: 'actions', width: 280, align: 'center', @@ -84,7 +86,7 @@ const jailsColumns: any = [ } }, { - default: () => '查看', + default: () => $gettext('View'), icon: renderIcon('material-symbols:visibility', { size: 14 }) } ), @@ -95,7 +97,7 @@ const jailsColumns: any = [ }, { default: () => { - return '确定删除规则' + row.name + '吗?' + return $gettext('Are you sure you want to delete rule %{ name }?', { name: row.name }) }, trigger: () => { return h( @@ -106,7 +108,7 @@ const jailsColumns: any = [ style: 'margin-left: 15px' }, { - default: () => '删除', + default: () => $gettext('Delete'), icon: renderIcon('material-symbols:delete-outline', { size: 14 }) } ) @@ -127,7 +129,7 @@ const banedIPColumns: any = [ ellipsis: { tooltip: true } }, { - title: '操作', + title: $gettext('Actions'), key: 'actions', width: 100, align: 'center', @@ -141,7 +143,7 @@ const banedIPColumns: any = [ }, { default: () => { - return '确定解封' + row.ip + '吗?' + return $gettext('Are you sure you want to unban %{ ip }?', { ip: row.ip }) }, trigger: () => { return h( @@ -151,7 +153,7 @@ const banedIPColumns: any = [ type: 'error' }, { - default: () => '解封', + default: () => $gettext('Unban'), icon: renderIcon('material-symbols:delete-outline', { size: 14 }) } ) @@ -171,7 +173,7 @@ const getWhiteList = async () => { const handleSaveWhiteList = () => { useRequest(fail2ban.setWhitelist(white.value)).onSuccess(() => { - window.$message.success('保存成功') + window.$message.success($gettext('Saved successfully')) }) } @@ -206,43 +208,43 @@ const getIsEnabled = async () => { const handleStart = async () => { await systemctl.start('fail2ban') - window.$message.success('启动成功') + window.$message.success($gettext('Started successfully')) await getStatus() } const handleIsEnabled = async () => { if (isEnabled.value) { await systemctl.enable('fail2ban') - window.$message.success('开启自启动成功') + window.$message.success($gettext('Autostart enabled successfully')) } else { await systemctl.disable('fail2ban') - window.$message.success('禁用自启动成功') + window.$message.success($gettext('Autostart disabled successfully')) } await getIsEnabled() } const handleStop = async () => { await systemctl.stop('fail2ban') - window.$message.success('停止成功') + window.$message.success($gettext('Stopped successfully')) await getStatus() } const handleRestart = async () => { await systemctl.restart('fail2ban') - window.$message.success('重启成功') + window.$message.success($gettext('Restarted successfully')) await getStatus() } const handleReload = async () => { await systemctl.reload('fail2ban') - window.$message.success('重载成功') + window.$message.success($gettext('Reloaded successfully')) await getStatus() } const handleAddJail = () => { useRequest(fail2ban.add(addJailModel.value)).onSuccess(() => { refresh() - window.$message.success('添加成功') + window.$message.success($gettext('Added successfully')) addJailModal.value = false }) } @@ -250,7 +252,7 @@ const handleAddJail = () => { const handleDeleteJail = (name: string) => { useRequest(fail2ban.delete(name)).onSuccess(() => { refresh() - window.$message.success('删除成功') + window.$message.success($gettext('Deleted successfully')) }) } @@ -263,7 +265,7 @@ const getJailInfo = async (name: string) => { const handleUnBan = (name: string, ip: string) => { useRequest(fail2ban.unban(name, ip)).onSuccess(() => { - window.$message.success('解封成功') + window.$message.success($gettext('Unbanned successfully')) getJailInfo(name) }) } @@ -291,7 +293,7 @@ onMounted(() => { @click="handleSaveWhiteList" > - 保存白名单 + {{ $gettext('Save Whitelist') }} { @click="addJailModal = true" > - 添加规则 + {{ $gettext('Add Rule') }} - + - + @@ -320,40 +322,40 @@ onMounted(() => { - 启动 + {{ $gettext('Start') }} - 停止 Fail2ban 会导致所有规则失效,确定停止吗? + {{ $gettext('Stopping Fail2ban will disable all rules. Are you sure you want to stop?') }} - 重启 + {{ $gettext('Restart') }} - 重载 + {{ $gettext('Reload') }} - + - - + + { /> - + - - + + - 在设置周期内(秒)有超过最大重试(次)的IP访问,将禁止该IP禁止时间(秒) + {{ $gettext('If an IP exceeds the maximum retries within the find time (seconds), it will be banned for the ban time (seconds)') }} - 防护端口自动获取,如果修改了规则项对应的端口,请删除重新添加,否则防护可能不会生效 + {{ $gettext('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') }} - + - + - + - + - + + - + - + - 提交 + {{ $gettext('Submit') }} - - + + - + - 当前封禁 + {{ $gettext('Currently Banned') }} {{ jailCurrentlyBan }} - 总封禁 + {{ $gettext('Total Bans') }} {{ jailTotalBan }} - + import('@/layout/IndexView.vue') @@ -13,7 +14,7 @@ export default { path: '', component: () => import('./IndexView.vue'), meta: { - title: 'Fail2ban', + title: $gettext('Fail2ban'), icon: 'mdi:wall-fire', role: ['admin'], requireAuth: true diff --git a/web/src/views/apps/frp/IndexView.vue b/web/src/views/apps/frp/IndexView.vue index 4a2242a4..715f370a 100644 --- a/web/src/views/apps/frp/IndexView.vue +++ b/web/src/views/apps/frp/IndexView.vue @@ -5,10 +5,12 @@ defineOptions({ import Editor from '@guolao/vue-monaco-editor' import { NButton, NPopconfirm } from 'naive-ui' +import { useGettext } from 'vue3-gettext' import frp from '@/api/apps/frp' import systemctl from '@/api/panel/systemctl' +const { $gettext } = useGettext() const currentTab = ref('frps') const status = ref({ frpc: false, @@ -25,8 +27,8 @@ const config = ref({ const statusStr = computed(() => { return { - frpc: status.value.frpc ? '正常运行中' : '已停止运行', - frps: status.value.frps ? '正常运行中' : '已停止运行' + frpc: status.value.frpc ? $gettext('Running normally') : $gettext('Stopped'), + frps: status.value.frps ? $gettext('Running normally') : $gettext('Stopped') } }) @@ -48,36 +50,36 @@ const getConfig = async () => { const handleSaveConfig = (service: string) => { useRequest(frp.saveConfig(service, config.value[service as keyof typeof config.value])).onSuccess( () => { - window.$message.success('保存成功') + window.$message.success($gettext('Saved successfully')) } ) } const handleStart = async (name: string) => { await systemctl.start(name) - window.$message.success('启动成功') + window.$message.success($gettext('Started successfully')) await getStatus() } const handleStop = async (name: string) => { await systemctl.stop(name) - window.$message.success('停止成功') + window.$message.success($gettext('Stopped successfully')) await getStatus() } const handleRestart = async (name: string) => { await systemctl.restart(name) - window.$message.success('重启成功') + window.$message.success($gettext('Restarted successfully')) await getStatus() } const handleIsEnabled = async (name: string) => { if (isEnabled.value[name as keyof typeof isEnabled.value]) { await systemctl.enable(name) - window.$message.success('开启自启动成功') + window.$message.success($gettext('Autostart enabled successfully')) } else { await systemctl.disable(name) - window.$message.success('禁用自启动成功') + window.$message.success($gettext('Autostart disabled successfully')) } await getIsEnabled() } @@ -94,11 +96,11 @@ onMounted(() => { - + @@ -108,29 +110,29 @@ onMounted(() => { - 启动 + {{ $gettext('Start') }} - 确定要停止 Frps 吗? + {{ $gettext('Are you sure you want to stop Frps?') }} - 重启 + {{ $gettext('Restart') }} - + { - + @@ -164,29 +166,29 @@ onMounted(() => { - 启动 + {{ $gettext('Start') }} - 确定要停止 Frpc 吗? + {{ $gettext('Are you sure you want to stop Frpc?') }} - 重启 + {{ $gettext('Restart') }} - + import('@/layout/IndexView.vue') @@ -13,7 +14,7 @@ export default { path: '', component: () => import('./IndexView.vue'), meta: { - title: 'Frp', + title: $gettext('Frp'), icon: 'icon-park-outline:connection-box', role: ['admin'], requireAuth: true diff --git a/web/src/views/apps/gitea/IndexView.vue b/web/src/views/apps/gitea/IndexView.vue index 5f424128..a154beec 100644 --- a/web/src/views/apps/gitea/IndexView.vue +++ b/web/src/views/apps/gitea/IndexView.vue @@ -5,17 +5,19 @@ defineOptions({ import Editor from '@guolao/vue-monaco-editor' import { NButton, NPopconfirm } from 'naive-ui' +import { useGettext } from 'vue3-gettext' import gitea from '@/api/apps/gitea' import systemctl from '@/api/panel/systemctl' +const { $gettext } = useGettext() const currentTab = ref('status') const status = ref(false) const isEnabled = ref(false) const config = ref('') const statusStr = computed(() => { - return status.value ? '正常运行中' : '已停止运行' + return status.value ? $gettext('Running normally') : $gettext('Stopped') }) const getStatus = async () => { @@ -32,35 +34,35 @@ const getConfig = async () => { const handleSaveConfig = () => { useRequest(gitea.saveConfig(config.value)).onSuccess(() => { - window.$message.success('保存成功') + window.$message.success($gettext('Saved successfully')) }) } const handleStart = async () => { await systemctl.start('gitea') - window.$message.success('启动成功') + window.$message.success($gettext('Started successfully')) await getStatus() } const handleStop = async () => { await systemctl.stop('gitea') - window.$message.success('停止成功') + window.$message.success($gettext('Stopped successfully')) await getStatus() } const handleRestart = async () => { await systemctl.restart('gitea') - window.$message.success('重启成功') + window.$message.success($gettext('Restarted successfully')) await getStatus() } const handleIsEnabled = async () => { if (isEnabled.value) { await systemctl.enable('gitea') - window.$message.success('开启自启动成功') + window.$message.success($gettext('Autostart enabled successfully')) } else { await systemctl.disable('gitea') - window.$message.success('禁用自启动成功') + window.$message.success($gettext('Autostart disabled successfully')) } await getIsEnabled() } @@ -82,16 +84,16 @@ onMounted(() => { @click="handleSaveConfig" > - 保存 + {{ $gettext('Save') }} - - + + @@ -101,29 +103,29 @@ onMounted(() => { - 启动 + {{ $gettext('Start') }} - 确定要停止 Gitea 吗? + {{ $gettext('Are you sure you want to stop Gitea?') }} - 重启 + {{ $gettext('Restart') }} - + - 此处修改的是 Gitea 配置文件,如果您不了解各参数的含义,请不要随意修改! + {{ $gettext('This modifies the Gitea configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!') }} { /> - + diff --git a/web/src/views/apps/gitea/route.ts b/web/src/views/apps/gitea/route.ts index 90690cd8..66753dd5 100644 --- a/web/src/views/apps/gitea/route.ts +++ b/web/src/views/apps/gitea/route.ts @@ -1,4 +1,5 @@ import type { RouteType } from '~/types/router' +import { $gettext } from '@/utils/gettext' const Layout = () => import('@/layout/IndexView.vue') @@ -13,7 +14,7 @@ export default { path: '', component: () => import('./IndexView.vue'), meta: { - title: 'Gitea', + title: $gettext('Gitea'), icon: 'simple-icons:gitea', role: ['admin'], requireAuth: true diff --git a/web/src/views/apps/memcached/IndexView.vue b/web/src/views/apps/memcached/IndexView.vue index b8b55bc6..d9924527 100644 --- a/web/src/views/apps/memcached/IndexView.vue +++ b/web/src/views/apps/memcached/IndexView.vue @@ -5,10 +5,12 @@ defineOptions({ import Editor from '@guolao/vue-monaco-editor' import { NButton, NDataTable, NPopconfirm } from 'naive-ui' +import { useGettext } from 'vue3-gettext' import memcached from '@/api/apps/memcached' import systemctl from '@/api/panel/systemctl' +const { $gettext } = useGettext() const currentTab = ref('status') const status = ref(false) const isEnabled = ref(false) @@ -17,19 +19,19 @@ const statusType = computed(() => { return status.value ? 'success' : 'error' }) const statusStr = computed(() => { - return status.value ? '正常运行中' : '已停止运行' + return status.value ? $gettext('Running normally') : $gettext('Stopped') }) const loadColumns: any = [ { - title: '属性', + title: $gettext('Property'), key: 'name', minWidth: 200, resizable: true, ellipsis: { tooltip: true } }, { - title: '当前值', + title: $gettext('Current Value'), key: 'value', minWidth: 200, ellipsis: { tooltip: true } @@ -56,36 +58,36 @@ const { data: config } = useRequest(memcached.getConfig, { const handleSaveConfig = () => { useRequest(memcached.updateConfig(config.value)).onSuccess(() => { - window.$message.success('保存成功') + window.$message.success($gettext('Saved successfully')) }) } const handleStart = async () => { await systemctl.start('memcached') - window.$message.success('启动成功') + window.$message.success($gettext('Started successfully')) await getStatus() } const handleIsEnabled = async () => { if (isEnabled.value) { await systemctl.enable('memcached') - window.$message.success('开启自启动成功') + window.$message.success($gettext('Autostart enabled successfully')) } else { await systemctl.disable('memcached') - window.$message.success('禁用自启动成功') + window.$message.success($gettext('Autostart disabled successfully')) } await getIsEnabled() } const handleStop = async () => { await systemctl.stop('memcached') - window.$message.success('停止成功') + window.$message.success($gettext('Stopped successfully')) await getStatus() } const handleRestart = async () => { await systemctl.restart('memcached') - window.$message.success('重启成功') + window.$message.success($gettext('Restarted successfully')) await getStatus() } @@ -105,17 +107,17 @@ onMounted(() => { @click="handleSaveConfig" > - 保存 + {{ $gettext('Save') }} - + - + @@ -125,27 +127,27 @@ onMounted(() => { - 启动 + {{ $gettext('Start') }} - 停止 Memcached 会导致使用 Memcached 的网站无法访问,确定要停止吗? + {{ $gettext('Stopping Memcached will cause websites using Memcached to become inaccessible. Are you sure you want to stop?') }} - 重启 + {{ $gettext('Restart') }} - + { /> - + { :data="load" /> - + diff --git a/web/src/views/apps/memcached/route.ts b/web/src/views/apps/memcached/route.ts index 5e19e24f..08863bab 100644 --- a/web/src/views/apps/memcached/route.ts +++ b/web/src/views/apps/memcached/route.ts @@ -1,4 +1,5 @@ import type { RouteType } from '~/types/router' +import { $gettext } from '@/utils/gettext' const Layout = () => import('@/layout/IndexView.vue') @@ -13,7 +14,7 @@ export default { path: '', component: () => import('./IndexView.vue'), meta: { - title: 'Memcached', + title: $gettext('Memcached'), icon: 'logos:memcached', role: ['admin'], requireAuth: true diff --git a/web/src/views/apps/minio/IndexView.vue b/web/src/views/apps/minio/IndexView.vue index 9533b844..07ab2462 100644 --- a/web/src/views/apps/minio/IndexView.vue +++ b/web/src/views/apps/minio/IndexView.vue @@ -5,17 +5,19 @@ defineOptions({ import Editor from '@guolao/vue-monaco-editor' import { NButton, NPopconfirm } from 'naive-ui' +import { useGettext } from 'vue3-gettext' import minio from '@/api/apps/minio' import systemctl from '@/api/panel/systemctl' +const { $gettext } = useGettext() const currentTab = ref('status') const status = ref(false) const isEnabled = ref(false) const env = ref('') const statusStr = computed(() => { - return status.value ? '正常运行中' : '已停止运行' + return status.value ? $gettext('Running normally') : $gettext('Stopped') }) const getStatus = async () => { @@ -32,35 +34,35 @@ const getEnv = async () => { const handleSaveEnv = () => { useRequest(minio.saveEnv(env.value)).onSuccess(() => { - window.$message.success('保存成功') + window.$message.success($gettext('Saved successfully')) }) } const handleStart = async () => { await systemctl.start('minio') - window.$message.success('启动成功') + window.$message.success($gettext('Started successfully')) await getStatus() } const handleStop = async () => { await systemctl.stop('minio') - window.$message.success('停止成功') + window.$message.success($gettext('Stopped successfully')) await getStatus() } const handleRestart = async () => { await systemctl.restart('minio') - window.$message.success('重启成功') + window.$message.success($gettext('Restarted successfully')) await getStatus() } const handleIsEnabled = async () => { if (isEnabled.value) { await systemctl.enable('minio') - window.$message.success('开启自启动成功') + window.$message.success($gettext('Autostart enabled successfully')) } else { await systemctl.disable('minio') - window.$message.success('禁用自启动成功') + window.$message.success($gettext('Autostart disabled successfully')) } await getIsEnabled() } @@ -77,16 +79,16 @@ onMounted(() => { - - + + @@ -96,30 +98,29 @@ onMounted(() => { - 启动 + {{ $gettext('Start') }} - 确定要停止 Minio 吗? + {{ $gettext('Are you sure you want to stop Minio?') }} - 重启 + {{ $gettext('Restart') }} - + - 此处修改的是 Minio 环境变量文件 - /etc/default/minio,如果您不了解各参数的含义,请不要随意修改! + {{ $gettext('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!') }} { /> - + diff --git a/web/src/views/apps/minio/route.ts b/web/src/views/apps/minio/route.ts index e6a026ea..64cff44d 100644 --- a/web/src/views/apps/minio/route.ts +++ b/web/src/views/apps/minio/route.ts @@ -1,4 +1,5 @@ import type { RouteType } from '~/types/router' +import { $gettext } from '@/utils/gettext' const Layout = () => import('@/layout/IndexView.vue') @@ -13,7 +14,7 @@ export default { path: '', component: () => import('./IndexView.vue'), meta: { - title: 'Minio', + title: $gettext('Minio'), icon: 'simple-icons:minio', role: ['admin'], requireAuth: true diff --git a/web/src/views/apps/mysql/IndexView.vue b/web/src/views/apps/mysql/IndexView.vue index 7e5a623b..4b07d16e 100644 --- a/web/src/views/apps/mysql/IndexView.vue +++ b/web/src/views/apps/mysql/IndexView.vue @@ -5,10 +5,12 @@ defineOptions({ import Editor from '@guolao/vue-monaco-editor' import { NButton, NDataTable, NInput, NPopconfirm } from 'naive-ui' +import { useGettext } from 'vue3-gettext' import mysql from '@/api/apps/mysql' import systemctl from '@/api/panel/systemctl' +const { $gettext } = useGettext() const currentTab = ref('status') const status = ref(false) const isEnabled = ref(false) @@ -30,19 +32,19 @@ const statusType = computed(() => { return status.value ? 'success' : 'error' }) const statusStr = computed(() => { - return status.value ? '正常运行中' : '已停止运行' + return status.value ? $gettext('Running normally') : $gettext('Stopped') }) const loadColumns: any = [ { - title: '属性', + title: $gettext('Property'), key: 'name', minWidth: 200, resizable: true, ellipsis: { tooltip: true } }, { - title: '当前值', + title: $gettext('Current Value'), key: 'value', minWidth: 200, ellipsis: { tooltip: true } @@ -59,54 +61,54 @@ const getIsEnabled = async () => { const handleSaveConfig = () => { useRequest(mysql.saveConfig(config.value)).onSuccess(() => { - window.$message.success('保存成功') + window.$message.success($gettext('Saved successfully')) }) } const handleClearErrorLog = () => { useRequest(mysql.clearErrorLog()).onSuccess(() => { - window.$message.success('清空成功') + window.$message.success($gettext('Cleared successfully')) }) } const handleClearSlowLog = () => { useRequest(mysql.clearSlowLog()).onSuccess(() => { - window.$message.success('清空成功') + window.$message.success($gettext('Cleared successfully')) }) } const handleIsEnabled = async () => { if (isEnabled.value) { await systemctl.enable('mysqld') - window.$message.success('开启自启动成功') + window.$message.success($gettext('Autostart enabled successfully')) } else { await systemctl.disable('mysqld') - window.$message.success('禁用自启动成功') + window.$message.success($gettext('Autostart disabled successfully')) } await getIsEnabled() } const handleStart = async () => { await systemctl.start('mysqld') - window.$message.success('启动成功') + window.$message.success($gettext('Started successfully')) await getStatus() } const handleStop = async () => { await systemctl.stop('mysqld') - window.$message.success('停止成功') + window.$message.success($gettext('Stopped successfully')) await getStatus() } const handleRestart = async () => { await systemctl.restart('mysqld') - window.$message.success('重启成功') + window.$message.success($gettext('Restarted successfully')) await getStatus() } const handleSetRootPassword = async () => { await mysql.setRootPassword(rootPassword.value) - window.$message.success('修改成功') + window.$message.success($gettext('Modified successfully')) } onMounted(() => { @@ -125,7 +127,7 @@ onMounted(() => { @click="handleSaveConfig" > - 保存 + {{ $gettext('Save') }} { @click="handleClearErrorLog" > - 清空日志 + {{ $gettext('Clear Log') }} { @click="handleClearSlowLog" > - 清空慢日志 + {{ $gettext('Clear Slow Log') }} - + - + @@ -163,40 +165,40 @@ onMounted(() => { - 启动 + {{ $gettext('Start') }} - 停止 MySQL 会导致使用 MySQL 的网站无法访问,确定要停止吗? + {{ $gettext('Stopping MySQL will cause websites using MySQL to become inaccessible. Are you sure you want to stop?') }} - 重启 + {{ $gettext('Restart') }} - + - 保存修改 + {{ $gettext('Save Changes') }} - + - 此处修改的是 MySQL 主配置文件,如果您不了解各参数的含义,请不要随意修改! + {{ $gettext('This modifies the MySQL main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!') }} { /> - + { :data="load" /> - + - + diff --git a/web/src/views/apps/mysql/route.ts b/web/src/views/apps/mysql/route.ts index d0d629cc..248a9cdf 100644 --- a/web/src/views/apps/mysql/route.ts +++ b/web/src/views/apps/mysql/route.ts @@ -1,4 +1,5 @@ import type { RouteType } from '~/types/router' +import { $gettext } from '@/utils/gettext' const Layout = () => import('@/layout/IndexView.vue') @@ -13,7 +14,7 @@ export default { path: '', component: () => import('./IndexView.vue'), meta: { - title: 'Percona(MySQL)', + title: $gettext('Percona (MySQL)'), icon: 'logos:percona', role: ['admin'], requireAuth: true diff --git a/web/src/views/apps/nginx/IndexView.vue b/web/src/views/apps/nginx/IndexView.vue index 089b7a42..14272e8c 100644 --- a/web/src/views/apps/nginx/IndexView.vue +++ b/web/src/views/apps/nginx/IndexView.vue @@ -5,10 +5,12 @@ defineOptions({ import Editor from '@guolao/vue-monaco-editor' import { NButton, NDataTable, NPopconfirm } from 'naive-ui' +import { useGettext } from 'vue3-gettext' import nginx from '@/api/apps/nginx' import systemctl from '@/api/panel/systemctl' +const { $gettext } = useGettext() const currentTab = ref('status') const status = ref(false) const isEnabled = ref(false) @@ -28,19 +30,19 @@ const statusType = computed(() => { }) const statusStr = computed(() => { - return status.value ? '正常运行中' : '已停止运行' + return status.value ? $gettext('Running normally') : $gettext('Stopped') }) const columns: any = [ { - title: '属性', + title: $gettext('Property'), key: 'name', minWidth: 200, resizable: true, ellipsis: { tooltip: true } }, { - title: '当前值', + title: $gettext('Current Value'), key: 'value', minWidth: 200, ellipsis: { tooltip: true } @@ -57,48 +59,48 @@ const getIsEnabled = async () => { const handleSaveConfig = () => { useRequest(nginx.saveConfig(config.value)).onSuccess(() => { - window.$message.success('保存成功') + window.$message.success($gettext('Saved successfully')) }) } const handleClearErrorLog = () => { useRequest(nginx.clearErrorLog()).onSuccess(() => { - window.$message.success('清空成功') + window.$message.success($gettext('Cleared successfully')) }) } const handleIsEnabled = async () => { if (isEnabled.value) { await systemctl.enable('nginx') - window.$message.success('开启自启动成功') + window.$message.success($gettext('Autostart enabled successfully')) } else { await systemctl.disable('nginx') - window.$message.success('禁用自启动成功') + window.$message.success($gettext('Autostart disabled successfully')) } await getIsEnabled() } const handleStart = async () => { await systemctl.start('nginx') - window.$message.success('启动成功') + window.$message.success($gettext('Started successfully')) await getStatus() } const handleStop = async () => { await systemctl.stop('nginx') - window.$message.success('停止成功') + window.$message.success($gettext('Stopped successfully')) await getStatus() } const handleRestart = async () => { await systemctl.restart('nginx') - window.$message.success('重启成功') + window.$message.success($gettext('Restarted successfully')) await getStatus() } const handleReload = async () => { await systemctl.reload('nginx') - window.$message.success('重载成功') + window.$message.success($gettext('Reloaded successfully')) await getStatus() } @@ -118,7 +120,7 @@ onMounted(() => { @click="handleSaveConfig" > - 保存 + {{ $gettext('Save') }} { @click="handleClearErrorLog" > - 清空日志 + {{ $gettext('Clear Log') }} - - + + @@ -146,33 +148,33 @@ onMounted(() => { - 启动 + {{ $gettext('Start') }} - 停止 OpenResty 会导致所有网站无法访问,确定要停止吗? + {{ $gettext('Stopping OpenResty will cause all websites to become inaccessible. Are you sure you want to stop?') }} - 重启 + {{ $gettext('Restart') }} - 重载 + {{ $gettext('Reload') }} - + - 此处修改的是 OpenResty 主配置文件,如果您不了解各参数的含义,请不要随意修改! + {{ $gettext('This modifies the OpenResty main configuration file. If you do not understand the meaning of each parameter, please do not modify it randomly!') }} { /> - + { :data="load" /> - + - + diff --git a/web/src/views/apps/nginx/route.ts b/web/src/views/apps/nginx/route.ts index b6dabc27..9829d052 100644 --- a/web/src/views/apps/nginx/route.ts +++ b/web/src/views/apps/nginx/route.ts @@ -1,4 +1,5 @@ import type { RouteType } from '~/types/router' +import { $gettext } from '@/utils/gettext' const Layout = () => import('@/layout/IndexView.vue') @@ -13,7 +14,7 @@ export default { path: '', component: () => import('./IndexView.vue'), meta: { - title: 'OpenResty(Nginx)', + title: $gettext('OpenResty (Nginx)'), icon: 'logos:nginx', role: ['admin'], requireAuth: true diff --git a/web/src/views/apps/php/PhpView.vue b/web/src/views/apps/php/PhpView.vue index 0cef6f10..68950395 100644 --- a/web/src/views/apps/php/PhpView.vue +++ b/web/src/views/apps/php/PhpView.vue @@ -1,11 +1,13 @@ @@ -92,19 +94,19 @@ const handleSyncTime = () => { - DNS 修改后重启系统会还原默认。 + {{ $gettext('DNS modifications will revert to default after system restart.') }} @@ -133,20 +135,20 @@ const handleSyncTime = () => { - 总共 {{ swapTotal }},已使用 {{ swapUsed }},剩余 {{ swapFree }} + {{ $gettext('Total %{ total }, used %{ used }, free %{ free }', { total: swapTotal, used: swapUsed, free: swapFree }) }} - + MB - + - + @@ -164,25 +166,25 @@ const handleSyncTime = () => { /> - + - 手动修改时间后,仍有可能被系统自动同步时间覆盖。 + {{ $gettext('After manually changing the time, it may still be overwritten by system automatic time synchronization.') }} - - + + - + - - 同步时间 + + {{ $gettext('Synchronize Time') }} - + - + diff --git a/web/src/views/apps/toolbox/route.ts b/web/src/views/apps/toolbox/route.ts index 5c911571..b3d9c0f7 100644 --- a/web/src/views/apps/toolbox/route.ts +++ b/web/src/views/apps/toolbox/route.ts @@ -1,3 +1,4 @@ +import { $gettext } from '@/utils/gettext' import type { RouteType } from '~/types/router' const Layout = () => import('@/layout/IndexView.vue') @@ -13,7 +14,7 @@ export default { path: '', component: () => import('./IndexView.vue'), meta: { - title: '系统工具箱', + title: $gettext('Toolbox'), icon: 'mdi:tools', role: ['admin'], requireAuth: true