ysk-server-shared 1.1.0 → 1.1.9

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.
Files changed (406) hide show
  1. package/dist/cdn.d.ts +2 -0
  2. package/dist/cdn.d.ts.map +1 -1
  3. package/dist/dto.d.ts +1 -1
  4. package/dist/dto.d.ts.map +1 -1
  5. package/dist/ftp.d.ts +6 -0
  6. package/dist/ftp.d.ts.map +1 -1
  7. package/dist/migrate.d.ts +1 -0
  8. package/dist/migrate.d.ts.map +1 -1
  9. package/dist/route-capabilities.d.ts.map +1 -1
  10. package/dist/route-capabilities.js +10 -0
  11. package/dist/route-capabilities.js.map +1 -1
  12. package/dist/validators.d.ts +39 -2
  13. package/dist/validators.d.ts.map +1 -1
  14. package/dist/validators.js +12 -0
  15. package/dist/validators.js.map +1 -1
  16. package/locales/ar/agents.json +7 -2
  17. package/locales/ar/apache.json +3 -1
  18. package/locales/ar/backups.json +17 -1
  19. package/locales/ar/btTracker.json +4 -1
  20. package/locales/ar/cdn.json +3 -1
  21. package/locales/ar/common.json +2 -1
  22. package/locales/ar/cron.json +4 -1
  23. package/locales/ar/dashboard.json +4 -2
  24. package/locales/ar/db.json +18 -1
  25. package/locales/ar/dns.json +5 -1
  26. package/locales/ar/docker.json +2 -1
  27. package/locales/ar/email.json +4 -1
  28. package/locales/ar/files.json +2 -1
  29. package/locales/ar/ftp.json +17 -1
  30. package/locales/ar/hostBrowse.json +3 -1
  31. package/locales/ar/migrate.json +14 -1
  32. package/locales/ar/network.json +3 -1
  33. package/locales/ar/nginx.json +4 -1
  34. package/locales/ar/notes.json +42 -6
  35. package/locales/ar/projects.json +2 -1
  36. package/locales/ar/protection.json +3 -1
  37. package/locales/ar/publicFiles.json +5 -1
  38. package/locales/ar/redis.json +6 -1
  39. package/locales/ar/security.json +3 -1
  40. package/locales/ar/services.json +9 -1
  41. package/locales/ar/system.json +7 -2
  42. package/locales/ar/translation.json +267 -41
  43. package/locales/ar/updates.json +2 -1
  44. package/locales/ar/validators.json +64 -5
  45. package/locales/ar/vnc.json +8 -1
  46. package/locales/bn/agents.json +7 -2
  47. package/locales/bn/apache.json +3 -1
  48. package/locales/bn/backups.json +17 -1
  49. package/locales/bn/btTracker.json +4 -1
  50. package/locales/bn/cdn.json +3 -1
  51. package/locales/bn/common.json +2 -1
  52. package/locales/bn/cron.json +4 -1
  53. package/locales/bn/dashboard.json +4 -2
  54. package/locales/bn/db.json +18 -1
  55. package/locales/bn/dns.json +5 -1
  56. package/locales/bn/docker.json +2 -1
  57. package/locales/bn/email.json +4 -1
  58. package/locales/bn/files.json +2 -1
  59. package/locales/bn/ftp.json +17 -1
  60. package/locales/bn/hostBrowse.json +3 -1
  61. package/locales/bn/migrate.json +14 -1
  62. package/locales/bn/network.json +3 -1
  63. package/locales/bn/nginx.json +4 -1
  64. package/locales/bn/notes.json +42 -6
  65. package/locales/bn/projects.json +2 -1
  66. package/locales/bn/protection.json +3 -1
  67. package/locales/bn/publicFiles.json +5 -1
  68. package/locales/bn/redis.json +6 -1
  69. package/locales/bn/security.json +3 -1
  70. package/locales/bn/services.json +9 -1
  71. package/locales/bn/system.json +7 -2
  72. package/locales/bn/translation.json +267 -41
  73. package/locales/bn/updates.json +2 -1
  74. package/locales/bn/validators.json +64 -5
  75. package/locales/bn/vnc.json +8 -1
  76. package/locales/en/agents.json +5 -0
  77. package/locales/en/apache.json +2 -0
  78. package/locales/en/backups.json +18 -2
  79. package/locales/en/btTracker.json +5 -2
  80. package/locales/en/cdn.json +3 -1
  81. package/locales/en/common.json +1 -0
  82. package/locales/en/cron.json +3 -0
  83. package/locales/en/dashboard.json +3 -1
  84. package/locales/en/db.json +17 -0
  85. package/locales/en/dns.json +4 -0
  86. package/locales/en/docker.json +1 -0
  87. package/locales/en/email.json +3 -0
  88. package/locales/en/files.json +1 -0
  89. package/locales/en/ftp.json +16 -0
  90. package/locales/en/hostBrowse.json +2 -0
  91. package/locales/en/migrate.json +14 -1
  92. package/locales/en/network.json +2 -0
  93. package/locales/en/nginx.json +4 -1
  94. package/locales/en/notes.json +45 -6
  95. package/locales/en/projects.json +1 -0
  96. package/locales/en/protection.json +2 -0
  97. package/locales/en/publicFiles.json +5 -1
  98. package/locales/en/redis.json +5 -0
  99. package/locales/en/security.json +2 -0
  100. package/locales/en/services.json +8 -0
  101. package/locales/en/system.json +7 -2
  102. package/locales/en/translation.json +252 -26
  103. package/locales/en/updates.json +1 -0
  104. package/locales/en/validators.json +65 -6
  105. package/locales/en/vnc.json +7 -0
  106. package/locales/es/agents.json +7 -2
  107. package/locales/es/apache.json +3 -1
  108. package/locales/es/backups.json +17 -1
  109. package/locales/es/btTracker.json +4 -1
  110. package/locales/es/cdn.json +3 -1
  111. package/locales/es/common.json +2 -1
  112. package/locales/es/cron.json +4 -1
  113. package/locales/es/dashboard.json +4 -2
  114. package/locales/es/db.json +18 -1
  115. package/locales/es/dns.json +5 -1
  116. package/locales/es/docker.json +2 -1
  117. package/locales/es/email.json +4 -1
  118. package/locales/es/files.json +2 -1
  119. package/locales/es/ftp.json +17 -1
  120. package/locales/es/hostBrowse.json +3 -1
  121. package/locales/es/migrate.json +14 -1
  122. package/locales/es/network.json +3 -1
  123. package/locales/es/nginx.json +4 -1
  124. package/locales/es/notes.json +42 -6
  125. package/locales/es/projects.json +2 -1
  126. package/locales/es/protection.json +3 -1
  127. package/locales/es/publicFiles.json +5 -1
  128. package/locales/es/redis.json +6 -1
  129. package/locales/es/security.json +3 -1
  130. package/locales/es/services.json +9 -1
  131. package/locales/es/system.json +7 -2
  132. package/locales/es/translation.json +267 -41
  133. package/locales/es/updates.json +2 -1
  134. package/locales/es/validators.json +64 -5
  135. package/locales/es/vnc.json +8 -1
  136. package/locales/fr/agents.json +7 -2
  137. package/locales/fr/apache.json +3 -1
  138. package/locales/fr/backups.json +17 -1
  139. package/locales/fr/btTracker.json +4 -1
  140. package/locales/fr/cdn.json +3 -1
  141. package/locales/fr/common.json +2 -1
  142. package/locales/fr/cron.json +4 -1
  143. package/locales/fr/dashboard.json +4 -2
  144. package/locales/fr/db.json +18 -1
  145. package/locales/fr/dns.json +5 -1
  146. package/locales/fr/docker.json +2 -1
  147. package/locales/fr/email.json +4 -1
  148. package/locales/fr/files.json +2 -1
  149. package/locales/fr/ftp.json +17 -1
  150. package/locales/fr/hostBrowse.json +3 -1
  151. package/locales/fr/migrate.json +14 -1
  152. package/locales/fr/network.json +3 -1
  153. package/locales/fr/nginx.json +4 -1
  154. package/locales/fr/notes.json +42 -6
  155. package/locales/fr/projects.json +2 -1
  156. package/locales/fr/protection.json +3 -1
  157. package/locales/fr/publicFiles.json +5 -1
  158. package/locales/fr/redis.json +6 -1
  159. package/locales/fr/security.json +3 -1
  160. package/locales/fr/services.json +9 -1
  161. package/locales/fr/system.json +7 -2
  162. package/locales/fr/translation.json +267 -41
  163. package/locales/fr/updates.json +2 -1
  164. package/locales/fr/validators.json +64 -5
  165. package/locales/fr/vnc.json +8 -1
  166. package/locales/hi/agents.json +7 -2
  167. package/locales/hi/apache.json +3 -1
  168. package/locales/hi/backups.json +17 -1
  169. package/locales/hi/btTracker.json +4 -1
  170. package/locales/hi/cdn.json +3 -1
  171. package/locales/hi/common.json +2 -1
  172. package/locales/hi/cron.json +4 -1
  173. package/locales/hi/dashboard.json +4 -2
  174. package/locales/hi/db.json +18 -1
  175. package/locales/hi/dns.json +5 -1
  176. package/locales/hi/docker.json +2 -1
  177. package/locales/hi/email.json +4 -1
  178. package/locales/hi/files.json +2 -1
  179. package/locales/hi/ftp.json +17 -1
  180. package/locales/hi/hostBrowse.json +3 -1
  181. package/locales/hi/migrate.json +14 -1
  182. package/locales/hi/network.json +3 -1
  183. package/locales/hi/nginx.json +4 -1
  184. package/locales/hi/notes.json +42 -6
  185. package/locales/hi/projects.json +2 -1
  186. package/locales/hi/protection.json +3 -1
  187. package/locales/hi/publicFiles.json +5 -1
  188. package/locales/hi/redis.json +6 -1
  189. package/locales/hi/security.json +3 -1
  190. package/locales/hi/services.json +9 -1
  191. package/locales/hi/system.json +7 -2
  192. package/locales/hi/translation.json +267 -41
  193. package/locales/hi/updates.json +2 -1
  194. package/locales/hi/validators.json +64 -5
  195. package/locales/hi/vnc.json +8 -1
  196. package/locales/id/agents.json +7 -2
  197. package/locales/id/apache.json +3 -1
  198. package/locales/id/backups.json +17 -1
  199. package/locales/id/btTracker.json +4 -1
  200. package/locales/id/cdn.json +3 -1
  201. package/locales/id/common.json +2 -1
  202. package/locales/id/cron.json +4 -1
  203. package/locales/id/dashboard.json +4 -2
  204. package/locales/id/db.json +18 -1
  205. package/locales/id/dns.json +5 -1
  206. package/locales/id/docker.json +2 -1
  207. package/locales/id/email.json +4 -1
  208. package/locales/id/files.json +2 -1
  209. package/locales/id/ftp.json +17 -1
  210. package/locales/id/hostBrowse.json +3 -1
  211. package/locales/id/migrate.json +14 -1
  212. package/locales/id/network.json +3 -1
  213. package/locales/id/nginx.json +4 -1
  214. package/locales/id/notes.json +42 -6
  215. package/locales/id/projects.json +2 -1
  216. package/locales/id/protection.json +3 -1
  217. package/locales/id/publicFiles.json +5 -1
  218. package/locales/id/redis.json +6 -1
  219. package/locales/id/security.json +3 -1
  220. package/locales/id/services.json +9 -1
  221. package/locales/id/system.json +7 -2
  222. package/locales/id/translation.json +267 -41
  223. package/locales/id/updates.json +2 -1
  224. package/locales/id/validators.json +64 -5
  225. package/locales/id/vnc.json +8 -1
  226. package/locales/ja/agents.json +7 -2
  227. package/locales/ja/apache.json +3 -1
  228. package/locales/ja/backups.json +17 -1
  229. package/locales/ja/btTracker.json +4 -1
  230. package/locales/ja/cdn.json +3 -1
  231. package/locales/ja/common.json +2 -1
  232. package/locales/ja/cron.json +4 -1
  233. package/locales/ja/dashboard.json +4 -2
  234. package/locales/ja/db.json +18 -1
  235. package/locales/ja/dns.json +5 -1
  236. package/locales/ja/docker.json +2 -1
  237. package/locales/ja/email.json +4 -1
  238. package/locales/ja/files.json +2 -1
  239. package/locales/ja/ftp.json +17 -1
  240. package/locales/ja/hostBrowse.json +3 -1
  241. package/locales/ja/migrate.json +14 -1
  242. package/locales/ja/network.json +3 -1
  243. package/locales/ja/nginx.json +4 -1
  244. package/locales/ja/notes.json +42 -6
  245. package/locales/ja/projects.json +2 -1
  246. package/locales/ja/protection.json +3 -1
  247. package/locales/ja/publicFiles.json +5 -1
  248. package/locales/ja/redis.json +6 -1
  249. package/locales/ja/security.json +3 -1
  250. package/locales/ja/services.json +9 -1
  251. package/locales/ja/system.json +7 -2
  252. package/locales/ja/translation.json +267 -41
  253. package/locales/ja/updates.json +2 -1
  254. package/locales/ja/validators.json +64 -5
  255. package/locales/ja/vnc.json +8 -1
  256. package/locales/ko/agents.json +7 -2
  257. package/locales/ko/apache.json +3 -1
  258. package/locales/ko/backups.json +17 -1
  259. package/locales/ko/btTracker.json +4 -1
  260. package/locales/ko/cdn.json +3 -1
  261. package/locales/ko/common.json +2 -1
  262. package/locales/ko/cron.json +4 -1
  263. package/locales/ko/dashboard.json +4 -2
  264. package/locales/ko/db.json +18 -1
  265. package/locales/ko/dns.json +5 -1
  266. package/locales/ko/docker.json +2 -1
  267. package/locales/ko/email.json +4 -1
  268. package/locales/ko/files.json +2 -1
  269. package/locales/ko/ftp.json +17 -1
  270. package/locales/ko/hostBrowse.json +3 -1
  271. package/locales/ko/migrate.json +14 -1
  272. package/locales/ko/network.json +3 -1
  273. package/locales/ko/nginx.json +4 -1
  274. package/locales/ko/notes.json +42 -6
  275. package/locales/ko/projects.json +2 -1
  276. package/locales/ko/protection.json +3 -1
  277. package/locales/ko/publicFiles.json +5 -1
  278. package/locales/ko/redis.json +6 -1
  279. package/locales/ko/security.json +3 -1
  280. package/locales/ko/services.json +9 -1
  281. package/locales/ko/system.json +7 -2
  282. package/locales/ko/translation.json +267 -41
  283. package/locales/ko/updates.json +2 -1
  284. package/locales/ko/validators.json +64 -5
  285. package/locales/ko/vnc.json +8 -1
  286. package/locales/pt/agents.json +7 -2
  287. package/locales/pt/apache.json +3 -1
  288. package/locales/pt/backups.json +17 -1
  289. package/locales/pt/btTracker.json +4 -1
  290. package/locales/pt/cdn.json +3 -1
  291. package/locales/pt/common.json +2 -1
  292. package/locales/pt/cron.json +4 -1
  293. package/locales/pt/dashboard.json +4 -2
  294. package/locales/pt/db.json +18 -1
  295. package/locales/pt/dns.json +5 -1
  296. package/locales/pt/docker.json +2 -1
  297. package/locales/pt/email.json +4 -1
  298. package/locales/pt/files.json +2 -1
  299. package/locales/pt/ftp.json +17 -1
  300. package/locales/pt/hostBrowse.json +3 -1
  301. package/locales/pt/migrate.json +14 -1
  302. package/locales/pt/network.json +3 -1
  303. package/locales/pt/nginx.json +4 -1
  304. package/locales/pt/notes.json +42 -6
  305. package/locales/pt/projects.json +2 -1
  306. package/locales/pt/protection.json +3 -1
  307. package/locales/pt/publicFiles.json +5 -1
  308. package/locales/pt/redis.json +6 -1
  309. package/locales/pt/security.json +3 -1
  310. package/locales/pt/services.json +9 -1
  311. package/locales/pt/system.json +7 -2
  312. package/locales/pt/translation.json +267 -41
  313. package/locales/pt/updates.json +2 -1
  314. package/locales/pt/validators.json +64 -5
  315. package/locales/pt/vnc.json +8 -1
  316. package/locales/ur/agents.json +7 -2
  317. package/locales/ur/apache.json +3 -1
  318. package/locales/ur/backups.json +17 -1
  319. package/locales/ur/btTracker.json +4 -1
  320. package/locales/ur/cdn.json +3 -1
  321. package/locales/ur/common.json +2 -1
  322. package/locales/ur/cron.json +4 -1
  323. package/locales/ur/dashboard.json +4 -2
  324. package/locales/ur/db.json +18 -1
  325. package/locales/ur/dns.json +5 -1
  326. package/locales/ur/docker.json +2 -1
  327. package/locales/ur/email.json +4 -1
  328. package/locales/ur/files.json +2 -1
  329. package/locales/ur/ftp.json +17 -1
  330. package/locales/ur/hostBrowse.json +3 -1
  331. package/locales/ur/migrate.json +14 -1
  332. package/locales/ur/network.json +3 -1
  333. package/locales/ur/nginx.json +4 -1
  334. package/locales/ur/notes.json +42 -6
  335. package/locales/ur/projects.json +2 -1
  336. package/locales/ur/protection.json +3 -1
  337. package/locales/ur/publicFiles.json +5 -1
  338. package/locales/ur/redis.json +6 -1
  339. package/locales/ur/security.json +3 -1
  340. package/locales/ur/services.json +9 -1
  341. package/locales/ur/system.json +7 -2
  342. package/locales/ur/translation.json +267 -41
  343. package/locales/ur/updates.json +2 -1
  344. package/locales/ur/validators.json +64 -5
  345. package/locales/ur/vnc.json +8 -1
  346. package/locales/zh-CN/agents.json +7 -2
  347. package/locales/zh-CN/apache.json +3 -1
  348. package/locales/zh-CN/backups.json +17 -1
  349. package/locales/zh-CN/btTracker.json +4 -1
  350. package/locales/zh-CN/cdn.json +3 -1
  351. package/locales/zh-CN/common.json +2 -1
  352. package/locales/zh-CN/cron.json +4 -1
  353. package/locales/zh-CN/dashboard.json +4 -2
  354. package/locales/zh-CN/db.json +18 -1
  355. package/locales/zh-CN/dns.json +5 -1
  356. package/locales/zh-CN/docker.json +2 -1
  357. package/locales/zh-CN/email.json +4 -1
  358. package/locales/zh-CN/files.json +2 -1
  359. package/locales/zh-CN/ftp.json +17 -1
  360. package/locales/zh-CN/hostBrowse.json +3 -1
  361. package/locales/zh-CN/migrate.json +14 -1
  362. package/locales/zh-CN/network.json +3 -1
  363. package/locales/zh-CN/nginx.json +4 -1
  364. package/locales/zh-CN/notes.json +42 -6
  365. package/locales/zh-CN/projects.json +2 -1
  366. package/locales/zh-CN/protection.json +3 -1
  367. package/locales/zh-CN/publicFiles.json +5 -1
  368. package/locales/zh-CN/redis.json +6 -1
  369. package/locales/zh-CN/security.json +3 -1
  370. package/locales/zh-CN/services.json +9 -1
  371. package/locales/zh-CN/system.json +7 -2
  372. package/locales/zh-CN/translation.json +267 -41
  373. package/locales/zh-CN/updates.json +2 -1
  374. package/locales/zh-CN/validators.json +64 -5
  375. package/locales/zh-CN/vnc.json +8 -1
  376. package/locales/zh-HK/agents.json +5 -0
  377. package/locales/zh-HK/apache.json +2 -0
  378. package/locales/zh-HK/backups.json +18 -2
  379. package/locales/zh-HK/btTracker.json +5 -2
  380. package/locales/zh-HK/cdn.json +3 -1
  381. package/locales/zh-HK/common.json +1 -0
  382. package/locales/zh-HK/cron.json +3 -0
  383. package/locales/zh-HK/dashboard.json +3 -1
  384. package/locales/zh-HK/db.json +17 -0
  385. package/locales/zh-HK/dns.json +4 -0
  386. package/locales/zh-HK/docker.json +1 -0
  387. package/locales/zh-HK/email.json +3 -0
  388. package/locales/zh-HK/files.json +1 -0
  389. package/locales/zh-HK/ftp.json +16 -0
  390. package/locales/zh-HK/hostBrowse.json +2 -0
  391. package/locales/zh-HK/migrate.json +14 -1
  392. package/locales/zh-HK/network.json +2 -0
  393. package/locales/zh-HK/nginx.json +4 -1
  394. package/locales/zh-HK/notes.json +45 -9
  395. package/locales/zh-HK/projects.json +1 -0
  396. package/locales/zh-HK/protection.json +2 -0
  397. package/locales/zh-HK/publicFiles.json +5 -1
  398. package/locales/zh-HK/redis.json +5 -0
  399. package/locales/zh-HK/security.json +2 -0
  400. package/locales/zh-HK/services.json +8 -0
  401. package/locales/zh-HK/system.json +7 -2
  402. package/locales/zh-HK/translation.json +252 -26
  403. package/locales/zh-HK/updates.json +1 -0
  404. package/locales/zh-HK/validators.json +65 -6
  405. package/locales/zh-HK/vnc.json +7 -0
  406. package/package.json +8 -9
