ysk-server-shared 1.1.12 → 1.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.d.ts +2 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +2 -0
- package/dist/browser.js.map +1 -1
- package/dist/docker.d.ts +4 -0
- package/dist/docker.d.ts.map +1 -1
- package/dist/docker.js.map +1 -1
- package/dist/ident.d.ts +26 -0
- package/dist/ident.d.ts.map +1 -0
- package/dist/ident.js +126 -0
- package/dist/ident.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/list-query.d.ts +2 -0
- package/dist/list-query.d.ts.map +1 -1
- package/dist/list-query.js.map +1 -1
- package/locales/ar/agents.json +11 -1
- package/locales/ar/backups.json +5 -1
- package/locales/ar/btTracker.json +7 -1
- package/locales/ar/cdn.json +9 -1
- package/locales/ar/common.json +2 -1
- package/locales/ar/dashboard.json +2 -1
- package/locales/ar/db.json +10 -2
- package/locales/ar/dns.json +3 -1
- package/locales/ar/docker.json +19 -3
- package/locales/ar/email.json +22 -1
- package/locales/ar/files.json +2 -1
- package/locales/ar/ftp.json +3 -1
- package/locales/ar/hostBrowse.json +3 -1
- package/locales/ar/metrics.json +2 -1
- package/locales/ar/migrate.json +9 -1
- package/locales/ar/nav.json +2 -1
- package/locales/ar/network.json +5 -1
- package/locales/ar/nginx.json +6 -1
- package/locales/ar/notes.json +19 -4
- package/locales/ar/opsResult.json +5 -1
- package/locales/ar/projects.json +4 -1
- package/locales/ar/publicFiles.json +4 -1
- package/locales/ar/runtime.json +8 -2
- package/locales/ar/services.json +18 -1
- package/locales/ar/software.json +3 -1
- package/locales/ar/stackWizard.json +16 -1
- package/locales/ar/tabs.json +3 -1
- package/locales/ar/translation.json +232 -42
- package/locales/ar/updates.json +3 -1
- package/locales/ar/users.json +2 -1
- package/locales/ar/validators.json +7 -3
- package/locales/ar/vnc.json +2 -1
- package/locales/ar/vpn.json +16 -2
- package/locales/bn/agents.json +11 -1
- package/locales/bn/backups.json +5 -1
- package/locales/bn/btTracker.json +7 -1
- package/locales/bn/cdn.json +9 -1
- package/locales/bn/common.json +2 -1
- package/locales/bn/dashboard.json +2 -1
- package/locales/bn/db.json +10 -2
- package/locales/bn/dns.json +3 -1
- package/locales/bn/docker.json +19 -3
- package/locales/bn/email.json +22 -1
- package/locales/bn/files.json +2 -1
- package/locales/bn/ftp.json +3 -1
- package/locales/bn/hostBrowse.json +3 -1
- package/locales/bn/metrics.json +2 -1
- package/locales/bn/migrate.json +9 -1
- package/locales/bn/nav.json +2 -1
- package/locales/bn/network.json +5 -1
- package/locales/bn/nginx.json +6 -1
- package/locales/bn/notes.json +19 -4
- package/locales/bn/opsResult.json +5 -1
- package/locales/bn/projects.json +4 -1
- package/locales/bn/publicFiles.json +4 -1
- package/locales/bn/runtime.json +8 -2
- package/locales/bn/services.json +18 -1
- package/locales/bn/software.json +3 -1
- package/locales/bn/stackWizard.json +16 -1
- package/locales/bn/tabs.json +3 -1
- package/locales/bn/translation.json +232 -42
- package/locales/bn/updates.json +3 -1
- package/locales/bn/users.json +2 -1
- package/locales/bn/validators.json +7 -3
- package/locales/bn/vnc.json +2 -1
- package/locales/bn/vpn.json +16 -2
- package/locales/en/agents.json +12 -2
- package/locales/en/backups.json +5 -1
- package/locales/en/btTracker.json +8 -2
- package/locales/en/cdn.json +8 -0
- package/locales/en/common.json +1 -0
- package/locales/en/dashboard.json +1 -0
- package/locales/en/db.json +11 -3
- package/locales/en/dns.json +2 -0
- package/locales/en/docker.json +17 -1
- package/locales/en/email.json +24 -3
- package/locales/en/files.json +1 -0
- package/locales/en/ftp.json +2 -0
- package/locales/en/hostBrowse.json +2 -0
- package/locales/en/metrics.json +1 -0
- package/locales/en/migrate.json +8 -0
- package/locales/en/nav.json +1 -0
- package/locales/en/network.json +4 -0
- package/locales/en/nginx.json +6 -1
- package/locales/en/notes.json +20 -5
- package/locales/en/opsResult.json +5 -1
- package/locales/en/projects.json +4 -1
- package/locales/en/protection.json +2 -2
- package/locales/en/publicFiles.json +4 -1
- package/locales/en/rbac.json +2 -2
- package/locales/en/runtime.json +7 -1
- package/locales/en/services.json +18 -1
- package/locales/en/software.json +2 -0
- package/locales/en/stackWizard.json +16 -1
- package/locales/en/tabs.json +3 -1
- package/locales/en/translation.json +222 -32
- package/locales/en/updates.json +3 -1
- package/locales/en/users.json +1 -0
- package/locales/en/validators.json +5 -1
- package/locales/en/vnc.json +1 -0
- package/locales/en/vpn.json +15 -1
- package/locales/es/agents.json +11 -1
- package/locales/es/backups.json +5 -1
- package/locales/es/btTracker.json +7 -1
- package/locales/es/cdn.json +9 -1
- package/locales/es/common.json +2 -1
- package/locales/es/dashboard.json +2 -1
- package/locales/es/db.json +10 -2
- package/locales/es/dns.json +3 -1
- package/locales/es/docker.json +19 -3
- package/locales/es/email.json +22 -1
- package/locales/es/files.json +2 -1
- package/locales/es/ftp.json +3 -1
- package/locales/es/hostBrowse.json +3 -1
- package/locales/es/metrics.json +2 -1
- package/locales/es/migrate.json +9 -1
- package/locales/es/nav.json +2 -1
- package/locales/es/network.json +5 -1
- package/locales/es/nginx.json +6 -1
- package/locales/es/notes.json +19 -4
- package/locales/es/opsResult.json +5 -1
- package/locales/es/projects.json +4 -1
- package/locales/es/publicFiles.json +4 -1
- package/locales/es/runtime.json +8 -2
- package/locales/es/services.json +18 -1
- package/locales/es/software.json +3 -1
- package/locales/es/stackWizard.json +16 -1
- package/locales/es/tabs.json +3 -1
- package/locales/es/translation.json +232 -42
- package/locales/es/updates.json +3 -1
- package/locales/es/users.json +2 -1
- package/locales/es/validators.json +7 -3
- package/locales/es/vnc.json +2 -1
- package/locales/es/vpn.json +16 -2
- package/locales/fr/agents.json +11 -1
- package/locales/fr/backups.json +5 -1
- package/locales/fr/btTracker.json +7 -1
- package/locales/fr/cdn.json +9 -1
- package/locales/fr/common.json +2 -1
- package/locales/fr/dashboard.json +2 -1
- package/locales/fr/db.json +10 -2
- package/locales/fr/dns.json +3 -1
- package/locales/fr/docker.json +19 -3
- package/locales/fr/email.json +22 -1
- package/locales/fr/files.json +2 -1
- package/locales/fr/ftp.json +3 -1
- package/locales/fr/hostBrowse.json +3 -1
- package/locales/fr/metrics.json +2 -1
- package/locales/fr/migrate.json +9 -1
- package/locales/fr/nav.json +2 -1
- package/locales/fr/network.json +5 -1
- package/locales/fr/nginx.json +6 -1
- package/locales/fr/notes.json +19 -4
- package/locales/fr/opsResult.json +5 -1
- package/locales/fr/projects.json +4 -1
- package/locales/fr/publicFiles.json +4 -1
- package/locales/fr/runtime.json +8 -2
- package/locales/fr/services.json +18 -1
- package/locales/fr/software.json +3 -1
- package/locales/fr/stackWizard.json +16 -1
- package/locales/fr/tabs.json +3 -1
- package/locales/fr/translation.json +232 -42
- package/locales/fr/updates.json +3 -1
- package/locales/fr/users.json +2 -1
- package/locales/fr/validators.json +7 -3
- package/locales/fr/vnc.json +2 -1
- package/locales/fr/vpn.json +16 -2
- package/locales/hi/agents.json +11 -1
- package/locales/hi/backups.json +5 -1
- package/locales/hi/btTracker.json +7 -1
- package/locales/hi/cdn.json +9 -1
- package/locales/hi/common.json +2 -1
- package/locales/hi/dashboard.json +2 -1
- package/locales/hi/db.json +10 -2
- package/locales/hi/dns.json +3 -1
- package/locales/hi/docker.json +19 -3
- package/locales/hi/email.json +22 -1
- package/locales/hi/files.json +2 -1
- package/locales/hi/ftp.json +3 -1
- package/locales/hi/hostBrowse.json +3 -1
- package/locales/hi/metrics.json +2 -1
- package/locales/hi/migrate.json +9 -1
- package/locales/hi/nav.json +2 -1
- package/locales/hi/network.json +5 -1
- package/locales/hi/nginx.json +6 -1
- package/locales/hi/notes.json +19 -4
- package/locales/hi/opsResult.json +5 -1
- package/locales/hi/projects.json +4 -1
- package/locales/hi/publicFiles.json +4 -1
- package/locales/hi/runtime.json +8 -2
- package/locales/hi/services.json +18 -1
- package/locales/hi/software.json +3 -1
- package/locales/hi/stackWizard.json +16 -1
- package/locales/hi/tabs.json +3 -1
- package/locales/hi/translation.json +232 -42
- package/locales/hi/updates.json +3 -1
- package/locales/hi/users.json +2 -1
- package/locales/hi/validators.json +7 -3
- package/locales/hi/vnc.json +2 -1
- package/locales/hi/vpn.json +16 -2
- package/locales/id/agents.json +11 -1
- package/locales/id/backups.json +5 -1
- package/locales/id/btTracker.json +7 -1
- package/locales/id/cdn.json +9 -1
- package/locales/id/common.json +2 -1
- package/locales/id/dashboard.json +2 -1
- package/locales/id/db.json +10 -2
- package/locales/id/dns.json +3 -1
- package/locales/id/docker.json +19 -3
- package/locales/id/email.json +22 -1
- package/locales/id/files.json +2 -1
- package/locales/id/ftp.json +3 -1
- package/locales/id/hostBrowse.json +3 -1
- package/locales/id/metrics.json +2 -1
- package/locales/id/migrate.json +9 -1
- package/locales/id/nav.json +2 -1
- package/locales/id/network.json +5 -1
- package/locales/id/nginx.json +6 -1
- package/locales/id/notes.json +19 -4
- package/locales/id/opsResult.json +5 -1
- package/locales/id/projects.json +4 -1
- package/locales/id/publicFiles.json +4 -1
- package/locales/id/runtime.json +8 -2
- package/locales/id/services.json +18 -1
- package/locales/id/software.json +3 -1
- package/locales/id/stackWizard.json +16 -1
- package/locales/id/tabs.json +3 -1
- package/locales/id/translation.json +232 -42
- package/locales/id/updates.json +3 -1
- package/locales/id/users.json +2 -1
- package/locales/id/validators.json +7 -3
- package/locales/id/vnc.json +2 -1
- package/locales/id/vpn.json +16 -2
- package/locales/ja/agents.json +11 -1
- package/locales/ja/backups.json +5 -1
- package/locales/ja/btTracker.json +7 -1
- package/locales/ja/cdn.json +9 -1
- package/locales/ja/common.json +2 -1
- package/locales/ja/dashboard.json +2 -1
- package/locales/ja/db.json +10 -2
- package/locales/ja/dns.json +3 -1
- package/locales/ja/docker.json +19 -3
- package/locales/ja/email.json +22 -1
- package/locales/ja/files.json +2 -1
- package/locales/ja/ftp.json +3 -1
- package/locales/ja/hostBrowse.json +3 -1
- package/locales/ja/metrics.json +2 -1
- package/locales/ja/migrate.json +9 -1
- package/locales/ja/nav.json +2 -1
- package/locales/ja/network.json +5 -1
- package/locales/ja/nginx.json +6 -1
- package/locales/ja/notes.json +19 -4
- package/locales/ja/opsResult.json +5 -1
- package/locales/ja/projects.json +4 -1
- package/locales/ja/publicFiles.json +4 -1
- package/locales/ja/runtime.json +8 -2
- package/locales/ja/services.json +18 -1
- package/locales/ja/software.json +3 -1
- package/locales/ja/stackWizard.json +16 -1
- package/locales/ja/tabs.json +3 -1
- package/locales/ja/translation.json +232 -42
- package/locales/ja/updates.json +3 -1
- package/locales/ja/users.json +2 -1
- package/locales/ja/validators.json +7 -3
- package/locales/ja/vnc.json +2 -1
- package/locales/ja/vpn.json +16 -2
- package/locales/ko/agents.json +11 -1
- package/locales/ko/backups.json +5 -1
- package/locales/ko/btTracker.json +7 -1
- package/locales/ko/cdn.json +9 -1
- package/locales/ko/common.json +2 -1
- package/locales/ko/dashboard.json +2 -1
- package/locales/ko/db.json +10 -2
- package/locales/ko/dns.json +3 -1
- package/locales/ko/docker.json +19 -3
- package/locales/ko/email.json +22 -1
- package/locales/ko/files.json +2 -1
- package/locales/ko/ftp.json +3 -1
- package/locales/ko/hostBrowse.json +3 -1
- package/locales/ko/metrics.json +2 -1
- package/locales/ko/migrate.json +9 -1
- package/locales/ko/nav.json +2 -1
- package/locales/ko/network.json +5 -1
- package/locales/ko/nginx.json +6 -1
- package/locales/ko/notes.json +19 -4
- package/locales/ko/opsResult.json +5 -1
- package/locales/ko/projects.json +4 -1
- package/locales/ko/publicFiles.json +4 -1
- package/locales/ko/runtime.json +8 -2
- package/locales/ko/services.json +18 -1
- package/locales/ko/software.json +3 -1
- package/locales/ko/stackWizard.json +16 -1
- package/locales/ko/tabs.json +3 -1
- package/locales/ko/translation.json +232 -42
- package/locales/ko/updates.json +3 -1
- package/locales/ko/users.json +2 -1
- package/locales/ko/validators.json +7 -3
- package/locales/ko/vnc.json +2 -1
- package/locales/ko/vpn.json +16 -2
- package/locales/pt/agents.json +11 -1
- package/locales/pt/backups.json +5 -1
- package/locales/pt/btTracker.json +7 -1
- package/locales/pt/cdn.json +9 -1
- package/locales/pt/common.json +2 -1
- package/locales/pt/dashboard.json +2 -1
- package/locales/pt/db.json +10 -2
- package/locales/pt/dns.json +3 -1
- package/locales/pt/docker.json +19 -3
- package/locales/pt/email.json +22 -1
- package/locales/pt/files.json +2 -1
- package/locales/pt/ftp.json +3 -1
- package/locales/pt/hostBrowse.json +3 -1
- package/locales/pt/metrics.json +2 -1
- package/locales/pt/migrate.json +9 -1
- package/locales/pt/nav.json +2 -1
- package/locales/pt/network.json +5 -1
- package/locales/pt/nginx.json +6 -1
- package/locales/pt/notes.json +19 -4
- package/locales/pt/opsResult.json +5 -1
- package/locales/pt/projects.json +4 -1
- package/locales/pt/publicFiles.json +4 -1
- package/locales/pt/runtime.json +8 -2
- package/locales/pt/services.json +18 -1
- package/locales/pt/software.json +3 -1
- package/locales/pt/stackWizard.json +16 -1
- package/locales/pt/tabs.json +3 -1
- package/locales/pt/translation.json +232 -42
- package/locales/pt/updates.json +3 -1
- package/locales/pt/users.json +2 -1
- package/locales/pt/validators.json +7 -3
- package/locales/pt/vnc.json +2 -1
- package/locales/pt/vpn.json +16 -2
- package/locales/ur/agents.json +11 -1
- package/locales/ur/backups.json +5 -1
- package/locales/ur/btTracker.json +7 -1
- package/locales/ur/cdn.json +9 -1
- package/locales/ur/common.json +2 -1
- package/locales/ur/dashboard.json +2 -1
- package/locales/ur/db.json +10 -2
- package/locales/ur/dns.json +3 -1
- package/locales/ur/docker.json +19 -3
- package/locales/ur/email.json +22 -1
- package/locales/ur/files.json +2 -1
- package/locales/ur/ftp.json +3 -1
- package/locales/ur/hostBrowse.json +3 -1
- package/locales/ur/metrics.json +2 -1
- package/locales/ur/migrate.json +9 -1
- package/locales/ur/nav.json +2 -1
- package/locales/ur/network.json +5 -1
- package/locales/ur/nginx.json +6 -1
- package/locales/ur/notes.json +19 -4
- package/locales/ur/opsResult.json +5 -1
- package/locales/ur/projects.json +4 -1
- package/locales/ur/publicFiles.json +4 -1
- package/locales/ur/runtime.json +8 -2
- package/locales/ur/services.json +18 -1
- package/locales/ur/software.json +3 -1
- package/locales/ur/stackWizard.json +16 -1
- package/locales/ur/tabs.json +3 -1
- package/locales/ur/translation.json +232 -42
- package/locales/ur/updates.json +3 -1
- package/locales/ur/users.json +2 -1
- package/locales/ur/validators.json +7 -3
- package/locales/ur/vnc.json +2 -1
- package/locales/ur/vpn.json +16 -2
- package/locales/zh-CN/agents.json +11 -1
- package/locales/zh-CN/backups.json +5 -1
- package/locales/zh-CN/btTracker.json +7 -1
- package/locales/zh-CN/cdn.json +9 -1
- package/locales/zh-CN/common.json +1 -0
- package/locales/zh-CN/dashboard.json +2 -1
- package/locales/zh-CN/db.json +12 -4
- package/locales/zh-CN/dns.json +2 -0
- package/locales/zh-CN/docker.json +19 -3
- package/locales/zh-CN/email.json +22 -1
- package/locales/zh-CN/files.json +2 -1
- package/locales/zh-CN/ftp.json +3 -1
- package/locales/zh-CN/hostBrowse.json +3 -1
- package/locales/zh-CN/metrics.json +2 -1
- package/locales/zh-CN/migrate.json +9 -1
- package/locales/zh-CN/nav.json +2 -1
- package/locales/zh-CN/network.json +5 -1
- package/locales/zh-CN/nginx.json +6 -1
- package/locales/zh-CN/notes.json +20 -5
- package/locales/zh-CN/opsResult.json +5 -1
- package/locales/zh-CN/projects.json +4 -1
- package/locales/zh-CN/publicFiles.json +4 -1
- package/locales/zh-CN/rbac.json +2 -2
- package/locales/zh-CN/runtime.json +8 -2
- package/locales/zh-CN/services.json +18 -1
- package/locales/zh-CN/software.json +3 -1
- package/locales/zh-CN/stackWizard.json +16 -1
- package/locales/zh-CN/tabs.json +3 -1
- package/locales/zh-CN/translation.json +235 -45
- package/locales/zh-CN/updates.json +3 -1
- package/locales/zh-CN/users.json +1 -0
- package/locales/zh-CN/validators.json +7 -3
- package/locales/zh-CN/vnc.json +2 -1
- package/locales/zh-CN/vpn.json +17 -3
- package/locales/zh-HK/agents.json +14 -4
- package/locales/zh-HK/backups.json +5 -1
- package/locales/zh-HK/btTracker.json +12 -6
- package/locales/zh-HK/cdn.json +8 -0
- package/locales/zh-HK/common.json +1 -0
- package/locales/zh-HK/dashboard.json +1 -0
- package/locales/zh-HK/db.json +11 -3
- package/locales/zh-HK/dns.json +2 -0
- package/locales/zh-HK/docker.json +17 -1
- package/locales/zh-HK/email.json +26 -5
- package/locales/zh-HK/fail2ban.json +1 -1
- package/locales/zh-HK/files.json +2 -1
- package/locales/zh-HK/firewall.json +1 -1
- package/locales/zh-HK/ftp.json +2 -0
- package/locales/zh-HK/hostBrowse.json +2 -0
- package/locales/zh-HK/metrics.json +1 -0
- package/locales/zh-HK/migrate.json +8 -0
- package/locales/zh-HK/nav.json +1 -0
- package/locales/zh-HK/network.json +4 -0
- package/locales/zh-HK/nginx.json +6 -1
- package/locales/zh-HK/notes.json +19 -4
- package/locales/zh-HK/opsResult.json +5 -1
- package/locales/zh-HK/projects.json +4 -1
- package/locales/zh-HK/protection.json +3 -3
- package/locales/zh-HK/publicFiles.json +7 -4
- package/locales/zh-HK/rbac.json +2 -2
- package/locales/zh-HK/runtime.json +7 -1
- package/locales/zh-HK/services.json +17 -0
- package/locales/zh-HK/software.json +2 -0
- package/locales/zh-HK/stackWizard.json +16 -1
- package/locales/zh-HK/tabs.json +3 -1
- package/locales/zh-HK/translation.json +235 -45
- package/locales/zh-HK/updates.json +3 -1
- package/locales/zh-HK/users.json +1 -0
- package/locales/zh-HK/validators.json +5 -1
- package/locales/zh-HK/vnc.json +1 -0
- package/locales/zh-HK/vpn.json +15 -1
- package/package.json +1 -1
|
@@ -19,9 +19,17 @@
|
|
|
19
19
|
"unknown": "Not probed",
|
|
20
20
|
"fallback": "Unknown"
|
|
21
21
|
},
|
|
22
|
+
"cmdStatus": {
|
|
23
|
+
"queued": "Queued",
|
|
24
|
+
"acked": "Acked",
|
|
25
|
+
"done": "Done",
|
|
26
|
+
"error": "Error"
|
|
27
|
+
},
|
|
22
28
|
"activatingStuckHint": "Activating longer than 5 minutes — treated as failed. Check journal.",
|
|
23
29
|
"noOnlineAgents": "No agents online",
|
|
24
30
|
"journal": "journal",
|
|
31
|
+
"writeUnit": "Write unit",
|
|
32
|
+
"writeUnitConfirm": "Write the systemd unit for {{kind}} under /etc/systemd. The service is not started or enabled.",
|
|
25
33
|
"liveN": "{{count}} online",
|
|
26
34
|
"registeredOnly": "Registered only",
|
|
27
35
|
"awaitProbe": "Awaiting probe",
|
|
@@ -48,10 +56,10 @@
|
|
|
48
56
|
"capStatus": "Status",
|
|
49
57
|
"capStatusD": "Registered only → online (heartbeat) → stale (>60s without heartbeat) → offline (disconnected / no further heartbeat)",
|
|
50
58
|
"statusFlowTitle": "Status flow",
|
|
51
|
-
"statusFlow": "Registered only → online → stale (>60s) → offline
|
|
59
|
+
"statusFlow": "Registered only → online → stale (>60s) → offline. Filter “Offline” means disconnected.",
|
|
52
60
|
"colSession": "Session UUID",
|
|
53
61
|
"copySession": "Copy session UUID for cluster / CLI --session",
|
|
54
|
-
"staleFor": "
|
|
62
|
+
"staleFor": "Stale {{age}}",
|
|
55
63
|
"commandTitle": "Queue a command for this session",
|
|
56
64
|
"historyTitleShort": "Open command history (read-only)",
|
|
57
65
|
"fleetTitle": "Fleet ({{count}})",
|
|
@@ -72,6 +80,7 @@
|
|
|
72
80
|
"finishedAt": "Finished {{at}}",
|
|
73
81
|
"colCommand": "Command",
|
|
74
82
|
"colResult": "Result summary",
|
|
83
|
+
"colExit": "Exit",
|
|
75
84
|
"hasResult": "Has result",
|
|
76
85
|
"emptyCmds": "No commands yet",
|
|
77
86
|
"emptyCmdsDesc": "Queue with “Command”; stays queued until the edge agent is online",
|
|
@@ -87,6 +96,7 @@
|
|
|
87
96
|
"pathExists": "Exists",
|
|
88
97
|
"pathMissing": "Not installed",
|
|
89
98
|
"unitUnknown": "{{unit}} · unknown",
|
|
99
|
+
"unitFallback": "unit",
|
|
90
100
|
"path": "Path",
|
|
91
101
|
"probe": "Probe",
|
|
92
102
|
"install": "Install",
|
|
@@ -478,7 +488,11 @@
|
|
|
478
488
|
"skippedListHint": "These projects were skipped:",
|
|
479
489
|
"skippedPendingOs": "Skipped — OS user / home not provisioned",
|
|
480
490
|
"goLogs": "Open logs",
|
|
481
|
-
"goAbout": "Backup notes"
|
|
491
|
+
"goAbout": "Backup notes",
|
|
492
|
+
"previewListingTitle": "Archive contents",
|
|
493
|
+
"restoreNamedDesc": "Restore {{name}} into project {{project}}.",
|
|
494
|
+
"overwriteNamedDesc": "Overwrite files of project {{project}} from snapshot {{snapshot}}.",
|
|
495
|
+
"resticSafeNamed": "Restore snapshot {{snapshot}} of project {{project}} into a safe directory."
|
|
482
496
|
},
|
|
483
497
|
"btTracker": {
|
|
484
498
|
"title": "BT Tracker",
|
|
@@ -609,6 +623,12 @@
|
|
|
609
623
|
"startedOk": "Started",
|
|
610
624
|
"stoppedOk": "Stopped",
|
|
611
625
|
"restoredOk": "Re-seed done",
|
|
626
|
+
"restoredCount": "Re-seeded {{seeded}} of {{attempted}} torrents",
|
|
627
|
+
"portInvalid": "Enter a port from 1 to 65535.",
|
|
628
|
+
"extraTrackerRequired": "Enter an announce URL.",
|
|
629
|
+
"stopPort": "Tracker port {{port}} will stop listening.",
|
|
630
|
+
"stopPid": "Process PID {{pid}} will exit.",
|
|
631
|
+
"swarmLeftoverUnlisted": "{{count}} extra leftover announce(s) have no hash in this list.",
|
|
612
632
|
"httpPortHint": "",
|
|
613
633
|
"udpPortHint": "",
|
|
614
634
|
"udpPortOff": "Off",
|
|
@@ -619,7 +639,7 @@
|
|
|
619
639
|
"tabTrackers": "Trackers",
|
|
620
640
|
"addTorrent": "Add torrent",
|
|
621
641
|
"addTorrentTitle": "Add torrent",
|
|
622
|
-
"addTorrentHint": "Upload a .torrent or paste a magnet.
|
|
642
|
+
"addTorrentHint": "Upload a .torrent or paste a magnet. After the file is read, pick where to save. WebTorrent downloads missing files and seeds when complete.",
|
|
623
643
|
"dropTorrent": "Drop a .torrent here",
|
|
624
644
|
"chooseFile": "or choose a file",
|
|
625
645
|
"magnetLabel": "Magnet",
|
|
@@ -635,7 +655,7 @@
|
|
|
635
655
|
"filterPaused": "Paused",
|
|
636
656
|
"filterError": "Error",
|
|
637
657
|
"emptyDrop": "Drop a .torrent here, or choose a file",
|
|
638
|
-
"emptyHint": "
|
|
658
|
+
"emptyHint": "Drop a .torrent or paste a magnet. After it is read, the dialog asks where to save. Complete files seed on this host. Engine: WebTorrent.",
|
|
639
659
|
"pause": "Pause",
|
|
640
660
|
"resume": "Resume",
|
|
641
661
|
"openFolder": "Open folder",
|
|
@@ -758,6 +778,14 @@
|
|
|
758
778
|
"partial": "Partial"
|
|
759
779
|
},
|
|
760
780
|
"statSites": "Sites",
|
|
781
|
+
"statSitesCount": "{{n}} sites",
|
|
782
|
+
"cacheMethod": {
|
|
783
|
+
"none": "No estimate",
|
|
784
|
+
"access_log": "Access log",
|
|
785
|
+
"cache_dir": "Cache directory",
|
|
786
|
+
"log_format": "Need log format"
|
|
787
|
+
},
|
|
788
|
+
"geoMapLabel": "Geo map (JSON)",
|
|
761
789
|
"statApplyFailed": "Apply failed",
|
|
762
790
|
"pillNodesSites": "{{n}} nodes · {{s}} sites",
|
|
763
791
|
"statOnline": "Online",
|
|
@@ -2144,6 +2172,7 @@
|
|
|
2144
2172
|
"noData": "No data",
|
|
2145
2173
|
"input": "Input",
|
|
2146
2174
|
"pleaseEnter": "Enter {{value}}",
|
|
2175
|
+
"pleaseFill": "Please fill in this field",
|
|
2147
2176
|
"required": "Required",
|
|
2148
2177
|
"about": "About",
|
|
2149
2178
|
"more": "More",
|
|
@@ -2497,6 +2526,7 @@
|
|
|
2497
2526
|
"wizardDesc": "Create a project and optionally draft DNS / mail / database (apply on each feature page)",
|
|
2498
2527
|
"projectName": "Project name",
|
|
2499
2528
|
"projectNameHint": "Display name; creates a matching directory",
|
|
2529
|
+
"nameRequired": "Enter a project name",
|
|
2500
2530
|
"domainOptional": "Domain (optional)",
|
|
2501
2531
|
"domainHint": "Required to enable DNS and mail options",
|
|
2502
2532
|
"runtime": "Runtime",
|
|
@@ -2717,6 +2747,7 @@
|
|
|
2717
2747
|
"createSentinel": "Create Sentinel",
|
|
2718
2748
|
"createRedisReplica": "Create Redis replica",
|
|
2719
2749
|
"needRealIps": "Enter real local and peer IPs/hostnames",
|
|
2750
|
+
"hostInvalid": "Enter a valid IPv4, IPv6, or hostname.",
|
|
2720
2751
|
"statusNote": "Status: {{status}} (plan success ≠ cluster health)",
|
|
2721
2752
|
"artifactNote": "Artifacts: {{dir}}",
|
|
2722
2753
|
"planGenerated": "Plan generated (dry-run)",
|
|
@@ -2799,12 +2830,12 @@
|
|
|
2799
2830
|
"applyBootstrapDesc": "Installs Galera drop-in and bootstrap (galera_new_cluster)",
|
|
2800
2831
|
"applyJoinDesc": "Installs Galera drop-in and systemctl restart mariadb",
|
|
2801
2832
|
"confirmApply": "Confirm apply",
|
|
2802
|
-
"deleteClusterTitle": "Delete cluster registration?",
|
|
2833
|
+
"deleteClusterTitle": "Delete cluster registration {{name}} ({{engine}})?",
|
|
2803
2834
|
"remoteInstallTitle": "Remote-install peer?",
|
|
2804
2835
|
"pushTitle": "Push to peer?",
|
|
2805
2836
|
"fleetSyncTitle": "Fleet sync?",
|
|
2806
2837
|
"confirmOp": "Confirm",
|
|
2807
|
-
"deleteClusterDesc": "System conf is not auto-cleared (v1).",
|
|
2838
|
+
"deleteClusterDesc": "Delete the {{engine}} cluster registration “{{name}}”. System conf is not auto-cleared (v1).",
|
|
2808
2839
|
"remoteInstallDesc": "Install conf + restart on peer. Needs YSK_EXECUTE + SSH.",
|
|
2809
2840
|
"pushDesc": "scp files to peer /tmp?",
|
|
2810
2841
|
"fleetSyncDesc": "Sync cluster snapshot to fleet edge, then apply.",
|
|
@@ -2899,7 +2930,14 @@
|
|
|
2899
2930
|
"serviceDownBody": "Service is unhealthy",
|
|
2900
2931
|
"adoptHostDb": "Register in panel (no create): {{name}}",
|
|
2901
2932
|
"adoptHostDbTitle": "Registers the name in the control plane only — does not change host data",
|
|
2902
|
-
"cleanupExpiredTempUsersTitle": "Drops panel-issued temporary users that have expired"
|
|
2933
|
+
"cleanupExpiredTempUsersTitle": "Drops panel-issued temporary users that have expired",
|
|
2934
|
+
"invalidSqlIdent": "Use a lowercase identifier: start with a letter, then letters, digits, or underscore.",
|
|
2935
|
+
"remoteHostRequired": "Enter a remote host.",
|
|
2936
|
+
"remoteTestUnsaved": "Save this host first, then Test connection. Or fill host and save.",
|
|
2937
|
+
"serverNotInstalled": "This engine is not installed on the server.",
|
|
2938
|
+
"dumpNeedEngine": "Install the engine before exporting a database.",
|
|
2939
|
+
"unboundDatabase": "Database registration removed",
|
|
2940
|
+
"userGoneRefresh": "That user is gone. The list was refreshed."
|
|
2903
2941
|
},
|
|
2904
2942
|
"dialogs": {
|
|
2905
2943
|
"confirmDefault": "Confirm",
|
|
@@ -3012,6 +3050,8 @@
|
|
|
3012
3050
|
"lookupType": "Query type",
|
|
3013
3051
|
"lookupResults": "Results ({{count}})",
|
|
3014
3052
|
"lookupNoAnswerFail": "No answers / failed",
|
|
3053
|
+
"digNotInstalled": "dig is not installed",
|
|
3054
|
+
"digNotInstalledHint": "This tab needs the dig binary (bind9-dnsutils). That is not NXDOMAIN. Install bind9-dnsutils from the host package manager; this page does not auto-install it.",
|
|
3015
3055
|
"method": "Method: {{method}}",
|
|
3016
3056
|
"noAnswers": "No answers",
|
|
3017
3057
|
"noAnswersDesc": "NXDOMAIN, empty RRset, or resolve failure",
|
|
@@ -3296,7 +3336,11 @@
|
|
|
3296
3336
|
"mutateFailed": "Docker command failed",
|
|
3297
3337
|
"engineFailed": "Could not control docker.service",
|
|
3298
3338
|
"badExec": "Exec is limited to allowlisted binaries and presets (no shell, no TTY)",
|
|
3299
|
-
"uninstallBusy": "Stop YSK-managed containers (including validator stacks) before uninstalling Docker"
|
|
3339
|
+
"uninstallBusy": "Stop YSK-managed containers (including validator stacks) before uninstalling Docker",
|
|
3340
|
+
"badCommand": "Invalid command or entrypoint",
|
|
3341
|
+
"portBusy": "Host port {{bind}}:{{port}} is already in use",
|
|
3342
|
+
"nameInUse": "A container named {{name}} already exists. Remove it or pick another name.",
|
|
3343
|
+
"unpublished": "Container did not attach to a network or publish ports. Not treating this as started."
|
|
3300
3344
|
},
|
|
3301
3345
|
"notes": {
|
|
3302
3346
|
"dryMutate": "Dry-run only. Pass --execute and YSK_EXECUTE=1 to change the host.",
|
|
@@ -3309,6 +3353,7 @@
|
|
|
3309
3353
|
"restart": "Container restarted",
|
|
3310
3354
|
"remove": "Container removed",
|
|
3311
3355
|
"ran": "Container started from image",
|
|
3356
|
+
"leftoverRemoved": "Removed leftover container {{name}} after bind failure",
|
|
3312
3357
|
"pulled": "Image pulled",
|
|
3313
3358
|
"exec": "Ran allowlisted exec",
|
|
3314
3359
|
"imageRemoved": "Image removed",
|
|
@@ -3378,6 +3423,17 @@
|
|
|
3378
3423
|
"scopeBuilder": "Build cache",
|
|
3379
3424
|
"scopeSystem": "Everything unused",
|
|
3380
3425
|
"noVolumesYet": "No volumes yet — create one on the Volumes tab first.",
|
|
3426
|
+
"command": "Command",
|
|
3427
|
+
"commandHint": "Optional. Tokens after the image. Leave blank to use the image CMD.",
|
|
3428
|
+
"entrypoint": "Entrypoint",
|
|
3429
|
+
"entrypointHint": "Optional single binary. Leave blank to use the image ENTRYPOINT.",
|
|
3430
|
+
"portMap": "host:container",
|
|
3431
|
+
"portOccupied": "This host port is already in use",
|
|
3432
|
+
"validatorImage": "Managed by validator nodes",
|
|
3433
|
+
"newVolume": "New named volume",
|
|
3434
|
+
"loopbackUrl": "Local test URL",
|
|
3435
|
+
"nginxProxy": "Create Nginx reverse proxy",
|
|
3436
|
+
"intentPorts": "Requested (not published)",
|
|
3381
3437
|
"customPort": "Another host port",
|
|
3382
3438
|
"customPortHost": "Host port",
|
|
3383
3439
|
"customPortContainer": "Container port",
|
|
@@ -3557,7 +3613,7 @@
|
|
|
3557
3613
|
"subject": "Subject",
|
|
3558
3614
|
"body": "Body",
|
|
3559
3615
|
"saveApplyAutoreply": "Save and apply autoreply",
|
|
3560
|
-
"saveAutoreplyWritten": "Save autoreply
|
|
3616
|
+
"saveAutoreplyWritten": "Save autoreply",
|
|
3561
3617
|
"suspendApply": "Suspend and apply REJECT",
|
|
3562
3618
|
"suspendWritten": "Suspend domain (written)",
|
|
3563
3619
|
"resumeApply": "Resume and update map",
|
|
@@ -3653,7 +3709,7 @@
|
|
|
3653
3709
|
"createMailboxBtn": "Create mailbox",
|
|
3654
3710
|
"localPartLabel": "Local part",
|
|
3655
3711
|
"localPartFullHint": "Full address will be {{local}}@{{domain}}",
|
|
3656
|
-
"passwordOptionalHint8": "Optional;
|
|
3712
|
+
"passwordOptionalHint8": "Optional; if set, must be at least 8 characters",
|
|
3657
3713
|
"live": {
|
|
3658
3714
|
"noMx": "no MX",
|
|
3659
3715
|
"mxLookupFailed": "MX lookup failed",
|
|
@@ -3909,7 +3965,28 @@
|
|
|
3909
3965
|
"dovecotFailedStatus": "Dovecot is {{status}}. Open the Software tab for the unit summary.",
|
|
3910
3966
|
"mailCertMissing": "No certificate for {{hosts}}. Issue it on the SSL page.",
|
|
3911
3967
|
"mailCertPresent": "A mail certificate is already issued — this is not a missing-cert problem.",
|
|
3912
|
-
"webmailNeedCert": "No certificate for {{host}} — issue it on SSL before forcing HTTPS."
|
|
3968
|
+
"webmailNeedCert": "No certificate for {{host}} — issue it on SSL before forcing HTTPS.",
|
|
3969
|
+
"domainRequired": "Enter a domain",
|
|
3970
|
+
"domainInvalid": "Enter a valid domain",
|
|
3971
|
+
"serverIpRequired": "Enter a server IP",
|
|
3972
|
+
"serverIpInvalid": "Enter a valid IP address",
|
|
3973
|
+
"serverIpv6Invalid": "Enter a valid IPv6 address",
|
|
3974
|
+
"localPartRequired": "Enter a local part",
|
|
3975
|
+
"localPartInvalid": "Local part may only use letters, digits, . _ + -",
|
|
3976
|
+
"aliasDestRequired": "Enter at least one destination address",
|
|
3977
|
+
"mailboxStatusManaged": "Managed",
|
|
3978
|
+
"mailboxStatusActiveShort": "Active",
|
|
3979
|
+
"mailboxStatusDisabledShort": "Disabled",
|
|
3980
|
+
"mailboxStatusSystem": "System provisioned",
|
|
3981
|
+
"mailboxStatusPending": "Pending system",
|
|
3982
|
+
"mailboxStatusFailed": "System failed",
|
|
3983
|
+
"dnsblCleanStatus": "Not listed",
|
|
3984
|
+
"dnsblListedStatus": "Listed",
|
|
3985
|
+
"deliverabilityDone": "Delivery check complete ({{score}}/100)",
|
|
3986
|
+
"sieveEmpty": "No written Sieve files",
|
|
3987
|
+
"sieveListed": "{{count}} written file(s)",
|
|
3988
|
+
"webmailHostnameRequired": "Enter a webmail hostname",
|
|
3989
|
+
"sieveFilesTitle": "Written files"
|
|
3913
3990
|
},
|
|
3914
3991
|
"errors": {
|
|
3915
3992
|
"YSK_UNAUTHORIZED": "Unauthorized",
|
|
@@ -4232,6 +4309,7 @@
|
|
|
4232
4309
|
"noVersions": "No version history yet",
|
|
4233
4310
|
"noVersionsHint": "",
|
|
4234
4311
|
"versionRestored": "Restored",
|
|
4312
|
+
"restoreVersionConfirm": "Restore {{version}} over the current file {{file}}? This overwrites the file on disk.",
|
|
4235
4313
|
"renameTitle": "Rename",
|
|
4236
4314
|
"renameCurrent": "Current: {{name}}",
|
|
4237
4315
|
"renamed": "Renamed",
|
|
@@ -4570,6 +4648,7 @@
|
|
|
4570
4648
|
"keyFingerprint": "Key fingerprint (prefix)",
|
|
4571
4649
|
"createHint": "Create an FTP account on the Accounts tab first, then return here to register keys.",
|
|
4572
4650
|
"pubkeyHint": "Use “+ Add public key”, choose an FTP user, and paste a full ssh-ed25519 or ssh-rsa line.",
|
|
4651
|
+
"sftpKeyInvalid": "Need a username and a public key that starts with ssh-.",
|
|
4573
4652
|
"quickSelect": "Quick-select account",
|
|
4574
4653
|
"quickSelectHint": "Click a username to fill the new-key form",
|
|
4575
4654
|
"editAccount": "Edit FTP account",
|
|
@@ -4595,6 +4674,7 @@
|
|
|
4595
4674
|
"sshPubkey": "SSH public key",
|
|
4596
4675
|
"sshPubkeyHint": "Usually from ~/.ssh/id_ed25519.pub, paste whole line",
|
|
4597
4676
|
"deleteAccountTitle": "Delete FTP account?",
|
|
4677
|
+
"deleteAccountNamed": "Delete FTP account {{name}}?",
|
|
4598
4678
|
"deleteAccountDesc": "Apply again after remove",
|
|
4599
4679
|
"deleteKeyTitle": "Delete SFTP public key?",
|
|
4600
4680
|
"deleteKeyDesc": "Removes from management file; system authorized_keys may need reload.",
|
|
@@ -4884,6 +4964,7 @@
|
|
|
4884
4964
|
"reload": "Reload",
|
|
4885
4965
|
"stop": "Stop",
|
|
4886
4966
|
"clearCookies": "Clear cookies",
|
|
4967
|
+
"clearCookiesConfirm": "This clears cookies stored on the host for this browse session. Sites that were signed in will need to be signed in again.",
|
|
4887
4968
|
"closeSession": "Close session",
|
|
4888
4969
|
"copyUrl": "Copy URL",
|
|
4889
4970
|
"newSession": "New session",
|
|
@@ -4972,6 +5053,7 @@
|
|
|
4972
5053
|
"resumeHintDetail": "Resume previous session ({{count}} tabs) · {{url}} · {{when}}",
|
|
4973
5054
|
"resumeHintOwned": "Resume last browse for {{user}} ({{count}} tabs) · {{url}} · {{when}}",
|
|
4974
5055
|
"clearSessionData": "Clear session data",
|
|
5056
|
+
"clearSessionConfirm": "This discards the resume snapshot for the previous browse session. You cannot restore those tabs afterwards.",
|
|
4975
5057
|
"resume": "Resume",
|
|
4976
5058
|
"resumeDismiss": "Dismiss",
|
|
4977
5059
|
"resumeDone": "Session resumed",
|
|
@@ -5360,6 +5442,7 @@
|
|
|
5360
5442
|
"applyRenice": "Apply renice",
|
|
5361
5443
|
"reniceHint": "-20 highest · 19 lowest (needs EXECUTE)",
|
|
5362
5444
|
"noData": "No data",
|
|
5445
|
+
"shareOfMeasured": "{{pct}}% of measured",
|
|
5363
5446
|
"mountsTitle": "Disk mounts ({{count}})",
|
|
5364
5447
|
"mountsDesc": "Real disk usage (temporary filesystems filtered)",
|
|
5365
5448
|
"noMounts": "No mount list",
|
|
@@ -5446,6 +5529,14 @@
|
|
|
5446
5529
|
"jobsTitle": "Migration jobs ({{count}})",
|
|
5447
5530
|
"jobsDesc": "State under dataDir/migrate/;",
|
|
5448
5531
|
"phase": "Phase",
|
|
5532
|
+
"jobPhase": "Job {{id}} · {{phase}}",
|
|
5533
|
+
"phaseName": {
|
|
5534
|
+
"failed": "Failed",
|
|
5535
|
+
"done": "Done",
|
|
5536
|
+
"running": "Running",
|
|
5537
|
+
"queued": "Queued",
|
|
5538
|
+
"cancelled": "Cancelled"
|
|
5539
|
+
},
|
|
5449
5540
|
"target": "Target",
|
|
5450
5541
|
"updated": "Updated",
|
|
5451
5542
|
"notes": "Notes",
|
|
@@ -5538,6 +5629,7 @@
|
|
|
5538
5629
|
"postgresService": "PostgreSQL service",
|
|
5539
5630
|
"redis": "Redis",
|
|
5540
5631
|
"redisService": "Redis service",
|
|
5632
|
+
"cluster": "Clusters",
|
|
5541
5633
|
"dns": "DNS",
|
|
5542
5634
|
"ssl": "SSL certificates",
|
|
5543
5635
|
"nginx": "Nginx",
|
|
@@ -5690,6 +5782,10 @@
|
|
|
5690
5782
|
"saveIpHint": "Write connection +ipv4/ipv6.addresses and connection up",
|
|
5691
5783
|
"confirmIfaceName": "Type interface name “{{name}}” to confirm",
|
|
5692
5784
|
"deleteRouteTitle": "Delete route?",
|
|
5785
|
+
"deleteRouteNamed": "Delete route {{dst}}?",
|
|
5786
|
+
"deleteRouteBody": "Remove {{dst}}{{via}}{{dev}} from the live routing table.",
|
|
5787
|
+
"viaGw": " via {{gw}}",
|
|
5788
|
+
"onDev": " on {{dev}}",
|
|
5693
5789
|
"deleteDefaultWarn": "— deleting default may drop connectivity.",
|
|
5694
5790
|
"alsoRemoveNm": "Also remove from NetworkManager connection (gone after reboot)",
|
|
5695
5791
|
"loadFailed": "Load failed",
|
|
@@ -5796,6 +5892,11 @@
|
|
|
5796
5892
|
"editDesc": "Apply required after save",
|
|
5797
5893
|
"deleteTitle": "Delete site?",
|
|
5798
5894
|
"deleteDesc": "Delete this site?",
|
|
5895
|
+
"deleteTitleNamed": "Delete site {{name}}?",
|
|
5896
|
+
"deleteDescNamed": "Remove {{name}} from the panel. Applied sites will also drop their managed nginx conf.",
|
|
5897
|
+
"invalidServerName": "Enter a valid hostname (e.g. app.example.com).",
|
|
5898
|
+
"needUpstream": "Upstream is required for reverse proxy sites.",
|
|
5899
|
+
"needRoot": "Document root is required for static and PHP sites.",
|
|
5799
5900
|
"serverNameHint": "server_name, e.g. app.example.com",
|
|
5800
5901
|
"kindLabel": "Site type",
|
|
5801
5902
|
"upstreamLabel": "Upstream",
|
|
@@ -5838,7 +5939,7 @@
|
|
|
5838
5939
|
"settingsSaved": "Saved",
|
|
5839
5940
|
"setGzip": "Gzip",
|
|
5840
5941
|
"setShowVersion": "Show server version",
|
|
5841
|
-
"setShowVersionDesc": "
|
|
5942
|
+
"setShowVersionDesc": "Checked = server_tokens on (nginx version in response headers)",
|
|
5842
5943
|
"setHttp2": "HTTP/2 (SSL)",
|
|
5843
5944
|
"setBody": "Max body",
|
|
5844
5945
|
"setKeepalive": "Keepalive",
|
|
@@ -5866,6 +5967,7 @@
|
|
|
5866
5967
|
"notFound": "Not found",
|
|
5867
5968
|
"needPath": "Specify a path",
|
|
5868
5969
|
"needName": "Enter a name",
|
|
5970
|
+
"needHost": "Enter a host",
|
|
5869
5971
|
"needDomain": "Enter a domain",
|
|
5870
5972
|
"needProjectName": "Enter a project name",
|
|
5871
5973
|
"needServerIp": "Specify a server IP",
|
|
@@ -5933,7 +6035,14 @@
|
|
|
5933
6035
|
"movedToTrash": "Moved {{name}} to the recycle bin. Permanent delete after {{days}} days.",
|
|
5934
6036
|
"restoreNameExists": "Cannot restore {{name}} — a live archive with that name already exists.",
|
|
5935
6037
|
"restoredFromTrash": "Restored {{name}} from the recycle bin.",
|
|
5936
|
-
"trashEmptied": "Permanently deleted {{n}} archive(s) from the recycle bin."
|
|
6038
|
+
"trashEmptied": "Permanently deleted {{n}} archive(s) from the recycle bin.",
|
|
6039
|
+
"partialOk": "Partial success — {{n}} project(s) skipped"
|
|
6040
|
+
},
|
|
6041
|
+
"health": {
|
|
6042
|
+
"portListening": "Port {{port}} is listening",
|
|
6043
|
+
"portNotListening": "Port {{port}} is not listening",
|
|
6044
|
+
"httpOk": "HTTP OK {{status}}",
|
|
6045
|
+
"httpFail": "HTTP failed: {{detail}}"
|
|
5937
6046
|
},
|
|
5938
6047
|
"redis": {
|
|
5939
6048
|
"cliMissing": "redis-cli is not installed",
|
|
@@ -5949,6 +6058,7 @@
|
|
|
5949
6058
|
"managedDir": "Managed config dir: {{path}}",
|
|
5950
6059
|
"includeHint": "In nginx: include {{path}}/*.conf;",
|
|
5951
6060
|
"removedOrphan": "Removed orphan nginx conf {{path}}",
|
|
6061
|
+
"keptLiveSsl": "Kept live HTTPS block in {{path}} (managed template had no listen 443)",
|
|
5952
6062
|
"orphanCleanupFailed": "Orphan nginx cleanup failed: {{detail}}",
|
|
5953
6063
|
"settingsWritten": "Nginx global snippet written",
|
|
5954
6064
|
"settingsNeedExecute": "Apply needs YSK_EXECUTE",
|
|
@@ -6029,6 +6139,8 @@
|
|
|
6029
6139
|
"noManagedZones": "No managed zone files under dataDir/dns/zones",
|
|
6030
6140
|
"pdnsListZones": "PowerDNS list-zones: {{n}}",
|
|
6031
6141
|
"lookupIgnoredAt": "dig is unavailable — @{{server}} was ignored. Not using the system resolver as that server’s answer.",
|
|
6142
|
+
"digNotInstalled": "dig is not installed",
|
|
6143
|
+
"digEmpty": "dig: no answer",
|
|
6032
6144
|
"localAOk": "local A {{name}} → {{ip}}"
|
|
6033
6145
|
},
|
|
6034
6146
|
"db": {
|
|
@@ -6076,7 +6188,11 @@
|
|
|
6076
6188
|
"dovecotPassdbWrittenNeedApply": "Passwd-file written under dataDir — run apply (EXECUTE+root) so Dovecot loads it",
|
|
6077
6189
|
"postqueueSetgidBroken": "Postfix queue tools failed: setgid_group is empty in main.cf. Set setgid_group=postdrop (panel tries to fix when YSK_EXECUTE is on).",
|
|
6078
6190
|
"postqueueMailDown": "Postfix is not running (showq unavailable). Panel tried to start it when YSK_EXECUTE is on — check the Software tab / systemctl status postfix.",
|
|
6079
|
-
"postqueueSpoolMissing": "Postfix queue directories are missing (e.g. hold/). Panel tried to create the spool tree and start Postfix when YSK_EXECUTE is on."
|
|
6191
|
+
"postqueueSpoolMissing": "Postfix queue directories are missing (e.g. hold/). Panel tried to create the spool tree and start Postfix when YSK_EXECUTE is on.",
|
|
6192
|
+
"invalidDomain": "Enter a valid mail domain",
|
|
6193
|
+
"invalidServerIp": "Enter a valid server IP",
|
|
6194
|
+
"mailboxLocalPartInvalid": "Mailbox local-part may only use letters, digits, . _ + -",
|
|
6195
|
+
"passwordTooShort": "Password must be at least 8 characters"
|
|
6080
6196
|
},
|
|
6081
6197
|
"software": {
|
|
6082
6198
|
"startUnit": "Start {{u}}",
|
|
@@ -8117,7 +8233,7 @@
|
|
|
8117
8233
|
"t0327": " (skipped {{v0}} without a home dir)",
|
|
8118
8234
|
"t0328": "projectdirectory: {{v0}}",
|
|
8119
8235
|
"t0329": "tar failed: {{v0}}",
|
|
8120
|
-
"t0330": "
|
|
8236
|
+
"t0330": "Wrote backup {{v0}}",
|
|
8121
8237
|
"t0331": "Preview: {{v0}} files in the archive (showing {{v1}})",
|
|
8122
8238
|
"t0332": "cannot: {{v0}}",
|
|
8123
8239
|
"t0333": "restore (web) to {{v0}}",
|
|
@@ -8796,10 +8912,10 @@
|
|
|
8796
8912
|
"serverMissing": "WireGuard server not initialized — run Start server first.",
|
|
8797
8913
|
"peerCreated": "Client «{{name}}» created.",
|
|
8798
8914
|
"peerNotFound": "Client not found.",
|
|
8799
|
-
"peerRemoved": "
|
|
8915
|
+
"peerRemoved": "Removed {{name}}.",
|
|
8800
8916
|
"peersSynced": "Peer list reloaded on the running WireGuard interface.",
|
|
8801
8917
|
"setEndpointHint": "Set public endpoint (host:port) so mobile clients can reach this server.",
|
|
8802
|
-
"invalidConf": "
|
|
8918
|
+
"invalidConf": "This file is not a valid VPN client conf. Use a WireGuard or OpenVPN client profile.",
|
|
8803
8919
|
"clientImported": "Profile «{{name}}» imported.",
|
|
8804
8920
|
"profileNotFound": "Client profile not found.",
|
|
8805
8921
|
"clientUpFailed": "Connect failed: {{detail}}",
|
|
@@ -9112,7 +9228,11 @@
|
|
|
9112
9228
|
"stepStoppedOld": "Stopped previous process",
|
|
9113
9229
|
"stepTuningApplied": "Runtime tuning applied",
|
|
9114
9230
|
"stepUnitWritten": "Service unit written",
|
|
9115
|
-
"stepSystemdStartFailed": "Systemd start failed — using process fallback"
|
|
9231
|
+
"stepSystemdStartFailed": "Systemd start failed — using process fallback",
|
|
9232
|
+
"portListening": "Port {{port}} is listening",
|
|
9233
|
+
"portNotListening": "Port {{port}} is not listening",
|
|
9234
|
+
"httpOk": "HTTP OK {{status}}",
|
|
9235
|
+
"httpFail": "HTTP failed: {{detail}}"
|
|
9116
9236
|
},
|
|
9117
9237
|
"pageGuide": {
|
|
9118
9238
|
"missing": "No help content is available for this page yet.",
|
|
@@ -9858,7 +9978,10 @@
|
|
|
9858
9978
|
"gitBehindShort": "↓{{count}}",
|
|
9859
9979
|
"gitAheadShort": "↑{{count}}",
|
|
9860
9980
|
"gitDirtyShort": "Dirty · {{count}}",
|
|
9861
|
-
"gitFilesLink": "Files"
|
|
9981
|
+
"gitFilesLink": "Files",
|
|
9982
|
+
"nameInvalid": "Use a lowercase name: start with a letter, then letters, digits, or hyphen (max 31).",
|
|
9983
|
+
"deployVersionMissing": "Node {{version}} is not installed on this host. Pick an installed version, or install this version first.",
|
|
9984
|
+
"deployUsedBinary": "Deploy used {{path}}"
|
|
9862
9985
|
},
|
|
9863
9986
|
"protection": {
|
|
9864
9987
|
"levels": {
|
|
@@ -10100,8 +10223,8 @@
|
|
|
10100
10223
|
"block": "Block",
|
|
10101
10224
|
"allow": "Allow",
|
|
10102
10225
|
"matched": "Matched",
|
|
10103
|
-
"applyStricterTitle": "Apply
|
|
10104
|
-
"applyStricterDesc": "May enable auto-ban. Confirm your IP is whitelisted.",
|
|
10226
|
+
"applyStricterTitle": "Apply {{name}}?",
|
|
10227
|
+
"applyStricterDesc": "May enable auto-ban. Confirm your IP is whitelisted. Review the profile changes below.",
|
|
10105
10228
|
"confirmEmergencyTitle": "Confirm emergency preset",
|
|
10106
10229
|
"confirmEmergencyDesc": "Emergency extremely rate-limits. Confirm whitelist and type EMERGENCY.",
|
|
10107
10230
|
"confirmString": "Confirm string",
|
|
@@ -10291,8 +10414,11 @@
|
|
|
10291
10414
|
"notSynced": "Managed conf exists but is not under /etc/nginx/conf.d — apply again as root with YSK_EXECUTE"
|
|
10292
10415
|
},
|
|
10293
10416
|
"quotaMiB": "Quota (MiB)",
|
|
10294
|
-
"quotaHint": "Optional; caps public directory size",
|
|
10417
|
+
"quotaHint": "Optional; caps public directory size. Unlimited disables the MiB field.",
|
|
10295
10418
|
"unlimited": "Unlimited",
|
|
10419
|
+
"quotaInvalid": "Enter a whole number of MiB, or choose Unlimited.",
|
|
10420
|
+
"serverNameRequired": "Enter a server name.",
|
|
10421
|
+
"serverNameInvalid": "Use a hostname, wildcard, or IP — no spaces or punctuation.",
|
|
10296
10422
|
"applyHint": "Apply only writes config;",
|
|
10297
10423
|
"appliedOk": "Public files site applied",
|
|
10298
10424
|
"applyReload": "Apply and reload Nginx",
|
|
@@ -10431,8 +10557,8 @@
|
|
|
10431
10557
|
"unsavedHint": "Unsaved edits on this role",
|
|
10432
10558
|
"nothingToSave": "Nothing to save",
|
|
10433
10559
|
"saveRole": "Save {{role}} policy",
|
|
10434
|
-
"discardTitle": "Discard unsaved
|
|
10435
|
-
"discardDesc": "
|
|
10560
|
+
"discardTitle": "Discard unsaved changes?",
|
|
10561
|
+
"discardDesc": "Unsaved permission edits will be discarded."
|
|
10436
10562
|
},
|
|
10437
10563
|
"readiness": {
|
|
10438
10564
|
"cat": {
|
|
@@ -10757,6 +10883,10 @@
|
|
|
10757
10883
|
"globalPhpIniDesc": "One setting per row",
|
|
10758
10884
|
"managePath": "Management path",
|
|
10759
10885
|
"loading": "Loading",
|
|
10886
|
+
"probing": "Probing…",
|
|
10887
|
+
"noBinaryPath": "No binary path",
|
|
10888
|
+
"hostDefaultError": "Host default unavailable",
|
|
10889
|
+
"pm2Tick": "{{at}} · projects {{projects}} · PM2 {{pm2}} · running {{run}}",
|
|
10760
10890
|
"cannotLoadSettings": "Cannot load settings table",
|
|
10761
10891
|
"reloadFailed": "Reload failed",
|
|
10762
10892
|
"sensitive": "Sensitive setting — careful",
|
|
@@ -10774,6 +10904,7 @@
|
|
|
10774
10904
|
"demoVhost": "System tools: demo vhost / pool",
|
|
10775
10905
|
"demoVhostDesc": "Advanced/debug; daily sites use Projects → Deploy",
|
|
10776
10906
|
"domain": "Domain",
|
|
10907
|
+
"domainRequired": "Enter a valid domain before applying the vhost.",
|
|
10777
10908
|
"vhostServerName": "Virtual host server_name",
|
|
10778
10909
|
"poolName": "Pool name",
|
|
10779
10910
|
"poolNameHint": "Hand-typed id (demo); project paths use ysks_* users",
|
|
@@ -11132,7 +11263,8 @@
|
|
|
11132
11263
|
"interpreter": "Interpreter",
|
|
11133
11264
|
"user": "User",
|
|
11134
11265
|
"unit": "Unit",
|
|
11135
|
-
"runtime": "Runtime"
|
|
11266
|
+
"runtime": "Runtime",
|
|
11267
|
+
"pid": "PID"
|
|
11136
11268
|
},
|
|
11137
11269
|
"projectsTitle": "YSK project processes",
|
|
11138
11270
|
"projectsDesc": "systemd units for panel projects (default deploy path — not PM2).",
|
|
@@ -11823,6 +11955,11 @@
|
|
|
11823
11955
|
"restartConfirmPanelDesc": "The panel and API will drop briefly while the unit restarts.",
|
|
11824
11956
|
"restartConfirmTitle": "Restart {{label}}?",
|
|
11825
11957
|
"restartConfirmDesc": "Restart {{label}} now. Active connections may drop.",
|
|
11958
|
+
"restartConfirmConsequence": "{{label}} will briefly interrupt connections, then keep serving HTTP/HTTPS.",
|
|
11959
|
+
"reloadConfirmTitle": "Reload {{label}}?",
|
|
11960
|
+
"reloadConfirmDesc": "Reload {{label}} configuration. Existing sessions should stay up.",
|
|
11961
|
+
"enableConfirmTitle": "Enable {{label}} at boot?",
|
|
11962
|
+
"enableConfirmDesc": "Enable {{label}} so it starts on boot.",
|
|
11826
11963
|
"startVerifyFailed": "{{label}} start did not stay healthy.",
|
|
11827
11964
|
"stopConfirmPanelToken": "stop ysk-server",
|
|
11828
11965
|
"stopConfirmPanelConsequence": "This browser session will disconnect. Start the unit from SSH or the host console.",
|
|
@@ -11866,7 +12003,19 @@
|
|
|
11866
12003
|
"protectionDoneNote": "Protection probe finished",
|
|
11867
12004
|
"probeDone": "Probe complete",
|
|
11868
12005
|
"runProtection": "Run protection probe",
|
|
11869
|
-
"notProbedYet": "Not probed yet"
|
|
12006
|
+
"notProbedYet": "Not probed yet",
|
|
12007
|
+
"cat": {
|
|
12008
|
+
"web": "Web",
|
|
12009
|
+
"db": "Databases",
|
|
12010
|
+
"mail": "Mail",
|
|
12011
|
+
"dns": "DNS",
|
|
12012
|
+
"ftp": "FTP",
|
|
12013
|
+
"cache": "Cache",
|
|
12014
|
+
"panel": "Panel",
|
|
12015
|
+
"ssh": "SSH",
|
|
12016
|
+
"other": "Other",
|
|
12017
|
+
"runtime": "Runtimes"
|
|
12018
|
+
}
|
|
11870
12019
|
},
|
|
11871
12020
|
"software": {
|
|
11872
12021
|
"title": "Software",
|
|
@@ -11954,6 +12103,8 @@
|
|
|
11954
12103
|
"latest": "Latest",
|
|
11955
12104
|
"upToDate": "Up to date / repo latest",
|
|
11956
12105
|
"refresh": "Recheck latest",
|
|
12106
|
+
"refreshHasUpdate": "Newer version available",
|
|
12107
|
+
"refreshLatest": "Already the latest recorded version",
|
|
11957
12108
|
"pick": "Pick version",
|
|
11958
12109
|
"noTarget": "No update target",
|
|
11959
12110
|
"needRuntimePage": "Install this version on the runtime page",
|
|
@@ -12327,7 +12478,22 @@
|
|
|
12327
12478
|
"uninstallNow": "Uninstall now",
|
|
12328
12479
|
"uninstallNeedSelect": "Select at least one bundle. Empty selection no longer means remove all.",
|
|
12329
12480
|
"uninstallConfirmTitle": "Remove selected bundles?",
|
|
12330
|
-
"uninstallConfirmDesc": "{{count}} bundle(s) will be removed. Type REMOVE to confirm."
|
|
12481
|
+
"uninstallConfirmDesc": "{{count}} bundle(s) will be removed. Type REMOVE to confirm.",
|
|
12482
|
+
"bundle": {
|
|
12483
|
+
"control-plane": "Control plane",
|
|
12484
|
+
"web": "Web hosting",
|
|
12485
|
+
"database": "Databases",
|
|
12486
|
+
"email": "Mail stack",
|
|
12487
|
+
"dns": "DNS",
|
|
12488
|
+
"ftp": "FTP / FTPS",
|
|
12489
|
+
"defense": "Host defense",
|
|
12490
|
+
"runtimes": "Language runtimes"
|
|
12491
|
+
},
|
|
12492
|
+
"planTitle": {
|
|
12493
|
+
"minimal": "Control plane only",
|
|
12494
|
+
"recommended": "Recommended hosting",
|
|
12495
|
+
"full": "All software"
|
|
12496
|
+
}
|
|
12331
12497
|
},
|
|
12332
12498
|
"support": {
|
|
12333
12499
|
"title": "Support",
|
|
@@ -12689,7 +12855,9 @@
|
|
|
12689
12855
|
"scrollRight": "Scroll tabs right",
|
|
12690
12856
|
"about": "About",
|
|
12691
12857
|
"main": "Actions",
|
|
12692
|
-
"stack": "Software"
|
|
12858
|
+
"stack": "Software",
|
|
12859
|
+
"unknown": "No such tab",
|
|
12860
|
+
"unknownHint": "This page has no tab named {{tab}}."
|
|
12693
12861
|
},
|
|
12694
12862
|
"terminal": {
|
|
12695
12863
|
"tabSession": "Session",
|
|
@@ -13033,6 +13201,8 @@
|
|
|
13033
13201
|
"selfCurrentShort": "Current",
|
|
13034
13202
|
"selfLatestShort": "Latest",
|
|
13035
13203
|
"applyPanelUpdate": "Apply panel update",
|
|
13204
|
+
"applySelfConfirmTitle": "Apply panel update?",
|
|
13205
|
+
"applySelfConfirmDesc": "Install {{from}} → {{to}} and restart the panel service. There is no dry-run.",
|
|
13036
13206
|
"applyPanelAlreadyLatest": "Already the latest panel version",
|
|
13037
13207
|
"recheck": "Recheck",
|
|
13038
13208
|
"aboutScope": "Scope",
|
|
@@ -13045,7 +13215,7 @@
|
|
|
13045
13215
|
"jobsSub": "Control-plane scheduler (read-only) · {{count}}",
|
|
13046
13216
|
"noJobs": "No visible schedules",
|
|
13047
13217
|
"noJobsDesc": "Disabled or no scheduler jobs yet",
|
|
13048
|
-
"lastRun": "
|
|
13218
|
+
"lastRun": "last {{when}}",
|
|
13049
13219
|
"scanPolicy": "Scan",
|
|
13050
13220
|
"scanPolicyV": "Scan ≠ upgraded; apply changes the system",
|
|
13051
13221
|
"highRiskPolicy": "High risk",
|
|
@@ -13243,6 +13413,7 @@
|
|
|
13243
13413
|
"mailboxes": "Mailboxes",
|
|
13244
13414
|
"diskMiB": "Disk MiB",
|
|
13245
13415
|
"noPackages": "No packages yet",
|
|
13416
|
+
"noPackagesHint": "Create a plan from the toolbar, then bind it to users.",
|
|
13246
13417
|
"createUserDesc": "Password min 8 chars; edit role and permissions in detail later",
|
|
13247
13418
|
"username": "Username",
|
|
13248
13419
|
"passwordHint": "At least 8 characters",
|
|
@@ -13378,6 +13549,7 @@
|
|
|
13378
13549
|
"autoClearC1": "When disk is critical, the largest stopped instance is deleted without asking again.",
|
|
13379
13550
|
"autoClearThreshold": "Trigger: filesystem use at or above 85%.",
|
|
13380
13551
|
"autoClearCandidate": "Current candidate: {{id}}",
|
|
13552
|
+
"autoClearCandidates": "Stopped candidates (largest with data first): {{list}}",
|
|
13381
13553
|
"autoClearNone": "No stopped instance is a candidate right now."
|
|
13382
13554
|
},
|
|
13383
13555
|
"chain": {
|
|
@@ -13452,7 +13624,8 @@
|
|
|
13452
13624
|
"cl": "Consensus client"
|
|
13453
13625
|
},
|
|
13454
13626
|
"mithril": {
|
|
13455
|
-
"label": "
|
|
13627
|
+
"label": "After the node is up, restore from a Mithril snapshot",
|
|
13628
|
+
"hint": "This is a one-time restore after install. It is not written into compose. You can also run it later from the instance page.",
|
|
13456
13629
|
"action": "Restore with Mithril"
|
|
13457
13630
|
},
|
|
13458
13631
|
"errors": {
|
|
@@ -13462,6 +13635,8 @@
|
|
|
13462
13635
|
"diskUnknownMainnet": "Cannot measure free disk; refusing mainnet create",
|
|
13463
13636
|
"needDocker": "Docker Compose is required and was not found",
|
|
13464
13637
|
"composeFailed": "docker compose failed",
|
|
13638
|
+
"containerNotUp": "Compose started, but the container did not stay running",
|
|
13639
|
+
"probeFailed": "The node is not answering RPC yet. Check logs on this page.",
|
|
13465
13640
|
"needConfirm": "Clear requires confirm=instance id or CLEAR",
|
|
13466
13641
|
"mithrilAdaOnly": "Mithril restore is only available for Cardano",
|
|
13467
13642
|
"needMithrilConfirm": "Mithril requires confirm=instance id or MITHRIL",
|
|
@@ -14085,6 +14260,7 @@
|
|
|
14085
14260
|
"hostnameFixDesc": "{{line}}",
|
|
14086
14261
|
"hostnameFixDone": "Hostname /etc/hosts updated",
|
|
14087
14262
|
"startAfterCreateBlocked": "Disabled until the hostname resolves",
|
|
14263
|
+
"startHostnameBlocked": "Cannot start until this host can resolve its hostname. Use “Write hostname to /etc/hosts”.",
|
|
14088
14264
|
"colName": "Name",
|
|
14089
14265
|
"colLinuxUser": "Linux user",
|
|
14090
14266
|
"colDisplay": "Display / port",
|
|
@@ -14243,6 +14419,8 @@
|
|
|
14243
14419
|
"peersTitleSs": "Access keys",
|
|
14244
14420
|
"peerName": "Name",
|
|
14245
14421
|
"peerNamePlaceholder": "office-laptop",
|
|
14422
|
+
"peerNameHint": "Letters, digits, . _ - — no spaces, / or !",
|
|
14423
|
+
"peerNameInvalid": "Spaces, / and ! are not allowed. Use {{preview}} or change the name.",
|
|
14246
14424
|
"addPeer": "+ Add",
|
|
14247
14425
|
"installEngineFirst": "Install the VPN engine first",
|
|
14248
14426
|
"needServerRunning": "{{engine}} is not running — apply the server first",
|
|
@@ -14252,6 +14430,16 @@
|
|
|
14252
14430
|
"hidePrivateKey": "Hide private key",
|
|
14253
14431
|
"deletePeerTitle": "Delete peer {{name}}?",
|
|
14254
14432
|
"deletePeerDesc": "Remove {{name}} ({{address}}). The client disconnects immediately and the config cannot be restored. The WireGuard server stays up.",
|
|
14433
|
+
"deleteClientTitle": "Delete OpenVPN client {{name}}?",
|
|
14434
|
+
"deleteClientDesc": "Remove {{name}} ({{address}}). The client disconnects immediately and the profile cannot be restored. The OpenVPN server stays up.",
|
|
14435
|
+
"deleteKeyTitle": "Delete Shadowsocks key {{name}}?",
|
|
14436
|
+
"deleteKeyDesc": "Remove access key {{name}} ({{address}}). Clients using this key disconnect. The Shadowsocks server stays up.",
|
|
14437
|
+
"deleteResult": "Removed {{name}}.",
|
|
14438
|
+
"portInvalid": "Listen port must be an integer from 1 to 65535.",
|
|
14439
|
+
"portRequired": "Listen port is required.",
|
|
14440
|
+
"importInvalid": "Could not detect a WireGuard or OpenVPN client conf.",
|
|
14441
|
+
"qrFailed": "Could not generate a QR code for this config. Download or copy the text instead.",
|
|
14442
|
+
"cfgTitle": "Config — {{name}}",
|
|
14255
14443
|
"addPeerWg": "+ Add peer",
|
|
14256
14444
|
"addPeerOvpn": "+ Add client",
|
|
14257
14445
|
"addPeerSs": "+ Add key",
|
|
@@ -14306,7 +14494,9 @@
|
|
|
14306
14494
|
"customHint": "Only the CIDRs you list enter the tunnel. Reconnect after apply.",
|
|
14307
14495
|
"lanCidrs": "LAN networks",
|
|
14308
14496
|
"customCidr": "CIDR",
|
|
14309
|
-
"addCidr": "Add"
|
|
14497
|
+
"addCidr": "Add",
|
|
14498
|
+
"cidrRequired": "Enter a CIDR (for example 192.168.1.0/24).",
|
|
14499
|
+
"cidrInvalid": "Enter a valid CIDR, for example 192.168.1.0/24."
|
|
14310
14500
|
},
|
|
14311
14501
|
"engineNotInstalled": "This VPN engine is not installed on the host.",
|
|
14312
14502
|
"serverNotListening": "Server unit is not active. UDP/TCP {{port}} may be closed."
|