@@ -5,7 +5,8 @@
5
5
  "tab": {
6
6
  "nodes": "নোড",
7
7
  "disk": "ডিস্ক",
8
- "about": "সম্পর্কে"
8
+ "about": "সম্পর্কে",
9
+ "stack": "Software"
9
10
  },
10
11
  "empty": {
11
12
  "title": "এখনও কোনো ভ্যালিডেটর নোড নেই",
@@ -23,7 +24,18 @@
23
24
  "autoClear": "ডিস্ক সংকট হলে সবচেয়ে বড় বন্ধ ইনস্ট্যান্স স্বয়ংক্রিয় খালি করুন (ডিফল্ট বন্ধ)",
24
25
  "autoClearRisk": "Destructive: the largest stopped instance is deleted without a further prompt. Default is off. Check audit / logs after it fires.",
25
26
  "autoClearConfirmTitle": "Enable auto-clear?",
26
- "autoClearC1": "When disk is critical, the largest stopped instance is deleted without asking again."
27
+ "autoClearC1": "When disk is critical, the largest stopped instance is deleted without asking again.",
28
+ "fsUsed": "Filesystem used",
29
+ "leftoverTitle": "Leftover data ({{count}})",
30
+ "leftoverDesc": "Directories under the validators root that are not a store instance. Remove only after you confirm they are unused.",
31
+ "leftoverRemove": "Remove",
32
+ "leftoverRemoveTitle": "Delete leftover validator data?",
33
+ "leftoverRemoveDesc": "Permanently delete {{path}} from disk. This is not a listed node.",
34
+ "autoClearThreshold": "Trigger: filesystem use at or above 85%.",
35
+ "autoClearCandidate": "Current candidate: {{id}}",
36
+ "autoClearNone": "No stopped instance is a candidate right now.",
37
+ "browseRoot": "Open in file browser",
38
+ "leftoverEmpty": "No leftover instance directories"
27
39
  },
28
40
  "chain": {
29
41
  "eth": "Ethereum",
@@ -133,7 +145,8 @@
133
145
  "snapshotNear": "NEAR ডেটা মুছেছে; compose অফিসিয়াল genesis ও epoch sync দিয়ে আবার শুরু করবে",
134
146
  "nativePrune": "ক্লায়েন্ট-নেটিভ পরিষ্কার কমান্ড চালানো হয়েছে",
135
147
  "dryDelete": "Delete is dry-run. Pass --execute and YSK_EXECUTE=1.",
136
- "deleted": "Node deleted"
148
+ "deleted": "Node deleted",
149
+ "leftoverRemoved": "Removed leftover {{path}}"
137
150
  },
138
151
  "create": "নোড তৈরি",
139
152
  "wizard": {
@@ -162,7 +175,27 @@
162
175
  "installConfirmTitle": "Install this node?",
163
176
  "installConfirmDesc": "{{chain}} · {{network}} · {{profile}}. About {{disk}} of disk. The image pull can take a long time.",
164
177
  "installC1": "Several gigabytes of images may be downloaded.",
165
- "installC2": "You can cancel the panel task; already-pulled images are not deleted automatically."
178
+ "installC2": "You can cancel the panel task; already-pulled images are not deleted automatically.",
179
+ "lowDiskAcked": "Free disk is below the recommended size. You confirmed create anyway; sync may stop if the disk fills.",
180
+ "diskNeedNetwork": "Default (Minimal) for this network needs about {{need}} · free {{free}}",
181
+ "diskShortDetail": "Need {{need}} · free {{free}} · short {{short}}",
182
+ "needCustomPath": "Enter an absolute data path",
183
+ "previewId": "Node id",
184
+ "previewCompose": "Compose project",
185
+ "profileSeeAbout": "What each profile means is on the About tab.",
186
+ "dockerAbout": "Docker Engine is required to install and start nodes.",
187
+ "dockerAboutOk": "Docker Engine is installed.",
188
+ "dockerAboutMissing": "Docker Engine is not installed. Open Docker to install it.",
189
+ "rewriteCompose": "Rewrite compose",
190
+ "rewriteComposeTitle": "Rewrite compose.yml from the current adapter?",
191
+ "rewriteComposeDesc": "Overwrites the generated compose for {{id}} using the shipped flags for this chain.",
192
+ "chainMeta": "{{disk}} min · {{clients}} clients",
193
+ "profileHint": {
194
+ "minimal": "Smallest sync — light disk, not for staking.",
195
+ "pruned": "Keeps recent history only (Pruned). Smaller than archive, still usable for RPC.",
196
+ "validator-ready": "Sized for a staking validator. Needs more disk than Minimal.",
197
+ "rpc": "Public RPC node — not a staking validator."
198
+ }
166
199
  },
167
200
  "actions": {
168
201
  "detail": "বিস্তারিত",
@@ -261,6 +294,32 @@
261
294
  "stopped": "Stopped",
262
295
  "running": "Running",
263
296
  "syncing": "Syncing",
264
- "error": "Error"
297
+ "error": "Error",
298
+ "starting": "Starting"
299
+ },
300
+ "profileHelp": {
301
+ "title": "Profiles",
302
+ "desc": "The four choices on wizard step 3 are mainly disk budget and role. Each chain shows its recommended size in the wizard. The panel never holds staking keys.",
303
+ "minimal": "Smallest disk. Use for testnets or a first install. Not a full history, and not for a live staking validator.",
304
+ "pruned": "Keeps recent chain state and drops older blocks (Pruned). More disk than Minimal, less than a full node. Use to follow the tip long-term.",
305
+ "validatorReady": "Reserves more disk so you can later attest or propose as a validator. Generate keys offline yourself. Being offline or misconfigured can lose stake.",
306
+ "rpc": "For this host or other services to query the chain. RPC listens on 127.0.0.1 by default and is not published to the internet."
307
+ },
308
+ "software": {
309
+ "engine": "Docker Engine",
310
+ "engineDesc": "Validator nodes run as Compose projects. Install Docker here if it is missing. Image prune stays on the Docker page.",
311
+ "client": "Client",
312
+ "image": "Image",
313
+ "present": "Local",
314
+ "local": "Pulled",
315
+ "missing": "Not pulled",
316
+ "size": "Size",
317
+ "usedBy": "Used by",
318
+ "unused": "No instance",
319
+ "pull": "Pull",
320
+ "pulling": "Pull {{ref}}",
321
+ "empty": "No pinned client images",
322
+ "emptyDesc": "The catalog is empty. This should not happen.",
323
+ "daemonDown": "Docker Engine is not running"
265
324
  }
266
325
  }
@@ -251,5 +251,12 @@
251
251
  "deleteKeepUserWarn": "The Linux user will stay on the host as an orphan. You must clean it up later.",
252
252
  "bindRfbLine": "RFB {{bind}} :{{port}}",
253
253
  "bindNovncLine": "noVNC 127.0.0.1:{{port}}",
254
- "bindNovncHint": "noVNC listens on localhost. The desktop is reached through this panel, not the public internet, unless RFB bind is all interfaces."
254
+ "bindNovncHint": "noVNC listens on localhost. The desktop is reached through this panel, not the public internet, unless RFB bind is all interfaces.",
255
+ "hostnameBroken": "This host cannot resolve its own hostname ({{hostname}}). Session start will fail.",
256
+ "hostnameFix": "Write hostname to /etc/hosts",
257
+ "hostnameFixTitle": "Append this line to /etc/hosts?",
258
+ "hostnameFixDesc": "{{line}}",
259
+ "hostnameFixDone": "Hostname /etc/hosts updated",
260
+ "startAfterCreateBlocked": "Disabled until the hostname resolves",
261
+ "hostnameBrokenIdle": "Hostname {{hostname}} does not resolve on this host. Fix /etc/hosts before you create a session."
255
262
  }
@@ -3,6 +3,8 @@
3
3
  "body": "OpenClaw / Hermes / IonClaw install and supervision; all tool calls go through Allowlist and approval.",
4
4
  "status": {
5
5
  "running": "Running",
6
+ "activating": "Starting",
7
+ "stuck": "Start stuck",
6
8
  "connected": "Online",
7
9
  "registered": "Registered only",
8
10
  "stale": "Stale",
@@ -13,6 +15,9 @@
13
15
  "unknown": "Not probed",
14
16
  "fallback": "Unknown"
15
17
  },
18
+ "activatingStuckHint": "Activating longer than 5 minutes — treated as failed. Check journal.",
19
+ "noOnlineAgents": "No agents online",
20
+ "journal": "journal",
16
21
  "liveN": "{{count}} online",
17
22
  "registeredOnly": "Registered only",
18
23
  "awaitProbe": "Awaiting probe",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "pageDesc": "Apache sites (PHP projects + standalone)",
3
3
  "pillSites": "{{count}} sites",
4
+ "pillSitesSplit": "{{n}} sites · {{leftover}} leftover",
4
5
  "listTitle": "Sites ({{count}})",
5
6
  "emptyTitle": "No sites",
6
7
  "createSite": "+ Create site",
@@ -8,6 +9,7 @@
8
9
  "editTitle": "Edit site",
9
10
  "deleteTitle": "Delete site?",
10
11
  "deleteDesc": "Remove this Apache site?",
12
+ "stopSites": "{{n}} site(s) will stop answering HTTP.",
11
13
  "colServerName": "Server name",
12
14
  "colSource": "Source",
13
15
  "colKind": "Type",
@@ -114,8 +114,24 @@
114
114
  "cancel": "Cancel",
115
115
  "deleteFailed": "Delete failed",
116
116
  "deleted": "Deleted",
117
- "deleteTitle": "Delete backup file?",
118
- "deleteDesc": "Permanently delete {{name}}",
117
+ "deleteTitle": "Move backup to recycle bin?",
118
+ "deleteDesc": "Move {{name}} to the recycle bin. Permanent delete after 7 days.",
119
+ "tabTrash": "Recycle bin",
120
+ "trashTitle": "Recycle bin ({{count}})",
121
+ "trashSub": "Deleted archives stay here for 7 days, then they are removed permanently.",
122
+ "trashEmpty": "Recycle bin is empty",
123
+ "trashEmptyDesc": "Deleted backup files appear here for 7 days.",
124
+ "trashRestore": "Restore",
125
+ "trashPurge": "Delete forever",
126
+ "trashEmptyAll": "Empty recycle bin",
127
+ "trashExpires": "Expires {{at}}",
128
+ "trashPurgeTitle": "Permanently delete this backup?",
129
+ "trashPurgeDesc": "Permanently delete {{name}}. This cannot be undone.",
130
+ "trashEmptyTitle": "Empty recycle bin?",
131
+ "trashEmptyDescConfirm": "Permanently delete {{count}} archive(s). Type the count to confirm.",
132
+ "trashRestored": "Restored from recycle bin",
133
+ "trashPurged": "Permanently deleted",
134
+ "trashedOk": "Moved to recycle bin",
119
135
  "resticSafeTitle": "restic restore to safe directory?",
120
136
  "resticSafeDesc": "Restore {{snapshot}} to project {{project}} .restic-restore-* directory",
121
137
  "resticRestoreDone": "restic restore complete",
@@ -50,8 +50,11 @@
50
50
  "statsTorrents": "Torrents",
51
51
  "statsLibrary": "Library",
52
52
  "statsLibraryHint": "Torrents in the panel library / file shares",
53
- "statsTrackerLeftover": "Leftover (not in library)",
54
- "statsTrackerLeftoverHint": "Hashes the local tracker has announced that are not torrent-library rows. Extra announce URLs are on the Trackers tab.",
53
+ "statsTrackerLeftover": "Tracker hashes not in library",
54
+ "statsTrackerLeftoverHint": "Info-hashes the local tracker has announced that are not torrent-library rows. Listed on the Tracker tab.",
55
+ "leftoverHashesTitle": "Tracker leftover hashes",
56
+ "publicHostMissingLive": "Tracker is listening but public announce host is not set. Off-host peers cannot find this seed.",
57
+ "leftoverHashesHint": "Read-only. These announces are not library or share rows.",
55
58
  "statsPeers": "Peers",
56
59
  "statsAnnounces": "Announces",
57
60
  "statsAnnouncesHint": "Announce requests seen by the tracker process",
@@ -32,7 +32,8 @@
32
32
  "statNodes": "Nodes",
33
33
  "hitNoStats": "No edge stats yet",
34
34
  "loopbackOriginBlocked": "Will not apply loopback origin {{url}} to a remote edge. Set a reachable origin first.",
35
- "applyFailedHint": "Apply failed — see notes below",
35
+ "applyFailedHint": "Apply failed",
36
+ "applyFailedNoNote": "No stored reason. Re-apply to capture the error.",
36
37
  "applyStatus": {
37
38
  "draft": "Draft",
38
39
  "planned": "Planned",
@@ -42,6 +43,7 @@
42
43
  "partial": "Partial"
43
44
  },
44
45
  "statSites": "Sites",
46
+ "statApplyFailed": "Apply failed",
45
47
  "pillNodesSites": "{{n}} nodes · {{s}} sites",
46
48
  "statOnline": "Online",
47
49
  "statHit": "Hit rate",
@@ -30,6 +30,7 @@
30
30
  "unavailable": "Not available right now",
31
31
  "retry": "Retry",
32
32
  "success": "Success",
33
+ "ok": "OK",
33
34
  "failed": "Failed",
34
35
  "blocked": "Cannot run",
35
36
  "status": "Status",
@@ -76,6 +76,7 @@
76
76
  "hostNoYsk": "not installed or no YSK entries",
77
77
  "pressInstall": "Registered jobs are not on the system crontab yet — click Install to system.",
78
78
  "jobsTab": "Jobs ({{count}})",
79
+ "jobsTabPending": "Jobs ({{count}}) · pending {{pending}}",
79
80
  "registeredJobs": "Registered jobs ({{count}})",
80
81
  "jobsSub": "Management entries · Install to system after changes",
81
82
  "addJob": "+ Add job",
@@ -136,6 +137,8 @@
136
137
  "noHostJobs": "No crontab jobs in this scope",
137
138
  "hostPartial": "Could not read every user crontab (root required)",
138
139
  "pendingInstall": "Pending install ({{count}})",
140
+ "pendingStale": "Not written to system crontab for {{days}} day(s) — it will not run.",
141
+ "willNotRun": "Not written to system crontab — will not run.",
139
142
  "hourRange": "Hour must be 0–23.",
140
143
  "minuteRange": "Minute must be 0–59.",
141
144
  "hoursCommon": "Common hours",
@@ -44,10 +44,12 @@
44
44
  "readinessCheck": "Readiness:",
45
45
  "prodOk": "Production ready",
46
46
  "notFullyReady": "Not fully ready",
47
+ "readinessBlocked": "{{n}} blocker(s)",
47
48
  "modeScore": "Mode {{mode}} · score {{ready}}/{{total}}",
48
49
  "mode": {
49
50
  "degraded": "degraded",
50
- "production_capable": "production ready",
51
+ "production_capable": "EXECUTE + root",
52
+ "blocked": "blocked",
51
53
  "normal": "normal"
52
54
  },
53
55
  "details": "Details",
@@ -146,6 +146,23 @@
146
146
  "title": "Cluster",
147
147
  "description": "Plan → write management files → apply → probe → distribute to peers / fleet. Default is dry-run (no host restart).",
148
148
  "redirectedFromCluster": "You were redirected here from /cluster. This is the database cluster tab.",
149
+ "notApplied": "Not applied",
150
+ "plannedAt": "Created {{when}}",
151
+ "clearStalePlans": "Clear stale plans",
152
+ "clearStalePlansTitle": "Delete stale planned clusters?",
153
+ "clearStalePlansDesc": "Deletes {{n}} planned/draft registration(s) older than 7 days. Does not apply or push. System conf is not touched.",
154
+ "landingTitle": "Database cluster",
155
+ "landingDesc": "All planned and applied database clusters on this host. Open an engine to create or apply.",
156
+ "landingNoneInstalled": "MySQL, MariaDB, PostgreSQL, and Redis are not installed. Install an engine first.",
157
+ "openEngine": "Open {{engine}}",
158
+ "overviewPill": "Clusters {{n}}",
159
+ "enginesInstalled": "Engines",
160
+ "plannedCount": "Planned",
161
+ "overviewList": "Clusters ({{count}})",
162
+ "overviewEmpty": "No cluster registrations yet.",
163
+ "engine": "Engine",
164
+ "kind": "Kind",
165
+ "members": "Members",
149
166
  "kindGalera": "Simple Galera",
150
167
  "kindMysqlReplica": "MySQL primary/replica",
151
168
  "kindPgReplica": "PostgreSQL streaming replica",
@@ -209,10 +209,14 @@
209
209
  "healthHealPdns": "Heal PowerDNS bind",
210
210
  "healNeedInstall": "PowerDNS is not installed — install it on the Software tab first",
211
211
  "applyNeedService": "DNS service is not running — start or install it before apply",
212
+ "goStartService": "Start DNS service",
213
+ "startBindHint": "If start returns to stopped, port 53 is often held by systemd-resolved. Use Heal bind below, then start again.",
212
214
  "deleteZoneNeedName": "Delete this zone — you will type the zone name to confirm",
213
215
  "healthHealPdnsHint": "Set local-address to public IP to avoid clashing with systemd-resolved on 0",
214
216
  "healthHealPdnsOk": "PowerDNS bound to {{ip}} and start attempted",
215
217
  "healthHealPdnsFailed": "PowerDNS heal failed",
218
+ "startProbeFailed": "Could not re-check DNS health after start",
219
+ "startNotListening": "PowerDNS start returned, but the unit is not answering on port 53",
216
220
  "aboutTitle": "DNS essentials",
217
221
  "aboutSub": "Zones first; records, cluster, and DNSSEC need a selected domain.",
218
222
  "aboutZonesTitle": "Zones and scope",
@@ -59,6 +59,7 @@
59
59
  "down": "Stopped",
60
60
  "running": "Running",
61
61
  "exited": "Exited",
62
+ "exitedCode": "Exited ({{n}})",
62
63
  "restarting": "Restarting",
63
64
  "restartingCount": "Restarting · {{n}} times",
64
65
  "paused": "Paused",
@@ -111,6 +111,8 @@
111
111
  "healthScore": "Health score",
112
112
  "healthUnchecked": "Not checked yet",
113
113
  "healthUncheckedHint": "Live DNS / PTR / port 25 have not been probed yet.",
114
+ "healthPartialScore": "Partial {{n}}/100 (DNS only)",
115
+ "healthPartialHint": "DNS checklist only — live and blacklist not probed.",
114
116
  "deliverabilityScore": "Deliverability pack",
115
117
  "opendkimNoReload": "OpenDKIM has no reload — use restart after key or table changes.",
116
118
  "opendkimNoReloadTitle": "systemctl reload opendkim is not supported on this stack",
@@ -452,6 +454,7 @@
452
454
  "deleteMailboxC3": "System Dovecot/Postfix may still need cleanup",
453
455
  "deleteAliasTitle": "Delete alias/forward?",
454
456
  "deleteAliasDesc": "Deletes {{source}}.",
457
+ "deleteImpact": "{{mailboxes}} mailboxes · {{records}} DNS records · {{aliases}} aliases",
455
458
  "deleteDomainC1": "All mailboxes and aliases",
456
459
  "deleteDomainC2": "Control-plane DKIM, DNS suggestions, and flags",
457
460
  "deleteDomainC3": "Local dataDir/email directory if present",
@@ -102,6 +102,7 @@
102
102
  "webdavAfterEnable": "Available after you enable WebDAV and issue a token.",
103
103
  "webdavOn": "Enabled",
104
104
  "webdavOff": "Disabled",
105
+ "webdavOffNoToken": "Disabled (no active token)",
105
106
  "webdavTokenId": "Token #{{id}}",
106
107
  "webdavTokenInactive": "Disabled — token #{{id}} is not active",
107
108
  "webdavUpdated": "Updated {{at}}",
@@ -53,6 +53,22 @@
53
53
  "accountCount": "Accounts",
54
54
  "loginBanner": "Login banner",
55
55
  "sslDomain": "SSL domain",
56
+ "plaintextInsecure": "Cleartext FTP (no TLS) — insecure. Enable FTPS before exposing port 21.",
57
+ "plaintextPublicLive": "vsftpd is listening on a public address without FTPS. Credentials travel in the clear. Enable FTPS, bind to this host only, or confirm PLAINTEXT to keep this posture.",
58
+ "bindAddress": "Listen scope",
59
+ "bindAddressHint": "New installs bind to this host only. Public listen without FTPS needs a typed confirmation.",
60
+ "bindLocal": "This host only",
61
+ "bindLocalHint": "127.0.0.1 — fine without TLS for local tests",
62
+ "bindPublic": "Public",
63
+ "bindPublicHint": "All interfaces — enable FTPS or confirm PLAINTEXT",
64
+ "enableFtpsAndStart": "Enable FTPS and start",
65
+ "publicPlainNeedConfirm": "Public cleartext FTP needs a PLAINTEXT confirmation",
66
+ "plainConfirmTitle": "Start public FTP without FTPS?",
67
+ "plainConfirmDesc": "Port 21 will accept logins and data in the clear on the public address.",
68
+ "plainConfirmC1": "Usernames and passwords are visible on the network.",
69
+ "plainConfirmC2": "PASV will advertise the configured public IP.",
70
+ "plainConfirmC3": "Host firewall and cloud security group are not opened for you.",
71
+ "plainConfirmAction": "Start cleartext FTP",
56
72
  "pasvRange": "PASV range",
57
73
  "forceTls": "Force TLS",
58
74
  "allowWrite": "Allow write",
@@ -97,6 +97,8 @@
97
97
  "isolationNote": "Real browser creates an ephemeral Linux user for Chrome; leaving the page or idle timeout destroys that user.",
98
98
  "resumeHint": "Resume previous session ({{count}} tabs)",
99
99
  "resumeHintDetail": "Resume previous session ({{count}} tabs) · {{url}} · {{when}}",
100
+ "resumeHintOwned": "Resume last browse for {{user}} ({{count}} tabs) · {{url}} · {{when}}",
101
+ "clearSessionData": "Clear session data",
100
102
  "resume": "Resume",
101
103
  "resumeDismiss": "Dismiss",
102
104
  "resumeDone": "Session resumed",
@@ -11,6 +11,8 @@
11
11
  "inventorying": "Inventorying",
12
12
  "inventoried": "Inventoried",
13
13
  "inventoriedWarn": "Inventoried · {{n}} warnings",
14
+ "inventoriedOrphans": "Inventoried · {{n}} leftover homes",
15
+ "inventoriedWarnAndOrphans": "Inventoried · {{w}} warnings · {{n}} leftover",
14
16
  "inventoryFailed": "Inventory failed",
15
17
  "pendingInventory": "Pending inventory",
16
18
  "projects": "Projects",
@@ -70,7 +72,18 @@
70
72
  "afterRestart": ") then Refresh.",
71
73
  "inventoryWarnings": "Inventory warnings ({{count}})",
72
74
  "orphanHomesHint": "Leftover project homes (not in the store). Remove only after you confirm they are unused.",
73
- "orphanRemove": "Remove leftover home",
75
+ "orphanHomesTitle": "Leftover project homes ({{count}})",
76
+ "orphanHomesSummary": "{{count}} path(s) on disk are not in the store. Back up first if unsure, then remove unused paths.",
77
+ "orphanColHome": "Home",
78
+ "orphanColModified": "Modified",
79
+ "orphanColEntries": "Entries",
80
+ "orphanEntries": "{{n}} top-level entries in the directory",
81
+ "orphanKpi": "Leftover",
82
+ "sourceOs": "OS",
83
+ "sourceDataDir": "dataDir",
84
+ "sourceDbRedis": "Databases / Redis",
85
+ "sourceDbRedisValue": "{{db}} databases · {{redis}} Redis",
86
+ "orphanRemove": "Remove",
74
87
  "orphanRemoveTitle": "Delete leftover project home?",
75
88
  "orphanRemoveDesc": "Permanently delete {{path}} from disk. This is not a store project. Needs superuser and system-change permission.",
76
89
  "orphanRemovePhrase": "Type DELETE to confirm.",
@@ -8,6 +8,8 @@
8
8
  "up": "Up",
9
9
  "down": "Down",
10
10
  "unknown": "Unknown",
11
+ "loopback": "Always on",
12
+ "loopbackHint": "Loopback is always available and cannot be changed.",
11
13
  "other": "Other"
12
14
  },
13
15
  "statGateway": "Gateway",
@@ -5,6 +5,8 @@
5
5
  "purgeOk": "Purged",
6
6
  "projectSitesHint": "Project sites (managed conf) and standalone sites are listed separately. Edit project Nginx under Projects → Network.",
7
7
  "purgeCache": "Purge cache + reload",
8
+ "purgeCacheTitle": "Purge Nginx cache and reload?",
9
+ "purgeCacheDesc": "Clears the on-disk cache and reloads Nginx. Live sites stay up.",
8
10
  "notInstalled": "Nginx is not installed",
9
11
  "listTitle": "Sites ({{count}})",
10
12
  "listDesc": "After create, click Apply to sync to the system",
@@ -80,5 +82,6 @@
80
82
  "setHsts": "HSTS",
81
83
  "setCfRealIp": "Cloudflare Real IP",
82
84
  "setIndexes": "Directory listing",
83
- "bodyInherit": "Global"
85
+ "bodyInherit": "Global",
86
+ "stopSites": "{{n}} site(s) will stop answering HTTP."
84
87
  }
@@ -1,4 +1,7 @@
1
1
  {
2
+ "agents": {
3
+ "activatingStuck": "systemd unit has been activating for more than 5 minutes — treating as failed. Check journal."
4
+ },
2
5
  "notFound": "Not found",
3
6
  "needPath": "Specify a path",
4
7
  "needName": "Enter a name",
@@ -65,10 +68,18 @@
65
68
  "targetOutside": "Restore target must be inside the project home or the public files root.",
66
69
  "controlPlaneDryRun": "Preview only — nothing written. In the panel, use Restore and confirm the phrase to write.",
67
70
  "controlPlaneNeedConfirm": "Full control-plane restore needs the confirm phrase RESTORE-CONTROL-PLANE.",
68
- "controlPlaneRestartAfter": "Restart the API after a successful restore."
71
+ "controlPlaneRestartAfter": "Restart the API after a successful restore.",
72
+ "movedToTrash": "Moved {{name}} to the recycle bin. Permanent delete after {{days}} days.",
73
+ "restoreNameExists": "Cannot restore {{name}} — a live archive with that name already exists.",
74
+ "restoredFromTrash": "Restored {{name}} from the recycle bin.",
75
+ "trashEmptied": "Permanently deleted {{n}} archive(s) from the recycle bin."
69
76
  },
70
77
  "redis": {
71
- "cliMissing": "redis-cli is not installed"
78
+ "cliMissing": "redis-cli is not installed",
79
+ "requirepassAlreadySet": "Redis already has requirepass — not overwritten.",
80
+ "requirepassApplied": "requirepass applied at runtime",
81
+ "requirepassApplyFailed": "Could not CONFIG SET requirepass (will rely on restart + conf)",
82
+ "generatedRequirepass": "Generated Redis password (shown once): {{password}}"
72
83
  },
73
84
  "nginx": {
74
85
  "reloaded": "nginx reloaded",
@@ -91,7 +102,8 @@
91
102
  "vsftpdStarted": "vsftpd started",
92
103
  "openPortsStep": "Firewall ports (manual)",
93
104
  "openPortsReminder": "Open TCP ports on host firewall and cloud security group: {{ports}}. FTPS apply does not open ports for you.",
94
- "openPortsPasvHint": "If login works but directory LIST times out, the PASV data range is blocked — open the ful"
105
+ "openPortsPasvHint": "If login works but directory LIST times out, the PASV data range is blocked — open the ful",
106
+ "publicPlaintextBlocked": "Refusing to start public FTP without FTPS. Bind to this host only, enable FTPS with a certificate, or confirm PLAINTEXT to expose cleartext on the public address."
95
107
  },
96
108
  "deploy": {
97
109
  "nodeMissingIsolated": "Node binary missing for isolated deploy: {{path}} — install Node {{version}} toolchain then redeploy. Refusing to write a unit that would 203/EXEC.",
@@ -146,7 +158,17 @@
146
158
  "applyDigOk": "PowerDNS BIND: list-zones + dig OK",
147
159
  "applyDigFail": "Zone registered in conf but dig still empty/REFUSED — not marking applied",
148
160
  "applySyncIncomplete": "PowerDNS bind sync incomplete — zone file on disk only (not applied). Fix EXECUTE/root or pdns logs.",
149
- "writeOnlyHint": "Zone file written only — PowerDNS will not answer until load/apply registers named"
161
+ "writeOnlyHint": "Zone file written only — PowerDNS will not answer until load/apply registers named",
162
+ "noActiveUnit": "No active named/bind9/pdns unit",
163
+ "pdnsUnitRestarts": "pdns unit state/restarts: {{detail}}",
164
+ "port53LoopbackOnly": "Port 53 is only on loopback (systemd-resolved 127.0.0.53) — not a product authoritative nameserver",
165
+ "port53Closed": "Port 53 is not listening (UDP/TCP)",
166
+ "udp53NotPublic": "UDP/53 is not listening on a public address",
167
+ "tcp53NotPublic": "TCP/53 is not listening on a public address",
168
+ "noManagedZones": "No managed zone files under dataDir/dns/zones",
169
+ "pdnsListZones": "PowerDNS list-zones: {{n}}",
170
+ "lookupIgnoredAt": "dig is unavailable — @{{server}} was ignored. Not using the system resolver as that server’s answer.",
171
+ "localAOk": "local A {{name}} → {{ip}}"
150
172
  },
151
173
  "db": {
152
174
  "needExecuteCreate": "Host execute is off; cannot create database from the panel",
@@ -2536,7 +2558,7 @@
2536
2558
  "t0626": "transfer: home rsync Failed {{v0}}",
2537
2559
  "t0627": "skipped: {{v0}}",
2538
2560
  "t0628": "transfer done → {{v0}}:{{v1}}",
2539
- "t0629": "project {{v0}} home: {{v1}}",
2561
+ "t0629": "Project {{v0}} has no system user yet (home missing: {{v1}}). Finish isolation on the project page.",
2540
2562
  "t0630": "project {{v0}} bind_ip={{v1}} — can ( IP )",
2541
2563
  "t0631": "project {{v0}} home not path: {{v1}}",
2542
2564
  "t0632": "Orphan home on disk (no matching store project): {{v0}}",
@@ -2953,6 +2975,15 @@
2953
2975
  "needInstall": "Install {{stack}}",
2954
2976
  "needExecute": "YSK_EXECUTE is disabled — cannot install packages or provision Linux users.",
2955
2977
  "needRoot": "Not running as root — system useradd and vncserver apply are blocked.",
2978
+ "hostnameResolves": "Hostname {{hostname}} resolves.",
2979
+ "hostnameUnresolvable": "This host cannot resolve its own hostname ({{hostname}}). VNC session start will fail until /etc/hosts is fixed.",
2980
+ "hostnameAlreadyResolves": "Hostname {{hostname}} already resolves — /etc/hosts unchanged.",
2981
+ "hostnameWouldAppend": "Would append to /etc/hosts: {{line}}",
2982
+ "hostnameAppended": "Appended to /etc/hosts: {{line}}",
2983
+ "hostnameAppendFailed": "Could not write /etc/hosts: {{detail}}",
2984
+ "hostnameAliasPresent": "Hostname {{hostname}} is already an exact /etc/hosts alias — not appended again.",
2985
+ "hostnameStillUnresolvable": "Wrote /etc/hosts but {{hostname}} still does not resolve. Confirm nsswitch hosts includes files.",
2986
+ "skipStartHostname": "Did not start the display — fix hostname resolution first.",
2956
2987
  "novncAssetsOnly": "noVNC web assets found; websockify binary still missing.",
2957
2988
  "viewerNeedExecute": "Starting a local VNC desktop for browser view needs root + YSK_EXECUTE",
2958
2989
  "browserSessionReady": "Browser VNC session ready: {{name}}",
@@ -3139,12 +3170,20 @@
3139
3170
  "dovecotTitle": "Dovecot TLS points at missing cert",
3140
3171
  "dovecot": "Dovecot ssl_cert points at missing {{path}}. Overlay does not rewrite ssl=no. Apply mail TLS after issuing the cert, or apply email stack.",
3141
3172
  "overlayDoesNotHeal": "Product overlay does not rewrite nginx, Apache, vsftpd, or Dovecot. Use the listed apply commands (root + YSK_EXECUTE=1).",
3173
+ "executeStaleCli": "Pass --execute (root + YSK_EXECUTE=1) to remove stale CLI bins.",
3174
+ "executeMissingTls": "Pass --execute (root + YSK_EXECUTE=1) to disable missing-cert TLS so vsftpd/Dovecot can start.",
3175
+ "executeGeneric": "Pass --execute (root + YSK_EXECUTE=1) to apply leftover cleanup for the findings above.",
3142
3176
  "staleCliRemoved": "Removed leftover CLI {{path}}.",
3143
3177
  "staleCliRemoveFailed": "Could not remove leftover CLI {{path}}: {{detail}}",
3144
3178
  "vsftpdSslOff": "Set vsftpd ssl_enable=NO because the FTPS certificate file is missing, then restarted vsftpd.",
3145
3179
  "dovecotSslOff": "Set Dovecot ssl=no because {{path}} is missing, then restarted Dovecot.",
3146
3180
  "readinessTitle": "Host leftovers after overlay",
3147
- "readinessClean": "No leftover Apache default, missing nginx catch-all, failed vsftpd, or stale CLI detected."
3181
+ "readinessClean": "No leftover Apache default, missing nginx catch-all, failed vsftpd, or stale CLI detected.",
3182
+ "nginxRemoved": "Removed leftover nginx conf {{path}}.",
3183
+ "nginxNotLeftover": "Not a leftover public-files conf — refuse delete.",
3184
+ "nginxUnusedKeep": "000-default is unused, not leftover — not deleted.",
3185
+ "nginxSystemCopy": "System copy still present: {{path}}. Needs YSK_EXECUTE + root to remove.",
3186
+ "nginxReloadFailed": "nginx -t or reload failed after removing {{path}}."
3148
3187
  },
3149
3188
  "defense": {
3150
3189
  "panelReqLabel": "Panel requests / min",
@@ -60,6 +60,7 @@
60
60
  },
61
61
  "next": {
62
62
  "pendingOsTitle": "System user not provisioned",
63
+ "provisionOsAction": "Create system user",
63
64
  "pendingOsBody": "This project has no isolated system user yet.",
64
65
  "pendingOsActions": "You can still deploy; full isolation needs admin privileges on the host.",
65
66
  "deployTitle": "Next: Deploy",
@@ -250,6 +250,8 @@
250
250
  "unban": "Unban",
251
251
  "ban": "Ban",
252
252
  "banConfirmTitle": "Ban {{ip}}?",
253
+ "banConfirmMethod": "Method: {{method}}",
254
+ "banConfirmUntilUnban": "Stays banned until you unban it (or fail2ban expiry).",
253
255
  "banConfirmDesc": "This IP will be blocked on the host. Confirm it is not a current panel or session address.",
254
256
  "wlRemovedUndo": "Removed {{ip}} from the allow list. Undo within 5 seconds.",
255
257
  "undo": "Undo",
@@ -41,5 +41,9 @@
41
41
  "publicRootNote": "Public root: {{path}}",
42
42
  "applyConfirmTitle": "Apply public-files site?",
43
43
  "applyConfirmDesc": "Write Nginx server_name {{name}} and reload Nginx.",
44
- "serverNameMismatch": "Live conf uses {{live}}; the form has {{draft}}. Apply to replace."
44
+ "serverNameMismatch": "Live conf uses {{live}}; the form has {{draft}}. Apply to replace.",
45
+ "liveName": "Live name",
46
+ "draftName": "Draft name",
47
+ "draftUnapplied": "This draft is not applied. Nginx still serves the live name.",
48
+ "discardDraft": "Discard draft"
45
49
  }
@@ -73,6 +73,11 @@
73
73
  "noRequirepass": "Protected mode is on, but requirepass is empty or unread — no password.",
74
74
  "insecureShort": "No password",
75
75
  "setRequirepass": "Set password",
76
+ "generateRequirepass": "Generate and apply password",
77
+ "generateRequirepassTitle": "Generate a Redis password?",
78
+ "generateRequirepassDesc": "Writes requirepass and restarts Redis. The password is shown once. Host change needs EXECUTE.",
79
+ "generateRequirepassDone": "Redis password applied",
80
+ "generatedOnce": "Generated password (shown once): {{password}}",
76
81
  "rdbOnlyLossHint": "AOF is off and RDB is on. A restart or crash can lose recent writes.",
77
82
  "dirDataContainer": "/data (container)",
78
83
  "dirHostDefault": "/var/lib/redis",
@@ -61,6 +61,8 @@
61
61
  "reauthPassword": "Re-enter password",
62
62
  "reauthPasswordHint": "Start/reset 2FA requires password again (stolen session protection)",
63
63
  "reauthPasswordRequired": "Enter your login password first",
64
+ "needCurrentPassword": "Enter the current password first",
65
+ "passwordMin8": "New password must be at least 8 characters",
64
66
  "totpSecretGenerated": "Secret ready — scan the QR or copy the key, then enter the app’s 6-digit code",
65
67
  "reset2fa": "Reset 2FA",
66
68
  "start2fa": "Set up 2FA",
@@ -38,8 +38,10 @@
38
38
  "needRunning": "{{label}} is not running",
39
39
  "restartedOk": "{{label}} restarted",
40
40
  "reloadedOk": "{{label}} reloaded",
41
+ "reloadTitle": "Reload {{label}} configuration without a full restart",
41
42
  "stopNeedConfirm": "Needs confirmation",
42
43
  "stopNeedConfirmPhrase": "Needs confirmation phrase",
44
+ "stopNeedConfirmImpact": "Stop {{label}}? Active connections to this service will drop.",
43
45
  "stopConfirmTitle": "Stop {{label}}?",
44
46
  "stopConfirmDesc": "{{label}} will stop listening. Start it again from this page when needed.",
45
47
  "stopConfirmEdgeDesc": "Stopping {{label}} takes sites and reverse-proxy traffic offline until it is started again.",
@@ -50,8 +52,14 @@
50
52
  "stopConfirmSshdConsequence": "New SSH sessions will fail until sshd is started from the host console.",
51
53
  "stopConfirmPanelTitle": "Stop YSK Server?",
52
54
  "stopConfirmPanelDesc": "The panel and API will go offline until the unit is started on the host.",
55
+ "stopConfirmPanelSshdOffDesc": "The panel and API will go offline. sshd is not enabled on boot, so SSH may not be a rescue path after reboot.",
56
+ "stopConfirmPanelSshdOffConsequence": "sshd is not enabled on boot. After reboot you may have no SSH rescue path.",
57
+ "ufwNoLifecycle": "UFW is not started or stopped from this matrix.",
53
58
  "restartConfirmPanelTitle": "Restart YSK Server?",
54
59
  "restartConfirmPanelDesc": "The panel and API will drop briefly while the unit restarts.",
60
+ "restartConfirmTitle": "Restart {{label}}?",
61
+ "restartConfirmDesc": "Restart {{label}} now. Active connections may drop.",
62
+ "startVerifyFailed": "{{label}} start did not stay healthy.",
55
63
  "stopConfirmPanelToken": "stop ysk-server",
56
64
  "stopConfirmPanelConsequence": "This browser session will disconnect. Start the unit from SSH or the host console.",
57
65
  "stopConfirmFail2banTitle": "Stop fail2ban?",