ysk-server-shared 1.0.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 (779) hide show
  1. package/README.md +21 -6
  2. package/dist/browser.d.ts +1 -0
  3. package/dist/browser.d.ts.map +1 -1
  4. package/dist/browser.js +1 -0
  5. package/dist/browser.js.map +1 -1
  6. package/dist/bt-tracker.d.ts +56 -0
  7. package/dist/bt-tracker.d.ts.map +1 -1
  8. package/dist/bt-tracker.js +1 -0
  9. package/dist/bt-tracker.js.map +1 -1
  10. package/dist/capabilities.d.ts +1 -1
  11. package/dist/capabilities.d.ts.map +1 -1
  12. package/dist/capabilities.js +6 -0
  13. package/dist/capabilities.js.map +1 -1
  14. package/dist/cdn.d.ts +2 -0
  15. package/dist/cdn.d.ts.map +1 -1
  16. package/dist/databases.d.ts +2 -0
  17. package/dist/databases.d.ts.map +1 -1
  18. package/dist/docker.d.ts +134 -0
  19. package/dist/docker.d.ts.map +1 -0
  20. package/dist/docker.js +94 -0
  21. package/dist/docker.js.map +1 -0
  22. package/dist/dto.d.ts +10 -1
  23. package/dist/dto.d.ts.map +1 -1
  24. package/dist/email-domain.d.ts +7 -0
  25. package/dist/email-domain.d.ts.map +1 -1
  26. package/dist/files.d.ts +18 -0
  27. package/dist/files.d.ts.map +1 -1
  28. package/dist/files.js +35 -1
  29. package/dist/files.js.map +1 -1
  30. package/dist/ftp.d.ts +9 -0
  31. package/dist/ftp.d.ts.map +1 -1
  32. package/dist/index.d.ts +2 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +2 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/migrate.d.ts +7 -0
  37. package/dist/migrate.d.ts.map +1 -1
  38. package/dist/migrate.js.map +1 -1
  39. package/dist/route-capabilities.d.ts +16 -0
  40. package/dist/route-capabilities.d.ts.map +1 -1
  41. package/dist/route-capabilities.js +142 -4
  42. package/dist/route-capabilities.js.map +1 -1
  43. package/dist/system.d.ts +4 -0
  44. package/dist/system.d.ts.map +1 -1
  45. package/dist/validators.d.ts +178 -0
  46. package/dist/validators.d.ts.map +1 -0
  47. package/dist/validators.js +121 -0
  48. package/dist/validators.js.map +1 -0
  49. package/locales/ar/agents.json +17 -2
  50. package/locales/ar/apache.json +7 -1
  51. package/locales/ar/audit.json +4 -1
  52. package/locales/ar/backups.json +36 -1
  53. package/locales/ar/btTracker.json +121 -39
  54. package/locales/ar/catalog.json +8 -8
  55. package/locales/ar/cdn.json +89 -1
  56. package/locales/ar/cli.json +4 -4
  57. package/locales/ar/common.json +9 -1
  58. package/locales/ar/cron.json +33 -1
  59. package/locales/ar/dashboard.json +24 -3
  60. package/locales/ar/db.json +75 -3
  61. package/locales/ar/dns.json +23 -1
  62. package/locales/ar/docker.json +248 -0
  63. package/locales/ar/email.json +50 -11
  64. package/locales/ar/errors.json +5 -2
  65. package/locales/ar/fail2ban.json +38 -13
  66. package/locales/ar/files.json +53 -10
  67. package/locales/ar/firewall.json +19 -10
  68. package/locales/ar/ftp.json +32 -1
  69. package/locales/ar/hostBrowse.json +37 -15
  70. package/locales/ar/listToolbar.json +2 -1
  71. package/locales/ar/login.json +12 -7
  72. package/locales/ar/logs.json +31 -2
  73. package/locales/ar/metrics.json +36 -1
  74. package/locales/ar/migrate.json +27 -1
  75. package/locales/ar/nav.json +11 -4
  76. package/locales/ar/network.json +27 -2
  77. package/locales/ar/nginx.json +4 -1
  78. package/locales/ar/notFound.json +6 -0
  79. package/locales/ar/notes.json +252 -64
  80. package/locales/ar/playbooks.json +1 -1
  81. package/locales/ar/projects.json +134 -12
  82. package/locales/ar/protection.json +72 -8
  83. package/locales/ar/publicFiles.json +18 -1
  84. package/locales/ar/rbac.json +15 -2
  85. package/locales/ar/readiness.json +33 -2
  86. package/locales/ar/redis.json +24 -1
  87. package/locales/ar/runtime.json +49 -2
  88. package/locales/ar/search.json +14 -10
  89. package/locales/ar/security.json +68 -7
  90. package/locales/ar/serviceExposure.json +18 -6
  91. package/locales/ar/services.json +69 -3
  92. package/locales/ar/software.json +2 -1
  93. package/locales/ar/softwareLifecycle.json +12 -2
  94. package/locales/ar/ssl.json +12 -1
  95. package/locales/ar/stackWizard.json +9 -2
  96. package/locales/ar/support.json +33 -17
  97. package/locales/ar/system.json +31 -2
  98. package/locales/ar/systemd.json +3 -1
  99. package/locales/ar/terminal.json +9 -1
  100. package/locales/ar/translation.json +2422 -302
  101. package/locales/ar/updates.json +76 -3
  102. package/locales/ar/users.json +19 -1
  103. package/locales/ar/validators.json +325 -0
  104. package/locales/ar/vnc.json +17 -1
  105. package/locales/ar/vpn.json +18 -3
  106. package/locales/bn/agents.json +17 -2
  107. package/locales/bn/apache.json +7 -1
  108. package/locales/bn/audit.json +4 -1
  109. package/locales/bn/backups.json +36 -1
  110. package/locales/bn/btTracker.json +121 -39
  111. package/locales/bn/catalog.json +5 -5
  112. package/locales/bn/cdn.json +89 -1
  113. package/locales/bn/cli.json +2 -2
  114. package/locales/bn/common.json +9 -1
  115. package/locales/bn/cron.json +33 -1
  116. package/locales/bn/dashboard.json +24 -3
  117. package/locales/bn/db.json +75 -3
  118. package/locales/bn/dns.json +23 -1
  119. package/locales/bn/docker.json +248 -0
  120. package/locales/bn/email.json +49 -10
  121. package/locales/bn/errors.json +5 -2
  122. package/locales/bn/fail2ban.json +26 -1
  123. package/locales/bn/files.json +53 -10
  124. package/locales/bn/firewall.json +17 -8
  125. package/locales/bn/ftp.json +32 -1
  126. package/locales/bn/hostBrowse.json +37 -15
  127. package/locales/bn/listToolbar.json +2 -1
  128. package/locales/bn/login.json +13 -8
  129. package/locales/bn/logs.json +31 -2
  130. package/locales/bn/metrics.json +36 -1
  131. package/locales/bn/migrate.json +27 -1
  132. package/locales/bn/nav.json +10 -3
  133. package/locales/bn/network.json +27 -2
  134. package/locales/bn/nginx.json +4 -1
  135. package/locales/bn/notFound.json +6 -0
  136. package/locales/bn/notes.json +222 -34
  137. package/locales/bn/projects.json +133 -11
  138. package/locales/bn/protection.json +66 -2
  139. package/locales/bn/publicFiles.json +18 -1
  140. package/locales/bn/rbac.json +15 -2
  141. package/locales/bn/readiness.json +32 -1
  142. package/locales/bn/redis.json +24 -1
  143. package/locales/bn/runtime.json +49 -2
  144. package/locales/bn/search.json +13 -9
  145. package/locales/bn/security.json +68 -7
  146. package/locales/bn/serviceExposure.json +18 -6
  147. package/locales/bn/services.json +68 -2
  148. package/locales/bn/software.json +2 -1
  149. package/locales/bn/softwareLifecycle.json +12 -2
  150. package/locales/bn/ssl.json +12 -1
  151. package/locales/bn/stackWizard.json +9 -2
  152. package/locales/bn/support.json +38 -22
  153. package/locales/bn/system.json +31 -2
  154. package/locales/bn/systemd.json +3 -1
  155. package/locales/bn/terminal.json +9 -1
  156. package/locales/bn/translation.json +2366 -246
  157. package/locales/bn/updates.json +76 -3
  158. package/locales/bn/users.json +19 -1
  159. package/locales/bn/validators.json +325 -0
  160. package/locales/bn/vnc.json +17 -1
  161. package/locales/bn/vpn.json +18 -3
  162. package/locales/en/agents.json +20 -5
  163. package/locales/en/apache.json +6 -0
  164. package/locales/en/audit.json +4 -1
  165. package/locales/en/backups.json +39 -4
  166. package/locales/en/btTracker.json +85 -3
  167. package/locales/en/cdn.json +104 -2
  168. package/locales/en/cli.json +7 -7
  169. package/locales/en/common.json +9 -1
  170. package/locales/en/cron.json +33 -1
  171. package/locales/en/dashboard.json +28 -7
  172. package/locales/en/db.json +81 -8
  173. package/locales/en/dns.json +23 -1
  174. package/locales/en/docker.json +248 -0
  175. package/locales/en/email.json +50 -11
  176. package/locales/en/errors.json +6 -3
  177. package/locales/en/fail2ban.json +31 -6
  178. package/locales/en/files.json +44 -1
  179. package/locales/en/firewall.json +10 -1
  180. package/locales/en/ftp.json +34 -3
  181. package/locales/en/hostBrowse.json +24 -2
  182. package/locales/en/listToolbar.json +2 -1
  183. package/locales/en/login.json +6 -1
  184. package/locales/en/logs.json +33 -4
  185. package/locales/en/metrics.json +37 -2
  186. package/locales/en/migrate.json +27 -1
  187. package/locales/en/nav.json +9 -2
  188. package/locales/en/network.json +27 -2
  189. package/locales/en/nginx.json +4 -1
  190. package/locales/en/notFound.json +6 -0
  191. package/locales/en/notes.json +233 -42
  192. package/locales/en/projects.json +133 -11
  193. package/locales/en/protection.json +68 -3
  194. package/locales/en/publicFiles.json +18 -1
  195. package/locales/en/rbac.json +15 -2
  196. package/locales/en/readiness.json +30 -1
  197. package/locales/en/redis.json +24 -1
  198. package/locales/en/runtime.json +51 -3
  199. package/locales/en/search.json +4 -0
  200. package/locales/en/security.json +70 -9
  201. package/locales/en/serviceExposure.json +13 -1
  202. package/locales/en/services.json +68 -2
  203. package/locales/en/software.json +2 -1
  204. package/locales/en/softwareLifecycle.json +11 -1
  205. package/locales/en/ssl.json +12 -1
  206. package/locales/en/stackWizard.json +9 -2
  207. package/locales/en/support.json +17 -1
  208. package/locales/en/system.json +36 -7
  209. package/locales/en/systemd.json +2 -0
  210. package/locales/en/terminal.json +10 -2
  211. package/locales/en/translation.json +2312 -192
  212. package/locales/en/updates.json +50 -4
  213. package/locales/en/users.json +20 -1
  214. package/locales/en/validators.json +325 -0
  215. package/locales/en/vnc.json +23 -7
  216. package/locales/en/vpn.json +17 -2
  217. package/locales/es/agents.json +17 -2
  218. package/locales/es/apache.json +7 -1
  219. package/locales/es/audit.json +4 -1
  220. package/locales/es/backups.json +36 -1
  221. package/locales/es/btTracker.json +119 -37
  222. package/locales/es/catalog.json +6 -6
  223. package/locales/es/cdn.json +89 -1
  224. package/locales/es/cli.json +2 -2
  225. package/locales/es/common.json +9 -1
  226. package/locales/es/cron.json +33 -1
  227. package/locales/es/dashboard.json +24 -3
  228. package/locales/es/db.json +75 -3
  229. package/locales/es/dns.json +23 -1
  230. package/locales/es/docker.json +248 -0
  231. package/locales/es/email.json +49 -10
  232. package/locales/es/errors.json +5 -2
  233. package/locales/es/fail2ban.json +26 -1
  234. package/locales/es/files.json +52 -9
  235. package/locales/es/firewall.json +17 -8
  236. package/locales/es/ftp.json +32 -1
  237. package/locales/es/hostBrowse.json +35 -13
  238. package/locales/es/listToolbar.json +2 -1
  239. package/locales/es/login.json +12 -7
  240. package/locales/es/logs.json +31 -2
  241. package/locales/es/metrics.json +36 -1
  242. package/locales/es/migrate.json +27 -1
  243. package/locales/es/nav.json +11 -4
  244. package/locales/es/network.json +27 -2
  245. package/locales/es/nginx.json +4 -1
  246. package/locales/es/notFound.json +6 -0
  247. package/locales/es/notes.json +229 -41
  248. package/locales/es/projects.json +133 -11
  249. package/locales/es/protection.json +66 -2
  250. package/locales/es/publicFiles.json +18 -1
  251. package/locales/es/rbac.json +15 -2
  252. package/locales/es/readiness.json +32 -1
  253. package/locales/es/redis.json +24 -1
  254. package/locales/es/runtime.json +49 -2
  255. package/locales/es/search.json +13 -9
  256. package/locales/es/security.json +68 -7
  257. package/locales/es/serviceExposure.json +18 -6
  258. package/locales/es/services.json +68 -2
  259. package/locales/es/software.json +2 -1
  260. package/locales/es/softwareLifecycle.json +12 -2
  261. package/locales/es/ssl.json +12 -1
  262. package/locales/es/stackWizard.json +9 -2
  263. package/locales/es/support.json +37 -21
  264. package/locales/es/system.json +31 -2
  265. package/locales/es/systemd.json +3 -1
  266. package/locales/es/terminal.json +9 -1
  267. package/locales/es/translation.json +2368 -248
  268. package/locales/es/updates.json +76 -3
  269. package/locales/es/users.json +19 -1
  270. package/locales/es/validators.json +325 -0
  271. package/locales/es/vnc.json +17 -1
  272. package/locales/es/vpn.json +18 -3
  273. package/locales/fr/agents.json +17 -2
  274. package/locales/fr/apache.json +7 -1
  275. package/locales/fr/audit.json +4 -1
  276. package/locales/fr/backups.json +36 -1
  277. package/locales/fr/btTracker.json +118 -36
  278. package/locales/fr/catalog.json +6 -6
  279. package/locales/fr/cdn.json +89 -1
  280. package/locales/fr/cli.json +3 -3
  281. package/locales/fr/common.json +9 -1
  282. package/locales/fr/cron.json +33 -1
  283. package/locales/fr/dashboard.json +24 -3
  284. package/locales/fr/db.json +75 -3
  285. package/locales/fr/dns.json +23 -1
  286. package/locales/fr/docker.json +248 -0
  287. package/locales/fr/email.json +47 -8
  288. package/locales/fr/errors.json +5 -2
  289. package/locales/fr/fail2ban.json +27 -2
  290. package/locales/fr/files.json +52 -9
  291. package/locales/fr/firewall.json +13 -4
  292. package/locales/fr/ftp.json +32 -1
  293. package/locales/fr/hostBrowse.json +34 -12
  294. package/locales/fr/listToolbar.json +2 -1
  295. package/locales/fr/login.json +11 -6
  296. package/locales/fr/logs.json +31 -2
  297. package/locales/fr/metrics.json +36 -1
  298. package/locales/fr/migrate.json +27 -1
  299. package/locales/fr/nav.json +11 -4
  300. package/locales/fr/network.json +27 -2
  301. package/locales/fr/nginx.json +4 -1
  302. package/locales/fr/notFound.json +6 -0
  303. package/locales/fr/notes.json +225 -37
  304. package/locales/fr/projects.json +131 -9
  305. package/locales/fr/protection.json +66 -2
  306. package/locales/fr/publicFiles.json +18 -1
  307. package/locales/fr/rbac.json +15 -2
  308. package/locales/fr/readiness.json +32 -1
  309. package/locales/fr/redis.json +25 -2
  310. package/locales/fr/runtime.json +49 -2
  311. package/locales/fr/search.json +11 -7
  312. package/locales/fr/security.json +68 -7
  313. package/locales/fr/serviceExposure.json +17 -5
  314. package/locales/fr/services.json +68 -2
  315. package/locales/fr/software.json +2 -1
  316. package/locales/fr/softwareLifecycle.json +12 -2
  317. package/locales/fr/ssl.json +12 -1
  318. package/locales/fr/stackWizard.json +9 -2
  319. package/locales/fr/support.json +37 -21
  320. package/locales/fr/system.json +31 -2
  321. package/locales/fr/systemd.json +3 -1
  322. package/locales/fr/terminal.json +9 -1
  323. package/locales/fr/translation.json +2352 -232
  324. package/locales/fr/updates.json +76 -3
  325. package/locales/fr/users.json +19 -1
  326. package/locales/fr/validators.json +325 -0
  327. package/locales/fr/vnc.json +17 -1
  328. package/locales/fr/vpn.json +17 -2
  329. package/locales/hi/agents.json +17 -2
  330. package/locales/hi/apache.json +7 -1
  331. package/locales/hi/audit.json +4 -1
  332. package/locales/hi/backups.json +36 -1
  333. package/locales/hi/btTracker.json +121 -39
  334. package/locales/hi/catalog.json +7 -7
  335. package/locales/hi/cdn.json +89 -1
  336. package/locales/hi/cli.json +1 -1
  337. package/locales/hi/common.json +9 -1
  338. package/locales/hi/cron.json +33 -1
  339. package/locales/hi/dashboard.json +24 -3
  340. package/locales/hi/db.json +75 -3
  341. package/locales/hi/dns.json +23 -1
  342. package/locales/hi/docker.json +248 -0
  343. package/locales/hi/email.json +49 -10
  344. package/locales/hi/errors.json +5 -2
  345. package/locales/hi/fail2ban.json +29 -4
  346. package/locales/hi/files.json +53 -10
  347. package/locales/hi/firewall.json +17 -8
  348. package/locales/hi/ftp.json +32 -1
  349. package/locales/hi/hostBrowse.json +37 -15
  350. package/locales/hi/listToolbar.json +2 -1
  351. package/locales/hi/login.json +13 -8
  352. package/locales/hi/logs.json +31 -2
  353. package/locales/hi/metrics.json +36 -1
  354. package/locales/hi/migrate.json +27 -1
  355. package/locales/hi/nav.json +11 -4
  356. package/locales/hi/network.json +27 -2
  357. package/locales/hi/nginx.json +4 -1
  358. package/locales/hi/notFound.json +6 -0
  359. package/locales/hi/notes.json +227 -39
  360. package/locales/hi/projects.json +134 -12
  361. package/locales/hi/protection.json +67 -3
  362. package/locales/hi/publicFiles.json +18 -1
  363. package/locales/hi/rbac.json +16 -3
  364. package/locales/hi/readiness.json +32 -1
  365. package/locales/hi/redis.json +24 -1
  366. package/locales/hi/runtime.json +49 -2
  367. package/locales/hi/search.json +14 -10
  368. package/locales/hi/security.json +68 -7
  369. package/locales/hi/serviceExposure.json +18 -6
  370. package/locales/hi/services.json +68 -2
  371. package/locales/hi/software.json +2 -1
  372. package/locales/hi/softwareLifecycle.json +12 -2
  373. package/locales/hi/ssl.json +12 -1
  374. package/locales/hi/stackWizard.json +9 -2
  375. package/locales/hi/support.json +36 -20
  376. package/locales/hi/system.json +31 -2
  377. package/locales/hi/systemd.json +3 -1
  378. package/locales/hi/terminal.json +9 -1
  379. package/locales/hi/translation.json +2379 -259
  380. package/locales/hi/updates.json +76 -3
  381. package/locales/hi/users.json +19 -1
  382. package/locales/hi/validators.json +325 -0
  383. package/locales/hi/vnc.json +17 -1
  384. package/locales/hi/vpn.json +19 -4
  385. package/locales/id/agents.json +17 -2
  386. package/locales/id/apache.json +7 -1
  387. package/locales/id/audit.json +4 -1
  388. package/locales/id/backups.json +36 -1
  389. package/locales/id/btTracker.json +119 -37
  390. package/locales/id/catalog.json +6 -6
  391. package/locales/id/cdn.json +89 -1
  392. package/locales/id/cli.json +2 -2
  393. package/locales/id/common.json +9 -1
  394. package/locales/id/cron.json +33 -1
  395. package/locales/id/dashboard.json +24 -3
  396. package/locales/id/db.json +75 -3
  397. package/locales/id/dns.json +23 -1
  398. package/locales/id/docker.json +248 -0
  399. package/locales/id/email.json +49 -10
  400. package/locales/id/errors.json +5 -2
  401. package/locales/id/fail2ban.json +26 -1
  402. package/locales/id/files.json +52 -9
  403. package/locales/id/firewall.json +15 -6
  404. package/locales/id/ftp.json +32 -1
  405. package/locales/id/hostBrowse.json +35 -13
  406. package/locales/id/listToolbar.json +2 -1
  407. package/locales/id/login.json +13 -8
  408. package/locales/id/logs.json +31 -2
  409. package/locales/id/metrics.json +36 -1
  410. package/locales/id/migrate.json +27 -1
  411. package/locales/id/nav.json +10 -3
  412. package/locales/id/network.json +27 -2
  413. package/locales/id/nginx.json +4 -1
  414. package/locales/id/notFound.json +6 -0
  415. package/locales/id/notes.json +224 -36
  416. package/locales/id/projects.json +132 -10
  417. package/locales/id/protection.json +66 -2
  418. package/locales/id/publicFiles.json +18 -1
  419. package/locales/id/rbac.json +15 -2
  420. package/locales/id/readiness.json +32 -1
  421. package/locales/id/redis.json +24 -1
  422. package/locales/id/runtime.json +49 -2
  423. package/locales/id/search.json +13 -9
  424. package/locales/id/security.json +67 -6
  425. package/locales/id/serviceExposure.json +18 -6
  426. package/locales/id/services.json +68 -2
  427. package/locales/id/software.json +2 -1
  428. package/locales/id/softwareLifecycle.json +12 -2
  429. package/locales/id/ssl.json +12 -1
  430. package/locales/id/stackWizard.json +9 -2
  431. package/locales/id/support.json +36 -20
  432. package/locales/id/system.json +31 -2
  433. package/locales/id/systemd.json +3 -1
  434. package/locales/id/terminal.json +9 -1
  435. package/locales/id/translation.json +2358 -238
  436. package/locales/id/updates.json +76 -3
  437. package/locales/id/users.json +19 -1
  438. package/locales/id/validators.json +325 -0
  439. package/locales/id/vnc.json +17 -1
  440. package/locales/id/vpn.json +18 -3
  441. package/locales/ja/agents.json +17 -2
  442. package/locales/ja/apache.json +7 -1
  443. package/locales/ja/audit.json +4 -1
  444. package/locales/ja/backups.json +36 -1
  445. package/locales/ja/btTracker.json +121 -39
  446. package/locales/ja/catalog.json +10 -10
  447. package/locales/ja/cdn.json +89 -1
  448. package/locales/ja/cli.json +3 -3
  449. package/locales/ja/common.json +9 -1
  450. package/locales/ja/cron.json +33 -1
  451. package/locales/ja/dashboard.json +24 -3
  452. package/locales/ja/db.json +75 -3
  453. package/locales/ja/dns.json +23 -1
  454. package/locales/ja/docker.json +248 -0
  455. package/locales/ja/email.json +49 -10
  456. package/locales/ja/errors.json +5 -2
  457. package/locales/ja/fail2ban.json +26 -1
  458. package/locales/ja/files.json +52 -9
  459. package/locales/ja/firewall.json +17 -8
  460. package/locales/ja/ftp.json +32 -1
  461. package/locales/ja/hostBrowse.json +37 -15
  462. package/locales/ja/listToolbar.json +2 -1
  463. package/locales/ja/login.json +11 -6
  464. package/locales/ja/logs.json +31 -2
  465. package/locales/ja/metrics.json +36 -1
  466. package/locales/ja/migrate.json +27 -1
  467. package/locales/ja/nav.json +13 -6
  468. package/locales/ja/network.json +28 -3
  469. package/locales/ja/nginx.json +4 -1
  470. package/locales/ja/notFound.json +6 -0
  471. package/locales/ja/notes.json +233 -45
  472. package/locales/ja/projects.json +133 -11
  473. package/locales/ja/protection.json +66 -2
  474. package/locales/ja/publicFiles.json +18 -1
  475. package/locales/ja/rbac.json +15 -2
  476. package/locales/ja/readiness.json +32 -1
  477. package/locales/ja/redis.json +24 -1
  478. package/locales/ja/runtime.json +50 -3
  479. package/locales/ja/search.json +12 -8
  480. package/locales/ja/security.json +68 -7
  481. package/locales/ja/serviceExposure.json +18 -6
  482. package/locales/ja/services.json +68 -2
  483. package/locales/ja/software.json +2 -1
  484. package/locales/ja/softwareLifecycle.json +12 -2
  485. package/locales/ja/ssl.json +12 -1
  486. package/locales/ja/stackWizard.json +9 -2
  487. package/locales/ja/support.json +38 -22
  488. package/locales/ja/system.json +31 -2
  489. package/locales/ja/systemd.json +3 -1
  490. package/locales/ja/terminal.json +9 -1
  491. package/locales/ja/translation.json +2385 -265
  492. package/locales/ja/updates.json +76 -3
  493. package/locales/ja/users.json +19 -1
  494. package/locales/ja/validators.json +325 -0
  495. package/locales/ja/vnc.json +17 -1
  496. package/locales/ja/vpn.json +18 -3
  497. package/locales/ko/agents.json +17 -2
  498. package/locales/ko/apache.json +7 -1
  499. package/locales/ko/audit.json +4 -1
  500. package/locales/ko/backups.json +36 -1
  501. package/locales/ko/btTracker.json +121 -39
  502. package/locales/ko/catalog.json +8 -8
  503. package/locales/ko/cdn.json +89 -1
  504. package/locales/ko/cli.json +2 -2
  505. package/locales/ko/common.json +9 -1
  506. package/locales/ko/cron.json +33 -1
  507. package/locales/ko/dashboard.json +24 -3
  508. package/locales/ko/db.json +75 -3
  509. package/locales/ko/dns.json +23 -1
  510. package/locales/ko/docker.json +248 -0
  511. package/locales/ko/email.json +49 -10
  512. package/locales/ko/errors.json +5 -2
  513. package/locales/ko/fail2ban.json +37 -12
  514. package/locales/ko/files.json +52 -9
  515. package/locales/ko/firewall.json +18 -9
  516. package/locales/ko/ftp.json +32 -1
  517. package/locales/ko/hostBrowse.json +37 -15
  518. package/locales/ko/listToolbar.json +2 -1
  519. package/locales/ko/login.json +10 -5
  520. package/locales/ko/logs.json +31 -2
  521. package/locales/ko/metrics.json +36 -1
  522. package/locales/ko/migrate.json +27 -1
  523. package/locales/ko/nav.json +11 -4
  524. package/locales/ko/network.json +27 -2
  525. package/locales/ko/nginx.json +4 -1
  526. package/locales/ko/notFound.json +6 -0
  527. package/locales/ko/notes.json +243 -55
  528. package/locales/ko/playbooks.json +1 -1
  529. package/locales/ko/projects.json +134 -12
  530. package/locales/ko/protection.json +69 -5
  531. package/locales/ko/publicFiles.json +18 -1
  532. package/locales/ko/rbac.json +15 -2
  533. package/locales/ko/readiness.json +33 -2
  534. package/locales/ko/redis.json +24 -1
  535. package/locales/ko/runtime.json +49 -2
  536. package/locales/ko/search.json +13 -9
  537. package/locales/ko/security.json +68 -7
  538. package/locales/ko/serviceExposure.json +18 -6
  539. package/locales/ko/services.json +68 -2
  540. package/locales/ko/software.json +2 -1
  541. package/locales/ko/softwareLifecycle.json +12 -2
  542. package/locales/ko/ssl.json +12 -1
  543. package/locales/ko/stackWizard.json +9 -2
  544. package/locales/ko/support.json +36 -20
  545. package/locales/ko/system.json +31 -2
  546. package/locales/ko/systemd.json +3 -1
  547. package/locales/ko/terminal.json +9 -1
  548. package/locales/ko/translation.json +2404 -284
  549. package/locales/ko/updates.json +76 -3
  550. package/locales/ko/users.json +19 -1
  551. package/locales/ko/validators.json +325 -0
  552. package/locales/ko/vnc.json +17 -1
  553. package/locales/ko/vpn.json +19 -4
  554. package/locales/pt/agents.json +17 -2
  555. package/locales/pt/apache.json +7 -1
  556. package/locales/pt/audit.json +4 -1
  557. package/locales/pt/backups.json +36 -1
  558. package/locales/pt/btTracker.json +119 -37
  559. package/locales/pt/catalog.json +4 -4
  560. package/locales/pt/cdn.json +89 -1
  561. package/locales/pt/cli.json +2 -2
  562. package/locales/pt/common.json +9 -1
  563. package/locales/pt/cron.json +33 -1
  564. package/locales/pt/dashboard.json +24 -3
  565. package/locales/pt/db.json +75 -3
  566. package/locales/pt/dns.json +23 -1
  567. package/locales/pt/docker.json +248 -0
  568. package/locales/pt/email.json +49 -10
  569. package/locales/pt/errors.json +5 -2
  570. package/locales/pt/fail2ban.json +26 -1
  571. package/locales/pt/files.json +52 -9
  572. package/locales/pt/firewall.json +16 -7
  573. package/locales/pt/ftp.json +32 -1
  574. package/locales/pt/hostBrowse.json +37 -15
  575. package/locales/pt/listToolbar.json +2 -1
  576. package/locales/pt/login.json +14 -9
  577. package/locales/pt/logs.json +31 -2
  578. package/locales/pt/metrics.json +36 -1
  579. package/locales/pt/migrate.json +27 -1
  580. package/locales/pt/nav.json +10 -3
  581. package/locales/pt/network.json +27 -2
  582. package/locales/pt/nginx.json +4 -1
  583. package/locales/pt/notFound.json +6 -0
  584. package/locales/pt/notes.json +226 -38
  585. package/locales/pt/projects.json +131 -9
  586. package/locales/pt/protection.json +66 -2
  587. package/locales/pt/publicFiles.json +18 -1
  588. package/locales/pt/rbac.json +15 -2
  589. package/locales/pt/readiness.json +32 -1
  590. package/locales/pt/redis.json +24 -1
  591. package/locales/pt/runtime.json +49 -2
  592. package/locales/pt/search.json +11 -7
  593. package/locales/pt/security.json +68 -7
  594. package/locales/pt/serviceExposure.json +17 -5
  595. package/locales/pt/services.json +68 -2
  596. package/locales/pt/software.json +2 -1
  597. package/locales/pt/softwareLifecycle.json +12 -2
  598. package/locales/pt/ssl.json +12 -1
  599. package/locales/pt/stackWizard.json +9 -2
  600. package/locales/pt/support.json +36 -20
  601. package/locales/pt/system.json +31 -2
  602. package/locales/pt/systemd.json +3 -1
  603. package/locales/pt/terminal.json +9 -1
  604. package/locales/pt/translation.json +2358 -238
  605. package/locales/pt/updates.json +76 -3
  606. package/locales/pt/users.json +19 -1
  607. package/locales/pt/validators.json +325 -0
  608. package/locales/pt/vnc.json +17 -1
  609. package/locales/pt/vpn.json +17 -2
  610. package/locales/ur/agents.json +17 -2
  611. package/locales/ur/apache.json +7 -1
  612. package/locales/ur/audit.json +4 -1
  613. package/locales/ur/backups.json +36 -1
  614. package/locales/ur/btTracker.json +121 -39
  615. package/locales/ur/catalog.json +6 -6
  616. package/locales/ur/cdn.json +89 -1
  617. package/locales/ur/cli.json +2 -2
  618. package/locales/ur/common.json +9 -1
  619. package/locales/ur/cron.json +33 -1
  620. package/locales/ur/dashboard.json +24 -3
  621. package/locales/ur/db.json +75 -3
  622. package/locales/ur/dns.json +23 -1
  623. package/locales/ur/docker.json +248 -0
  624. package/locales/ur/email.json +49 -10
  625. package/locales/ur/errors.json +5 -2
  626. package/locales/ur/fail2ban.json +26 -1
  627. package/locales/ur/files.json +53 -10
  628. package/locales/ur/firewall.json +17 -8
  629. package/locales/ur/ftp.json +32 -1
  630. package/locales/ur/hostBrowse.json +37 -15
  631. package/locales/ur/listToolbar.json +2 -1
  632. package/locales/ur/login.json +13 -8
  633. package/locales/ur/logs.json +31 -2
  634. package/locales/ur/metrics.json +36 -1
  635. package/locales/ur/migrate.json +27 -1
  636. package/locales/ur/nav.json +10 -3
  637. package/locales/ur/network.json +27 -2
  638. package/locales/ur/nginx.json +4 -1
  639. package/locales/ur/notFound.json +6 -0
  640. package/locales/ur/notes.json +222 -34
  641. package/locales/ur/projects.json +133 -11
  642. package/locales/ur/protection.json +66 -2
  643. package/locales/ur/publicFiles.json +18 -1
  644. package/locales/ur/rbac.json +15 -2
  645. package/locales/ur/readiness.json +32 -1
  646. package/locales/ur/redis.json +24 -1
  647. package/locales/ur/runtime.json +49 -2
  648. package/locales/ur/search.json +13 -9
  649. package/locales/ur/security.json +68 -7
  650. package/locales/ur/serviceExposure.json +18 -6
  651. package/locales/ur/services.json +68 -2
  652. package/locales/ur/software.json +2 -1
  653. package/locales/ur/softwareLifecycle.json +12 -2
  654. package/locales/ur/ssl.json +12 -1
  655. package/locales/ur/stackWizard.json +9 -2
  656. package/locales/ur/support.json +37 -21
  657. package/locales/ur/system.json +31 -2
  658. package/locales/ur/systemd.json +3 -1
  659. package/locales/ur/terminal.json +9 -1
  660. package/locales/ur/translation.json +2367 -247
  661. package/locales/ur/updates.json +76 -3
  662. package/locales/ur/users.json +19 -1
  663. package/locales/ur/validators.json +325 -0
  664. package/locales/ur/vnc.json +17 -1
  665. package/locales/ur/vpn.json +19 -4
  666. package/locales/zh-CN/agents.json +17 -2
  667. package/locales/zh-CN/apache.json +8 -2
  668. package/locales/zh-CN/audit.json +4 -1
  669. package/locales/zh-CN/backups.json +36 -1
  670. package/locales/zh-CN/btTracker.json +85 -3
  671. package/locales/zh-CN/catalog.json +2 -2
  672. package/locales/zh-CN/cdn.json +89 -1
  673. package/locales/zh-CN/cli.json +5 -5
  674. package/locales/zh-CN/common.json +9 -1
  675. package/locales/zh-CN/cron.json +33 -1
  676. package/locales/zh-CN/dashboard.json +25 -4
  677. package/locales/zh-CN/db.json +76 -4
  678. package/locales/zh-CN/dns.json +23 -1
  679. package/locales/zh-CN/docker.json +248 -0
  680. package/locales/zh-CN/email.json +49 -10
  681. package/locales/zh-CN/errors.json +5 -2
  682. package/locales/zh-CN/fail2ban.json +31 -6
  683. package/locales/zh-CN/files.json +46 -3
  684. package/locales/zh-CN/firewall.json +11 -2
  685. package/locales/zh-CN/ftp.json +32 -1
  686. package/locales/zh-CN/hostBrowse.json +23 -1
  687. package/locales/zh-CN/listToolbar.json +2 -1
  688. package/locales/zh-CN/login.json +6 -1
  689. package/locales/zh-CN/logs.json +36 -7
  690. package/locales/zh-CN/metrics.json +36 -1
  691. package/locales/zh-CN/migrate.json +27 -1
  692. package/locales/zh-CN/nav.json +10 -3
  693. package/locales/zh-CN/network.json +28 -3
  694. package/locales/zh-CN/nginx.json +5 -2
  695. package/locales/zh-CN/notFound.json +6 -0
  696. package/locales/zh-CN/notes.json +216 -28
  697. package/locales/zh-CN/projects.json +130 -8
  698. package/locales/zh-CN/protection.json +66 -2
  699. package/locales/zh-CN/publicFiles.json +18 -1
  700. package/locales/zh-CN/rbac.json +15 -2
  701. package/locales/zh-CN/readiness.json +33 -2
  702. package/locales/zh-CN/redis.json +24 -1
  703. package/locales/zh-CN/runtime.json +50 -3
  704. package/locales/zh-CN/search.json +5 -1
  705. package/locales/zh-CN/security.json +68 -7
  706. package/locales/zh-CN/serviceExposure.json +13 -1
  707. package/locales/zh-CN/services.json +68 -2
  708. package/locales/zh-CN/software.json +2 -1
  709. package/locales/zh-CN/softwareLifecycle.json +12 -2
  710. package/locales/zh-CN/ssl.json +12 -1
  711. package/locales/zh-CN/stackWizard.json +9 -2
  712. package/locales/zh-CN/support.json +18 -2
  713. package/locales/zh-CN/system.json +32 -3
  714. package/locales/zh-CN/systemd.json +3 -1
  715. package/locales/zh-CN/terminal.json +9 -1
  716. package/locales/zh-CN/translation.json +2273 -153
  717. package/locales/zh-CN/updates.json +76 -3
  718. package/locales/zh-CN/users.json +19 -1
  719. package/locales/zh-CN/validators.json +325 -0
  720. package/locales/zh-CN/vnc.json +17 -1
  721. package/locales/zh-CN/vpn.json +19 -4
  722. package/locales/zh-HK/agents.json +22 -7
  723. package/locales/zh-HK/apache.json +8 -2
  724. package/locales/zh-HK/audit.json +4 -1
  725. package/locales/zh-HK/backups.json +39 -4
  726. package/locales/zh-HK/btTracker.json +89 -7
  727. package/locales/zh-HK/catalog.json +2 -2
  728. package/locales/zh-HK/cdn.json +91 -3
  729. package/locales/zh-HK/cli.json +15 -15
  730. package/locales/zh-HK/common.json +9 -1
  731. package/locales/zh-HK/cron.json +37 -5
  732. package/locales/zh-HK/dashboard.json +28 -7
  733. package/locales/zh-HK/db.json +82 -10
  734. package/locales/zh-HK/dns.json +23 -1
  735. package/locales/zh-HK/docker.json +248 -0
  736. package/locales/zh-HK/email.json +64 -25
  737. package/locales/zh-HK/errors.json +6 -3
  738. package/locales/zh-HK/fail2ban.json +32 -7
  739. package/locales/zh-HK/files.json +48 -5
  740. package/locales/zh-HK/firewall.json +13 -4
  741. package/locales/zh-HK/ftp.json +34 -3
  742. package/locales/zh-HK/hostBrowse.json +24 -2
  743. package/locales/zh-HK/listToolbar.json +2 -1
  744. package/locales/zh-HK/login.json +7 -2
  745. package/locales/zh-HK/logs.json +40 -11
  746. package/locales/zh-HK/metrics.json +38 -3
  747. package/locales/zh-HK/migrate.json +26 -0
  748. package/locales/zh-HK/nav.json +12 -5
  749. package/locales/zh-HK/network.json +32 -7
  750. package/locales/zh-HK/nginx.json +6 -3
  751. package/locales/zh-HK/notFound.json +6 -0
  752. package/locales/zh-HK/notes.json +270 -82
  753. package/locales/zh-HK/projects.json +143 -21
  754. package/locales/zh-HK/protection.json +67 -3
  755. package/locales/zh-HK/publicFiles.json +20 -3
  756. package/locales/zh-HK/rbac.json +15 -2
  757. package/locales/zh-HK/readiness.json +35 -4
  758. package/locales/zh-HK/redis.json +27 -4
  759. package/locales/zh-HK/runtime.json +58 -11
  760. package/locales/zh-HK/search.json +5 -1
  761. package/locales/zh-HK/security.json +79 -18
  762. package/locales/zh-HK/serviceExposure.json +13 -1
  763. package/locales/zh-HK/services.json +69 -3
  764. package/locales/zh-HK/software.json +2 -1
  765. package/locales/zh-HK/softwareLifecycle.json +12 -2
  766. package/locales/zh-HK/ssl.json +13 -2
  767. package/locales/zh-HK/stackWizard.json +10 -3
  768. package/locales/zh-HK/support.json +22 -6
  769. package/locales/zh-HK/system.json +36 -7
  770. package/locales/zh-HK/systemd.json +9 -7
  771. package/locales/zh-HK/terminal.json +10 -2
  772. package/locales/zh-HK/translation.json +2475 -355
  773. package/locales/zh-HK/uiInline.json +3 -3
  774. package/locales/zh-HK/updates.json +77 -4
  775. package/locales/zh-HK/users.json +20 -2
  776. package/locales/zh-HK/validators.json +325 -0
  777. package/locales/zh-HK/vnc.json +23 -7
  778. package/locales/zh-HK/vpn.json +23 -8
  779. package/package.json +8 -9
@@ -15,7 +15,9 @@
15
15
  "failed": "Fracassado",
16
16
  "error": "Erro",
17
17
  "unknown": "Não investigado",
18
- "fallback": "Desconhecido"
18
+ "fallback": "Desconhecido",
19
+ "activating": "Starting",
20
+ "stuck": "Start stuck"
19
21
  },
20
22
  "liveN": "{{count}} on-line",
21
23
  "registeredOnly": "Somente registrado",
@@ -130,7 +132,20 @@
130
132
  "labelStderr": "stderr",
131
133
  "labelAckCli": "confirmação + CLI JSON",
132
134
  "labelStdoutBody": "Corpo padrão da CLI",
133
- "resultOuterHint": "O resultado externo é CLI --json stdout."
135
+ "resultOuterHint": "O resultado externo é CLI --json stdout.",
136
+ "statusFlowTitle": "Fluxo de status",
137
+ "statusFlow": "Registrado apenas → online → obsoleto (>60 anos) → offline (desconectado). O filtro “Offline” está desconectado.",
138
+ "colSession": "UUID da sessão",
139
+ "copySession": "Copiar UUID de sessão para cluster/CLI --session",
140
+ "staleFor": "Invisível {{age}}",
141
+ "commandTitle": "Enfileirar um comando para esta sessão",
142
+ "historyTitleShort": "Abrir histórico de comandos (somente leitura)",
143
+ "expEdge": "No limite:",
144
+ "noteAllowlist": "Agent tool calls must pass the allowlist.",
145
+ "noteRbacCap": "Agent role is capped at write-low.",
146
+ "journal": "journal",
147
+ "activatingStuckHint": "Activating longer than 5 minutes — treated as failed. Check journal.",
148
+ "noOnlineAgents": "No agents online"
134
149
  },
135
150
  "ai": {
136
151
  "status": {
@@ -248,7 +263,13 @@
248
263
  "cleanupConflicts": "Limpar resíduos de conflito",
249
264
  "cleanupConflictsTitle": "Limpar todos os resíduos de conflito?",
250
265
  "cleanupConflictsDesc": "Remova todos os artefatos no disco que entrem em conflito com um projeto ou ServerName independente. As linhas do projeto são mantidas.",
251
- "artifactRemovedOk": "Configuração residual removida"
266
+ "artifactRemovedOk": "Configuração residual removida",
267
+ "sslTerminatedUpstream": "TLS termina na frente do Nginx",
268
+ "removeArtifactHint": "Apaga só este conf residual em disco. Não elimina o projeto.",
269
+ "sourceOrphan": "Leftover",
270
+ "orphanSite": "Project gone",
271
+ "pillSitesSplit": "{{n}} sites · {{leftover}} leftover",
272
+ "stopSites": "{{n}} site(s) will stop answering HTTP."
252
273
  },
253
274
  "applyStatus": {
254
275
  "draft": "Rascunho",
@@ -285,7 +306,10 @@
285
306
  "project.publish": "Publicar Nginx",
286
307
  "project.suspend": "Suspender projeto",
287
308
  "software.install": "Instalar software",
288
- "software.update": "Atualizar software"
309
+ "software.update": "Atualizar software",
310
+ "backup.restore": "Backup restore",
311
+ "backup.run": "Backup run",
312
+ "backup.delete": "Backup deleted"
289
313
  }
290
314
  },
291
315
  "backups": {
@@ -419,20 +443,55 @@
419
443
  "remotePushSub": "Depois que o tar local for bem-sucedido, envie para SFTP, caminho local ou S3",
420
444
  "accessKey": "Chave de acesso",
421
445
  "secretKey": "Chave secreta",
422
- "overwriteConfirmHint": "Digite OVERWRITE para confirmar a substituição"
446
+ "overwriteConfirmHint": "Digite OVERWRITE para confirmar a substituição",
447
+ "testRemote": "Testar destino",
448
+ "testRemoteDone": "Sonda remota concluída",
449
+ "testRemoteFailed": "Sonda remota falhou",
450
+ "resticRepoPh": "Diretório de dados do painel / restic-repo",
451
+ "testDisabledHint": "Ative o envio remoto antes de testar.",
452
+ "identityId": "Identidade SSH de saída",
453
+ "identityHint": "Preferido. O mesmo cofre que /security SSH. A senha precisa de sshpass.",
454
+ "identityNone": "Nenhum – senha ou chave padrão",
455
+ "remotePathHint": "Relativo à casa do usuário remoto (ou chroot SFTP). “.” é aquela casa.",
456
+ "restoreFullTitle": "Substitua arquivos de projeto e bancos de dados deste arquivo — digite o nome do arquivo para confirmar",
457
+ "restoreWebTitle": "Restaure arquivos de sites apenas deste arquivo",
458
+ "previewTitle": "Visualizar restauração sem escrever",
459
+ "partialSkipped": "Parcial – alguns projetos ignorados",
460
+ "testRemoteHint": "Connects to the remote host and writes a small probe file. Not read-only.",
461
+ "skippedListHint": "These projects were skipped:",
462
+ "goLogs": "Open logs",
463
+ "goAbout": "Backup notes",
464
+ "skippedPendingOs": "Skipped — OS user / home not provisioned",
465
+ "latestFile": "Latest archive",
466
+ "tabTrash": "Recycle bin",
467
+ "trashTitle": "Recycle bin ({{count}})",
468
+ "trashSub": "Deleted archives stay here for 7 days, then they are removed permanently.",
469
+ "trashEmpty": "Recycle bin is empty",
470
+ "trashEmptyDesc": "Deleted backup files appear here for 7 days.",
471
+ "trashRestore": "Restore",
472
+ "trashPurge": "Delete forever",
473
+ "trashEmptyAll": "Empty recycle bin",
474
+ "trashExpires": "Expires {{at}}",
475
+ "trashPurgeTitle": "Permanently delete this backup?",
476
+ "trashPurgeDesc": "Permanently delete {{name}}. This cannot be undone.",
477
+ "trashEmptyTitle": "Empty recycle bin?",
478
+ "trashEmptyDescConfirm": "Permanently delete {{count}} archive(s). Type the count to confirm.",
479
+ "trashRestored": "Restored from recycle bin",
480
+ "trashPurged": "Permanently deleted",
481
+ "trashedOk": "Moved to recycle bin"
423
482
  },
424
483
  "btTracker": {
425
484
  "title": "Rastreador BT",
426
485
  "sub": "Self-hosted BitTorrent / WebTorrent tracker for file shares",
427
486
  "pageDesc": "Seed panel file shares over BitTorrent. Start the tracker, set a public announce host, then create BT shares in Files.",
428
487
  "status": "Status",
429
- "running": "Running",
430
- "stopped": "Stopped",
488
+ "running": "Correndo",
489
+ "stopped": "Parou",
431
490
  "installed": "Installed (bundled)",
432
491
  "start": "Start tracker",
433
492
  "stop": "Stop tracker",
434
- "refresh": "Refresh",
435
- "settings": "Settings",
493
+ "refresh": "Atualizar",
494
+ "settings": "Configurações",
436
495
  "httpPort": "HTTP / WebSocket port",
437
496
  "udpPort": "UDP port (0 = off)",
438
497
  "listenHost": "Listen host",
@@ -451,18 +510,18 @@
451
510
  "torrentsEmpty": "No announce traffic yet",
452
511
  "torrentsEmptyHint": "Create a file share with BitTorrent mode in Files. This table fills as peers announce and the server seeds.",
453
512
  "torrentsDesc": "Live swarm from the tracker, plus local seeder status for panel shares.",
454
- "colName": "Name",
513
+ "colName": "Nome",
455
514
  "colHash": "Info hash",
456
- "colSeeds": "Seeds",
457
- "colLeechers": "Leechers",
515
+ "colSeeds": "Sementes",
516
+ "colLeechers": "Sanguessugas",
458
517
  "colStatus": "Status",
459
518
  "announceUrls": "Announce URLs",
460
519
  "announceDesc": "Put these trackers in clients, or rely on magnets generated by the panel.",
461
- "copy": "Copy",
462
- "copied": "Copied",
463
- "statsTorrents": "Torrents",
464
- "statsPeers": "Peers",
465
- "statsAnnounces": "Announces",
520
+ "copy": "Cópia",
521
+ "copied": "Copiado",
522
+ "statsTorrents": "Torrentes",
523
+ "statsPeers": "Pares",
524
+ "statsAnnounces": "Anuncia",
466
525
  "statsJobs": "Active jobs",
467
526
  "openShares": "File shares",
468
527
  "needExecute": "Enable system-change permission (YSK_EXECUTE) to open ports and run production seeds.",
@@ -471,27 +530,27 @@
471
530
  "restoreSeeds": "Re-seed BT shares",
472
531
  "restoreSeedsHint": "Start tracker if needed and re-seed shares that still have a .torrent on disk.",
473
532
  "bundledNote": "Bundled with YSK Server (Node). No apt install/uninstall — Start/Stop manages the process.",
474
- "stackTitle": "Software",
533
+ "stackTitle": "Programas",
475
534
  "jobs": "Torrent jobs",
476
535
  "jobsEmpty": "No background torrent jobs",
477
536
  "jobsEmptyHint": "Large shares (≥128 MiB) build .torrent files in the background so the Files dialog stays responsive.",
478
537
  "jobsDesc": "Background create-torrent queue for large file or folder shares.",
479
- "colJob": "Job",
480
- "colShare": "Share",
538
+ "colJob": "Trabalho",
539
+ "colShare": "Compartilhar",
481
540
  "colJobStatus": "Job status",
482
541
  "colEnqueued": "Enqueued",
483
542
  "refreshJobs": "Refresh jobs",
484
- "tabOverview": "Overview",
485
- "tabTorrents": "Torrents",
486
- "tabJobs": "Jobs",
487
- "tabSettings": "Settings",
488
- "tabAbout": "About",
543
+ "tabOverview": "Visão geral",
544
+ "tabTorrents": "Torrentes",
545
+ "tabJobs": "Empregos",
546
+ "tabSettings": "Configurações",
547
+ "tabAbout": "Sobre",
489
548
  "heroRunning": "Tracker is live",
490
549
  "heroStopped": "Tracker is stopped",
491
550
  "heroRunningSub": "Peers can announce and discover seeds for panel shares.",
492
551
  "heroStoppedSub": "Start the tracker before sharing large files over BitTorrent.",
493
- "live": "Live",
494
- "liveOff": "Idle",
552
+ "live": "Ao vivo",
553
+ "liveOff": "Parado",
495
554
  "quickStart": "Quick start",
496
555
  "quickStartDesc": "Three steps to share files over BitTorrent.",
497
556
  "step1Title": "Set public announce host",
@@ -500,28 +559,28 @@
500
559
  "step2Hint": "Open port exposure if peers are off this host.",
501
560
  "step3Title": "Create a BT share",
502
561
  "step3Hint": "In Files → Share, choose BitTorrent or both.",
503
- "stepDone": "Done",
504
- "stepTodo": "Todo",
505
- "networkCard": "Network",
562
+ "stepDone": "Feito",
563
+ "stepTodo": "Pendência",
564
+ "networkCard": "Rede",
506
565
  "networkCardDesc": "Where the tracker listens and what host appears in magnets.",
507
- "seederCard": "Seeder",
566
+ "seederCard": "Semeador",
508
567
  "seederCardDesc": "In-process WebTorrent seeder limits and peer ports.",
509
- "lifecycleCard": "Lifecycle",
568
+ "lifecycleCard": "Vida útil",
510
569
  "lifecycleCardDesc": "Boot behaviour and how the service is packaged.",
511
570
  "pid": "PID",
512
- "port": "Port",
571
+ "port": "Porta",
513
572
  "announceHost": "Announce host",
514
573
  "goSettings": "Open settings",
515
574
  "searchTorrents": "Search name or hash…",
516
- "filterAll": "All",
517
- "filterSeeding": "Seeding",
518
- "filterOther": "Other",
575
+ "filterAll": "Todos",
576
+ "filterSeeding": "Semeando",
577
+ "filterOther": "Outro",
519
578
  "noMatch": "No torrents match your filter",
520
- "seedStatusSeeding": "Seeding",
521
- "seedStatusPending": "Pending",
522
- "seedStatusError": "Error",
523
- "seedStatusStopped": "Stopped",
524
- "seedStatusNone": "None",
579
+ "seedStatusSeeding": "Semeando",
580
+ "seedStatusPending": "Pendente",
581
+ "seedStatusError": "Erro",
582
+ "seedStatusStopped": "Parou",
583
+ "seedStatusNone": "Nenhum",
525
584
  "notesTitle": "Service notes",
526
585
  "exposureTitle": "Network access",
527
586
  "protoHttp": "HTTP",
@@ -538,14 +597,96 @@
538
597
  "udpPortClassic": "6969 · Classic",
539
598
  "portSuggest8000": "8000 · Recommended",
540
599
  "saveOkRestart": "Salvo – reinicie o rastreador para aplicar portas",
541
- "announceHostUnset": ""
600
+ "announceHostUnset": "Não definido",
601
+ "tabTrackers": "Rastreadores",
602
+ "addTorrent": "Adicionar torrent",
603
+ "addTorrentTitle": "Adicionar torrent",
604
+ "addTorrentHint": "Carregue um .torrent ou cole um ímã. Escolha uma pasta Arquivos. O WebTorrent baixa arquivos e sementes ausentes quando concluído.",
605
+ "dropTorrent": "Solte um .torrent aqui",
606
+ "chooseFile": "ou escolha um arquivo",
607
+ "magnetLabel": "Ímã",
608
+ "magnetPlaceholder": "ímã:?xt=urna:btih:…",
609
+ "inspect": "Ler",
610
+ "extraTrackersPreview": "Também anunciará para {{n}} rastreadores extras",
611
+ "saveLocation": "Salvar localização",
612
+ "saveRootPublic": "Arquivos públicos",
613
+ "newFolder": "Nova pasta",
614
+ "destPreview": "Escreverei para",
615
+ "startDownload": "Iniciar transferência",
616
+ "filterDownloading": "Baixando",
617
+ "filterPaused": "Pausado",
618
+ "filterError": "Erro",
619
+ "emptyDrop": "Solte um .torrent aqui ou escolha um arquivo",
620
+ "emptyHint": "Os arquivos vão para a pasta que você escolher. Se já estiverem completos, este hospedeiro semeia. Mecanismo: WebTorrent – ​​sem software de download extra.",
621
+ "pause": "Pausa",
622
+ "resume": "Retomar",
623
+ "openFolder": "Abrir pasta",
624
+ "remove": "Remover",
625
+ "removeKeep": "Remover, manter arquivos",
626
+ "removeDelete": "Remover e excluir arquivos",
627
+ "removeConfirm": "Remover este torrent da biblioteca?",
628
+ "kindShare": "Compartilhar",
629
+ "filesInTorrent": "arquivos",
630
+ "extraTrackersDesc": "URLs de anúncio extras. As sementes de download/seed da biblioteca e de compartilhamento de arquivos os utilizam além da lista .torrent. Isso não abre o rastreador local para enxames arbitrários.",
631
+ "extraTrackersEmpty": "Sem rastreadores extras. Adicione URLs de anúncio HTTP(S), UDP ou WS(S) para que este host possa encontrar pares.",
632
+ "extraTrackerAdd": "Adicionar",
633
+ "extraTrackerUrl": "Anunciar URL",
634
+ "extraTrackerApply": "Aplicar às sementes atuais",
635
+ "extraTrackerApplyOk": "Rastreadores extras aplicados",
636
+ "extraEnabled": "Sobre",
637
+ "extraTrackerBad": "O URL deve começar com http://, https://, udp://, ws:// ou wss://",
638
+ "extraTrackerDup": "Já listado",
639
+ "extraTrackerLimit": "Máximo de 32 rastreadores extras",
640
+ "addOk": "Adicionado à biblioteca",
641
+ "savedTo": "Salvar",
642
+ "folderEmpty": "Sem subpastas",
643
+ "needTorrentFile": "Escolha um arquivo .torrent",
644
+ "torrentTooBig": ".torrent maior que 8 MiB",
645
+ "seedStatusDownloading": "Baixando",
646
+ "seedStatusChecking": "Verificando",
647
+ "seedStatusPaused": "Pausado",
648
+ "seedStatusQueued": "Na fila",
649
+ "swarmLeftover": "O Tracker tem {{count}} anúncio(s) fora da biblioteca (origem distinta da lista de torrents)",
650
+ "addSourceSection": "Origem",
651
+ "addSourceFile": "Ficheiro",
652
+ "addSourceMagnet": "Ímã",
653
+ "previewSection": "Pré-visualização",
654
+ "saveRoot": "Raiz",
655
+ "clearFile": "Limpar ficheiro",
656
+ "extraTrackersTitle": "Announce extra",
657
+ "extraTrackersEmptyTitle": "Ainda sem trackers",
658
+ "extraEnabledCount": "{{count}} ativos",
659
+ "extraApplyHint": "Ative pelo menos um para aplicar às sementes atuais",
660
+ "destMode": "Utilização desta pasta",
661
+ "seedExisting": "Semear ficheiros existentes",
662
+ "downloadNewFolder": "Descarregar para uma pasta nova",
663
+ "destFileConflict": "Já existe o ficheiro {{name}}. Escolha outra pasta ou semeie o ficheiro existente se coincidir.",
664
+ "waitingPeers": "A aguardar pares. Se os ficheiros já estão neste anfitrião, adicione de novo e escolha semear existentes.",
665
+ "stopTitle": "Pare o rastreador – a propagação e os downloads serão interrompidos",
666
+ "stopDesc": "A execução de torrents para de anunciar. Os peers se desconectam até você iniciar o rastreador novamente.",
667
+ "fillPublicHost": "Usar {{host}}",
668
+ "fillPublicHostTitle": "Preencha o nome do host do painel atual como o host do anúncio público",
669
+ "listenHostHint": "0.0.0.0 listens on every address. Prefer 127.0.0.1 unless peers must reach this host.",
670
+ "listenAllWarn": "Tracker is bound to all addresses. With the firewall off this is public. Bind 127.0.0.1 for local-only, or restrict the port in the firewall.",
671
+ "bindLoopback": "127.0.0.1 only",
672
+ "bindAll": "0.0.0.0 (all)",
673
+ "seederPortMin": "Peer port start",
674
+ "seederPortMax": "Peer port end",
675
+ "statsLibrary": "Library",
676
+ "statsLibraryHint": "Torrents in the panel library / file shares",
677
+ "statsTrackerLeftover": "Tracker leftover",
678
+ "statsTrackerLeftoverHint": "Tracker announce hashes that are not library rows",
679
+ "statsAnnouncesHint": "Announce requests seen by the tracker process",
680
+ "leftoverHashesTitle": "Tracker leftover hashes",
681
+ "leftoverHashesHint": "Read-only. These announces are not library or share rows.",
682
+ "publicHostMissingLive": "Tracker is listening but public announce host is not set. Off-host peers cannot find this seed."
542
683
  },
543
684
  "catalog": {
544
685
  "sw": {
545
686
  "vsftpd": "vsftpd (FTPS)",
546
687
  "db_util": "db-util (banco de dados de usuário FTP)",
547
688
  "nginx": "Nginx",
548
- "certbot": "Certbot (vamos criptografar)",
689
+ "certbot": "Certbot (Let's Encrypt)",
549
690
  "mysql_client": "Cliente MySQL/MariaDB",
550
691
  "mysql_server": "Servidor MySQL",
551
692
  "mariadb_server": "Servidor MariaDB",
@@ -555,8 +696,8 @@
555
696
  "redis_server": "Servidor Redis",
556
697
  "ufw": "Firewall UFW",
557
698
  "fail2ban": "fail2ban",
558
- "postfix": "Pós-fixo",
559
- "dovecot": "Pombal",
699
+ "postfix": "Postfix",
700
+ "dovecot": "Dovecot",
560
701
  "opendkim": "OpenDKIM",
561
702
  "pdns_server": "PowerDNS",
562
703
  "git": "Git",
@@ -565,7 +706,7 @@
565
706
  "python": "Python",
566
707
  "go": "Go",
567
708
  "rust": "Rust",
568
- "chromium": "Cromo / Cromo"
709
+ "chromium": "Chromium / Chrome"
569
710
  },
570
711
  "php": {
571
712
  "session": "Sessão",
@@ -689,7 +830,95 @@
689
830
  "deleteNodeDesc": "Exclui o nó CDN \"{{name}}\".",
690
831
  "deleteSiteDesc": "Exclui site CDN \"{{name}}\".",
691
832
  "deleteSiteC1": "Política do site e associações de borda",
692
- "deleteSiteC2": "As configurações nginx aplicadas podem precisar de limpeza separada ou reaplicação"
833
+ "deleteSiteC2": "As configurações nginx aplicadas podem precisar de limpeza separada ou reaplicação",
834
+ "statOnline": "Online",
835
+ "statOffline": "Off-line {{n}}",
836
+ "statHitRate": "Taxa de acerto {{v}}",
837
+ "hitNoStats": "Ainda sem estatísticas de bordo",
838
+ "loopbackOriginBlocked": "Não aplica o origin de loopback {{url}} a um bordo remoto. Defina um origin alcançável.",
839
+ "applyFailedHint": "Falha ao aplicar — veja as notas abaixo",
840
+ "applyStatus": {
841
+ "draft": "Rascunho",
842
+ "planned": "Planeado",
843
+ "applying": "A aplicar",
844
+ "applied": "Aplicado",
845
+ "failed": "Falhou",
846
+ "partial": "Parcial"
847
+ },
848
+ "drain": "Ralo",
849
+ "drainTitle": "Pare de enviar novo tráfego CDN para esta borda",
850
+ "drainDesc": "Drenar “{{name}}”? As conexões existentes permanecem até terminarem.",
851
+ "drainLastTitle": "Esta é a última vantagem – o dreno deixará todos os locais sem borda",
852
+ "drainLastDesc": "“{{name}}” é a única aresta. Drene-o e todos os sites não terão vantagem.",
853
+ "clearDrainTitle": "Aceite novo tráfego nesta borda novamente",
854
+ "clearDrainDesc": "Limpar dreno em “{{name}}”?",
855
+ "deleteNodeTitle": "Exclua esta borda CDN",
856
+ "deleteLastNodeTitle": "Exclua a última borda – todos os sites não terão borda",
857
+ "purge": "Purga",
858
+ "previewTitle": "Visualizar configuração do nginx (sem gravação)",
859
+ "writeConfTitle": "Escreva arquivos de configuração do edge nginx",
860
+ "applyEdgesTitle": "Aplique este site às bordas (escreve nginx)",
861
+ "purgeTitle": "Limpar cache nas bordas",
862
+ "dnsSyncTitle": "Gravar registros DNS CDN",
863
+ "probeDnsTitle": "Sondar bordas e DNS (somente leitura)",
864
+ "distSslTitle": "Copiar materiais TLS para bordas",
865
+ "leIssueTitle": "Emita um certificado Let’s Encrypt e distribua-o",
866
+ "deleteSiteTitle": "Exclua este site CDN",
867
+ "siteOpConfirmGeneric": "Executar esta ação em “{{name}}”?",
868
+ "siteOpConfirmDesc": "Site “{{name}}” · {{action}}. Isso pode alterar o nginx, DNS ou certificados.",
869
+ "siteOpConfirm": {
870
+ "apply": "Aplicar este site às bordas?",
871
+ "render": "Escreva a configuração do nginx para este site?",
872
+ "purge": "Limpar cache deste site?",
873
+ "dns-sync": "Sincronizar DNS para este site?",
874
+ "dist": "Distribuir TLS para bordas?",
875
+ "issue": "Problema Vamos criptografar e distribuir?"
876
+ },
877
+ "pillNodesSites": "{{n}} nós · {{s}} locais",
878
+ "statHit": "Taxa de acerto",
879
+ "hitUnknown": "Desconhecido",
880
+ "lastHealthHint": "Última sondagem {{at}} · {{ok}}",
881
+ "lastHealthNever": "Ainda não investigado – execute Probe",
882
+ "lastHealthFail": "falha na sonda",
883
+ "healthLoopNeedSites": "Adicione um site primeiro",
884
+ "nodeStatus": {
885
+ "online": "on-line",
886
+ "offline": "off-line",
887
+ "draining": "drenando",
888
+ "unknown": "desconhecido"
889
+ },
890
+ "statOnlineOf": "Online {{n}}/{{total}}",
891
+ "statDraining": "Draining {{n}}",
892
+ "localTest": "local / test",
893
+ "colRegion": "Region",
894
+ "previewOnlyNote": "Preview only — nothing was written to the edges.",
895
+ "statByRegion": "Region: ",
896
+ "statByApply": "Apply status: ",
897
+ "col": {
898
+ "origin": "Origin",
899
+ "edges": "Edges",
900
+ "apply": "Apply",
901
+ "dns": "DNS",
902
+ "edgesOnline": "Edges online / applied",
903
+ "dnsRr": "CDN DNS records"
904
+ },
905
+ "mode": {
906
+ "origin_pull": "Origin pull",
907
+ "reverse_proxy": "Reverse proxy",
908
+ "static_edge": "Static edge"
909
+ },
910
+ "dnsStrategy": {
911
+ "multi_a": "Multiple A records",
912
+ "cname": "CNAME",
913
+ "geo": "Geo"
914
+ },
915
+ "edgesOnlineApplied": "{{online}}/{{total}} online · {{applied}} applied",
916
+ "hitMiss": "Hits {{hits}} / misses {{misses}}",
917
+ "cacheBytes": "Cache ≈ {{n}} B",
918
+ "hitRateUnknown": "No access log with cache status and no cache directory, so hit rate cannot be estimated.",
919
+ "offlineHint": "Offline — probe failed. Remove the node if it is leftover.",
920
+ "applyFailedNoNote": "No stored reason. Re-apply to capture the error.",
921
+ "statApplyFailed": "Apply failed"
693
922
  },
694
923
  "cli": {
695
924
  "unknownCommand": "Comando desconhecido: {{command}}\nExecute `{{cli}} ajuda`",
@@ -1575,7 +1804,7 @@
1575
1804
  },
1576
1805
  "status": {
1577
1806
  "bans": {
1578
- "a8d96b": "Uso: {{CLI_NAME}} status de defesa|proibições|suspeitos|ban|unban|whitelist|stack-apply|fail2ban|firewall|timeline|presets [--json]\n` +\n ` banimentos [--q texto] [--source fail2ban|panel|ufw|auto]\n` +\n ` suspeitos [--q texto]\n` +\n ` stack-apply [--execute] # UFW + fail2ban + predefinição atual\n` +\n `fail2ban | firewall # investigações profundas (honestas)\n` +\n ` linha do tempo [--limit N] [--q texto]\n` +\n `predefinições # lista + activePreset"
1807
+ "a8d96b": "Uso: {{CLI_NAME}} status de defesa|proibições|suspeitos|ban|unban|whitelist|stack-apply|fail2ban|firewall|timeline|presets [--json]\n banimentos [--q texto] [--source fail2ban|panel|ufw|auto]\n suspeitos [--q texto]\n stack-apply [--execute] # UFW + fail2ban + predefinição atual\nfail2ban | firewall # investigações profundas (honestas)\n linha do tempo [--limit N] [--q texto]\npredefinições # lista + activePreset"
1579
1808
  }
1580
1809
  }
1581
1810
  }
@@ -1741,7 +1970,7 @@
1741
1970
  }
1742
1971
  },
1743
1972
  "x": {
1744
- "972912": "Uso:\n inventário de migração do servidor ysk [--data-dir PATH] --json\n ysk-server migra host --target root@IP [--identity-file PATH|--identity-id ID|--password PW] --execute [--maintenance] [--force-wipe-target]\n ysk-server migra post --job ID --data-dir PATH --execute # no destino\n status de migração do servidor ysk [--ID do trabalho]\n ysk-server migrar currículo --job ID --execute"
1973
+ "972912": "Uso:\n inventário de migração do servidor ysk [--data-dir PATH] --json\n ysk-server migra host --target root@IP [--identity-file PATH|--identity-id ID|--password PW] --execute [--maintenance] [--force-wipe-target]\n ysk-server migra post --job ID --data-dir PATH --execute # no destino\n status de migração do servidor ysk [--ID do trabalho]\n ysk-server migrar currículo --job ID --execute\n ysk-server migrate orphan-homes [--data-dir PATH] --json\n ysk-server migrate orphan-homes --path /home/ysk-server-UUID --confirm PATH --execute\n"
1745
1974
  },
1746
1975
  "hostingHelp": "Uso: hospedagem ysk-server <sub>\n Teste padrão de operações perigosas; adicione --execute (+ YSK_EXECUTE=1) para aplicar\n nginx | nginx-sync [--executar]\n redisprovisão | provisão postgres | provisão mysql [--executar]\n dns-zone --zone X --ip A.B.C.D [--ipv6 X:X::X] [--validate] [--reload]\n zonas DNS | status do powerdns | powerdns-install [--instalar|--executar]\n powerdns-load --zone X --ip A.B.C.D [--load|--execute]\n email-apply --domain X [--install|--execute]\n email-caixa de correio --domínio X --usuário local [--senha P] [--ip A.B.C.D] [--sistema]\n ftps-apply --domínio X [--instalar|--executar]\n tempos de execução | runtime-install --kind node|php|python|go|rust --version V [--install|--execute]\n dovecot-passdb --domínio X | --todos\n webmail-apply --domínio webmail.example.com [--download]\n arquivos públicos --domain files.example.com [--reload]\n email-bootstrap --domain example.com --ip A.B.C.D [--install|--execute]\n email-deliverability --domain example.com # PTR/DNSBL/warmup pack (honesto)\n aplicar firewall [--smtp] [--executar]",
1747
1976
  "logsQuery": "Uso: {{CLI_NAME}} consulta de logs --source <id> [--lines N] [--grep G] [--since 1h] [--priority err]\n exemplos de origem: diário: diário: arquivo nginx.service: projeto syslog: <uuid>\n {{CLI_NAME}} fontes de registros --json\n {{CLI_NAME}} diário de registros [--unit nginx.service] --json"
@@ -1910,6 +2139,7 @@
1910
2139
  "noData": "Sem dados",
1911
2140
  "input": "Entrada",
1912
2141
  "pleaseEnter": "Digite {{value}}",
2142
+ "required": "Obrigatório",
1913
2143
  "about": "Sobre",
1914
2144
  "operation": "Ações",
1915
2145
  "delete": "Excluir",
@@ -1996,7 +2226,14 @@
1996
2226
  "show": "Mostrar",
1997
2227
  "done": "Feito",
1998
2228
  "next": "Próximo",
1999
- "previous": "Anterior"
2229
+ "previous": "Anterior",
2230
+ "all": "Todos",
2231
+ "showPassword": "Mostrar",
2232
+ "hidePassword": "Esconder",
2233
+ "more": "Mais",
2234
+ "redirectedTo": "Aberto {{to}} (antes {{from}})",
2235
+ "unavailable": "Not available right now",
2236
+ "ok": "OK"
2000
2237
  },
2001
2238
  "cron": {
2002
2239
  "presetCdTrue": "aplicativo cd + verdadeiro (teste)",
@@ -2135,7 +2372,39 @@
2135
2372
  "sourceHost": "Hospedar",
2136
2373
  "noHostJobs": "Nenhum trabalho crontab neste escopo",
2137
2374
  "hostPartial": "Não foi possível ler o crontab de todos os usuários (é necessário root)",
2138
- "pendingInstall": "Instalação pendente ({{count}})"
2375
+ "pendingInstall": "Instalação pendente ({{count}})",
2376
+ "hourRange": "A hora deve ser 0–23.",
2377
+ "minuteRange": "O minuto deve ser 0–59.",
2378
+ "hoursCommon": "Horário comum",
2379
+ "hoursAll": "Todas as horas",
2380
+ "invalidExpr": "Não é uma expressão cron válida de 5 campos.",
2381
+ "needCommand": "O comando é necessário.",
2382
+ "needUser": "Escolha um projeto ou um usuário do sistema.",
2383
+ "hostCounts": "Linhas hospedeiras",
2384
+ "hostCountsVal": "{{ysk}} · outro {{other}} · total {{total}}",
2385
+ "hostYskYes": "linhas do painel presentes",
2386
+ "hostYskNo": "sem linhas de painel",
2387
+ "emptyHostCrontab": "Não há crontab para {{user}}.",
2388
+ "writtenOnHost": "Written",
2389
+ "registeredJobsChip": "Registered",
2390
+ "registeredVsWritten": "Registered in the panel vs written to host crontab",
2391
+ "installPreviewTitle": "Preview before installing to system crontab",
2392
+ "installPreviewDesc": "This merges the YSK block into the host crontab. Existing non-YSK lines stay.",
2393
+ "installPreviewMerge": "Install writes a YSK Server crontab merge block. It does not replace the whole crontab.",
2394
+ "installPreviewEmpty": "No pending managed jobs — install still refreshes the YSK block.",
2395
+ "editJobTitle": "Edit job",
2396
+ "editJobDesc": "Changes stay in the panel until you install to the system crontab.",
2397
+ "saveJob": "Save (management only)",
2398
+ "panelLines": "Panel lines",
2399
+ "otherLines": "Other lines",
2400
+ "totalLines": "Total",
2401
+ "writtenOnHostHint": "Lines already written to the host crontab",
2402
+ "registeredJobsHint": "Jobs registered in the panel (including pending install)",
2403
+ "pendingInstallCount": "{{n}} pending install",
2404
+ "systemJobBadge": "No project · system user",
2405
+ "willNotRun": "Not written to system crontab — will not run.",
2406
+ "pendingStale": "Not written to system crontab for {{days}} day(s) — it will not run.",
2407
+ "jobsTabPending": "Jobs ({{count}}) · pending {{pending}}"
2139
2408
  },
2140
2409
  "dashboard": {
2141
2410
  "title": "Painel",
@@ -2181,7 +2450,8 @@
2181
2450
  "mode": {
2182
2451
  "degraded": "degradado",
2183
2452
  "production_capable": "produção pronta",
2184
- "normal": "normal"
2453
+ "normal": "normal",
2454
+ "blocked": "blocked"
2185
2455
  },
2186
2456
  "details": "Detalhes",
2187
2457
  "certExpiryTitle": "Expiração do certificado:",
@@ -2224,7 +2494,7 @@
2224
2494
  "runtime": "Tempo de execução",
2225
2495
  "runtimeHint": "Define a versão de tempo de execução padrão e o estilo de implantação",
2226
2496
  "runtimeVersion": "Versão de tempo de execução",
2227
- "versionHint": "Armazenado como projeto runtime_version",
2497
+ "versionHint": "Grava a definição de versão do ambiente de execução do projeto",
2228
2498
  "serverIpv4": "Servidor IPv4",
2229
2499
  "serverIpv4Hint": "DNS A / correio SPF",
2230
2500
  "serverIpv4Ph": "Este host IPv4 público",
@@ -2246,7 +2516,27 @@
2246
2516
  "noNotifs": "Sem notificações",
2247
2517
  "noNotifsDesc": "Alertas do sistema e todos aparecem aqui",
2248
2518
  "applyAuditTitle": "Aplicar auditoria de status",
2249
- "applyAuditDesc": "ok {{ok}} · avisar {{warn}} · ruim {{bad}}"
2519
+ "applyAuditDesc": "ok {{ok}} · avisar {{warn}} · ruim {{bad}}",
2520
+ "barTitle": "{{count}} alerta(s) do host",
2521
+ "levelCritical": "Crítico",
2522
+ "levelWarn": "Aviso",
2523
+ "levelInfo": "Informações",
2524
+ "colTitle": "Alerta",
2525
+ "colDetail": "Detalhe",
2526
+ "colSource": "Origem",
2527
+ "notifSearch": "Alertas de pesquisa",
2528
+ "notifAll": "Todos",
2529
+ "notifDismiss": "Esconder",
2530
+ "goFix": "Consertar",
2531
+ "needDomainFirst": "Introduza primeiro um domínio",
2532
+ "serviceAria": "{{name}}: {{state}}",
2533
+ "sev": {
2534
+ "ok": "OK",
2535
+ "warn": "Warning",
2536
+ "bad": "Problem"
2537
+ },
2538
+ "publicNo2fa": "This panel listens on all interfaces and your admin account has no 2FA.",
2539
+ "readinessBlocked": "{{n}} blocker(s)"
2250
2540
  },
2251
2541
  "dataTable": {
2252
2542
  "empty": "Sem dados",
@@ -2471,7 +2761,54 @@
2471
2761
  "probe": "Sondar",
2472
2762
  "name": "Nome",
2473
2763
  "type": "Tipo",
2474
- "status": "Status"
2764
+ "status": {
2765
+ "healthy": "Saudável",
2766
+ "planned": "Planejado",
2767
+ "partial": "Parcial",
2768
+ "failed": "Fracassado",
2769
+ "draft": "Rascunho",
2770
+ "degraded": "Degradado",
2771
+ "applied": "Aplicado"
2772
+ },
2773
+ "fleetSession": "ID de sessão do agente de frota",
2774
+ "fleetSessionHint": "Optional. Paste a session UUID from /agents. Then this peer uses fleet (no SSH). Leave empty for SSH scp.",
2775
+ "fleetSessionPh": "UUID da sessão da página dos agentes",
2776
+ "engineNotInstalled": "{{engine}} não está instalado neste host — instale-o primeiro ou abra o mecanismo que está realmente em execução.",
2777
+ "fleetSessionNone": "Nenhum – use SSH",
2778
+ "fleetSessionOpenAgents": "Abra /agentes para registrar uma sessão",
2779
+ "createWizardTitle": "Abre o assistente de plano. Precisa de um IP local e ≥1 peer. Grava apenas artefatos do painel (simulação). Não reinicia o motor até que você aplique.",
2780
+ "bootstrap": "Inicialização",
2781
+ "fleetApply": "Aplicação de frota",
2782
+ "planTitle": "Gerar novamente o plano de cluster (sem alteração de host)",
2783
+ "writeFileTitle": "Grave arquivos de gerenciamento no diretório de dados do painel (simulação)",
2784
+ "probeLocalTitle": "Sondar apenas este host",
2785
+ "probeAllTitle": "Sonde cada membro registrado",
2786
+ "bootstrapTitle": "Instale o drop-in local e inicialize o primeiro nó",
2787
+ "remoteInstallPlanTitle": "Visualizar instalação remota (sem execução)",
2788
+ "downloadBundleTitle": "Baixe o pacote peer conf (.tar.gz)",
2789
+ "pushPlanTitle": "Visualizar push to peer (sem scp)",
2790
+ "fleetSyncPlanTitle": "Visualizar sincronização da frota (sem execução)",
2791
+ "fleetApplyTitle": "O enfileiramento se aplica aos membros da frota?",
2792
+ "redirectedFromCluster": "You were redirected here from /cluster. This is the database cluster tab.",
2793
+ "roleUnassigned": "No role assigned",
2794
+ "standaloneOtherEngines": "This engine is standalone. Other engines have clusters: {{names}}.",
2795
+ "notApplied": "Not applied",
2796
+ "plannedAt": "Created {{when}}",
2797
+ "clearStalePlans": "Clear stale plans",
2798
+ "clearStalePlansTitle": "Delete stale planned clusters?",
2799
+ "clearStalePlansDesc": "Deletes {{n}} planned/draft registration(s) older than 7 days. Does not apply or push. System conf is not touched.",
2800
+ "landingTitle": "Database cluster",
2801
+ "landingDesc": "No database engine is installed on this host. Open an engine page to install, then return here.",
2802
+ "landingNoneInstalled": "MySQL, MariaDB, PostgreSQL, and Redis are not installed. /cluster does not open a MySQL tab when MySQL is missing.",
2803
+ "openEngine": "Open {{engine}}",
2804
+ "overviewPill": "Clusters {{n}}",
2805
+ "enginesInstalled": "Engines",
2806
+ "plannedCount": "Planned",
2807
+ "overviewList": "Clusters ({{count}})",
2808
+ "overviewEmpty": "No cluster registrations yet.",
2809
+ "engine": "Engine",
2810
+ "kind": "Kind",
2811
+ "members": "Members"
2475
2812
  },
2476
2813
  "console": {
2477
2814
  "dataBrowse": "Navegar pelos dados",
@@ -2511,7 +2848,9 @@
2511
2848
  "reloadConfig": "Recarregar configuração",
2512
2849
  "disableBoot": "Desativar na inicialização",
2513
2850
  "needRights": "Precisa de direitos de alteração do sistema e administrador. Os fracassos mostram razões – nunca finja o sucesso.",
2514
- "noneFetched": "- nenhum -"
2851
+ "noneFetched": "- nenhum -",
2852
+ "disableBootConfirm": "O mecanismo não iniciará após a reinicialização até que você o habilite novamente.",
2853
+ "affectsProjects": "Sites and services that use this engine will be interrupted."
2515
2854
  },
2516
2855
  "expiresLabel": "Expira",
2517
2856
  "importEntry": "Entrada: {{url}}",
@@ -2537,7 +2876,30 @@
2537
2876
  "unfreezeOk": "{{engine}} reparo concluído",
2538
2877
  "startAfterUnfreeze": "Iniciar serviço (executa automaticamente o plano de reparo em caso de falha)",
2539
2878
  "serviceDownTitle": "O serviço de banco de dados está inativo",
2540
- "serviceDownBody": "O serviço não é saudável"
2879
+ "serviceDownBody": "O serviço não é saudável",
2880
+ "emptyDbHostHasRows": "O host já possui bancos de dados que não estão nesta lista de plano de controle.",
2881
+ "hostHasUntracked": "{{count}} bancos de dados host não estão registrados no painel",
2882
+ "hostInventoryHint": "A tabela contém apenas linhas do plano de controle. Os nomes ativos vêm de SHOW DATABASES.",
2883
+ "adoptHostDb": "Cadastre-se {{name}}",
2884
+ "remoteTest": "Conexão de teste",
2885
+ "remoteTestDone": "Sondagem de host remoto concluída",
2886
+ "remoteTestOk": "alcançável",
2887
+ "remoteTestFail": "inacessível",
2888
+ "remoteNotChecked": "não testado",
2889
+ "registeredVsHostHint": "Registado no painel / encontrado no anfitrião",
2890
+ "dumpNeedRegistered": "Registe primeiro uma base de dados no painel",
2891
+ "dumpFirstDbTitle": "Exportar a primeira base registada",
2892
+ "importNeedRegistered": "Registe primeiro uma base de dados no painel",
2893
+ "importLatestNeedConfirm": "Precisa de confirmação — importa para a base registada",
2894
+ "adoptHostDbTitle": "Só regista o nome no plano de controlo; não altera dados do anfitrião.",
2895
+ "cleanupExpiredTempUsersTitle": "Remove utilizadores temporários do painel já expirados",
2896
+ "remoteDeleteTitle": "Remover apenas este registo",
2897
+ "remoteDeleteConfirm": "Remover o registo {{name}}? O servidor remoto não é alterado.",
2898
+ "registeredCount": "Registered",
2899
+ "hostCount": "On host",
2900
+ "registeredUsers": "Registered users",
2901
+ "registeredUsersHint": "Panel registrations only — not every MySQL account",
2902
+ "hostStillExists": "Still on host"
2541
2903
  },
2542
2904
  "dialogs": {
2543
2905
  "confirmDefault": "Confirmar",
@@ -2761,7 +3123,277 @@
2761
3123
  "aboutHealthTitle": "Integridade do serviço",
2762
3124
  "aboutHealthBody": "Use Ferramentas para testar o PowerDNS, reparar o bind e abrir a porta 53.",
2763
3125
  "aboutStackTitle": "Programas",
2764
- "aboutStackBody": "Verifique/atualize o pacote PowerDNS em Software."
3126
+ "aboutStackBody": "Verifique/atualize o pacote PowerDNS em Software.",
3127
+ "invalidZone": "Nome de zona inválido. Use um domínio real (por exemplo, example.com).",
3128
+ "invalidIpv4": "IPv4 inválido. Cada octeto deve ser de 0 a 255.",
3129
+ "mailZonesMissing": "Os domínios de e-mail não têm zona DNS aqui: {{domains}}.",
3130
+ "createMailZone": "Criar zona de correio",
3131
+ "createMailZoneNow": "Zona de correio criada {{domain}}",
3132
+ "healNeedInstall": "PowerDNS não está instalado - instale-o primeiro na guia Software",
3133
+ "applyNeedService": "O serviço DNS não está em execução – inicie ou instale-o antes de aplicar",
3134
+ "deleteZoneNeedName": "Exclua esta zona — você digitará o nome da zona para confirmar",
3135
+ "toolsFirewallTitle": "Firewall (UFW)",
3136
+ "toolsFirewallHint": "Permitir ou negar a porta 53. Não inicia nem para o PowerDNS.",
3137
+ "toolsUnitTitle": "Unidade PowerDNS",
3138
+ "toolsUnitHint": "Unidade systemd pdns — iniciar, parar, reiniciar, recarregar.",
3139
+ "installConfirmTitle": "Instalar o PowerDNS?",
3140
+ "installConfirmDesc": "Instala pdns-server e escreve a configuração gerida. Precisa de root e YSK_EXECUTE=1.",
3141
+ "installConfirmConsequence": "Após instalar e iniciar, o PowerDNS liga a porta 53.",
3142
+ "installPort53Busy": "A porta 53 já tem um ouvinte. O PowerDNS pode falhar a ligar até esse processo ser parado ou reparado.",
3143
+ "installPort53BusyConsequence": "Repare a ligação ou pare o outro ouvinte antes de esperar respostas na 53.",
3144
+ "createZoneNeedValid": "Enter a valid zone name and IPv4 address",
3145
+ "startProbeFailed": "Could not re-check DNS health after start",
3146
+ "startNotListening": "PowerDNS start returned, but the unit is not answering on port 53",
3147
+ "goStartService": "Start DNS service",
3148
+ "startBindHint": "If start returns to stopped, port 53 is often held by systemd-resolved. Use Heal bind below, then start again."
3149
+ },
3150
+ "docker": {
3151
+ "title": "Docker",
3152
+ "subtitle": "Instale e controle o motor Docker, contentores, imagens, projetos Compose e disco neste anfitrião.",
3153
+ "refresh": "Atualizar",
3154
+ "notInstalled": "O Docker Engine não está instalado. Instale docker.io e docker-compose-v2 nesta página.",
3155
+ "protected": "Protegido",
3156
+ "pruneConfirm": "Escreva PRUNE para confirmar a limpeza de volume ou do sistema",
3157
+ "settingsHint": "Apenas um subconjunto seguro de daemon.json. Aplicar escreve o ficheiro e reinicia docker.service.",
3158
+ "cli": {
3159
+ "usage": "Utilização: ysk-server docker status|ps|images|volumes|networks|df|logs|inspect|exec|start|stop|restart|rm|pull|run|prune|engine|compose [--image IMG] [--name N] [--preset version|help|hostname] [--bin BIN] [--project P] [--execute] [--json]"
3160
+ },
3161
+ "tab": {
3162
+ "overview": "Visão geral",
3163
+ "containers": "Contentores",
3164
+ "images": "Imagens",
3165
+ "compose": "Compose",
3166
+ "volumes": "Volumes",
3167
+ "networks": "Redes",
3168
+ "prune": "Limpar",
3169
+ "settings": "Definições",
3170
+ "about": "Sobre"
3171
+ },
3172
+ "col": {
3173
+ "engine": "Motor",
3174
+ "containers": "Contentores",
3175
+ "version": "Versão",
3176
+ "dataRoot": "Diretório de dados",
3177
+ "disk": "Disco",
3178
+ "validators": "Pilhas de validador",
3179
+ "name": "Nome",
3180
+ "image": "Imagem",
3181
+ "status": "Estado",
3182
+ "ports": "Portos",
3183
+ "managed": "Gerido pelo painel",
3184
+ "size": "Tamanho",
3185
+ "driver": "Controlador",
3186
+ "type": "Tipo",
3187
+ "reclaimable": "Recuperável"
3188
+ },
3189
+ "state": {
3190
+ "up": "Ativo",
3191
+ "down": "Parado",
3192
+ "running": "Running",
3193
+ "exited": "Exited",
3194
+ "restarting": "Restarting",
3195
+ "restartingCount": "Restarting · {{n}} times",
3196
+ "paused": "Paused",
3197
+ "created": "Created",
3198
+ "dead": "Dead",
3199
+ "removing": "Removing",
3200
+ "unknown": "Unknown",
3201
+ "exitedCode": "Exited ({{n}})"
3202
+ },
3203
+ "actions": {
3204
+ "start": "Iniciar",
3205
+ "stop": "Parar",
3206
+ "restart": "Reiniciar",
3207
+ "remove": "Remover",
3208
+ "logs": "Registos",
3209
+ "inspect": "Inspecionar",
3210
+ "exec": "Exec (versão)",
3211
+ "run": "Executar imagem",
3212
+ "pull": "Obter",
3213
+ "up": "Subir",
3214
+ "down": "Descer",
3215
+ "createVolume": "Criar volume",
3216
+ "createNetwork": "Criar rede",
3217
+ "pruneContainers": "Limpar contentores",
3218
+ "pruneImages": "Limpar imagens",
3219
+ "pruneVolumes": "Limpar volumes",
3220
+ "pruneSystem": "Limpeza do sistema",
3221
+ "startEngine": "Iniciar motor",
3222
+ "stopEngine": "Parar motor",
3223
+ "restartEngine": "Reiniciar motor",
3224
+ "applyDaemon": "Aplicar definições do motor"
3225
+ },
3226
+ "empty": {
3227
+ "containers": "Sem contentores",
3228
+ "images": "Sem imagens",
3229
+ "compose": "Sem projetos Compose",
3230
+ "volumes": "Sem volumes",
3231
+ "networks": "Sem redes",
3232
+ "composeDesc": "Projects come from validator nodes or Compose files already on this host. This page does not accept arbitrary YAML uploads.",
3233
+ "composeCta": "Open validator nodes"
3234
+ },
3235
+ "logs": {
3236
+ "empty": "Ainda sem registos",
3237
+ "follow": "Follow"
3238
+ },
3239
+ "settings": {
3240
+ "logMaxSize": "Tamanho máximo do registo do contentor",
3241
+ "liveRestore": "Restauro em direto (manter contentores se o daemon reiniciar)",
3242
+ "mirrors": "Espelhos Registry (um URL por linha)",
3243
+ "insecure": "Registries sem cifra (um anfitrião por linha)"
3244
+ },
3245
+ "about": {
3246
+ "body": "O Docker é um serviço de anfitrião de primeira linha no YSK Server, como o Nginx. Instala-se pelo painel (Ubuntu docker.io + docker-compose-v2). Os nós validador correm como projetos Compose yskval-*.",
3247
+ "honesty": "Alterações no anfitrião precisam de root e YSK_EXECUTE=1. O predefinido é dry-run. Esta página não é Kubernetes.",
3248
+ "validators": "Abrir nós validador"
3249
+ },
3250
+ "alerts": {
3251
+ "daemonTitle": "O daemon Docker está parado",
3252
+ "daemonBody": "O Docker está instalado mas o docker.service não está ativo. As pilhas de validador não conseguem arrancar."
3253
+ },
3254
+ "errors": {
3255
+ "notInstalled": "O Docker não está instalado",
3256
+ "daemonDown": "O daemon Docker não está ativo",
3257
+ "needCompose": "É necessário docker compose (extensão v2)",
3258
+ "badImage": "Referência de imagem inválida",
3259
+ "badName": "Nome inválido",
3260
+ "badPort": "Publicação de porto inválida",
3261
+ "badEnv": "Variável de ambiente inválida",
3262
+ "badVolume": "Montagem de volume inválida",
3263
+ "badNetwork": "Rede inválida",
3264
+ "protectedNetwork": "Não é possível remover uma rede Docker integrada",
3265
+ "badRestart": "Política de reinício inválida",
3266
+ "badPrune": "Âmbito de limpeza inválido",
3267
+ "needPruneConfirm": "Limpar volume ou sistema exige confirm=PRUNE",
3268
+ "badDaemon": "Definição do motor inválida",
3269
+ "composeMissing": "Ficheiro Compose deste projeto não encontrado",
3270
+ "logsFailed": "Não foi possível ler os registos do contentor",
3271
+ "mutateFailed": "O comando Docker falhou",
3272
+ "engineFailed": "Não foi possível controlar o docker.service",
3273
+ "badExec": "O exec limita-se a binários e predefinições permitidos (sem shell nem TTY)",
3274
+ "uninstallBusy": "Pare os contentores geridos pelo painel (incluindo pilhas de validador) antes de desinstalar o Docker"
3275
+ },
3276
+ "notes": {
3277
+ "dryMutate": "Apenas dry-run. Passe --execute e YSK_EXECUTE=1 para alterar o anfitrião.",
3278
+ "dryPrune": "Pré-visualização da limpeza (não aplicada).",
3279
+ "dryEngine": "O controlo do motor é dry-run.",
3280
+ "dryDaemon": "Escreveria /etc/docker/daemon.json e reiniciaria o docker.service.",
3281
+ "daemonWrote": "daemon.json escrito",
3282
+ "start": "Contentor iniciado",
3283
+ "stop": "Contentor parado",
3284
+ "restart": "Contentor reiniciado",
3285
+ "remove": "Contentor removido",
3286
+ "ran": "Contentor iniciado a partir da imagem",
3287
+ "pulled": "Imagem obtida",
3288
+ "exec": "Exec permitido executado",
3289
+ "imageRemoved": "Imagem removida",
3290
+ "volumeCreated": "Volume criado",
3291
+ "volumeRemoved": "Volume removido",
3292
+ "networkCreated": "Rede criada",
3293
+ "networkRemoved": "Rede removida",
3294
+ "pruned": "Limpeza concluída",
3295
+ "compose": {
3296
+ "up": "Projeto Compose iniciado",
3297
+ "down": "Projeto Compose parado",
3298
+ "restart": "Projeto Compose reiniciado",
3299
+ "rm": "Compose project removed"
3300
+ },
3301
+ "engine": {
3302
+ "start": "docker.service iniciado",
3303
+ "stop": "docker.service parado",
3304
+ "restart": "docker.service reiniciado"
3305
+ }
3306
+ },
3307
+ "needEngineTitle": "Install Docker Engine first",
3308
+ "notInstalledValue": "Not installed",
3309
+ "nameHint": "Letters, digits, underscore, dot, hyphen (max 128)",
3310
+ "volPlaceholder": "my-data",
3311
+ "netPlaceholder": "my-net",
3312
+ "runPorts": "Publish ports",
3313
+ "runPortsHint": "host:container per line, e.g. 8080:80",
3314
+ "runEnv": "Environment",
3315
+ "runEnvHint": "KEY=value per line",
3316
+ "runRestart": "Restart policy",
3317
+ "runNetwork": "Network",
3318
+ "runVolumes": "Volumes",
3319
+ "runVolumesHint": "volume:dest per line",
3320
+ "runAdvancedHint": "For multi-service stacks use validator nodes or Compose files already on this host.",
3321
+ "daemonConfirmTitle": "Apply daemon settings?",
3322
+ "daemonConfirmDesc": "Writes daemon.json and restarts docker.service. All containers will be interrupted.",
3323
+ "ui": {
3324
+ "whatYouGet": "O que esta página faz",
3325
+ "whatYouGetLead": "Instale primeiro o Docker Engine. Depois pode executar um contentor, obter imagens e ver as pilhas Compose de validador já neste anfitrião.",
3326
+ "capEngine": "Motor",
3327
+ "capEngineDesc": "Instalação num clique de docker.io e docker-compose-v2. Inicie e pare o docker.service aqui.",
3328
+ "capWork": "Contentores e imagens",
3329
+ "capWorkDesc": "Escolha uma imagem comum, obtenha-a, execute-a e depois leia os registos ou inspecione o contentor.",
3330
+ "capStacks": "Pilhas de validador",
3331
+ "capStacksDesc": "Pilhas de vários serviços são projetos Compose de validador (yskval-*). Esta página não aceita YAML carregado.",
3332
+ "cardEngine": "Motor",
3333
+ "cardDisk": "Disco",
3334
+ "cardWork": "Neste anfitrião",
3335
+ "compose": "Compose",
3336
+ "cgroup": "cgroup",
3337
+ "used": "Usado",
3338
+ "free": "Livre",
3339
+ "running": "Em execução",
3340
+ "images": "Imagens",
3341
+ "volumes": "Volumes",
3342
+ "networks": "Redes",
3343
+ "goImages": "Imagens",
3344
+ "goValidators": "Nós validador",
3345
+ "imagePickHint": "Escolha uma imagem comum. Use Outra só quando precisar de outra referência.",
3346
+ "imageCustom": "Outra",
3347
+ "driver": "Controlador",
3348
+ "driverLocalOnly": "Este painel cria apenas volumes local.",
3349
+ "netDefaultDriver": "Novas redes usam o controlador bridge predefinido do Docker.",
3350
+ "pruneWhat": "O que remover",
3351
+ "pruneAck": "Compreendo que os dados não usados serão eliminados e não podem ser restaurados",
3352
+ "pruneAckDesc": "Limpar volumes ou o sistema não pode ser anulado. Contentores parados e imagens não usadas do âmbito escolhido são removidos.",
3353
+ "pruneNow": "Limpar agora",
3354
+ "useMirrors": "Usar espelhos de registo",
3355
+ "useInsecure": "Permitir registos sem cifra",
3356
+ "publishPorts": "Publicar portos no anfitrião",
3357
+ "attachVolume": "Anexar um volume",
3358
+ "setEnv": "Definir variáveis de ambiente",
3359
+ "defaultNet": "Predefinida",
3360
+ "mountPath": "Caminho de montagem",
3361
+ "restartNo": "Nunca",
3362
+ "restartUnless": "Salvo se parado",
3363
+ "restartAlways": "Sempre",
3364
+ "restartOnFail": "Em falha",
3365
+ "needAck": "Confirme antes de limpar",
3366
+ "scopeContainers": "Contentores parados",
3367
+ "scopeImages": "Imagens não usadas",
3368
+ "scopeVolumes": "Volumes não usados",
3369
+ "scopeBuilder": "Cache de construção",
3370
+ "scopeSystem": "Tudo o que não é usado",
3371
+ "noVolumesYet": "Ainda sem volumes — crie um no separador Volumes primeiro.",
3372
+ "customPort": "Outro porto do anfitrião",
3373
+ "customPortHost": "Porto do anfitrião",
3374
+ "customPortContainer": "Porto do contentor",
3375
+ "pctUsed": "{{n}}% usado",
3376
+ "customPortHint": "1–65535. Example: 9090 → 80.",
3377
+ "pickBridge": "Bridge network"
3378
+ },
3379
+ "deleteTitle": "Delete {{id}}",
3380
+ "deleteDesc": "This cannot be undone.",
3381
+ "deleteC1": "The resource is removed from this host.",
3382
+ "deleteComposeVal": "This is a validator stack — the validator instance is also deleted.",
3383
+ "pruneTitle": "Prune Docker resources",
3384
+ "pruneDesc": "Type PRUNE to confirm. Unused data cannot be restored.",
3385
+ "pruneC1": "Unused resources in the selected scope are deleted.",
3386
+ "pruneC2": "Volume and system prune permanently delete unused data volumes.",
3387
+ "pruneC3": "Stopped containers or unused images in this scope are removed.",
3388
+ "df": {
3389
+ "images": "Images",
3390
+ "containers": "Containers",
3391
+ "volumes": "Local volumes",
3392
+ "builder": "Build cache",
3393
+ "other": "Other"
3394
+ },
3395
+ "deleteRunningWarn": "This container is still running or restarting. It will be force-removed.",
3396
+ "stopEngineDesc": "This stops the Docker engine and all {{n}} container(s) on this host."
2765
3397
  },
2766
3398
  "email": {
2767
3399
  "title": "E-mail",
@@ -2812,7 +3444,7 @@
2812
3444
  "needExecute": "Precisa de YSK_EXECUTE",
2813
3445
  "viewQueue": "Ver fila",
2814
3446
  "flushQueue": "Liberar fila",
2815
- "queueHint": "Clique em Exibir fila para ler a fila local do Postfix",
3447
+ "queueHint": "Fila Postfix local. Ver é sonda de leitura; limpar exige YSK_EXECUTE.",
2816
3448
  "deleteThisId": "Excluir este ID",
2817
3449
  "queueEmpty": "Sem correio diferido",
2818
3450
  "queueEmptyHint": "Nenhuma mensagem adiada",
@@ -3081,7 +3713,8 @@
3081
3713
  "dmarcMissing": "DMARC ausente – altamente recomendado",
3082
3714
  "ptrBad": "DNS reverso PTR ausente ou incorreto – solicitação no provedor VPS",
3083
3715
  "port25Blocked": "A porta de saída 25 parece bloqueada – solicite o desbloqueio ou use a retransmissão SMTP",
3084
- "port25Unknown": "Status da porta 25 desconhecido – execute a verificação de conectividade"
3716
+ "port25Unknown": "Status da porta 25 desconhecido – execute a verificação de conectividade",
3717
+ "dmarcUnpublished": "O DMARC é gerado no painel, mas ainda não foi publicado no DNS público"
3085
3718
  },
3086
3719
  "stack": {
3087
3720
  "tlsNote": "Certificados TLS via Let’s Encrypt para SMTP/IMAP",
@@ -3122,7 +3755,8 @@
3122
3755
  "postfixReloaded": "Postfix recarregado.",
3123
3756
  "postfixReloadFailed": "Falha ao recarregar o Postfix: {{detail}}",
3124
3757
  "dovecotApplied": "Escreveu o snippet Dovecot TLS e tentou recarregar.",
3125
- "dovecotSkipped": "Dovecot ignorado (não instalado ou doveconf indisponível)."
3758
+ "dovecotSkipped": "Dovecot ignorado (não instalado ou doveconf indisponível).",
3759
+ "dovecotSslOmitted": "O certificado de correio está faltando; escrevi ssl=no para que o Dovecot possa iniciar sem os arquivos LE."
3126
3760
  },
3127
3761
  "policyApplySystemHint": "Marque “aplicar ao sistema” para escrever mapas Postfix/Rspamd e recarregar;",
3128
3762
  "rateLimitAppliedNote": "Taxa de saída por hora e sinalizador antispam aplicados (quando a aplicação do sistema está ativada).",
@@ -3161,12 +3795,12 @@
3161
3795
  "deliverabilityDesc": "Verificações de PTR/DNS/porta 25",
3162
3796
  "dnsTodosDesc": "Copie e adicione em seu host DNS",
3163
3797
  "deliverabilityHonesty": "Não é possível definir o PTR ou desbloquear a porta 25 para você",
3164
- "warmupSuggest": "暖身建議",
3165
- "writeSsoSkeleton": "Sobre Roundcube SSO",
3166
- "rateLimitPerHour": "每小時訊息上限",
3167
- "rateLimitGlobalHint": "全域取各域名最小值",
3168
- "savePolicyWritten": "只寫入控制面",
3169
- "dnsblMultiIp": "Sobre IP RBL",
3798
+ "warmupSuggest": "Sugestões de aquecimento",
3799
+ "writeSsoSkeleton": "Escrever o esqueleto SSO do Roundcube",
3800
+ "rateLimitPerHour": "Limite de mensagens por hora",
3801
+ "rateLimitGlobalHint": "O global usa o mínimo de cada domínio",
3802
+ "savePolicyWritten": "Gravado apenas no plano de controlo",
3803
+ "dnsblMultiIp": "RBL de várias IP",
3170
3804
  "webmailTool": "Software de webmail",
3171
3805
  "webmailToolRoundcube": "Cubo redondo (padrão)",
3172
3806
  "webmailToolSnappy": "SnappyMail (leve)",
@@ -3238,7 +3872,44 @@
3238
3872
  "mailboxEmptyTitle": "Ainda não há caixas de correio",
3239
3873
  "passwordMismatch": "As senhas não coincidem",
3240
3874
  "passwordTooShort": "A senha deve ter pelo menos 8 caracteres",
3241
- "mailboxUpdateNeedField": "Defina uma nova senha ou altere o status"
3875
+ "mailboxUpdateNeedField": "Defina uma nova senha ou altere o status",
3876
+ "catchallHint": "Partes locais desconhecidas vão para a caixa destino. Rascunho até aplicar.",
3877
+ "queueSearchPh": "Pesquisar ID, remetente ou destinatário…",
3878
+ "queueId": "ID da fila",
3879
+ "queueSender": "Remetente",
3880
+ "queueRecipients": "Destinatários",
3881
+ "queueSize": "Tamanho",
3882
+ "queueReason": "Motivo",
3883
+ "queueActive": "Ativo",
3884
+ "queueHeld": "Retido",
3885
+ "queueDeferred": "Adiado",
3886
+ "deleteQueueTitle": "Eliminar esta mensagem da fila?",
3887
+ "deleteQueueDesc": "Remover {{id}} da fila MTA local. Precisa de YSK_EXECUTE.",
3888
+ "openQueuePage": "Abrir fila de correio",
3889
+ "healthUnchecked": "Ainda não verificado",
3890
+ "dovecotFailedHint": "Dovecot failed. Open the Software tab for status; if the mail certificate is missing, issue it on the SSL page first.",
3891
+ "domainsListDesc": "Domínios de correio registrados neste host",
3892
+ "healthChecklist": "Lista {{score}}/100",
3893
+ "healthChecklistHint": "Pontuação da lista — DNS / PTR / porta 25 ainda não verificados",
3894
+ "healthLiveHint": "Pontuação da sonda ao vivo",
3895
+ "installWebmailTitle": "Crie o projeto de webmail compartilhado (primeira instalação)",
3896
+ "reinstallWebmailTitle": "Reconstruir/atualizar o projeto de webmail existente",
3897
+ "reinstallNeedInstall": "Instale o webmail primeiro",
3898
+ "dovecotFailedStatus": "Pombal é {{status}}. Abra a guia Software para o resumo da unidade.",
3899
+ "mailCertMissing": "Nenhum certificado para {{hosts}}. Emita-o na página SSL.",
3900
+ "mailCertPresent": "Um certificado de correio já foi emitido — este não é um problema de certificado ausente.",
3901
+ "webmailNeedCert": "Nenhum certificado para {{host}} — emita-o em SSL antes de forçar HTTPS.",
3902
+ "flushQueueEmpty": "A fila está vazia",
3903
+ "flushQueueNeedExecute": "A liberação da fila precisa de YSK_EXECUTE (permissão de execução do host)",
3904
+ "healthUncheckedHint": "DNS / PTR / porta 25 ainda não foram sondados.",
3905
+ "deliverabilityScore": "Pacote de entregabilidade",
3906
+ "opendkimNoReload": "O OpenDKIM não tem reload — use reinício após alterar chaves ou tabelas.",
3907
+ "opendkimNoReloadTitle": "systemctl reload opendkim não é suportado nesta pilha",
3908
+ "tlsRequestLeFor": "Request LE for {{host}}",
3909
+ "deliverabilityChecks": "Checks",
3910
+ "healthPartialScore": "Partial {{n}}/100 (DNS only)",
3911
+ "healthPartialHint": "DNS checklist only — live and blacklist not probed.",
3912
+ "deleteImpact": "{{mailboxes}} mailboxes · {{records}} DNS records · {{aliases}} aliases"
3242
3913
  },
3243
3914
  "errors": {
3244
3915
  "YSK_UNAUTHORIZED": "Não autorizado",
@@ -3279,7 +3950,9 @@
3279
3950
  "sessionExpired": "Sessão expirada; faça login novamente",
3280
3951
  "sessionIdle": "Tempo limite de inatividade; faça login novamente",
3281
3952
  "totpNotEnabled": "2FA não está ativado",
3282
- "totpSecretNoDataDir": "O segredo TOTP está criptografado, mas dataDir não está definido"
3953
+ "totpSecretNoDataDir": "O segredo TOTP está criptografado, mas dataDir não está definido",
3954
+ "mustChangePassword": "Defina uma nova senha antes de continuar",
3955
+ "policyNeedsOwn2fa": "Ative o 2FA para esta conta e confirme com um código TOTP antes de exigir 2FA para outras contas"
3283
3956
  },
3284
3957
  "http": {
3285
3958
  "notFoundRoute": "Não encontrado: {{method}} {{path}}",
@@ -3289,7 +3962,8 @@
3289
3962
  "unprocessable": "Solicitação rejeitada pelo servidor",
3290
3963
  "requestFailed": "Falha na solicitação ({{status}})",
3291
3964
  "jsonInvalid": "JSON inválido",
3292
- "internal": "Erro interno"
3965
+ "internal": "Erro interno",
3966
+ "payloadTooLarge": "O corpo do pedido é demasiado grande"
3293
3967
  },
3294
3968
  "YSK_HOST_BROWSE_SSRF": "Navegação no host bloqueada pela política de segurança",
3295
3969
  "YSK_HOST_BROWSE_SESSION": "Sessão de navegação do host não encontrada ou expirada",
@@ -3376,7 +4050,32 @@
3376
4050
  "reload": "fail2ban recarregado",
3377
4051
  "restart": "fail2ban reiniciado",
3378
4052
  "stop": "fail2ban parou"
3379
- }
4053
+ },
4054
+ "statWhitelist": "Lista de permissões",
4055
+ "invalidIp": "Insira um IPv4, IPv6 ou CIDR válido.",
4056
+ "whitelistPendingApply": "Salvo na lista de painéis. Pressione Aplicar política para escrever jail.local.",
4057
+ "ignoreipFile": "dataDir/fail2ban/ignoreip.txt",
4058
+ "jailsTabHint": "Situação das prisões ativas. Ative ou desative as prisões na guia Política.",
4059
+ "colJail": "Cadeia",
4060
+ "colEnabled": "Sobre",
4061
+ "serviceStateLine": "Unidade {{unit}} · {{state}} · inicialização {{boot}}",
4062
+ "jail": {
4063
+ "sshd": "Força bruta SSH",
4064
+ "nginxHttpAuth": "Autenticação HTTP Nginx",
4065
+ "nginxBotsearch": "Verificadores de scanner/bot Nginx",
4066
+ "nginxBadbots": "Nginx é conhecido por bots ruins",
4067
+ "nginxLimitReq": "Prisão com limite de taxa Nginx",
4068
+ "postfix": "Força bruta de correio Postfix",
4069
+ "dovecot": "Login de e-mail Dovecot",
4070
+ "recidive": "Ofensores reincidentes"
4071
+ },
4072
+ "cannotBanSelf": "Este é o host ou seu IP de login – adicione-o ao ignoreip em vez de banir",
4073
+ "suggestIgnoreHint": "IPs de administrador sugeridos (arquivo do painel somente até você aplicar a política):",
4074
+ "suggestIgnoreAdd": "Adicionar {{ip}}",
4075
+ "whitelistEmptyWarn": "A lista branca está vazia e as jails podem bloqueá-lo. Adicione o IP de início antes de aplicar ignoreip.",
4076
+ "suggestIgnoreLogin": "O seu IP de início {{ip}}",
4077
+ "applyIgnoreEmptyWarn": "Aplicar com lista branca vazia limpa o ignoreip",
4078
+ "applyIgnoreNeedConfirm": "Reescreve o ignoreip do jail e recarrega o fail2ban"
3380
4079
  },
3381
4080
  "featurePage": {
3382
4081
  "back": "Voltar"
@@ -3674,18 +4373,18 @@
3674
4373
  "shareTorrentFile": "Baixar .torrent",
3675
4374
  "shareSeedStatus": "Status de propagação",
3676
4375
  "shareBtStats": "Status do BitTorrent",
3677
- "btSeeds": "Seeds",
3678
- "btLeechers": "Leechers",
3679
- "btPeers": "Peers",
4376
+ "btSeeds": "Sementes",
4377
+ "btLeechers": "Sanguessugas",
4378
+ "btPeers": "Pares",
3680
4379
  "btUploadSpeed": "Velocidade de upload",
3681
4380
  "btDownloadSpeed": "Velocidade de download",
3682
- "btUploaded": "Uploaded",
3683
- "btDownloaded": "Downloaded",
3684
- "btRatio": "Ratio",
3685
- "btUpdatedAt": "Updated",
4381
+ "btUploaded": "Enviado",
4382
+ "btDownloaded": "Baixado",
4383
+ "btRatio": "Razão",
4384
+ "btUpdatedAt": "Atualizado",
3686
4385
  "btServerStats": "Semeador de servidor",
3687
4386
  "btClientStats": "Seu cliente",
3688
- "btSeeding": "Seeding",
4387
+ "btSeeding": "Semeando",
3689
4388
  "btPending": "Sementeira pendente",
3690
4389
  "btStopped": "Semente parada",
3691
4390
  "btError": "Erro de semente",
@@ -3699,7 +4398,50 @@
3699
4398
  "publicShareBtFailed": "Falha no WebTorrent: {{detail}}",
3700
4399
  "publicShareBtNeedMagnet": "Nenhum URI magnético para este compartilhamento",
3701
4400
  "publicShareBtUnsupported": "Este navegador não pode executar WebTorrent; use magnet ou .torrent",
3702
- "btNone": "—"
4401
+ "btNone": "—",
4402
+ "uploadStatusSkipped": "Ignorado",
4403
+ "uploadStatusCancelled": "Cancelado",
4404
+ "conflict": {
4405
+ "titleFile": "Já existe um item chamado “{{name}}”",
4406
+ "titleFolder": "Já existe uma pasta chamada “{{name}}”",
4407
+ "descFile": "Escolha o que fazer. Nada é substituído até escolher Substituir.",
4408
+ "descFolder": "Escolha o que fazer. Unir mantém a pasta existente e continua com o conteúdo.",
4409
+ "incoming": "A entrar",
4410
+ "existing": "Já está aqui",
4411
+ "kindFile": "Ficheiro",
4412
+ "kindFolder": "Pasta",
4413
+ "skip": "Ignorar",
4414
+ "skipHint": "Não adicionar este item",
4415
+ "keepBoth": "Manter os dois",
4416
+ "keepBothHint": "Guardar o item a entrar como {{name}}",
4417
+ "replace": "Substituir",
4418
+ "replaceHint": "Substituir o ficheiro existente. É guardada uma cópia de versão quando possível.",
4419
+ "replaceFolderHint": "Substitui ficheiros com o mesmo nome nesta pasta. Os outros ficam.",
4420
+ "merge": "Unir",
4421
+ "mergeHint": "Manter a pasta existente e adicionar os ficheiros a entrar",
4422
+ "applyAll": "Aplicar a todos os conflitos restantes",
4423
+ "applyAllHint": "Usar esta ação no resto deste arrastar ou transferência",
4424
+ "cancelRest": "Cancelar o resto",
4425
+ "progress": "{{current}} de {{total}}",
4426
+ "typeMismatch": "Já existe {{destKind}} chamado “{{name}}”. O que chega é {{incomingKind}}.",
4427
+ "skipped": "Ignorado",
4428
+ "cancelled": "Cancelado"
4429
+ },
4430
+ "emptyTrashTitle": "Lixo vazio?",
4431
+ "emptyTrashDesc": "Todos os arquivos na lixeira serão excluídos permanentemente. Isto não pode ser desfeito.",
4432
+ "purgeForeverDesc": "Este arquivo será excluído permanentemente. Isto não pode ser desfeito.",
4433
+ "webdavReissueUnchanged": "O ID do token não mudou após a reemissão — a gravação pode não ter persistido. Tente novamente.",
4434
+ "webdavDisableFailed": "O WebDAV ainda está ativado após a desativação — a gravação pode não ter persistido. Tente novamente.",
4435
+ "dirNamedLikeFile": "(pasta residual; o nome parece um ficheiro)",
4436
+ "webdavAfterEnable": "Disponível depois de ativar o WebDAV e emitir um token.",
4437
+ "webdavAlreadyOff": "WebDAV is already off",
4438
+ "deleteMore": " and {{n}} more",
4439
+ "unshareTitle": "Revoke this share?",
4440
+ "unshareDesc": "Revoke the link for {{name}} ({{url}}). The link stops working immediately.",
4441
+ "pillTrash": "{{count}} in trash",
4442
+ "pillSpace": "{{used}} used",
4443
+ "webdavTokenInactive": "Disabled — token #{{id}} is not active",
4444
+ "webdavOffNoToken": "Disabled (no active token)"
3703
4445
  },
3704
4446
  "firewall": {
3705
4447
  "profiles": {
@@ -3732,7 +4474,7 @@
3732
4474
  "notInstalled": "UFW não está instalado",
3733
4475
  "toolHintPrefix": "Ferramentas subjacentes:",
3734
4476
  "toolHintBody": "UFW = portas/regras permanentes · para resposta a ataques e uso de banimento automático",
3735
- "toolHintFail2ban": "fail2ban = banimentos temporários baseados em log",
4477
+ "toolHintfail2ban": "fail2ban = banimentos temporários baseados em log",
3736
4478
  "executeOffHint": "O sistema é desligado — o status é legível;",
3737
4479
  "tabs": {
3738
4480
  "rules": "Regras",
@@ -3740,7 +4482,7 @@
3740
4482
  "deny": "Negar IP permanente",
3741
4483
  "profiles": "Perfis",
3742
4484
  "about": "Sobre",
3743
- "services": "Services"
4485
+ "services": "Serviços"
3744
4486
  },
3745
4487
  "currentRules": "Regras atuais",
3746
4488
  "rulesSourceHint": "Regras numeradas UFW (status ufw numerado)",
@@ -3796,12 +4538,21 @@
3796
4538
  "servicesEmptyDesc": "Inicie um serviço gerenciado (web, FTPS, VPN, DB…) para preencher esta lista.",
3797
4539
  "servicesManualHint": "Os chips de porta manual estão na guia Portas – prefira gerenciar o acesso aqui para que as regras permaneçam marcadas (ysk-svc).",
3798
4540
  "portsManualHint": "Regras manuais avançadas. Prefira a guia Serviços para software gerenciado.",
3799
- "colService": "Service",
3800
- "colMode": "Mode",
3801
- "colPorts": "Ports",
4541
+ "colService": "Serviço",
4542
+ "colMode": "Modo",
4543
+ "colPorts": "Portas",
3802
4544
  "colSync": "Status",
3803
- "synced": "Synced",
3804
- "syncNow": "Sync"
4545
+ "synced": "Sincronizado",
4546
+ "syncNow": "Sincronizar",
4547
+ "disableConfirmTitle": "Desativar o UFW?",
4548
+ "disableConfirmDesc": "A firewall do anfitrião deixará de filtrar o tráfego. Numa rede pública, o SSH e o painel podem ficar expostos.",
4549
+ "disableConfirmConsequence": "As regras de permitir/negar mantêm-se, mas só são aplicadas quando o UFW for reativado.",
4550
+ "toolHintFail2ban": "fail2ban = banimentos temporários baseados em log",
4551
+ "servicesUfwOff": "A UFW está desligada. Esta lista é a exposição desejada, não as regras que o host está aplicando.",
4552
+ "desiredOnlyUfwOff": "Desejado: {{mode}} · UFW desativado (não aplicado)",
4553
+ "syncNotApplied": "UFW desativado · não aplicado",
4554
+ "defaultNotApplied": "n/a (UFW desativado)",
4555
+ "ufwOffHint": "A entrada padrão não é aplicada enquanto o UFW está desligado"
3805
4556
  },
3806
4557
  "ftp": {
3807
4558
  "title": "Contas FTPS",
@@ -3936,7 +4687,38 @@
3936
4687
  "sftpRegister": "Chave de registro",
3937
4688
  "sftpAddedAt": "Adicionado {{time}}",
3938
4689
  "sftpTechSummary": "Detalhes técnicos (avançado)",
3939
- "sftpTechNote": "As chaves são gravadas no caminho gerenciado"
4690
+ "sftpTechNote": "As chaves são gravadas no caminho gerenciado",
4691
+ "filterProject": "Apenas contas FTP deste projeto",
4692
+ "clearProjectFilter": "Mostrar todas as contas",
4693
+ "vsftpdFailedHint": "vsftpd falhou. Abra a guia Serviço (listen e listen_ipv6 não podem ser SIM).",
4694
+ "tabService": "Serviço",
4695
+ "listenConflictLive": "Live vsftpd.conf tem listen={{v4}} e listen_ipv6={{v6}} - ambos SIM falharão ao iniciar.",
4696
+ "listenConflictNeedFix": "Corrija listen / listen_ipv6 primeiro (ambos não podem ser SIM) e depois aplique.",
4697
+ "fixListenIpv4": "Use apenas IPv4 (ouvir=SIM, ouvir_ipv6=NÃO)",
4698
+ "liveFileValue": "Arquive agora: {{value}}",
4699
+ "startBlockedFailed": "O serviço falhou – aplique uma configuração válida antes de iniciar",
4700
+ "ftpsNeedCert": "Escolha primeiro um domínio de certificado",
4701
+ "detectPublicIp": "Detectar IP público",
4702
+ "detectPublicIpTitle": "Preencha o primeiro IPv4 sem loopback deste host",
4703
+ "pasvIpRequired": "Defina um IP público PASV antes de aplicar (NAT/nuvem). Detete ou escreva um endereço.",
4704
+ "vsftpdFailedGeneric": "vsftpd failed. Open the Service tab for live settings and journal.",
4705
+ "stateFailed": "Failed to start",
4706
+ "plaintextInsecure": "Cleartext FTP (no TLS) — insecure. Enable FTPS before exposing port 21.",
4707
+ "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.",
4708
+ "bindAddress": "Listen scope",
4709
+ "bindAddressHint": "New installs bind to this host only. Public listen without FTPS needs a typed confirmation.",
4710
+ "bindLocal": "This host only",
4711
+ "bindLocalHint": "127.0.0.1 — fine without TLS for local tests",
4712
+ "bindPublic": "Public",
4713
+ "bindPublicHint": "All interfaces — enable FTPS or confirm PLAINTEXT",
4714
+ "enableFtpsAndStart": "Enable FTPS and start",
4715
+ "publicPlainNeedConfirm": "Public cleartext FTP needs a PLAINTEXT confirmation",
4716
+ "plainConfirmTitle": "Start public FTP without FTPS?",
4717
+ "plainConfirmDesc": "Port 21 will accept logins and data in the clear on the public address.",
4718
+ "plainConfirmC1": "Usernames and passwords are visible on the network.",
4719
+ "plainConfirmC2": "PASV will advertise the configured public IP.",
4720
+ "plainConfirmC3": "Host firewall and cloud security group are not opened for you.",
4721
+ "plainConfirmAction": "Start cleartext FTP"
3940
4722
  },
3941
4723
  "geo": {
3942
4724
  "continents": {
@@ -4181,26 +4963,26 @@
4181
4963
  "mediaNote": "Navegador real: o vídeo é transmitido; o áudio ainda não está conectado ao painel (fase 2).",
4182
4964
  "isolationNote": "Navegador real cria usuário Linux efêmero para Chrome; sair da página ou o tempo limite de inatividade destrói esse usuário.",
4183
4965
  "resumeHint": "Retomar sessão anterior (guias {{count}})",
4184
- "resume": "Resume",
4185
- "resumeDismiss": "Dismiss",
4966
+ "resume": "Retomar",
4967
+ "resumeDismiss": "Liberar",
4186
4968
  "resumeDone": "Sessão retomada",
4187
4969
  "settingsSafety": "Segurança de navegação",
4188
4970
  "settingsSafetyHint": "Strict bloqueia hosts mais arriscados; Relaxado permite alvos de intranet mais amplos. Não desativa as proteções SSRF para metadados na nuvem.",
4189
- "safetyStrict": "Strict",
4190
- "safetyStandard": "Standard",
4191
- "safetyRelaxed": "Relaxed",
4971
+ "safetyStrict": "Estrito",
4972
+ "safetyStandard": "Padrão",
4973
+ "safetyRelaxed": "Descontraído",
4192
4974
  "settingsBlockHosts": "Sufixos de host bloqueados",
4193
4975
  "settingsBlockHostsHint": "Um nome de host ou sufixo por linha (por exemplo, malware.test). As correspondências exatas e de sufixo são bloqueadas.",
4194
4976
  "settingsAllowDangerousDownloads": "Permitir downloads de alto risco (exe/scripts)",
4195
4977
  "settingsAudioBridge": "Conecte o áudio da página ao painel",
4196
4978
  "settingsAudioBridgeHint": "Os streams hospedam o áudio do Chrome neste navegador. Alguns sites precisam de um clique para desbloquear a reprodução.",
4197
- "downloads": "Downloads",
4979
+ "downloads": "Transferências",
4198
4980
  "downloadsEmpty": "Nenhum download nesta sessão",
4199
- "downloadReady": "Ready",
4200
- "downloadBlocked": "Blocked",
4201
- "downloadPending": "Pending",
4202
- "downloadFailed": "Failed",
4203
- "downloadSave": "Save",
4981
+ "downloadReady": "Preparar",
4982
+ "downloadBlocked": "Bloqueado",
4983
+ "downloadPending": "Pendente",
4984
+ "downloadFailed": "Fracassado",
4985
+ "downloadSave": "Salvar",
4204
4986
  "audioUnlock": "Ativar som",
4205
4987
  "audioUnlockHint": "Clique para desbloquear a reprodução de áudio nesta guia",
4206
4988
  "audioUnlocked": "Áudio desbloqueado",
@@ -4210,12 +4992,34 @@
4210
4992
  "audioNotBridged": "Áudio desligado",
4211
4993
  "audioNotBridgedHint": "Ative a ponte de áudio em Configurações para ouvir a página",
4212
4994
  "mediaPolicyTitle": "Mídia em navegador real",
4213
- "mediaVideoLabel": "Video",
4995
+ "mediaVideoLabel": "Vídeo",
4214
4996
  "mediaVideoDesc": "Renderizado no host e transmitido como quadros no painel.",
4215
- "mediaAudioLabel": "Audio",
4997
+ "mediaAudioLabel": "Áudio",
4216
4998
  "mediaAudioDesc": "Ponte opcional do host Chrome; pode exigir clique de desbloqueio.",
4217
- "mediaPolicyLabel": "Policy",
4218
- "mediaPolicyDesc": "Os downloads e a reprodução automática seguem as configurações de segurança e download acima."
4999
+ "mediaPolicyLabel": "Política",
5000
+ "mediaPolicyDesc": "Os downloads e a reprodução automática seguem as configurações de segurança e download acima.",
5001
+ "frameBlocked": "A página não pôde ser mostrada no quadro do painel.",
5002
+ "historyEmpty": "Não há histórico nesta sessão.",
5003
+ "bookmarksEmpty": "Ainda não há favoritos.",
5004
+ "closeSessionHint": "Limpa os cookies desta sessão de navegação. Os marcadores permanecem.",
5005
+ "bookmarkAdd": "Adicionar ou remover favorito",
5006
+ "bookmarkList": "Lista de favoritos",
5007
+ "envUnset": "não definido",
5008
+ "envPanelValue": "painel: {{value}}",
5009
+ "settingsNoSandboxWarn": "Desativa a sandbox do Chromium. Use apenas dentro de um contêiner confiável. Aplica-se na próxima sessão do navegador real.",
5010
+ "settingsDangerDlWarn": "Permite downloads de executáveis ​​e scripts através do navegador host. Confirme que você precisa disso.",
5011
+ "settingsDangerConfirmTitle": "Ativar uma configuração de navegação de alto risco?",
5012
+ "needUrl": "Introduza um URL acima para iniciar uma sessão.",
5013
+ "envColVar": "Variável",
5014
+ "envColHost": "Processo do anfitrião",
5015
+ "envColPanel": "Definição do painel",
5016
+ "envColEffective": "Efetivo",
5017
+ "engineBrowserNeedChrome": "Real browser (Chrome not installed)",
5018
+ "egressHint": "The target site sees this server’s outbound address ({{host}}), not your laptop. Cookies stay in the server session jar.",
5019
+ "closeNoSession": "No session yet",
5020
+ "resumeHintDetail": "Resume previous session ({{count}} tabs) · {{url}} · {{when}}",
5021
+ "resumeHintOwned": "Resume last browse for {{user}} ({{count}} tabs) · {{url}} · {{when}}",
5022
+ "clearSessionData": "Clear session data"
4219
5023
  },
4220
5024
  "listToolbar": {
4221
5025
  "searchPlaceholder": "Procurar…",
@@ -4227,24 +5031,30 @@
4227
5031
  "activeFilters": "{{count}} filtros ativos",
4228
5032
  "noResults": "Nenhuma correspondência",
4229
5033
  "noResultsHint": "Experimente outra palavra-chave ou limpe os filtros.",
4230
- "searching": "Procurando…"
5034
+ "searching": "Procurando…",
5035
+ "emptyChip": "No items in this filter"
4231
5036
  },
4232
5037
  "logViewer": {
4233
5038
  "banIpTitle": "Banimento {{ip}} em Proteção"
4234
5039
  },
4235
5040
  "login": {
4236
- "title": "Faça login no servidor YSK",
5041
+ "title": "Iniciar sessão no YSK Server",
4237
5042
  "subtitle": "Consola do servidor",
4238
- "username": "Nome de usuário",
4239
- "password": "Senha",
4240
- "submit": "Entrar",
4241
- "failed": "Falha no login. Verifique o nome de usuário ou a senha.",
5043
+ "username": "Nome de utilizador",
5044
+ "password": "Palavra-passe",
5045
+ "submit": "Iniciar sessão",
5046
+ "failed": "Falha ao iniciar sessão. Verifique o nome de utilizador ou a palavra-passe.",
4242
5047
  "footer": "Um produto da YSK Limited",
4243
- "totpRequired": "2FA está habilitado para esta conta. Digite o código de 6 dígitos.",
5048
+ "totpRequired": "A 2FA está ativa nesta conta. Introduza o código de 6 dígitos.",
4244
5049
  "totpLabel": "Código de autenticação",
4245
- "totpHint": "Código de 6 dígitos do seu aplicativo autenticador",
4246
- "submitting": "Fazendo login…",
4247
- "sessionExpired": "Sessão expirada; faça login novamente"
5050
+ "totpHint": "Código de 6 dígitos da aplicação de autenticação",
5051
+ "submitting": "A iniciar sessão…",
5052
+ "sessionExpired": "Sessão expirada; inicie sessão novamente",
5053
+ "newPassword": "Nova senha",
5054
+ "newPasswordAgain": "Confirmar nova senha",
5055
+ "changePassword": "Alterar senha",
5056
+ "passwordMismatch": "As senhas não coincidem",
5057
+ "passwordChanged": "Senha atualizada"
4248
5058
  },
4249
5059
  "logs": {
4250
5060
  "catSystem": "Arquivos do sistema",
@@ -4371,7 +5181,7 @@
4371
5181
  "logrotateLabel": "logrotate",
4372
5182
  "srcNginx": "nginx",
4373
5183
  "srcSsh": "ssh",
4374
- "srcFail2ban": "fail2ban",
5184
+ "srcfail2ban": "fail2ban",
4375
5185
  "srcAuthLog": "auth.log",
4376
5186
  "srcNginxError": "erro nginx",
4377
5187
  "srcLetsEncrypt": "letsencrypt",
@@ -4379,7 +5189,36 @@
4379
5189
  "groupVarLog": "/var/log",
4380
5190
  "prioErr": "errar+",
4381
5191
  "prioWarn": "avisar+",
4382
- "prioInfo": "informações+"
5192
+ "prioInfo": "informações+",
5193
+ "srcFail2ban": "fail2ban",
5194
+ "vacuumSize": "Limite a 500 MB",
5195
+ "logrotateNoStatus": "Ainda não há arquivo de status do logrotate (normal se nunca tiver sido executado).",
5196
+ "autoVacuumOff": "A limpeza automática está desativada. O tempo não é utilizado até que você o habilite.",
5197
+ "aboutAllowlist": "O Explore só pode ler unidades de diário permitidas e caminhos /var/log. Caminhos de host arbitrários não são oferecidos.",
5198
+ "aboutCustomPath": "Adicione um caminho personalizado em Configurações (somente /var/log ou /run/log). Em seguida, abra-o em Explorar.",
5199
+ "noRowsInWindow": "Não há registros nesta janela de tempo",
5200
+ "showInactiveUnits": "Mostrar unidades inativas",
5201
+ "sseNeedFollow": "Ative Seguir primeiro – SSE é apenas para acompanhamento ao vivo",
5202
+ "vacuumNeedRetention": "Introduza primeiro uma janela de retenção (p.ex. 14d)",
5203
+ "vacuumNeedConfirm": "Precisa de confirmação — apaga journal antigos",
5204
+ "vacuumSizeNeedConfirm": "Precisa de confirmação — limita o disco do journal",
5205
+ "vacuumSizeAlreadyBelow": "O uso atual já está abaixo do limite; normalmente não apaga nada.",
5206
+ "vacuumSizeNoopDesc": "O journal já está abaixo de 500 MB. Ainda corre vacuum --size=500M e normalmente não apaga nada.",
5207
+ "journalDiskHint": "Uso atual do systemd-journald (journal ativo). Não inclui rodados em /var/log.",
5208
+ "varLogDiskHint": "Estimativa de /var/log, incluindo rodados.",
5209
+ "queryFirst": "Consulte primeiro",
5210
+ "projectSourcesTitle": "{{n}} origem(ns) (ficheiros + journal)",
5211
+ "logrotatePath": "Caminho",
5212
+ "logrotateLast": "Última rotação",
5213
+ "logrotateExpand": "Mostrar {{n}} mais",
5214
+ "logrotateCollapse": "Mostrar menos",
5215
+ "logrotateVersion": "Versão de status {{v}}",
5216
+ "errorsWindowHint": "Recent errors from the last overview probe (not live-updating when you switch tabs)",
5217
+ "sourceCount": "{{shown}} shown",
5218
+ "sourceUnavailable": "This source has not produced a log yet",
5219
+ "sourceNoLog": "No log yet",
5220
+ "exportJsonl": "JSONL export",
5221
+ "sseLive": " (live stream)"
4383
5222
  },
4384
5223
  "metrics": {
4385
5224
  "alert": {
@@ -4511,7 +5350,42 @@
4511
5350
  "usageNoteFull": "Uso do du local (não estimado). Cota é um limite flexível do plano de controle; hard setquota precisa aplicar ao host.",
4512
5351
  "sseNeedLogin": "Não logado; não consigo abrir o SSE",
4513
5352
  "sseSessionExpired": "Não logado ou sessão expirada; não consigo abrir o SSE",
4514
- "sseHttpError": "transmitir HTTP {{status}}"
5353
+ "sseHttpError": "transmitir HTTP {{status}}",
5354
+ "colFilesystem": "Sistema de arquivos",
5355
+ "colMount": "Montar",
5356
+ "colSize": "Tamanho",
5357
+ "colUsed": "Usado",
5358
+ "colAvail": "Disponível",
5359
+ "colUsePct": "Usado %",
5360
+ "colHome": "Lar",
5361
+ "usageNoteLink": "Cota flexível do plano de controle. Aplique limites rígidos na guia Isolamento do projeto.",
5362
+ "alertsBuiltinOnly": "Somente limites integrados de CPU/memória/disco. Nenhum e-mail, webhook ou canal do Slack.",
5363
+ "lastEvaluated": "Última verificação",
5364
+ "shareNoQuotaHint": "Sem quota, a parte não é uma percentagem. Defina-a no separador Isolamento do projeto.",
5365
+ "setQuotaLink": "Definir quota",
5366
+ "unusualHome": "Caminho invulgar",
5367
+ "unusualHomeHint": "Não é uma casa de projeto /home/…. O isolamento canônico é /home/ysk-server-{id}.",
5368
+ "protectedPid": "PID 1/init/systemd não pode ser sinalizado pelo painel",
5369
+ "sigTermTitle": "Enviar SIGTERM (pedir ao processo para sair)",
5370
+ "sigKillTitle": "Enviar SIGKILL (forçar matar – não pode ser capturado)",
5371
+ "batchTerm": "TERM",
5372
+ "batchKill": "KILL",
5373
+ "rawTopLabel": "Topo bruto (não traduzido)",
5374
+ "followSseLabel": "Siga (transmissão ao vivo)",
5375
+ "alertsReadOnly": "Somente limites integrados de CPU/memória/disco. Nenhum e-mail, webhook ou canal do Slack.",
5376
+ "alertsGoNotifications": "Abrir centro de notificações",
5377
+ "lastCheck": "Última verificação",
5378
+ "rawTopHint": "Saída superior (1) não traduzida",
5379
+ "load1m": "Load 1m",
5380
+ "uptime": "Uptime",
5381
+ "filterCpu5": "≥5% CPU",
5382
+ "filterMem5": "≥5% memory",
5383
+ "signalHint": "Select a process, then send TERM or KILL.",
5384
+ "signalFromRow": "Select this process for TERM / KILL",
5385
+ "selectForSignal": "Select",
5386
+ "forceKillTitleNamed": "KILL PID {{pid}} ({{cmd}})?",
5387
+ "sendSigTitleNamed": "Send TERM to PID {{pid}} ({{cmd}})?",
5388
+ "controlPlaneNoSignal": "The control-plane process cannot be signalled"
4515
5389
  },
4516
5390
  "migrate": {
4517
5391
  "tabInventory": "Inventário",
@@ -4593,7 +5467,33 @@
4593
5467
  "dryRunOnlyDesc": "· Estoque + pré-verificação somente; sem rsync ou gravações de destino",
4594
5468
  "executeNote": "O host precisa de YSK_EXECUTE=1 e API raiz. Após a migração, atualize o DNS A/AAAA e verifique o firewall da nuvem + PTR de correio.",
4595
5469
  "dnsCutover": "Substituição de DNS (manual)",
4596
- "dnsCutoverDesc": "Aponte A/AAAA para esses nomes para o novo IP público;"
5470
+ "dnsCutoverDesc": "Aponte A/AAAA para esses nomes para o novo IP público;",
5471
+ "orphanHomesHint": "Sobras de casas do projeto (não na loja). Remova somente depois de confirmar que não foram utilizados.",
5472
+ "orphanRemove": "Remova os restos de casa",
5473
+ "orphanRemoveTitle": "Excluir as sobras da página inicial do projeto?",
5474
+ "orphanRemoveDesc": "Exclua permanentemente {{path}} do disco. Este não é um projeto de loja. Precisa de YSK_EXECUTE=1.",
5475
+ "orphanRemovePhrase": "Escreva DELETE para confirmar.",
5476
+ "orphanRemoveNeedConfirm": "Requer confirmação",
5477
+ "passwordNotStored": "Password is used for this SSH session only and is not saved on disk.",
5478
+ "overwriteDanger": "Overwrite will replace existing YSK data on the target. This cannot be undone from the panel.",
5479
+ "orphanBackupFirst": "Back up first (open Backups)",
5480
+ "expandAllWarnings": "Show all {{n}} warnings",
5481
+ "collapseWarnings": "Show fewer",
5482
+ "inventoriedWarn": "Inventoried · {{n}} warnings",
5483
+ "orphanMtime": "Last modified {{at}}",
5484
+ "inventoriedOrphans": "Inventoried · {{n}} leftover homes",
5485
+ "inventoriedWarnAndOrphans": "Inventoried · {{w}} warnings · {{n}} leftover",
5486
+ "orphanHomesTitle": "Leftover project homes ({{count}})",
5487
+ "orphanHomesSummary": "{{count}} path(s) on disk are not in the store. Back up first if unsure, then remove unused paths.",
5488
+ "orphanColHome": "Home",
5489
+ "orphanColModified": "Modified",
5490
+ "orphanKpi": "Leftover",
5491
+ "sourceOs": "OS",
5492
+ "sourceDataDir": "dataDir",
5493
+ "sourceDbRedis": "Databases / Redis",
5494
+ "sourceDbRedisValue": "{{db}} databases · {{redis}} Redis",
5495
+ "orphanColEntries": "Entries",
5496
+ "orphanEntries": "{{n}} top-level entries in the directory"
4597
5497
  },
4598
5498
  "multiCheck": {
4599
5499
  "customPlaceholder": "Código personalizado",
@@ -4670,7 +5570,9 @@
4670
5570
  "runtimes": "Tempos de execução",
4671
5571
  "security": "Segurança",
4672
5572
  "system": "Sistema",
4673
- "ai": "AI"
5573
+ "ai": "AI",
5574
+ "validators": "Validadores",
5575
+ "containers": "Contentores"
4674
5576
  },
4675
5577
  "java": "Java",
4676
5578
  "kotlin": "Kotlin",
@@ -4689,8 +5591,13 @@
4689
5591
  "bookmarkPinned": "Fixado",
4690
5592
  "bookmarkAdded": "Fixado na barra lateral",
4691
5593
  "bookmarkRemoved": "Removido da barra lateral",
4692
- "btTracker": "Rastreador BT",
4693
- "support": "Support"
5594
+ "btTracker": "BT Tracker",
5595
+ "support": "Apoiar",
5596
+ "noAccessTitle": "Sem acesso",
5597
+ "noAccessDesc": "A sua função não inclui esta página. Peça a um administrador se precisar dela.",
5598
+ "backToDashboard": "Voltar ao painel",
5599
+ "validators": "Validadores (Beta)",
5600
+ "docker": "Docker"
4694
5601
  },
4695
5602
  "network": {
4696
5603
  "title": "Interfaces de rede",
@@ -4829,10 +5736,35 @@
4829
5736
  "azure_frontdoor": "Porta frontal Azure",
4830
5737
  "gcore": "CDN Gcore",
4831
5738
  "custom": "Proxies personalizados"
4832
- }
5739
+ },
5740
+ "needProvider": "Escolha um provedor de CDN antes de buscar sua lista de IPs.",
5741
+ "spoofWarn": "Confiar no CIDR errado permite que os clientes falsifiquem os cabeçalhos X-Forwarded-For/CDN como seu IP."
4833
5742
  },
4834
5743
  "linkUp": "Acima",
4835
- "linkDown": "Abaixo"
5744
+ "linkDown": "Abaixo",
5745
+ "linkDownTitle": "Coloque {{name}} off-line",
5746
+ "linkDownNeedConfirm": "Digite o nome da interface para confirmar",
5747
+ "persistNmHint": "Persistente significa que as alterações podem sobreviver à reinicialização via NetworkManager.",
5748
+ "hideRaw": "Ocultar saída bruta",
5749
+ "rawLoadedAt": "Carregado {{time}}",
5750
+ "deleteDefaultPanelWarn": "Excluir a rota padrão pode encerrar esta sessão do painel. Digite DEFAULT para confirmar.",
5751
+ "typeDefaultToConfirm": "Digite DEFAULT para confirmar",
5752
+ "deleteDefaultNeedConfirm": "Requer confirmação — escreva DEFAULT (pode interromper este painel)",
5753
+ "deleteRouteNeedConfirm": "Requer confirmação",
5754
+ "nmUnavailable": "O NetworkManager não está em execução — apenas uma rota ativa pode ser adicionada",
5755
+ "defaultRouteDownNeedName": "Esta é a saída da rota padrão. Digite o nome da interface para confirmar — o painel pode se desconectar.",
5756
+ "linkDownDefault": "Down default route",
5757
+ "loopbackImmutable": "Loopback cannot be changed",
5758
+ "operUnknownHint": "Kernel did not report UP/DOWN (common for lo). The interface is still usable.",
5759
+ "statUp": "Up",
5760
+ "oper": {
5761
+ "up": "Up",
5762
+ "down": "Down",
5763
+ "unknown": "Unknown",
5764
+ "other": "Other",
5765
+ "loopback": "Always on",
5766
+ "loopbackHint": "Loopback is always available and cannot be changed."
5767
+ }
4836
5768
  },
4837
5769
  "nginx": {
4838
5770
  "pillSites": "{{count}} sites",
@@ -4916,7 +5848,16 @@
4916
5848
  "setHsts": "HSTS",
4917
5849
  "setCfRealIp": "IP real da Cloudflare",
4918
5850
  "setIndexes": "Listagem de diretório",
4919
- "bodyInherit": "Global"
5851
+ "bodyInherit": "Global",
5852
+ "stopSites": "{{n}} site(s) will stop answering HTTP.",
5853
+ "purgeCacheTitle": "Purge Nginx cache and reload?",
5854
+ "purgeCacheDesc": "Clears the on-disk cache and reloads Nginx. Live sites stay up."
5855
+ },
5856
+ "notFound": {
5857
+ "title": "Página não encontrada",
5858
+ "body": "Nenhuma página do painel em {{path}}.",
5859
+ "hint": "URLs desconhecidos não direcionam mais você para o painel.",
5860
+ "home": "Painel"
4920
5861
  },
4921
5862
  "notes": {
4922
5863
  "notFound": "Não encontrado",
@@ -4950,19 +5891,53 @@
4950
5891
  },
4951
5892
  "ssh": {
4952
5893
  "identityNotFound": "Identidade não encontrada",
4953
- "registrationNotFound": "Cadastro não encontrado"
5894
+ "registrationNotFound": "Cadastro não encontrado",
5895
+ "keyOkNologin": "Key accepted. Account has no login shell (nologin) — use SFTP. Treated as PASS.",
5896
+ "keyOkSftp": "SFTP pwd foi bem-sucedido depois que o shell SSH foi recusado."
4954
5897
  },
4955
5898
  "cdn": {
4956
5899
  "siteNotFound": "Site CDN não encontrado",
4957
- "nodeMissing": "O nó não existe"
5900
+ "nodeMissing": "O nó não existe",
5901
+ "probe": {
5902
+ "timeout": "Tempo limite de conexão após {{ms}}ms ({{detail}}). O peer pode estar protegido por firewall.",
5903
+ "dns": "Falha na pesquisa de DNS ({{detail}}).",
5904
+ "refused": "Conexão recusada após {{ms}}ms ({{detail}}). Porto fechado ou bloqueio de mão única.",
5905
+ "tls": "Falha na verificação de TLS ({{detail}}).",
5906
+ "unreach": "Host inacessível após {{ms}}ms ({{detail}}).",
5907
+ "http": "A sonda HTTP falhou após {{ms}}ms ({{detail}})."
5908
+ },
5909
+ "loopbackOriginRemote": "A origem é 127.0.0.1 — este é o host, não uma borda remota. Defina um IP de origem acessível ou bind_ip.",
5910
+ "needSshOrFleet": "A borda remota precisa de uma identidade SSH de saída (ou nome de usuário) ou uma sessão de frota /agentes. O URL de saúde por si só não é aplicável ao transporte.",
5911
+ "originRemoteRewrite": "As bordas remotas usarão origem acessível {{url}} em vez de loopback.",
5912
+ "originRemoteUnknown": "A origem é loopback e nenhum IP público/LAN ou bind_ip é conhecido — apply recusará bordas remotas até que uma seja definida."
4958
5913
  },
4959
5914
  "backup": {
4960
5915
  "fileNotFound": "Arquivo de backup não encontrado",
4961
5916
  "resticNoPassword": "restic está ativado, mas a senha não está definida",
4962
- "resticNotInPath": "restic não está em PATH"
5917
+ "resticNotInPath": "restic não está em PATH",
5918
+ "dbEnvUnreadable": "Não foi possível ler .db.env; despejo SQL ignorado.",
5919
+ "dbEnvNoName": ".db.env não possui nome de banco de dados; despejo SQL ignorado.",
5920
+ "targetOutside": "O destino de restauração deve estar dentro da página inicial do projeto ou na raiz dos arquivos públicos.",
5921
+ "testUnsaved": "Testando valores de formulário não salvos (não gravados nas configurações).",
5922
+ "testIdentity": "ssh (identity) to {{spec}} ok",
5923
+ "sshAuthFailed": "Chave SSH ou senha rejeitada (publickey). Escolha uma identidade de saída ou instale o sshpass.",
5924
+ "remotePathIsFile": "O caminho remoto {{path}} é um arquivo. Use um diretório.",
5925
+ "remoteMkdirFailed": "Não foi possível criar o diretório remoto: {{detail}}",
5926
+ "sidecarPushed": "Também enviou sidecar SQL {{name}}",
5927
+ "controlPlaneDryRun": "Apenas visualização – nada escrito. No painel, use Restaurar e confirme a frase a ser escrita.",
5928
+ "controlPlaneNeedConfirm": "A restauração completa do plano de controle precisa da frase de confirmação RESTORE-CONTROL-PLANE.",
5929
+ "controlPlaneRestartAfter": "Reinicie a API após uma restauração bem-sucedida.",
5930
+ "movedToTrash": "Moved {{name}} to the recycle bin. Permanent delete after {{days}} days.",
5931
+ "restoreNameExists": "Cannot restore {{name}} — a live archive with that name already exists.",
5932
+ "restoredFromTrash": "Restored {{name}} from the recycle bin.",
5933
+ "trashEmptied": "Permanently deleted {{n}} archive(s) from the recycle bin."
4963
5934
  },
4964
5935
  "redis": {
4965
- "cliMissing": "redis-cli não está instalado"
5936
+ "cliMissing": "redis-cli não está instalado",
5937
+ "requirepassAlreadySet": "Redis already has requirepass — not overwritten.",
5938
+ "requirepassApplied": "requirepass applied at runtime",
5939
+ "requirepassApplyFailed": "Could not CONFIG SET requirepass (will rely on restart + conf)",
5940
+ "generatedRequirepass": "Generated Redis password (shown once): {{password}}"
4966
5941
  },
4967
5942
  "nginx": {
4968
5943
  "reloaded": "nginx recarregado",
@@ -4985,7 +5960,8 @@
4985
5960
  "vsftpdStarted": "vsftpd iniciado",
4986
5961
  "openPortsStep": "Portas de firewall (manual)",
4987
5962
  "openPortsReminder": "Abra portas TCP no firewall do host e no grupo de segurança da nuvem: {{ports}}. A aplicação FTPS não abre portas para você.",
4988
- "openPortsPasvHint": "Se o login funcionar, mas o diretório LIST expirar, o intervalo de dados PASV será bloqueado - abra o arquivo completo"
5963
+ "openPortsPasvHint": "Se o login funcionar, mas o diretório LIST expirar, o intervalo de dados PASV será bloqueado - abra o arquivo completo",
5964
+ "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."
4989
5965
  },
4990
5966
  "deploy": {
4991
5967
  "nodeMissingIsolated": "Binário do nó ausente para implantação isolada: {{path}} — instale o conjunto de ferramentas do Node {{version}} e depois reimplante. Recusando-se a escrever uma unidade que seria 203/EXEC.",
@@ -5003,7 +5979,8 @@
5003
5979
  "pathOutsideSandbox": "Caminho fora da sandbox: {{target}}",
5004
5980
  "notFoundRel": "Não encontrado: {{relPath}}",
5005
5981
  "fileNotFoundRel": "Arquivo não encontrado: {{relPath}}",
5006
- "notFoundFrom": "Não encontrado: {{fromPath}}"
5982
+ "notFoundFrom": "Não encontrado: {{fromPath}}",
5983
+ "alreadyExists": "Já existe: {{name}}"
5007
5984
  },
5008
5985
  "dns": {
5009
5986
  "needZoneServerIp": "Insira a zona e o IP do servidor",
@@ -5039,11 +6016,24 @@
5039
6016
  "applyDigOk": "PowerDNS BIND: zonas de lista + dig OK",
5040
6017
  "applyDigFail": "Zona registrada em conf mas dig ainda vazia/RECUSADA — sem marcação aplicada",
5041
6018
  "applySyncIncomplete": "Sincronização de ligação do PowerDNS incompleta — arquivo de zona apenas no disco (não aplicado). Corrija os logs EXECUTE/root ou pdns.",
5042
- "writeOnlyHint": "Arquivo de zona somente gravado — o PowerDNS não responderá até carregar/aplicar registros nomeados"
6019
+ "writeOnlyHint": "Arquivo de zona somente gravado — o PowerDNS não responderá até carregar/aplicar registros nomeados",
6020
+ "noActiveUnit": "No active named/bind9/pdns unit",
6021
+ "pdnsUnitRestarts": "pdns unit state/restarts: {{detail}}",
6022
+ "port53LoopbackOnly": "Port 53 is only on loopback (systemd-resolved 127.0.0.53) — not a product authoritative nameserver",
6023
+ "port53Closed": "Port 53 is not listening (UDP/TCP)",
6024
+ "udp53NotPublic": "UDP/53 is not listening on a public address",
6025
+ "tcp53NotPublic": "TCP/53 is not listening on a public address",
6026
+ "noManagedZones": "No managed zone files under dataDir/dns/zones",
6027
+ "pdnsListZones": "PowerDNS list-zones: {{n}}",
6028
+ "lookupIgnoredAt": "dig is unavailable — @{{server}} was ignored. Not using the system resolver as that server’s answer.",
6029
+ "localAOk": "local A {{name}} → {{ip}}"
5043
6030
  },
5044
6031
  "db": {
5045
6032
  "needExecuteCreate": "A execução do host está desativada; não é possível criar banco de dados a partir do painel",
5046
- "dryRunMysql": "simulação: banco de dados não criado. Use --execute com YSK_EXECUTE=1 para provisionar"
6033
+ "dryRunMysql": "simulação: banco de dados não criado. Use --execute com YSK_EXECUTE=1 para provisionar",
6034
+ "remoteNoCreds": "Nenhum nome de usuário/senha armazenado — apenas TCP (o registro não é um login).",
6035
+ "remoteReachable": "TCP {{host}}:{{port}} aberto ({{ms}}ms).",
6036
+ "remoteUnreachable": "TCP {{host}}:{{port}} fechado ou filtrado ({{ms}}ms)."
5047
6037
  },
5048
6038
  "net": {
5049
6039
  "invalidIface": "Nome de interface inválido",
@@ -5124,7 +6114,17 @@
5124
6114
  "dns": "DNS",
5125
6115
  "email": "E-mail",
5126
6116
  "isolation": "Isolamento do projeto",
5127
- "ops": "Operações"
6117
+ "ops": "Operações",
6118
+ "runtimesNode": "Node.js",
6119
+ "runtimesPhp": "PHP",
6120
+ "runtimesPython": "Pitão",
6121
+ "runtimesGo": "Go",
6122
+ "pm2": "PM2",
6123
+ "runtimesNodeFix": "Instale o nó de /runtimes/node",
6124
+ "runtimesPhpFix": "Instale o PHP em /runtimes/php",
6125
+ "runtimesPythonFix": "Instale o Python em /runtimes/python",
6126
+ "runtimesGoFix": "Instale o Go em /runtimes/go",
6127
+ "pm2Fix": "Instale o PM2 na página de tempo de execução do Node"
5128
6128
  },
5129
6129
  "needAdmin": "É necessária permissão de administrador",
5130
6130
  "notInstalled": "Não instalado",
@@ -5397,7 +6397,7 @@
5397
6397
  "n0259": "domínio",
5398
6398
  "n0260": "domínio não encontrado:",
5399
6399
  "n0261": "falha no recarregamento do dovecot ou servicenot (peneira escrita; recarregamento com sucesso)",
5400
- "n0262": "despacho de frota a seco (não )",
6400
+ "n0262": "ensaio de envio da frota (não colocado em fila)",
5401
6401
  "n0263": "push de pares de simulação (não scp)",
5402
6402
  "n0264": "instalação remota de simulação (não ssh)",
5403
6403
  "n0265": "transferência de simulação concluída (bootstrap completo)",
@@ -5406,10 +6406,10 @@
5406
6406
  "n0268": "simulação - não escreva /etc",
5407
6407
  "n0269": "simulação: adicione --execute firstapply ufw",
5408
6408
  "n0270": "simulação: inventário + comprovação aprovada, não pacote/transferência",
5409
- "n0271": "teste: sonda/. adicione --execute YSK_EXECUTE=1 primeiro realmente provisione",
5410
- "n0272": "simulação: gravou o arquivo gerenciado (dataDir). adicione executar + YSK_EXECUTE=1 + root firstsystem drop-in",
5411
- "n0273": "ensaio: não. add --execute YSK_EXECUTE=1 primeiro realmente banir",
5412
- "n0274": "ensaio: não. add --execute YSK_EXECUTE=1 primeiro realmente desbane",
6409
+ "n0271": "Teste: apenas sonda/plano. Passe --execute com YSK_EXECUTE=1 para realmente provisionar.",
6410
+ "n0272": "Teste: gravou o arquivo gerenciado (dataDir). Passe --execute com YSK_EXECUTE=1 como root para instalar o sistema drop-in.",
6411
+ "n0273": "Funcionamento a seco: não proibido. Passe --execute com YSK_EXECUTE=1 para realmente banir.",
6412
+ "n0274": "Teste: não desbanido. Passe --execute com YSK_EXECUTE=1 para realmente cancelar o banimento.",
5413
6413
  "n0275": "dryRun=true — alterar API",
5414
6414
  "n0276": "dryRun: não escreve",
5415
6415
  "n0277": "dump Escreveu dataDir, não transferiu",
@@ -5758,7 +6758,7 @@
5758
6758
  "n0620": "iniciarprocesso não processo",
5759
6759
  "n0621": "OPcache",
5760
6760
  "n0622": "SSL",
5761
- "n0623": "",
6761
+ "n0623": "Ativo",
5762
6762
  "n0624": "arquivo",
5763
6763
  "n0625": "arquivo",
5764
6764
  "n0626": "nó wsrep, HA ≥2 nó",
@@ -5860,9 +6860,9 @@
5860
6860
  "n0722": "e biscoito",
5861
6861
  "n0723": "ativar --agora fail2ban",
5862
6862
  "n0724": "galera_new_cluster (inicialização)",
5863
- "n0725": "Fail2ban recarregado",
6863
+ "n0725": "fail2ban recarregado",
5864
6864
  "n0726": "recarregar nginx",
5865
- "n0727": "Fail2ban reiniciado",
6865
+ "n0727": "fail2ban reiniciado",
5866
6866
  "n0728": "zona scp (escrita em peer ≠ nomeada recarregada)",
5867
6867
  "n0729": "scp para peer /tmp (escrito em peer ≠ serviço reiniciado)",
5868
6868
  "n0730": "systemctl recarrega nginx",
@@ -5889,7 +6889,7 @@
5889
6889
  "n0751": "diretório de cache nginx e recarregar (hostnot proxy_cache pode)",
5890
6890
  "n0752": "serverdonecertificatepor favor",
5891
6891
  "n0753": "UFW somente CF aplicado (CF de origem + porta mantida)",
5892
- "n0754": "Fail2ban aplicado",
6892
+ "n0754": "fail2ban aplicado",
5893
6893
  "n0755": "Configurações aplicadas ao sistema Postfix",
5894
6894
  "n0756": "Aplicado ao sistema Nginx",
5895
6895
  "n0757": "Regra de firewall aplicada",
@@ -5974,7 +6974,7 @@
5974
6974
  "n0836": "certificado por favor falhou",
5975
6975
  "n0837": "≥ arquivo",
5976
6976
  "n0838": "configuraçõeskeptbackup",
5977
- "n0839": "Sucessoeste alvo pode BatchMode, ",
6977
+ "n0839": "Sucesso significa que este destino aceita SSH BatchMode (não interativo). Não é uma concessão de acesso global.",
5978
6978
  "n0840": "ou 32767",
5979
6979
  "n0841": "software instalado",
5980
6980
  "n0842": "permissão/",
@@ -6134,7 +7134,7 @@
6134
7134
  "n0996": "local nginx -t OK (gerenciado conf, ≠ borda aplicada)",
6135
7135
  "n0997": "wsrep local pode, tamanho não nó",
6136
7136
  "n0998": "ysk.json local não pode ler / impressão digital",
6137
- "n0999": "locais OK; investigação de pares íntegra completa (não)",
7137
+ "n0999": "O nó local está OK; um status íntegro completo precisa de uma investigação de pares (não concluída).",
6138
7138
  "n1000": "local nginx — conf Escreveu, não recarregou",
6139
7139
  "n1001": "Conexão NM local disponível; seráSucesso. pode \"\" ou NetworkManager.",
6140
7140
  "n1002": "localAvailable ps — não é possível ()",
@@ -6730,7 +7730,7 @@
6730
7730
  "n1590": "",
6731
7731
  "n1591": "Não root – os caminhos do sistema useradd / systemd / nginx são restritos",
6732
7732
  "n1592": "não seccomp requer runAsUser",
6733
- "n1593": "painelpor favor /",
7733
+ "n1593": "Pedidos públicos / min",
6734
7734
  "n1594": "conexão do painel; Disponível\"\" ( )",
6735
7735
  "n1595": "O painel não está sendo executado como root",
6736
7736
  "n1596": "Disponível aplicar:falso",
@@ -7001,7 +8001,7 @@
7001
8001
  "t0251": "{{v0}} Instalação incompleta",
7002
8002
  "t0252": "{{v0}} início do serviço",
7003
8003
  "t0253": "Falha na inicialização: {{v0}}",
7004
- "t0254": "Suporta versão Node.js {{v0}}; Versão disponível: {{v1}}",
8004
+ "t0254": "Suporta Node.js {{v0}}; versões disponíveis: {{v1}}",
7005
8005
  "t0255": "Suporta versão PHP {{v0}}; Disponível: {{v1}}",
7006
8006
  "t0256": "Suporta versão Python {{v0}}; Disponível: {{v1}}",
7007
8007
  "t0257": "Suporta versão Go {{v0}}; Disponível: {{v1}}",
@@ -7123,12 +8123,12 @@
7123
8123
  "t0373": "Isolamento do projeto \"{{v0}}\"",
7124
8124
  "t0374": "para caminho local {{v0}}",
7125
8125
  "t0375": "identidade {{v0}}: {{v1}}",
7126
- "t0376": "scp (identidade) para {{v0}}",
7127
- "t0377": "scp(identidade) falhou: {{v0}}",
7128
- "t0378": "scp para {{v0}}",
7129
- "t0379": "scp falhou: {{v0}}",
7130
- "t0380": "scp para {{v0}}",
7131
- "t0381": "scp falhou: {{v0}} (backup de identidade remota)",
8126
+ "t0376": "sftp (identidade) para {{v0}} com êxito",
8127
+ "t0377": "sftp (identidade) falhou: {{v0}}",
8128
+ "t0378": "sftp para {{v0}} com êxito",
8129
+ "t0379": "sftp falhou: {{v0}}",
8130
+ "t0380": "sftp para {{v0}} com êxito",
8131
+ "t0381": "sftp falhou: {{v0}} (pode definir backup remote identityId)",
7132
8132
  "t0382": "S3 {{v0}}",
7133
8133
  "t0383": "S3 falhou: {{v0}}",
7134
8134
  "t0384": ": {{v0}}/{{v1}} admin Habilitado 2FA",
@@ -7136,7 +8136,7 @@
7136
8136
  "t0386": "{{v0}} CAMINHO",
7137
8137
  "t0387": "{{v0}} não encontrado",
7138
8138
  "t0388": "Instale {{v0}} ou adicione-o ao PATH",
7139
- "t0389": "Versão disponível: {{v0}}",
8139
+ "t0389": "Versões disponíveis: {{v0}}",
7140
8140
  "t0390": "{{v0}}% ({{v1}}MB)",
7141
8141
  "t0391": "{{v0}}% ({{v1}})",
7142
8142
  "t0392": "início do serviço {{v0}}",
@@ -7379,15 +8379,15 @@
7379
8379
  "t0629": "projeto {{v0}} casa: {{v1}}",
7380
8380
  "t0630": "projeto {{v0}} bind_ip={{v1}} — pode ( IP )",
7381
8381
  "t0631": "projeto {{v0}} casa, não caminho: {{v1}}",
7382
- "t0632": "casa (loja): {{v0}}",
8382
+ "t0632": "Casa órfã no disco (sem projeto de loja correspondente): {{v0}}",
7383
8383
  "t0633": "Maildir: {{v0}}",
7384
8384
  "t0634": "{{v0}} — não é possível segmentar",
7385
8385
  "t0635": "não é possível sondar {{v0}}",
7386
8386
  "t0636": "{{v0}} · {{v1}}",
7387
8387
  "t0637": "projeto {{v0}} · {{v1}} · Banco de dados {{v2}} · Redis {{v3}}",
7388
- "t0638": "instalar software {{v0}} · casas {{v1}}",
8388
+ "t0638": "Instalar software {{v0}} · homes {{v1}}",
7389
8389
  "t0639": "host de transição {{v0}}",
7390
- "t0640": "Aviso {{v0}} (por favor)",
8390
+ "t0640": "{{v0}} aviso(s) — revisão antes da transição.",
7391
8391
  "t0641": "chave {{v0}}",
7392
8392
  "t0642": "não pode chave: {{v0}}",
7393
8393
  "t0643": "targetnot escrever chaves_autorizadas: {{v0}}",
@@ -7451,7 +8451,7 @@
7451
8451
  "t0701": "CDN {{v0}}",
7452
8452
  "t0702": "O nó do escudo de origem não existe: {{v0}}",
7453
8453
  "t0703": "bordas: {{v0}}",
7454
- "t0704": "URL de origem (): {{v0}}",
8454
+ "t0704": "URL de origem (do vínculo do projeto): {{v0}}",
7455
8455
  "t0705": "atualizar CDN {{v0}}",
7456
8456
  "t0706": "criar CDN {{v0}}",
7457
8457
  "t0707": "escudo de origem: escudo de borda {{v0}} → {{v1}}",
@@ -7547,7 +8547,16 @@
7547
8547
  "t0797": "fuso horário falhou: {{v0}}",
7548
8548
  "tScoreFrom": "pontuação={{score}} de={{from}}",
7549
8549
  "appliedTag": "(aplicado)",
7550
- "writtenTag": "(apenas escrito)"
8550
+ "writtenTag": "(apenas escrito)",
8551
+ "selfDestMissing": "Diretório de instalação em execução não encontrado (systemd ExecStart ou cli.js)",
8552
+ "selfDestUnwritable": "Não é possível escrever no diretório de instalação em execução {{v0}}",
8553
+ "selfApplied": "{{v0}} aplicado em {{v1}}",
8554
+ "selfVerifyFail": "O ficheiro de versão não contém {{v0}} após aplicar",
8555
+ "selfDownloadFail": "Não foi possível descarregar ou extrair o pacote oficial {{v0}}: {{v1}}",
8556
+ "selfOverlayFail": "Não foi possível aplicar o pacote oficial ao diretório em execução: {{v0}}",
8557
+ "selfUpgradeHint": "Falha ao aplicar o painel. Como root: curl -fsSL https://raw.githubusercontent.com/yanshekki/ysk-server/main/install.sh | bash -s -- --upgrade",
8558
+ "n1611": "UFW está inativo: {{n}} regra(s) de negação permanente são armazenadas em user.rules mas o kernel não as está aplicando.",
8559
+ "n1612": "UFW está inativo. Uma regra de negação seria escrita apenas em user.rules — o kernel não descartaria pacotes. Habilite o UFW primeiro. Não habilitando automaticamente."
7551
8560
  },
7552
8561
  "tpl": {
7553
8562
  "deleted": "Excluído {{name}}",
@@ -7610,7 +8619,7 @@
7610
8619
  "noParen": "(nenhum)",
7611
8620
  "keepOldDb": "(mantive o banco de dados antigo)",
7612
8621
  "ufwNotDetected": "UFW não detectado neste host",
7613
- "fail2banStartHint": "Inicie na página Fail2ban",
8622
+ "fail2banStartHint": "Inicie na página fail2ban",
7614
8623
  "hasExecuteNotRoot": "EXECUTE está ativado, mas o processo não é root",
7615
8624
  "notRootTarget": "Não é root (o destino useradd/apt será bloqueado)",
7616
8625
  "reapplyDone": "reaplicar as principais etapas concluídas",
@@ -7777,7 +8786,10 @@
7777
8786
  "accessReconnectHint": "Clientes já conectados devem se reconectar para escolher novas rotas",
7778
8787
  "ovpnNatDurable": "OpenVPN NAT/forward instalado para reinicialização (systemd ExecStartPost).",
7779
8788
  "clientFullTunnelProtect": "Cliente de túnel completo detectado (AllowedIPs 0.0.0.0/0). Proteção de host aplicada para que as respostas do painel/SSH permaneçam na NIC da LAN.",
7780
- "clientFullTunnelHint": "Dica: apenas para acesso dividido, defina AllowedIPs como CIDRs VPN/LAN (não 0.0.0.0/0) no conf e reconecte."
8789
+ "clientFullTunnelHint": "Dica: apenas para acesso dividido, defina AllowedIPs como CIDRs VPN/LAN (não 0.0.0.0/0) no conf e reconecte.",
8790
+ "serverStopped": "{{engine}} servidor parado.",
8791
+ "serverStopFailed": "Não foi possível parar o servidor {{engine}}: {{detail}}",
8792
+ "peersSynced": "Peer list reloaded on the running WireGuard interface."
7781
8793
  },
7782
8794
  "vnc": {
7783
8795
  "needInstall": "Instalar {{stack}}",
@@ -7871,7 +8883,21 @@
7871
8883
  "clientDeleted": "Perfil do cliente excluído",
7872
8884
  "sessionStartCwd": "Falha na inicialização do VNC: diretório de trabalho não acessível ao usuário da sessão (exibição: {{display}}). Corrigido começando em HOME.",
7873
8885
  "desktopRestarted": "Perfil de desktop aplicado e sessão reiniciada ({{desktop}}). Reconecte o VNC/noVNC.",
7874
- "desktopNeedsStart": "Perfil da área de trabalho {{desktop}} gravado em xstartup. Inicie a sessão para se inscrever."
8886
+ "desktopNeedsStart": "Perfil da área de trabalho {{desktop}} gravado em xstartup. Inicie a sessão para se inscrever.",
8887
+ "passwordNeedTiger": "vncpasswd não encontrado. Instale TigerVNC (tigervnc-standalone-server) antes de definir uma senha.",
8888
+ "linuxUserRolledBack": "Removido o usuário restante do Linux {{user}} após falha na senha do VNC.",
8889
+ "linuxUserOrphan": "Não foi possível remover o usuário restante do Linux {{user}} após falha na senha do VNC.",
8890
+ "sessionStartHostname": "Failed to start display :{{display}}: this host cannot resolve its own hostname. Add the hostname to /etc/hosts (or fix DNS) then start the session again.",
8891
+ "userdelLeftover": "Panel account removed, but Linux user {{user}} is still on the host. Remove it from Users or the host.",
8892
+ "hostnameResolves": "Hostname {{hostname}} resolves.",
8893
+ "hostnameUnresolvable": "This host cannot resolve its own hostname ({{hostname}}). VNC session start will fail until /etc/hosts is fixed.",
8894
+ "hostnameAlreadyResolves": "Hostname {{hostname}} already resolves — /etc/hosts unchanged.",
8895
+ "hostnameWouldAppend": "Would append to /etc/hosts: {{line}}",
8896
+ "hostnameAppended": "Appended to /etc/hosts: {{line}}",
8897
+ "hostnameAppendFailed": "Could not write /etc/hosts: {{detail}}",
8898
+ "skipStartHostname": "Did not start the display — fix hostname resolution first.",
8899
+ "hostnameAliasPresent": "Hostname {{hostname}} is already an exact /etc/hosts alias — not appended again.",
8900
+ "hostnameStillUnresolvable": "Wrote /etc/hosts but {{hostname}} still does not resolve. Confirm nsswitch hosts includes files."
7875
8901
  },
7876
8902
  "apache": {
7877
8903
  "needServerName": "Nome do servidor obrigatório",
@@ -7921,7 +8947,110 @@
7921
8947
  "startedDetached": "Trabalhador desanexado do rastreador BT iniciado (pid {{pid}}, porta {{port}})",
7922
8948
  "runningDetached": "Rastreador rodando como trabalhador desanexado (pid {{pid}})",
7923
8949
  "jobQueued": "Criação de torrent BT na fila (grande parcela)",
7924
- "jobRunning": "Criação de torrent BT em execução"
8950
+ "jobRunning": "Criação de torrent BT em execução",
8951
+ "libraryAdded": "Adicionado {{name}} à biblioteca WebTorrent",
8952
+ "libraryInspectFailed": "Não foi possível ler aquele .torrent ou magnet",
8953
+ "libraryDup": "Esse torrent já está na biblioteca",
8954
+ "libraryDestBad": "A pasta Salvar não é um caminho de arquivos válido",
8955
+ "libraryTorrentTooBig": "O arquivo .torrent é maior que 8 MiB",
8956
+ "libraryNotFound": "Item da biblioteca não encontrado",
8957
+ "libraryPaused": "Pausado",
8958
+ "libraryResumed": "Retomada",
8959
+ "libraryRemoved": "Removido da biblioteca",
8960
+ "libraryFilesRemoved": "Arquivos baixados excluídos",
8961
+ "libraryRestoreDone": "Restauração da biblioteca: iniciada {{started}}/{{attempted}} (falhou {{failed}})",
8962
+ "applyTrackersDone": "Aplicados rastreadores extras para slots de anúncio ao vivo {{n}}",
8963
+ "libraryNeedServe": "Salvo. Abra o painel (ysk-server serve) para que o WebTorrent possa fazer o download ou propagar.",
8964
+ "libraryDestIsFile": "Não é possível criar uma pasta chamada {{name}} — já existe um arquivo com esse nome.",
8965
+ "librarySeedMissing": "Não há arquivos correspondentes nessa pasta para propagar.",
8966
+ "libraryWaitingPeers": "Esperando por colegas. Se os arquivos já estiverem neste host, adicione novamente e escolha seed-existente."
8967
+ },
8968
+ "leftover": {
8969
+ "staleCliTitle": "CLI restante obsoleta",
8970
+ "staleCli": "CLI restante ainda presente: {{path}} (produto em execução {{version}}). PATH pode preferir. Remova com: rm -f {{path}}",
8971
+ "apacheDefaultTitle": "Site padrão restante do Apache",
8972
+ "apacheDefault": "O padrão Apache 000 ainda está ativado. Esse é o arquivo do site de estoque - isso não significa que o Apache esteja escutando em public :80 (o YSK Apache é esperado em 127.0.0.1:8080). A sobreposição não o desativa. Aplique o Apache no painel ou hospedando o apache apply --execute.",
8973
+ "nginxCatchAllTitle": "Nginx pega tudo faltando",
8974
+ "nginxCatchAll": "ysk-000-default.conf não está em /etc/nginx/conf.d. SNI desconhecido pode falhar. Execute projetos nginx-sync --execute.",
8975
+ "vsftpdTitle": "unidade vsftpd falhou",
8976
+ "vsftpd": "vsftpd falhou. A sobreposição não reescreve listen/listen_ipv6. Aplique FTP no painel.",
8977
+ "dovecotTitle": "Dovecot TLS aponta na falta de certificado",
8978
+ "dovecot": "Dovecot ssl_cert aponta faltando {{path}}. A sobreposição não reescreve SSL=no. Aplique TLS de e-mail após emitir o certificado ou aplique pilha de e-mail.",
8979
+ "overlayDoesNotHeal": "A sobreposição do produto não reescreve nginx, Apache, vsftpd ou Dovecot. Use os comandos de aplicação listados (root + YSK_EXECUTE=1).",
8980
+ "readinessTitle": "Sobras de host após a sobreposição",
8981
+ "readinessClean": "Nenhum padrão restante do Apache, nginx catch-all ausente, vsftpd com falha ou CLI obsoleto detectado.",
8982
+ "staleCliRemoved": "CLI residual {{path}} removido.",
8983
+ "staleCliRemoveFailed": "Não foi possível remover o CLI residual {{path}}: {{detail}}",
8984
+ "vsftpdSslOff": "Sem certificado FTPS: vsftpd com ssl_enable=NO e reinício.",
8985
+ "dovecotSslOff": "Falta {{path}}: Dovecot com ssl=no e reinício.",
8986
+ "nginxRemoved": "Removed leftover nginx conf {{path}}.",
8987
+ "nginxNotLeftover": "Not a leftover public-files conf — refuse delete.",
8988
+ "nginxUnusedKeep": "000-default is unused, not leftover — not deleted.",
8989
+ "nginxSystemCopy": "System copy still present: {{path}}. Needs YSK_EXECUTE + root to remove.",
8990
+ "nginxReloadFailed": "nginx -t or reload failed after removing {{path}}.",
8991
+ "executeStaleCli": "Pass --execute (root + YSK_EXECUTE=1) to remove stale CLI bins.",
8992
+ "executeMissingTls": "Pass --execute (root + YSK_EXECUTE=1) to disable missing-cert TLS so vsftpd/Dovecot can start.",
8993
+ "executeGeneric": "Pass --execute (root + YSK_EXECUTE=1) to apply leftover cleanup for the findings above."
8994
+ },
8995
+ "git": {
8996
+ "missingBin": "git não está no PATH",
8997
+ "auth": "Falha na autenticação. Adicione uma chave de implantação ou um token HTTPS.",
8998
+ "hostkey": "A verificação da chave do host SSH falhou. Confirme e fixe a chave do host.",
8999
+ "dirty": "A árvore de trabalho possui {{count}} alterações locais. A tração está bloqueada.",
9000
+ "diverged": "Não é possível avançar rapidamente. Redefina para a referência remota se você pretende descartar o histórico local do Git.",
9001
+ "missingRef": "Esse branch, tag ou commit não está no controle remoto.",
9002
+ "shallow": "Este clone é superficial. Busque o histórico completo antes de fixar um commit antigo.",
9003
+ "notRepo": "app/ ainda não é um repositório Git.",
9004
+ "unrelated": "Histórias não relacionadas. Reclone somente após confirmação – os arquivos personalizados serão perdidos.",
9005
+ "lock": "Git index.lock está presente. Remova-o somente se nenhum processo git estiver em execução.",
9006
+ "disk": "Disco cheio ou cota excedida.",
9007
+ "timeout": "O tempo limite do Git expirou.",
9008
+ "network": "Erro de rede ao falar com o controle remoto.",
9009
+ "lfs": "Este repositório usa Git LFS e git-lfs não está disponível.",
9010
+ "submodule": "Falha na atualização do submódulo.",
9011
+ "unknown": "Git falhou. Veja a saída do comando.",
9012
+ "fetchOk": "Obtido da origem.",
9013
+ "checkoutOk": "Verificado {{ref}}.",
9014
+ "resetOk": "Redefinir com força para {{ref}}.",
9015
+ "envRestored": "App/.env restaurado do plano de controle.",
9016
+ "needPinHost": "A chave do host SSH não está fixada. Digitalize e fixe-o antes de clonar ou buscar.",
9017
+ "tokenSaved": "Token HTTPS armazenado (nunca mostrado novamente).",
9018
+ "tokenCleared": "Token HTTPS removido.",
9019
+ "tokenInvalid": "O token deve ter pelo menos 8 caracteres.",
9020
+ "deployKeyCreated": "Chave de implantação criada. Adicione a chave pública no host Git.",
9021
+ "deployKeyCleared": "Implante a chave desanexada deste projeto.",
9022
+ "hostPinned": "Chaves de host SSH fixadas para {{host}}.",
9023
+ "hostUnpinned": "Chaves de host SSH fixadas limpas.",
9024
+ "hostScanFailed": "ssh-keyscan não retornou nenhuma chave para esse host.",
9025
+ "hookEnabled": "O gancho Git de entrada está ativado. Cole você mesmo o URL no GitHub, Gitea ou GitLab.",
9026
+ "hookDisabled": "O gancho de entrada do Git está desativado. O URL não será sincronizado.",
9027
+ "hookSecretOnce": "Copie este segredo do gancho agora. Não é mostrado novamente.",
9028
+ "refsNeedUrl": "Insira um URL do Git primeiro.",
9029
+ "refsOk": "Carregadas {{branches}} ramificações e {{tags}} tags.",
9030
+ "refsEmpty": "Remoto não anunciado sem filiais ou tags.",
9031
+ "diffEmpty": "Nenhuma diferença não preparada (o .env protegido é excluído)."
9032
+ },
9033
+ "migrate": {
9034
+ "orphanConfirm": "Digite o caminho inicial exato que sobrou para confirmar a exclusão.",
9035
+ "orphanStillInStore": "Essa casa ainda pertence a um projeto da loja.",
9036
+ "orphanMissing": "Caminho não no disco: {{path}}",
9037
+ "orphanNeedExecute": "Removeria as sobras {{path}}. Precisa de YSK_EXECUTE=1.",
9038
+ "orphanRmFailed": "Não foi possível remover as sobras da casa: {{detail}}",
9039
+ "orphanRemoved": "Removidas as sobras da casa do projeto {{path}}."
9040
+ },
9041
+ "defense": {
9042
+ "panelReqLabel": "Solicitações de painel/min",
9043
+ "panelReqExcluded": "Tráfego de painel autenticado — mostrado aqui, não contado na pontuação de ameaças",
9044
+ "tcpOk": "TCP {{target}} acessível",
9045
+ "tcpFail": "TCP {{target}} falhou",
9046
+ "dnsDegraded": "Caminho DNS degradado",
9047
+ "reqRateHigh": "Taxa de solicitação pública {{reqs}}/min ≥ {{threshold}}",
9048
+ "ddosHeuristic": "Alta taxa de solicitação pública mais falha na sonda de borda"
9049
+ },
9050
+ "publicFiles": {
9051
+ "liveConf": "Conf Nginx em vigor: {{path}}",
9052
+ "publicRoot": "Raiz pública: {{path}}",
9053
+ "confNameStale": "O ficheiro {{file}} não coincide com o server_name atual {{serverName}}. Volte a aplicar os ficheiros públicos para o renomear."
7925
9054
  }
7926
9055
  },
7927
9056
  "ops": {
@@ -8113,7 +9242,8 @@
8113
9242
  "deployTitle": "Próximo: Implantar",
8114
9243
  "deployBody": "Use Deploy no cabeçalho ou na guia Deploy do Git.",
8115
9244
  "nginxTitle": "Próximo: Publicar Nginx",
8116
- "nginxBody": "Abra a guia Rede para publicar o Nginx (SSL opcional)."
9245
+ "nginxBody": "Abra a guia Rede para publicar o Nginx (SSL opcional).",
9246
+ "provisionOsAction": "Create system user"
8117
9247
  },
8118
9248
  "healthDetail": {
8119
9249
  "none": "Nenhum exame de saúde ainda",
@@ -8123,7 +9253,12 @@
8123
9253
  "httpStatus": "HTTP",
8124
9254
  "latency": "Latência",
8125
9255
  "error": "Erro",
8126
- "at": "Verificado em"
9256
+ "at": "Verificado em",
9257
+ "deployMode": "Deploy mode",
9258
+ "edgeKind": "Edge",
9259
+ "goLiveOk": "Go-live",
9260
+ "goLiveAt": "Go-live at",
9261
+ "degraded": "Degraded"
8127
9262
  },
8128
9263
  "railPhp": "PHP/site",
8129
9264
  "railStatic": "Site estático",
@@ -8556,12 +9691,12 @@
8556
9691
  "php": "PHP",
8557
9692
  "node": "Node.js",
8558
9693
  "static": "Estático",
8559
- "python": "Python",
8560
- "go": "Go",
8561
- "rust": "Rust",
9694
+ "python": "Pitão",
9695
+ "go": "Ir",
9696
+ "rust": "Ferrugem",
8562
9697
  "java": "Java",
8563
9698
  "kotlin": "Kotlin",
8564
- "bun": "Bun"
9699
+ "bun": "Pão"
8565
9700
  },
8566
9701
  "netCacheTitle": "Cache",
8567
9702
  "logsDeepAccess": "Centro de registro · acesso",
@@ -8598,16 +9733,132 @@
8598
9733
  "netPublishMaint": "Manutenção",
8599
9734
  "sslNeedDomain": "Defina um domínio antes de publicar Nginx/SSL.",
8600
9735
  "createTemplateMissing": "{{v0}} ;「— —」。",
8601
- "deleteDialogDesc": "「{{v0}}」。。",
9736
+ "deleteDialogDesc": "「{{name}}」。。",
8602
9737
  "deleteWillStop": "sistemad/PM2/",
8603
9738
  "deleteWillWeb": "Nginx conf, pool PHP-FPM, Apache vhost()",
8604
9739
  "deleteWillOs": "Página inicial do Linux ()",
8605
9740
  "deleteKeepOs": "Linux doméstico (()",
8606
9741
  "deleteWillDb": "…",
8607
9742
  "deleteRemoveFilesDesc": "Cancelar,",
8608
- "deleteTypeNameHint": "「{{v0}}」",
9743
+ "deleteTypeNameHint": "「{{name}}」",
8609
9744
  "deleteDnsWarn": "Zona / domínio DNS.",
8610
- "manageInNginx": "Gerenciar no Nginx"
9745
+ "manageInNginx": "Gerenciar no Nginx",
9746
+ "advFtpHomeApp": "Diretório app do site",
9747
+ "advFtpHomeRoot": "Home do projeto (completo)",
9748
+ "advFtpManage": "Abrir página FTP",
9749
+ "listDesc": "Gerencie sites neste host.",
9750
+ "resShell": "Concha de login",
9751
+ "resSaveHint": "Salve e aplique as alterações no sistema operacional ativo. O plano de controle armazena apenas o formulário. A reaplicação usa os últimos valores salvos.",
9752
+ "resBashConfirmTitle": "Permitir festa interativa?",
9753
+ "resBashConfirmDesc": "Isso concede um shell de login interativo ao usuário do projeto. Confirme apenas se precisar de SSH ou PTY como usuário.",
9754
+ "noPathSepHint": "O nome não pode conter / ou \\.",
9755
+ "createGitHint": "Opcional. Armazenado no projeto; clone na guia Implantar (não clona na criação).",
9756
+ "gitBranch": "Filial",
9757
+ "gitBranchHint": "Branch or tag. Empty uses the remote default. First clone is shallow (depth 1).",
9758
+ "gitLastRef": "Última sincronização: {{branch}} @ {{commit}}",
9759
+ "gitConfirmTitle": "Clonar neste projeto?",
9760
+ "gitConfirmBody": "Se app/ ainda for o espaço reservado do Hello World, ele será limpo e clonado. Arquivos personalizados que não são uma estrutura YSK são recusados.",
9761
+ "runtimeActual": "Binário real {{path}}",
9762
+ "gitConfirmRemoteBody": "Isso aponta a origem para o novo URL e puxa. Histórias não relacionadas falham; arquivos personalizados não são apagados.",
9763
+ "runtimeFallback": "O escolhido {{version}} não está neste host. O processo usa {{path}}.",
9764
+ "gitSync": "Sincronizar",
9765
+ "gitFetch": "Buscar",
9766
+ "gitCheckout": "Confira",
9767
+ "gitReset": "Redefinir para remoto",
9768
+ "gitDeepen": "Buscar histórico completo",
9769
+ "gitLogTitle": "Confirmações recentes",
9770
+ "gitDirtyTitle": "Mudanças locais bloqueiam pull",
9771
+ "gitDirtyBody": "{{count}} arquivo(s) diferente(s) do Git (edições de arquivos ou aplicativo). Descarte-os ou aborte.",
9772
+ "gitDiscard": "Descartar arquivos locais",
9773
+ "gitOpenFiles": "Abrir em arquivos",
9774
+ "gitNotCloned": "Não clonado",
9775
+ "gitClean": "Limpar",
9776
+ "gitDirty": "Sujo",
9777
+ "gitBehind": "Atrás {{count}}",
9778
+ "gitAhead": "À frente {{count}}",
9779
+ "gitDetached": "Fixado",
9780
+ "gitShallow": "Raso",
9781
+ "gitMissing": "está faltando",
9782
+ "gitResetConfirmTitle": "Redefinir difícil para remoto?",
9783
+ "gitResetConfirmBody": "Isso descarta o histórico local do Git e os arquivos não rastreados, exceto .env, e depois restaura .env do plano de controle.",
9784
+ "gitHeads": "Filiais remotas",
9785
+ "gitToken": "Token HTTPS",
9786
+ "gitTokenHint": "Personal access token. Stored encrypted; never written into the remote URL.",
9787
+ "gitTokenPlaceholder": "ghp_… ou glpat-…",
9788
+ "gitTokenSet": "Conjunto de tokens",
9789
+ "gitSaveToken": "Salvar token",
9790
+ "gitClearToken": "Token claro",
9791
+ "gitDeployKey": "Implantar chave pública",
9792
+ "gitDeployKeyHint": "Adicione isso como uma chave de implantação somente leitura no host Git.",
9793
+ "gitDeployKeyOn": "Implantar chave",
9794
+ "gitMakeKey": "Criar chave de implantação",
9795
+ "gitCopyPub": "Copiar chave pública",
9796
+ "gitClearKey": "Limpar chave de implantação",
9797
+ "gitKeyCopied": "Chave pública copiada",
9798
+ "gitPinHost": "Fixar chave do host",
9799
+ "gitPinHostBody": "{{host}} não está fixado. Confirme as impressões digitais e fixe-as antes da clonagem SSH.",
9800
+ "gitHostUnpinned": "Chave de host não fixada",
9801
+ "gitHookTitle": "Inbound hook",
9802
+ "gitHookHint": "Paste POST /api/v1/hooks/git/<id> into GitHub / Gitea / GitLab yourself (push events). Not Slack. Secret is HMAC or X-YSK-Git-Hook.",
9803
+ "gitHookOn": "Hook on",
9804
+ "gitHookOff": "Hook off",
9805
+ "gitHookEnable": "Enable hook",
9806
+ "gitHookRotate": "Girar segredo",
9807
+ "gitHookDisable": "Disable hook",
9808
+ "gitHookSecretOnce": "Copy this secret now — it is not stored in the page after you leave.",
9809
+ "gitHookCopyUrl": "Copy URL",
9810
+ "gitHookCopySecret": "Copiar segredo",
9811
+ "gitHookCopied": "Copiado",
9812
+ "gitHookSetup": "Add the webhook yourself. Payload URL = the URL above. Content type application/json. Events: push only. Secret = the one-time value.",
9813
+ "gitHookGithub": "GitHub: Settings → Webhooks → Add webhook. Content type application/json. Events: Just the push event. GitHub.com requires HTTPS.",
9814
+ "gitHookGitea": "Gitea: Settings → Webhooks → Add Webhook → Gitea. HTTP Method POST. Push events.",
9815
+ "gitHookGitlab": "GitLab: Settings → Webhooks. Trigger: Push events. Secret token = the hook secret (sent as X-Gitlab-Token).",
9816
+ "gitHookHonesty": "The host unit must have YSK_EXECUTE=1. Without it the hook answers but does not clone or deploy.",
9817
+ "gitHookSkipOther": "Pushes to other branches are ignored. Only the project ref syncs.",
9818
+ "gitAuthHttps": "Token HTTPS",
9819
+ "gitAuthSsh": "Chave de implantação SSH",
9820
+ "gitLoadRefs": "Carregar filiais",
9821
+ "gitRefDefault": "Padrão remoto",
9822
+ "gitRefBranches": "Galhos",
9823
+ "gitRefTags": "Etiquetas",
9824
+ "gitRefOther": "Outras referências…",
9825
+ "gitRefCustom": "Confirmar ou ref",
9826
+ "gitRefsNeedUrl": "Insira um URL primeiro.",
9827
+ "gitRefsNeedAuth": "Salve um token ou uma chave de implantação e carregue as ramificações.",
9828
+ "gitRefsHint": "Carregado do controle remoto. Escolha um – não digite.",
9829
+ "gitHookSetupToggle": "Como colar isso",
9830
+ "gitHookOneLiner": "HMAC ou X-YSK-Git-Hook. Apenas a ref. deste projeto.",
9831
+ "gitHookExecuteHint": "Precisa de YSK_EXECUTE=1 para clonar ou implantar.",
9832
+ "gitShowKey": "Mostrar chave",
9833
+ "gitHideKey": "Esconder",
9834
+ "gitBehindShort": "↓{{count}}",
9835
+ "gitAheadShort": "↑{{count}}",
9836
+ "gitDirtyShort": "Sujo · {{count}}",
9837
+ "gitFilesLink": "Arquivos",
9838
+ "gitTokenLaterHint": "O token HTTPS e a profundidade do clone são definidos na guia Implantar do projeto após a criação.",
9839
+ "netForceHttpsOn": "O HTTP redirecionará para HTTPS depois que você publicar a borda.",
9840
+ "netForceHttpsOff": "Nenhum redirecionamento forçado é armazenado.",
9841
+ "netHttpsLiveNotForced": "Existe um arquivo de borda; HTTPS já pode funcionar. Esta caixa força apenas HTTP→HTTPS.",
9842
+ "gitSyncBlockedDirty": "A sincronização é desativada até que as alterações locais sejam descartadas (redefinir) ou os arquivos correspondam ao Git.",
9843
+ "gitViewDiff": "Ver diferença",
9844
+ "gitBranchAfterUrl": "Introduza primeiro o URL Git. Vazio usa o ramo predefinido remoto.",
9845
+ "gitResetNeedConfirm": "Requer confirmação — descarta commits locais",
9846
+ "openUrlNeedDomain": "Defina um domínio primeiro – não abra 127.0.0.1 em seu navegador",
9847
+ "needOsUser": "Crie primeiro o usuário do sistema na guia Isolamento",
9848
+ "stopTitle": "Pare este projeto (unidade systemd e site público)",
9849
+ "deployTitle": "Implantar este projeto",
9850
+ "httpStatsHint": "Do log de acesso deste projeto (última amostra)",
9851
+ "httpStatsNone": "Ainda não há registro de acesso ao projeto",
9852
+ "statStoppedOnly": "Parou",
9853
+ "statReadyOnly": "Preparar",
9854
+ "netBoundCert": "Certificado associado",
9855
+ "netBoundCertExpiry": "expira {{at}}",
9856
+ "netNoBoundCert": "Não há certificado em disco para este nome",
9857
+ "netForceHttpsNeedCert": "Emita um certificado em /ssl para este domínio antes de forçar HTTPS.",
9858
+ "goIsolation": "Open Isolation tab",
9859
+ "netHstsNeedHttps": "Turn on force HTTPS first",
9860
+ "homeMissing": "Home directory does not exist",
9861
+ "homeMissingHint": "Same live probe as migrate inventory — create the system user on Isolation"
8611
9862
  },
8612
9863
  "protection": {
8613
9864
  "levels": {
@@ -8641,7 +9892,9 @@
8641
9892
  "note": {
8642
9893
  "notApplied": "Não aplicado no host (precisa de root + YSK_EXECUTE=1) — salvo nas configurações do painel",
8643
9894
  "nginxWritten": "Escreveu o arquivo do painel de limite de taxa Nginx",
8644
- "f2bWritten": "Escreveu as configurações do painel fail2ban"
9895
+ "f2bWritten": "Escreveu as configurações do painel fail2ban",
9896
+ "hintDropped": "Internal protection hint omitted",
9897
+ "nginxLimits": "Will write Nginx rate-limit snippet"
8645
9898
  },
8646
9899
  "rel": {
8647
9900
  "justNow": "Agora mesmo",
@@ -8955,7 +10208,69 @@
8955
10208
  "plusRegion": "+ região {{v}}",
8956
10209
  "plusCity": "+ cidade {{v}}",
8957
10210
  "lastTickPrefix": "· último {{t}}",
8958
- "nextTickPrefix": "· próximo {{t}}"
10211
+ "nextTickPrefix": "· próximo {{t}}",
10212
+ "stackApply": "Aplicar pilha de proteção (UFW, fail2ban, predefinição)",
10213
+ "stackApplyDone": "Aplicação de pilha de proteção solicitada",
10214
+ "stackApplyHint": "Isso habilita o UFW e aplica o fail2ban mais a predefinição sugerida. Confirme que você não ficará bloqueado em um painel remoto.",
10215
+ "cannotBanSelf": "Não é possível bloquear {{ip}} — é o anfitrião, o IP de início ou ignoreip",
10216
+ "selfIp": "Este anfitrião",
10217
+ "selfHostIp": "IP do host",
10218
+ "selfLoginIp": "Seu IP de login",
10219
+ "showZeroScore": "Mostrar pontuação 0",
10220
+ "hideZeroScore": "Ocultar pontuação 0",
10221
+ "freshnessNa": "n / D",
10222
+ "geoDraftOnly": "Política desligada — Guardar só grava rascunho. O Nginx não aplica até a ativar.",
10223
+ "selectAllCountriesWarn": "Selecionar todos os países em lista de bloqueio? Pode bloquear este anfitrião e o país de início.",
10224
+ "badgeRecommendPreset": "Recomenda-se um predefinição mais forte para a ameaça atual",
10225
+ "badgeAutomationOn": "A automatização está ligada",
10226
+ "badgeBanCount": "Bloqueios ativos",
10227
+ "badgeGeoOn": "A política de acesso Geo está ligada",
10228
+ "badgeGeoNotReady": "A base GeoIP não está pronta",
10229
+ "badgeIntelSignals": "Sinais que somam pontuação agora",
10230
+ "signalActive": "Ativo",
10231
+ "signalInactive": "Inativo",
10232
+ "signalJails": "{{n}} cadeia(s)",
10233
+ "dbReadyHint": "Ficheiros MMDB presentes",
10234
+ "dbNotReadyHint": "Descarregue primeiro uma base GeoIP",
10235
+ "staleHint": "Se a última atualização bem-sucedida tem mais de 7 dias",
10236
+ "statSuspects": "IPs suspeitos",
10237
+ "scoreBasisHint": "A pontuação de ameaças usa firewall, volume de banimento fail2ban e sinais de taxa de solicitação – não a mesma contagem da lista de suspeitos da Intel.",
10238
+ "geoNeedDb": "Os bancos de dados GeoIP estão faltando — atualize os arquivos MMDB primeiro",
10239
+ "colHits": "Acessos",
10240
+ "col429": "429",
10241
+ "topIpsTitle": "IPs de topo",
10242
+ "hitsCount": "{{n}} acessos",
10243
+ "sampleWindowHint": "As contagens vêm da janela de amostras access + auth atual, não do ficheiro de registo completo.",
10244
+ "statSuspectsSplit": "{{actionable}} actionable / {{total}} listed",
10245
+ "suspectActionableCount": "Actionable IPs {{count}}",
10246
+ "uaNeedZones": "Set a Cloudflare zone first",
10247
+ "banConfirmTitle": "Ban {{ip}}?",
10248
+ "banConfirmDesc": "This IP will be blocked on the host. Confirm it is not a current panel or session address.",
10249
+ "ufwOff": "UFW (off)",
10250
+ "ufwOffHint": "UFW is not active — fail2ban is the usable target.",
10251
+ "whitelistSyncHint": "{{n}} panel entries · fail2ban ignoreip sync: {{sync}}",
10252
+ "whitelistSyncOn": "on",
10253
+ "whitelistSyncOff": "off (lists may differ)",
10254
+ "draftBadge": "Draft",
10255
+ "banIsSelf": "This IP matches the current panel source or this host.",
10256
+ "banNotSelf": "This IP is not the current panel source.",
10257
+ "geoSourceLocal": "Local GeoIP library (sapics + DB-IP)",
10258
+ "nginxPreviewHint": "Nginx snippet this preset would write (preview only):",
10259
+ "modeValue": {
10260
+ "normal": "Normal",
10261
+ "degraded": "Degraded",
10262
+ "ddos-protection": "DDoS protection",
10263
+ "offline": "Offline"
10264
+ },
10265
+ "wlRemovedUndo": "Removed {{ip}} from the allow list. Undo within 5 seconds.",
10266
+ "undo": "Undo",
10267
+ "banSelectedConfirmTitle": "Ban {{count}} selected IPs?",
10268
+ "banSelectedConfirmDesc": "These addresses will be blocked on the host: {{ips}}",
10269
+ "freshnessMissing": "No database",
10270
+ "freshnessStale": "Stale",
10271
+ "freshnessFresh": "Current",
10272
+ "banConfirmMethod": "Method: {{method}}",
10273
+ "banConfirmUntilUnban": "Stays banned until you unban it (or fail2ban expiry)."
8959
10274
  },
8960
10275
  "publicFiles": {
8961
10276
  "notSet": "Não definido",
@@ -8987,7 +10302,24 @@
8987
10302
  "diskRoot": "Raiz do disco",
8988
10303
  "filesInRoot": "Entradas",
8989
10304
  "managedConf": "Configuração gerenciada",
8990
- "systemConf": "Configuração do sistema.d"
10305
+ "systemConf": "Configuração do sistema.d",
10306
+ "notes": {
10307
+ "noManagedConf": "Nenhuma configuração Nginx gerenciada ainda – clique em Aplicar",
10308
+ "notSynced": "O conf gerenciado existe, mas não está em /etc/nginx/conf.d — aplique novamente como root com YSK_EXECUTE"
10309
+ },
10310
+ "autoindex": "Listagem de diretório (autoindex)",
10311
+ "liveSystemConf": "Conf. de sistema em direto: {{path}}",
10312
+ "publicRootNote": "Raiz pública: {{path}}",
10313
+ "applyConfirmTitle": "Aplicar o sítio de ficheiros públicos?",
10314
+ "applyConfirmDesc": "Escrever Nginx server_name {{name}} e recarregar o Nginx.",
10315
+ "serverNameMismatch": "A conf. em direto usa {{live}}; o formulário tem {{draft}}. Aplique para substituir.",
10316
+ "executeFlag": "Execute",
10317
+ "asRoot": "Root",
10318
+ "statusDraft": "Draft / not applied",
10319
+ "liveName": "Live name",
10320
+ "draftName": "Draft name",
10321
+ "draftUnapplied": "This draft is not applied. Nginx still serves the live name.",
10322
+ "discardDraft": "Discard draft"
8991
10323
  },
8992
10324
  "rbac": {
8993
10325
  "permissions": "Permissões",
@@ -9071,7 +10403,13 @@
9071
10403
  "auditExport": "Exportação de auditoria",
9072
10404
  "securityApiKeysAdmin": "Administrador de chaves de API",
9073
10405
  "networkBrowse": "Navegação na web mediada por host",
9074
- "networkVnc": "Área de trabalho remota VNC"
10406
+ "networkVnc": "Área de trabalho remota VNC",
10407
+ "validatorsRead": "Validadores (leitura)",
10408
+ "validatorsManage": "Validadores gerir",
10409
+ "validatorsWipe": "Validadores limpar dados",
10410
+ "dockerRead": "Docker (leitura)",
10411
+ "dockerManage": "Docker gerir",
10412
+ "dockerWipe": "Docker remover / limpar"
9075
10413
  },
9076
10414
  "aboutRoles": "Funções (padrões de fábrica)",
9077
10415
  "aboutRolesBody": "As funções definem recursos padrão; os usuários podem substituir os individuais.",
@@ -9087,7 +10425,14 @@
9087
10425
  "capabilitiesHint": "Alternar o que esta função pode fazer",
9088
10426
  "enabledCount": "{{enabled}} de {{total}} ativado",
9089
10427
  "bandAboveMax": "Acima do nível máximo",
9090
- "dirtyHint": "Personalizado (diferente da fábrica)"
10428
+ "dirtyHint": "Personalizado (diferente da fábrica)",
10429
+ "unsaved": "Não salvo",
10430
+ "unsavedHint": "Edições não salvas nesta função",
10431
+ "nothingToSave": "Nada para salvar",
10432
+ "saveRole": "Salvar política {{role}}",
10433
+ "discardTitle": "Descartar política não salva?",
10434
+ "discardDesc": "A troca de funções descarta edições de recursos não salvas.",
10435
+ "roleUnavailable": "Not available for this role"
9091
10436
  },
9092
10437
  "readiness": {
9093
10438
  "cat": {
@@ -9198,7 +10543,38 @@
9198
10543
  "fixNow": "Corrigir agora",
9199
10544
  "fixFailed": "Falha na correção",
9200
10545
  "fixDone": "Permissões dataDir reforçadas (chmod 750)",
9201
- "fixDoneWebUi": "UI da Web construída/instalada"
10546
+ "fixDoneWebUi": "UI da Web construída/instalada",
10547
+ "rootLabel": "Superusuário",
10548
+ "exportStarted": "Baixando {{name}}",
10549
+ "blockersHint": "Os bloqueios são o subconjunto crítico de Em falta — não são verificações extra.",
10550
+ "techDetails": "Detalhes técnicos",
10551
+ "missingOwner": "Nenhum proprietário de painel atribuído (atribuição de cota de pacote)",
10552
+ "notOsProvisioned": "Usuário/home do SO ainda não provisionado",
10553
+ "ondrejNone": "Nenhuma fonte ondrej Launchpad PHP detectada",
10554
+ "ondrejFound": "Fontes herdadas ondrej/php encontradas que entram em conflito com packages.sury.org: {{paths}}",
10555
+ "ondrejTitle": "Fonte apt PHP (ondrej residual)",
10556
+ "systemctlActive": "O serviço está em execução",
10557
+ "systemctlStatus": "Status do serviço: {{status}}",
10558
+ "binInPath": "{{bin}} em PATH",
10559
+ "leftoverApache": "Site padrão restante do Apache",
10560
+ "leftoverVsftpd": "unidade vsftpd falhou",
10561
+ "leftoverCli": "CLI restante obsoleta",
10562
+ "leftoverNginx": "Nginx pega tudo faltando",
10563
+ "leftoverDovecot": "Dovecot TLS aponta na falta de certificado",
10564
+ "leftoverOther": "Sobras de host",
10565
+ "leftoverApply": "Sobras aplicam-se",
10566
+ "isolationOwnerDegrades": "Owner_user_id ausente afeta a atribuição de cota do pacote – o status é degradado, não está pronto.",
10567
+ "totalChecks": "All checks",
10568
+ "totalChecksHint": "Ready + degraded + missing = this total. Blockers are the critical missing subset.",
10569
+ "requireAdminTotp": "require admin 2FA policy",
10570
+ "listenBind": "listen address",
10571
+ "item": {
10572
+ "admin2fa": "Admin two-factor"
10573
+ },
10574
+ "dataDirPerms": "panel data-directory permissions",
10575
+ "mode750": "mode 750",
10576
+ "gateBlocked": "Not passed · {{n}} missing",
10577
+ "isolationPendingOs": "Same as project status: OS user pending. Open Isolation to provision the system user and home."
9202
10578
  },
9203
10579
  "redis": {
9204
10580
  "neverExpire": "Nunca expira",
@@ -9266,7 +10642,30 @@
9266
10642
  "pickKey": "Selecione uma tecla à esquerda para visualizar o conteúdo.",
9267
10643
  "ttlPrefix": "TTL: {{ttl}}",
9268
10644
  "writeLiveHint": "Grava Redis ao vivo; não é possível desfazer no painel com um clique.",
9269
- "refPath": "Referência: {{path}}"
10645
+ "refPath": "Referência: {{path}}",
10646
+ "dbEmptyMark": " · vazio",
10647
+ "noRequirepass": "O modo protegido está ligado, mas requirepass está vazio ou não foi lido — sem palavra-passe.",
10648
+ "setRequirepass": "Definir palavra-passe",
10649
+ "rdbOnlyLossHint": "AOF desligado e RDB ligado. Um reinício ou falha pode perder escritas recentes.",
10650
+ "dirDataContainer": "/dados (contêiner)",
10651
+ "dirHostDefault": "/var/lib/redis",
10652
+ "dirDefaultInstance": "/var/lib/redis/default",
10653
+ "dirDataWarn": "/data geralmente é um caminho de contêiner; este painel não pode confirmar que existe.",
10654
+ "saveOff": "Desativar instantâneos (não recomendado)",
10655
+ "saveOffWarn": "A string de salvamento vazia desativa os instantâneos RDB. Uma falha pode perder todos os dados se o AOF também estiver desativado.",
10656
+ "dirMoveWarn": "Alterar o diretório não move dump.rdb/AOF. A próxima inicialização usa o novo caminho como está.",
10657
+ "passwordUnset": "Não definido no serviço",
10658
+ "passwordSetHidden": "Conjunto (não mostrado)",
10659
+ "scanHint": "Uses SCAN, not KEYS. Returns at most {{n}} keys — avoid * on huge databases.",
10660
+ "scanCapped": "Showing the first {{n}} matches.",
10661
+ "dbOptionKeys": "DB {{i}} · {{n}} keys",
10662
+ "dbOptionEmpty": "DB {{i}} · empty",
10663
+ "insecureShort": "No password",
10664
+ "generateRequirepass": "Generate and apply password",
10665
+ "generateRequirepassTitle": "Generate a Redis password?",
10666
+ "generateRequirepassDesc": "Writes requirepass and restarts Redis. The password is shown once. Host change needs EXECUTE.",
10667
+ "generateRequirepassDone": "Redis password applied",
10668
+ "generatedOnce": "Generated password (shown once): {{password}}"
9270
10669
  },
9271
10670
  "resources": {
9272
10671
  "created": "Criado",
@@ -9734,7 +11133,29 @@
9734
11133
  "projectsCount": "Projetos YSK",
9735
11134
  "noProjects": "Nenhum projeto",
9736
11135
  "noProjectsDesc": "Nenhum projeto de nó/bun no painel ou usuário do sistema operacional não provisionado.",
9737
- "pm2OnlyDesc": "Somente aplicativos iniciados com PM2 no usuário do painel. As implantações do systemd aparecem acima."
11136
+ "pm2OnlyDesc": "Somente aplicativos iniciados com PM2 no usuário do painel. As implantações do systemd aparecem acima.",
11137
+ "startupTitle": "Comece na inicialização",
11138
+ "startupDesc": "Registre o PM2 para que os processos voltem após a reinicialização.",
11139
+ "systemdActionsHint": "As ações do systemd precisam de root e YSK_EXECUTE.",
11140
+ "startupOk": "Startup registered. {{notes}}",
11141
+ "startupFail": "Could not register startup. {{notes}}",
11142
+ "actionOk": "{{action}} {{name}} — {{notes}}",
11143
+ "actionFail": "Could not {{action}} {{name}}. {{notes}}",
11144
+ "startupReady": "Ready",
11145
+ "startupReadyYes": "Yes",
11146
+ "startupReadyNo": "No",
11147
+ "startupUnit": "Unit",
11148
+ "startupDump": "Dump",
11149
+ "startupInstall": "Install startup",
11150
+ "startupSave": "Save process list",
11151
+ "actRestart": "Restart",
11152
+ "actStop": "Stop",
11153
+ "actReload": "Reload",
11154
+ "pm2ActionsHint": "PM2 actions apply to the panel user’s process list only.",
11155
+ "noteUnparsed": "PM2 list could not be parsed (empty or unexpected output).",
11156
+ "notePanelUserOnly": "PM2 list is for the panel process user only.",
11157
+ "noteProjectUnits": "{{n}} YSK project unit(s) listed",
11158
+ "glossary": "PM2 = process manager; SSE = live stream."
9738
11159
  },
9739
11160
  "recordedInstalled": "Gravado {{v}}",
9740
11161
  "remoteSourceSuffix": "({{source}})",
@@ -9788,7 +11209,32 @@
9788
11209
  "path": "Caminho",
9789
11210
  "fullVersion": "Versão completa",
9790
11211
  "useListForDefaults": "Para alterar o host ou o padrão do painel, ou remover esta versão, use a lista acima.",
9791
- "alreadyHostDefaultShort": "Padrão de host"
11212
+ "alreadyHostDefaultShort": "Padrão de host",
11213
+ "managedPathMissingTitle": "Caminho {{name}} gerenciado não está pronto",
11214
+ "managedPathMissing": "{{name}} gerenciado por YSK para a versão {{version}} não está pronto. Teste novamente ou reinstale.",
11215
+ "installRecordedCta": "Instalação gravada {{v}}",
11216
+ "targetMissing": "Versão de destino não instalada",
11217
+ "targetMissingHint": "O destino {{version}} não está neste anfitrião. Ligue uma versão instalada ou instale este pin.",
11218
+ "needsInstall": "é preciso instalar",
11219
+ "needsInstallHint": "Não está neste anfitrião. Instale-o ou escolha uma versão instalada.",
11220
+ "unitBytes": "bytes",
11221
+ "headerSizeKb": "{{n}}KB",
11222
+ "phpIniChipEmpty": "Não carregado — abra o separador php.ini",
11223
+ "phpFpmService": "PHP-FPM",
11224
+ "phpFpmServiceDesc": "Iniciar, parar, recarregar ou reiniciar a unidade PHP-FPM",
11225
+ "rustupDefaultMissingTitle": "Sem toolchain predefinida do rustup",
11226
+ "rustupDefaultMissing": "O rustup não tem predefinição. Defina stable no separador Software.",
11227
+ "rustupDefaultMissingShort": "Nenhum conjunto de ferramentas padrão",
11228
+ "rustupSetDefaultHint": "Definir conjunto de ferramentas padrão",
11229
+ "uninstalledCountHint": "{{n}} versão(ões) não estão neste anfitrião",
11230
+ "applyPhpVhostTitle": "Precisa de confirmação – grava arquivos pool/vhost",
11231
+ "applyPhpVhostDesc": "Escreverá o pool {{pool}} e o {{domain}} vhost. Serviços de recarga: {{reload}}.",
11232
+ "binaryPath": "Caminho do binário",
11233
+ "installedLabel": "Installed",
11234
+ "installedHint": "Host probe result — not the control-plane record",
11235
+ "targetHint": "Version this page will install or pin",
11236
+ "rebuildFromHost": "Rebuild record from host",
11237
+ "rebuiltFromHost": "Record refreshed from host probe"
9792
11238
  },
9793
11239
  "search": {
9794
11240
  "placeholder": "Pesquisar páginas e recursos…",
@@ -9797,21 +11243,25 @@
9797
11243
  "loading": "Procurando…",
9798
11244
  "noResults": "Nenhuma correspondência",
9799
11245
  "kinds": {
9800
- "page": "Pages",
9801
- "project": "Projects",
9802
- "email": "Email",
9803
- "mailbox": "Mailboxes",
11246
+ "page": "Páginas",
11247
+ "project": "Projetos",
11248
+ "email": "E-mail",
11249
+ "mailbox": "Caixas de correio",
9804
11250
  "ssl": "SSL",
9805
11251
  "dns": "DNS",
9806
11252
  "nginx": "Nginx",
9807
- "share": "Shares",
11253
+ "share": "Ações",
9808
11254
  "ftp": "FTP",
9809
11255
  "mysql": "MySQL",
9810
11256
  "postgres": "PostgreSQL",
9811
11257
  "redis": "Redis",
9812
11258
  "cron": "Cron",
9813
- "user": "Users",
9814
- "other": "Other"
11259
+ "user": "Usuários",
11260
+ "other": "Outro"
11261
+ },
11262
+ "alias": {
11263
+ "ssl": "certificado certificado certificados",
11264
+ "projects": "locais do projeto"
9815
11265
  }
9816
11266
  },
9817
11267
  "security": {
@@ -9835,7 +11285,7 @@
9835
11285
  "tabApiKeys": "Chaves de API",
9836
11286
  "tabSsh": "SSH",
9837
11287
  "tabApprovals": "Aprovações",
9838
- "tabAllowlist": "Lista de permissões",
11288
+ "tabAllowlist": "Ferramentas do agente",
9839
11289
  "apiTokenOnce": "Token de API (mostrado uma vez):",
9840
11290
  "copiedToken": "Token copiado",
9841
11291
  "totpTitle": "Dois fatores (TOTP)",
@@ -9919,8 +11369,8 @@
9919
11369
  "revokeAllDevices": "Revogar todos os dispositivos",
9920
11370
  "revokedAllDevices": "Todos os dispositivos confiáveis ​​revogados",
9921
11371
  "export2faBackup": "Exportar backup criptografado 2FA",
9922
- "fail2banSnippetMsg": "Trechos de Fail2ban: {{written}} — {{notes}}",
9923
- "generateFail2ban": "Gerar trechos Fail2ban",
11372
+ "fail2banSnippetMsg": "Trechos de fail2ban: {{written}} — {{notes}}",
11373
+ "generatefail2ban": "Gerar trechos fail2ban",
9924
11374
  "adminPolicyTitle": "Política 2FA do administrador",
9925
11375
  "adminPolicyDesc": "",
9926
11376
  "requireAdmin2fa": "Exigir 2FA de administrador",
@@ -9940,8 +11390,8 @@
9940
11390
  "apiKeysEmpty": "Ainda não há chaves de API",
9941
11391
  "apiKeysEmptyHint": "Crie na barra de ferramentas; em seguida, chame a API com o token do portador",
9942
11392
  "approve": "Aprovar",
9943
- "allowlistTitle": "Lista de permissões ({{count}})",
9944
- "allowlistEmpty": "Nenhuma ferramenta de lista de permissões",
11393
+ "allowlistTitle": "Ferramentas do agente ({{count}})",
11394
+ "allowlistEmpty": "Não ferramentas no catálogo",
9945
11395
  "createApiKeyTitle": "Criar chave de API",
9946
11396
  "createApiKeyDesc": "O token completo é mostrado apenas uma vez após a criação",
9947
11397
  "createKeyBtn": "Criar chave",
@@ -10183,7 +11633,23 @@
10183
11633
  "sharePanelTitle": "Compartilhar segredo TOTP do painel?",
10184
11634
  "sharePanelDesc": "Alto risco. Digite COMPARTILHADO para confirmar.",
10185
11635
  "confirmString": "Sequência de confirmação",
10186
- "enableShare": "Ativar compartilhamento"
11636
+ "enableShare": "Ativar compartilhamento",
11637
+ "invalidPub": "Cole uma linha completa de chave pública OpenSSH (ssh-ed25519 / ssh-rsa / ecdsa…).",
11638
+ "dryRunOk": "Pré-visualização concluída. Reveja o conteúdo abaixo.",
11639
+ "strictBlocked": "O pacote ou o PAM não está pronto; a aplicação Strict está desativada.",
11640
+ "strictDryRun": "Pré-visualização do modo estrito",
11641
+ "errorNoDetail": "Teste falhou (sem detalhes)",
11642
+ "privCloseWithoutAck": "Fechado. A chave privada não será mostrada novamente; gere um novo se você não o salvou.",
11643
+ "loginNoProjects": "Sem projetos. Autorize um usuário Linux existente (root/testador) abaixo. Escrever /root/.ssh precisa de YSK_EXECUTE=1.",
11644
+ "loginLinuxHint": "Usado quando não há projeto. Exemplo: root ou testador.",
11645
+ "pkgStatus": "Package {{status}}",
11646
+ "pamStatus": "PAM {{status}}",
11647
+ "kbdStatus": "sshd keyboard-interactive {{status}}",
11648
+ "light": {
11649
+ "green": "ok",
11650
+ "yellow": "check",
11651
+ "red": "missing"
11652
+ }
10187
11653
  },
10188
11654
  "sessionsActive": "Sessões ativas",
10189
11655
  "sessionsOther": "Outros dispositivos",
@@ -10206,7 +11672,52 @@
10206
11672
  "revokeOthersDesc": "Isso encerrará {{count}} outras sessões. Seu navegador atual permanece conectado.",
10207
11673
  "sessionRevoked": "Sessão desconectada",
10208
11674
  "mySecurityHint": "",
10209
- "policyTotpHint": "Política do site: cada administrador deve habilitar seu próprio 2FA (QR individual)"
11675
+ "policyTotpHint": "Política do site: cada administrador deve habilitar seu próprio 2FA (QR individual)",
11676
+ "requireUser2fa": "Exigir 2FA para todos os utilizadores do painel",
11677
+ "generateFail2ban": "Gerar fragmentos fail2ban",
11678
+ "changePasswordTitle": "Alterar a palavra-passe de início de sessão",
11679
+ "currentPassword": "Palavra-passe atual",
11680
+ "newPassword": "Nova palavra-passe",
11681
+ "confirmNewPassword": "Confirmar nova palavra-passe",
11682
+ "passwordMismatch": "As novas palavras-passe não coincidem.",
11683
+ "changePassword": "Alterar palavra-passe",
11684
+ "passwordChanged": "Palavra-passe atualizada.",
11685
+ "strictNeedsEnrolled": "Pelo menos um administrador deve ter 2FA antes de ativar o Strict.",
11686
+ "policyTotpNeedSelf": "Ative primeiro o 2FA nesta conta; caso contrário o código de confirmação não pode ser preenchido.",
11687
+ "fail2banSnippetTitle": "Fragmento fail2ban",
11688
+ "fail2banSnippetEmpty": "Nenhum fragmento foi escrito.",
11689
+ "trustedDevicesTitle": "Dispositivos de confiança",
11690
+ "noTrustedDevices": "Não há dispositivos de confiança.",
11691
+ "strictConfirmTitle": "Ativar 2FA Strict?",
11692
+ "strictConfirmDesc": "Utilizadores sem 2FA serão recusados. Confirme que já tem TOTP ou Passkey a funcionar.",
11693
+ "revokeDevicesTitle": "Revogar dispositivos de confiança?",
11694
+ "revokeDevicesDesc": "Os browsers memorizados voltarão a pedir 2FA.",
11695
+ "approvalsHint": "As aprovações aparecem quando uma ferramenta de alto risco precisa de um segundo operador. Configure permissões em Utilizadores → Permissões.",
11696
+ "allowlistReadonly": "Catálogo de ferramentas do agente (só leitura). As capacidades configuram-se em Utilizadores → Permissões.",
11697
+ "colTool": "Ferramenta",
11698
+ "colAllowed": "Permitido",
11699
+ "colRisk": "Risco",
11700
+ "colApproval": "Aprovação",
11701
+ "risk": {
11702
+ "low": "Baixo",
11703
+ "medium": "Médio",
11704
+ "high": "Alto",
11705
+ "critical": "Crítico"
11706
+ },
11707
+ "totpStatusLoadFailed": "Não foi possível carregar o estado 2FA",
11708
+ "confirmDeleteApiKey": "Excluir esta chave de API?",
11709
+ "confirmDeleteApiKeyDesc": "“{{name}}” irá parar de autenticar. Isto não pode ser desfeito.",
11710
+ "policyNoTotpHint": "This account has no 2FA yet — saving policy does not need a TOTP. Set up 2FA above if you want to require it for others.",
11711
+ "sessionCli": "CLI",
11712
+ "sessionApi": "API",
11713
+ "statApiSessions": "Sessões de API",
11714
+ "revokeOtherTitle": "Sair de {{n}} outras sessões",
11715
+ "policyNeedSelf2fa": "Habilite 2FA nesta conta primeiro e depois confirme com um código TOTP",
11716
+ "revokeAllDevicesTitle": "Revogue todos os dispositivos lembrados – você e outros administradores devem verificar o 2FA novamente",
11717
+ "statSshValue": "{{keys}} keys · {{auth}} authorized",
11718
+ "statSshHint": "Outbound identities / authorized login keys",
11719
+ "needCurrentPassword": "Enter the current password first",
11720
+ "passwordMin8": "New password must be at least 8 characters"
10210
11721
  },
10211
11722
  "serviceExposure": {
10212
11723
  "title": "Acesso à rede",
@@ -10215,8 +11726,8 @@
10215
11726
  "manageDesc": "Controle como {{service}} pode ser acessado no firewall do host.",
10216
11727
  "mode": "Modo de acesso",
10217
11728
  "modePrivate": "Somente locais",
10218
- "modePublic": "Public",
10219
- "modeRestricted": "Restricted",
11729
+ "modePublic": "Público",
11730
+ "modeRestricted": "Restrito",
10220
11731
  "summaryPrivate": "Não aberto no firewall público.",
10221
11732
  "summaryPublic": "Aberto · {{ports}}",
10222
11733
  "summaryRestricted": "Restrito · {{count}} fonte(s)",
@@ -10224,9 +11735,9 @@
10224
11735
  "outOfSync": "Fora de sincronia",
10225
11736
  "firewallOff": "Firewall desativado",
10226
11737
  "ufwMissing": "UFW não instalado",
10227
- "ufwInactive": "inactive",
11738
+ "ufwInactive": "inativo",
10228
11739
  "firewallLink": "Firewall",
10229
- "portsLabel": "Ports",
11740
+ "portsLabel": "Portas",
10230
11741
  "allowFrom": "Fontes permitidas (IP/CIDR)",
10231
11742
  "allowCountries": "Países permitidos (ISO)",
10232
11743
  "hintPrivate": "O serviço ainda pode escutar no host local; nenhum UFW público permite regras.",
@@ -10237,7 +11748,19 @@
10237
11748
  "restrictedNeedSource": "Adicione pelo menos um IP/CIDR ou código de país para modo restrito.",
10238
11749
  "privateStartTitle": "Expor {{service}} na rede?",
10239
11750
  "confirmAndStart": "Confirme e comece",
10240
- "cloudSgNote": "Somente firewall de host — grupos de segurança em nuvem (AWS/GCP/Azure) não são alterados."
11751
+ "cloudSgNote": "Somente firewall de host — grupos de segurança em nuvem (AWS/GCP/Azure) não são alterados.",
11752
+ "modeUndecided": "Não definido",
11753
+ "modeLoading": "Carregando",
11754
+ "summaryUndecided": "Modo de acesso não confirmado (padrão do catálogo: {{suggested}}).",
11755
+ "summaryNotEnforced": "O firewall está desligado — o painel não está abrindo ou bloqueando essas portas.",
11756
+ "roleSmtp": "Envio SMTP",
11757
+ "roleImap": "Caixa de correio IMAP/POP3",
11758
+ "serviceNotInstalled": "Este serviço não está instalado, portanto as regras de firewall não se aplicam.",
11759
+ "openButStopped": "Portas abertas – serviço não está em execução",
11760
+ "openNoTenants": "Portos públicos sem inquilinos",
11761
+ "summaryFirewallOffOnly": "Host firewall is not enabled, so port rules are not enforced.",
11762
+ "modePublicLive": "Public (live bind)",
11763
+ "summaryPublicLive": "Listening on {{bind}} — reachable on all interfaces. Confirm access mode; this is not private."
10241
11764
  },
10242
11765
  "services": {
10243
11766
  "enabledBoot": "Na inicialização",
@@ -10245,8 +11768,27 @@
10245
11768
  "start": "Começar",
10246
11769
  "stop": "Parar",
10247
11770
  "restart": "Reiniciar",
10248
- "reload": "Recarregar"
10249
- },
11771
+ "reload": "Recarregar",
11772
+ "enable": "Ativar no arranque",
11773
+ "disable": "Desativar no arranque"
11774
+ },
11775
+ "lifecycleTitle": "Controlo do serviço {{label}}",
11776
+ "startedOk": "{{label}} iniciado",
11777
+ "stoppedOk": "{{label}} parado",
11778
+ "restartedOk": "{{label}} reiniciado",
11779
+ "reloadedOk": "{{label}} recarregado",
11780
+ "stopConfirmTitle": "Parar {{label}}?",
11781
+ "stopConfirmDesc": "{{label}} deixa de escutar. Pode iniciá-lo de novo nesta página.",
11782
+ "stopConfirmEdgeDesc": "Parar {{label}} tira os sítios e o proxy inverso do ar até voltar a iniciar.",
11783
+ "stopConfirmEdgeConsequence": "Enquanto {{label}} estiver parado, este anfitrião não serve HTTP/HTTPS.",
11784
+ "stopConfirmSshdTitle": "Parar sshd?",
11785
+ "stopConfirmSshdDesc": "Parar sshd fecha o SSH remoto. Confirme consola ou outro acesso.",
11786
+ "stopConfirmSshdToken": "parar sshd",
11787
+ "stopConfirmSshdConsequence": "Novas sessões SSH falham até iniciar o sshd na consola do anfitrião.",
11788
+ "stopConfirmPanelTitle": "Parar YSK Server?",
11789
+ "stopConfirmPanelDesc": "O painel e a API ficam offline até iniciar a unidade no anfitrião.",
11790
+ "stopConfirmPanelToken": "pare o servidor ysk",
11791
+ "stopConfirmPanelConsequence": "Esta sessão do browser desliga-se. Inicie a unidade por SSH ou consola.",
10250
11792
  "actionDone": "{{action}} concluído",
10251
11793
  "runningOf": "{{running}}/{{total}} em execução",
10252
11794
  "canMutate": "Mutável",
@@ -10277,7 +11819,54 @@
10277
11819
  "protectionDoneNote": "Sonda de proteção concluída",
10278
11820
  "probeDone": "Sondagem concluída",
10279
11821
  "runProtection": "Executar investigação de proteção",
10280
- "notProbedYet": "Ainda não foi investigado"
11822
+ "notProbedYet": "Ainda não foi investigado",
11823
+ "stopConfirmFail2banTitle": "Parar o fail2ban?",
11824
+ "stopConfirmFail2banDesc": "Interromper o fail2ban desativa os banimentos automáticos de IP. Sites e SSH continuam funcionando.",
11825
+ "stopConfirmFail2banConsequence": "Novos invasores não são banidos até que o fail2ban seja reiniciado.",
11826
+ "installOrOpen": "Instalar / abrir",
11827
+ "statusFilter": {
11828
+ "all": "Todos os estados",
11829
+ "running": "Correndo",
11830
+ "failed": "Fracassado",
11831
+ "missing": "Não instalado"
11832
+ },
11833
+ "stopNeedConfirm": "Requer confirmação",
11834
+ "stopNeedConfirmPhrase": "É necessário escrever a frase de confirmação",
11835
+ "enabledOk": "{{label}} ativado no arranque",
11836
+ "bootDisabledWarn": "{{label}} está a correr mas não arranca no boot. Ative para persistir após reinício.",
11837
+ "bootDisabledShort": "Não no arranque",
11838
+ "mariadbNotInstalled": "MariaDB não está instalado",
11839
+ "mariadbNotInstalledMysqlOk": "Not installed: MariaDB (MySQL is installed)",
11840
+ "restartConfirmPanelTitle": "Restart YSK Server?",
11841
+ "restartConfirmPanelDesc": "The panel and API will drop briefly while the unit restarts.",
11842
+ "unitNotFound": "Unit not installed",
11843
+ "unitNa": "Not applicable",
11844
+ "unitStatic": "static",
11845
+ "unitIndirect": "indirect",
11846
+ "needRunning": "{{label}} is not running",
11847
+ "bootNa": "Not applicable",
11848
+ "permLabel": "Permission",
11849
+ "permCanChange": "Can change the system (superuser)",
11850
+ "permBlocked": "Cannot change the system",
11851
+ "permHint": "System change {{exec}} · Superuser {{root}}",
11852
+ "clusterLegend": "Planned = saved in the panel, not applied on the host.",
11853
+ "active": {
11854
+ "active": "Running",
11855
+ "inactive": "Stopped",
11856
+ "not-found": "Not installed",
11857
+ "failed": "Failed",
11858
+ "tool": "Tool",
11859
+ "activating": "Starting"
11860
+ },
11861
+ "sshdBootOffWarn": "sshd is not enabled on boot. After reboot this host will have no SSH rescue path.",
11862
+ "restartConfirmTitle": "Restart {{label}}?",
11863
+ "restartConfirmDesc": "Restart {{label}} now. Active connections may drop.",
11864
+ "startVerifyFailed": "{{label}} start did not stay healthy.",
11865
+ "stopNeedConfirmImpact": "Stop {{label}}? Active connections to this service will drop.",
11866
+ "reloadTitle": "Reload {{label}} configuration without a full restart",
11867
+ "stopConfirmPanelSshdOffDesc": "The panel and API will go offline. sshd is not enabled on boot, so SSH may not be a rescue path after reboot.",
11868
+ "stopConfirmPanelSshdOffConsequence": "sshd is not enabled on boot. After reboot you may have no SSH rescue path.",
11869
+ "ufwNoLifecycle": "UFW is not started or stopped from this matrix."
10281
11870
  },
10282
11871
  "software": {
10283
11872
  "title": "Programas",
@@ -10368,7 +11957,8 @@
10368
11957
  "pick": "Escolha a versão",
10369
11958
  "noTarget": "Sem meta de atualização",
10370
11959
  "needRuntimePage": "Instale esta versão na página de tempo de execução",
10371
- "noAptCandidate": "Nenhuma versão candidata adequada"
11960
+ "noAptCandidate": "Nenhuma versão candidata adequada",
11961
+ "sourceLabel": "Fonte"
10372
11962
  },
10373
11963
  "install": {
10374
11964
  "progress": "Instalando: {{list}}…",
@@ -10467,14 +12057,24 @@
10467
12057
  "generic": "Serviços relacionados podem parar",
10468
12058
  "purgeData": "Os caminhos de dados serão excluídos",
10469
12059
  "protectedSkipped": "Os componentes protegidos são ignorados",
10470
- "runtimeStack": "Todas as versões gerenciadas pelo painel deste ambiente de execução serão removidas"
12060
+ "runtimeStack": "Todas as versões gerenciadas pelo painel deste ambiente de execução serão removidas",
12061
+ "containers": "Os contentores em execução vão parar",
12062
+ "validators": "As pilhas de validador que usam Docker Compose vão parar"
10471
12063
  },
10472
12064
  "requestCancel": "Solicitar cancelamento",
10473
12065
  "cancelling": "Cancelando…",
10474
12066
  "dockCancelling": "Cancelando · {{title}}",
10475
12067
  "dockCancelled": "Cancelado · {{title}}",
10476
12068
  "cancelHint": "Cancelar solicitado. O cliente parou de ouvir; o host pode terminar o apt/step atual. Teste novamente o status após um momento.",
10477
- "cancelledToast": "Operação cancelada (o cliente interrompeu o streaming)"
12069
+ "cancelledToast": "Operação cancelada (o cliente interrompeu o streaming)",
12070
+ "kindApply": "Aplicar",
12071
+ "kindScan": "Digitalizar",
12072
+ "kindDeploy": "Implantar",
12073
+ "kindRuntime": "Tempo de execução",
12074
+ "jobDone": "Concluído · {{title}}",
12075
+ "jobFailed": "Falhou · {{title}}",
12076
+ "uninstallUfwWarn": "Remover o UFW deixa este anfitrião sem a firewall de portas gerida pelo painel.",
12077
+ "uninstallFail2banWarn": "Remover o fail2ban para as jails e liberta os bloqueios. Se o mantiver, adicione o IP de início a ignoreip."
10478
12078
  },
10479
12079
  "sqlEngineHealth": {
10480
12080
  "finding": {
@@ -10690,7 +12290,18 @@
10690
12290
  "requestDone": "Solicitação de certificado concluída",
10691
12291
  "requestFailed": "A solicitação de certificado não foi bem-sucedida",
10692
12292
  "applyFailed": "Falha na solicitação",
10693
- "deletedCert": "Excluído {{domain}}"
12293
+ "deletedCert": "Excluído {{domain}}",
12294
+ "uninstallCertbotWarn": "A remoção do certbot interrompe a renovação automática dos certificados Let's Encrypt existentes.",
12295
+ "renew": "Renovar",
12296
+ "renewFor": "Renovar Let’s Encrypt para {{domain}}",
12297
+ "domainRequired": "Introduza um domínio.",
12298
+ "domainInvalid": "O formato do domínio não é válido.",
12299
+ "domainKnownHint": "Escolha um domínio de projeto, DNS ou correio, ou escreva um.",
12300
+ "deleteNeedDomain": "Exclua este certificado – digite o nome de domínio para confirmar",
12301
+ "panelCertHint": "Panel HTTPS uses {{path}} (expires {{exp}}). It is not listed as a site certificate.",
12302
+ "openPanelTls": "Open panel HTTPS",
12303
+ "deleteDomain": "Delete {{domain}}",
12304
+ "uninstallCertbot": "Uninstall certbot (loses auto-renew)"
10694
12305
  },
10695
12306
  "stackWizard": {
10696
12307
  "purgeConfirm": "Confirmar a purga? Os caminhos de dados registrados (bancos de dados/correio) serão excluídos permanentemente.",
@@ -10705,39 +12316,62 @@
10705
12316
  "componentsTitle": "Componentes para instalar",
10706
12317
  "dryRun": "Visualização de simulação",
10707
12318
  "installNow": "Instale agora",
10708
- "uninstallHint": "Selecione pacotes para remover",
12319
+ "uninstallHint": "Selecione os pacotes a remover. Sem seleção não é possível remover. Os dados são conservados por omissão.",
10709
12320
  "dataPolicy": "Política de dados",
10710
12321
  "keepData": "Mantenha os dados",
10711
12322
  "purgeData": "Limpar dados",
10712
- "uninstallNow": "Desinstalar agora"
12323
+ "uninstallNow": "Desinstalar agora",
12324
+ "uninstallNeedSelect": "Selecione pelo menos um pacote. A seleção vazia não significa mais remover tudo.",
12325
+ "uninstallConfirmTitle": "Remover pacotes selecionados?",
12326
+ "uninstallConfirmDesc": "{{count}} pacote(s) serão removidos. Digite REMOVER para confirmar.",
12327
+ "countHint": "These counts are OS packages in the software plan — not the service-matrix units on the other tab.",
12328
+ "executeRoot": "System changes {{execute}} · administrator {{root}}",
12329
+ "manifestPlan": "Plan {{plan}} ({{bundles}})",
12330
+ "manifestHint": "Last chosen software plan and bundles"
10713
12331
  },
10714
12332
  "support": {
10715
- "title": "Support",
10716
- "sub": "Criador, doe e YSK Limited produto gratuito, ajuda real",
10717
- "creatorTitle": "Creator",
10718
- "creatorBody": "O YSK Server foi desenvolvido como um plano de controle de host único gratuito e honesto para operadoras que desejam possuir sua pilha. O projeto é mantido abertamente; feedback e relatórios de bugs o mantêm afiado.",
10719
- "donateTitle": "Apoie / Doe",
10720
- "donateBody": "Se o YSK Server economizar seu tempo, considere patrocinar o desenvolvimento. Cada contribuição ajuda a manter o produto gratuito para todos.",
12333
+ "title": "Suporte",
12334
+ "sub": "Creator, donativos e YSK Limited produto gratuito, ajuda real",
12335
+ "creatorTitle": "Criador",
12336
+ "creatorBody": "YSK Server é um plano de controlo de um anfitrião, gratuito e honesto, para operadores que querem possuir a sua stack. O projeto é mantido em aberto; comentários e relatórios de erros mantêm-no afiado.",
12337
+ "donateTitle": "Apoio / Donativo",
12338
+ "donateBody": "Se o YSK Server lhe poupa tempo, considere patrocinar o desenvolvimento. Cada contributo ajuda a manter o produto gratuito para todos.",
10721
12339
  "donateGithub": "Patrocinadores do GitHub",
10722
- "donateOther": "Outras maneiras de dar",
12340
+ "donateOther": "Outras formas de contribuir",
10723
12341
  "yskTitle": "YSK Limited",
10724
- "yskIntro": "Precisa de ajuda prática além do painel gratuito? A YSK Limited pode ajudar com:",
10725
- "yskSvc1": "Configuração do servidor, proteção e operações contínuas",
10726
- "yskSvc2": "Design de pilha de hospedagem (web, e-mail, DNS, bancos de dados)",
10727
- "yskSvc3": "Migração, automação e integração personalizada",
12342
+ "yskIntro": "Precisa de ajuda prática para além do painel gratuito? A YSK Limited pode ajudar com:",
12343
+ "yskSvc1": "Instalação, endurecimento e operação contínua do servidor",
12344
+ "yskSvc2": "Desenho da stack de alojamento (web, correio, DNS, bases de dados)",
12345
+ "yskSvc3": "Migração, automatização e integração à medida",
10728
12346
  "yskSvc4": "Resposta a incidentes e revisões de prontidão de produção",
10729
- "yskNoPrice": "Não há preços listados aqui entre em contato conosco para uma conversa adequada ao seu ambiente.",
12347
+ "yskNoPrice": "Não há preços aqui contacte-nos para uma conversa adaptada ao seu ambiente.",
10730
12348
  "yskWebsite": "ysk.hk",
10731
- "helpTitle": "Está com algum problema?",
10732
- "helpBody": "Envie-nos um email com seu sistema operacional, o caminho do log de instalação e o que você esperava versus o que aconteceu. Lemos todas as mensagens.",
12349
+ "helpTitle": "Tem um problema?",
12350
+ "helpBody": "Envie-nos um e-mail com o SO, o caminho do registo de instalação e o que esperava vs o que aconteceu. Lemos todas as mensagens.",
10733
12351
  "docsHint": "A documentação completa está no repositório em",
10734
12352
  "donateLinktree": "Linktree",
10735
- "cryptoTitle": "Alças criptográficas / web3",
10736
- "cryptoHint": "Envie apenas na rede correspondente. Verifique novamente o endereço antes de enviar.",
10737
- "cryptoNetwork": "Network",
10738
- "cryptoAddress": "Address",
10739
- "copy": "Copy",
10740
- "copied": "Copied"
12353
+ "cryptoTitle": "Cripto / identificadores Web3",
12354
+ "cryptoHint": "Envie apenas na rede correspondente. Confirme o endereço antes de enviar.",
12355
+ "cryptoNetwork": "Rede",
12356
+ "cryptoAddress": "Endereço",
12357
+ "copy": "Copiar",
12358
+ "copied": "Copiado",
12359
+ "docsLink": "Documentação",
12360
+ "diagTitle": "Resumo de diagnóstico",
12361
+ "diagBody": "Copie a versão, execute e hospede dados para colar em um e-mail. Este não é um pacote de log completo.",
12362
+ "diagCopy": "Copiar resumo de diagnóstico",
12363
+ "diagCopied": "Resumo de diagnóstico copiado",
12364
+ "copyTitle": "Copiar {{address}}",
12365
+ "diagCopyTitle": "Copiar versão, EXECUTE e dados do anfitrião",
12366
+ "diagPreview": "Pré-visualizar o que será copiado",
12367
+ "diagLoading": "Carregando diagnóstico…",
12368
+ "diagLoadFailed": "Não foi possível carregar o diagnóstico",
12369
+ "copiedAddr": "Copied {{addr}}",
12370
+ "diagStatus": "Status",
12371
+ "diagMode": "Mode",
12372
+ "diagProtection": "Protection",
12373
+ "diagHostname": "Hostname",
12374
+ "diagOs": "OS"
10741
12375
  },
10742
12376
  "system": {
10743
12377
  "exportLoadFailed": "Falha ao carregar dados de exportação",
@@ -10818,7 +12452,18 @@
10818
12452
  "leOk": "Vamos criptografar o certificado obtido para {{domain}}",
10819
12453
  "leFailed": "Falha na solicitação de certificado: {{detail}}",
10820
12454
  "leHint": "Certifique-se de que o DNS A aponte aqui e que a porta 80 esteja acessível (ou o nginx sirva o domínio)",
10821
- "openFirewall": "Se público: permitir porta do painel {{port}}/tcp (Firewall → porta aberta → Painel 9287)"
12455
+ "openFirewall": "Se público: permitir porta do painel {{port}}/tcp (Firewall → porta aberta → Painel 9287)",
12456
+ "disableConfirmTitle": "Desativar painel HTTPS?",
12457
+ "disableConfirmDesc": "O painel servirá HTTP. WebAuthn/Passkey irá parar de funcionar até que o HTTPS seja ativado novamente.",
12458
+ "disablePasskeyWarn": "As chaves de acesso registradas precisam de HTTPS – elas falharão no HTTP.",
12459
+ "disableNeedConfirm": "Requer confirmação — escreva DISABLE-HTTPS",
12460
+ "listenPublic": "O painel está escutando em um endereço público (0.0.0.0/::). Restrinja com um firewall ou vincule-se a 127.0.0.1.",
12461
+ "bootstrapCert": "Este é o certificado de inicialização autoassinado – os navegadores avisarão. Emita um certificado confiável para o domínio do painel.",
12462
+ "cliNoSocket": "CLI não possui soquete HTTP ativo; servindoHttps é inferido dos soquetes de configuração e escuta (ss).",
12463
+ "listenHost": "Endereço de escuta",
12464
+ "currentHost": "Esta sessão",
12465
+ "replaceCert": "Substitua por um certificado confiável",
12466
+ "needFqdn": "Need a FQDN (example.com), not a bare hostname"
10822
12467
  },
10823
12468
  "timeNtp": "Tempo e NTP",
10824
12469
  "clockStatus": "Status do relógio do sistema",
@@ -10923,7 +12568,25 @@
10923
12568
  "exportPath": "Caminho de exportação",
10924
12569
  "mode": "Modo",
10925
12570
  "managedConf": "Configuração gerenciada",
10926
- "dryRunFlag": "Teste a seco"
12571
+ "dryRunFlag": "Teste a seco",
12572
+ "timezoneSearch": "Filtrar fusos horários…",
12573
+ "resyncNtp": "Sincronizar novamente o NTP",
12574
+ "storageSub": "Uso de disco",
12575
+ "syncReloadNeedConfirm": "Precisa de confirmação — escreve /etc/nginx/conf.d e recarrega o Nginx",
12576
+ "nginxLeftover": "Residual",
12577
+ "nginxUnused": "Não usado",
12578
+ "nginxLeftoverHint": "Conf residual (p.ex. public-files). Incluída na sincronização até agir.",
12579
+ "nginxUnusedHint": "Conf de origem / catch-all (000-default). Incluída na sincronização até agir.",
12580
+ "powerUnlock": "Desbloquear zona de perigo",
12581
+ "powerLock": "Bloquear zona de perigo",
12582
+ "noScheduledPower": "Nenhuma reinicialização ou desligamento está agendado",
12583
+ "timezoneNow": "Host time now: {{time}} ({{tz}})",
12584
+ "timezoneBrowserDiff": "This host uses {{host}}; your browser uses {{browser}}. Changing timezone here changes the host clock, not the browser.",
12585
+ "notExported": "Not exported yet",
12586
+ "nginxRemoveLeftover": "Remove leftover",
12587
+ "nginxRemoveLeftoverTitle": "Remove leftover nginx conf?",
12588
+ "nginxRemoveLeftoverDesc": "Deletes {{name}} from the panel inventory. The live /etc/nginx copy is removed only with YSK_EXECUTE + root. 000-default is not leftover and cannot be deleted here.",
12589
+ "needExecuteRoot": "Needs YSK_EXECUTE + root"
10927
12590
  },
10928
12591
  "systemd": {
10929
12592
  "enabled": "Habilitado",
@@ -11017,7 +12680,9 @@
11017
12680
  "aboutPolicySub": "A gravação do modelo e a instalação do sistema são etapas separadas. A nova execução após a instalação é uma operação normal, não uma etapa perdida.",
11018
12681
  "policyInstallFull": "Instale e habilite: copie para /etc/systemd/system, daemon-reload, habilite --now. Precisa de root + EXECUTE.",
11019
12682
  "policyBlockedTitle": "Bloqueado sem privilégio",
11020
- "policyNotEqualTitle": "Estados não são equivalentes"
12683
+ "policyNotEqualTitle": "Estados não são equivalentes",
12684
+ "rawStateHint": "Raw unit state in tooltip",
12685
+ "bootHint": "Whether the unit starts at boot"
11021
12686
  },
11022
12687
  "tabs": {
11023
12688
  "scrollLeft": "Rolar as guias para a esquerda",
@@ -11057,7 +12722,15 @@
11057
12722
  "stepUpHint": "O login root requer aumento de 2FA quando sua conta tem TOTP ativado.",
11058
12723
  "stepUpTitle": "Confirme o shell raiz",
11059
12724
  "stepUpDesc": "Digite seu código autenticador ou um código de recuperação.",
11060
- "totpLabel": "TOTP/código de recuperação"
12725
+ "totpLabel": "TOTP/código de recuperação",
12726
+ "sessionStillOpen": "Um live shell ainda está conectado enquanto você lê esta página.",
12727
+ "rootConfirmTitle": "Abrir um shell de root?",
12728
+ "rootConfirmDesc": "Esta sessão é um PTY raiz irrestrito no host. Os comandos são auditados.",
12729
+ "rootConfirmBody": "Continue apenas se pretender executar comandos de host privilegiados.",
12730
+ "copyAll": "Copiar tudo",
12731
+ "copyAllNeedConn": "Conecte primeiro – o buffer fica vazio enquanto desconectado",
12732
+ "groupSystem": "System",
12733
+ "groupProject": "Project"
11061
12734
  },
11062
12735
  "uiInline": {
11063
12736
  "s27d9daa5": "tempo de execução {{v0}} {{v1}},",
@@ -11357,9 +13030,9 @@
11357
13030
  "applyPanelUpdate": "Aplicar atualização do painel",
11358
13031
  "recheck": "Verifique novamente",
11359
13032
  "aboutScope": "Escopo",
11360
- "aboutScopeV": "versão do plano de controle do servidor ysk · não atualização apt do sistema completo",
13033
+ "aboutScopeV": "painel ysk-server + serviços de catálogo + tempos de execução + pacotes apt restantes",
11361
13034
  "aboutChannel": "Canal",
11362
- "aboutChannelV": "npm → lançamento do GitHub → package.json; aplique via npm install -g ou git (YSK_SOURCE_ROOT)",
13035
+ "aboutChannelV": "pacote npm ysk-server versão do GitHub → apps/server/package.json; aplique: npm i -g ysk-server@versão ou git (YSK_SOURCE_ROOT)",
11363
13036
  "aboutFail": "Falhas",
11364
13037
  "aboutFailV": "Os canais indisponíveis não são reportados como atualizados; aplicar necessidades EXECUTAR; git apply precisa reiniciar o serviço",
11365
13038
  "jobsTitle": "Trabalhos agendados",
@@ -11436,7 +13109,80 @@
11436
13109
  "scanNow": "Digitalize agora",
11437
13110
  "viewUpgradable": "Ver atualizável",
11438
13111
  "installElsewhere": "Para instalar pacotes (Nginx, PHP, bancos de dados…), abra a página de recursos correspondente – não este hub.",
11439
- "status": "Status"
13112
+ "status": "Status",
13113
+ "groupService": "Serviços",
13114
+ "groupRuntime": "Tempos de execução",
13115
+ "groupOs": "Pacotes de sistema",
13116
+ "notInstalled": "Não instalado",
13117
+ "goToPage": "Abrir página",
13118
+ "hubHint": "Catalogue software e tempos de execução neste host. Digitalize para atualizar.",
13119
+ "intervalDay": "diariamente",
13120
+ "intervalDays": "a cada {{n}} dias",
13121
+ "intervalHour": "a cada hora",
13122
+ "intervalHours": "a cada {{n}} horas",
13123
+ "intervalMinutes": "a cada {{n}} minutos",
13124
+ "intervalSeconds": "a cada {{n}} segundos",
13125
+ "availableHint": "Pacotes com um candidato mais recente do gerenciador de pacotes.",
13126
+ "servicesHint": "Serviços de catálogo neste host. Abra a página do serviço para instalar.",
13127
+ "runtimeHint": "Tempos de execução neste host. As atualizações de versão são feitas em cada página de tempo de execução.",
13128
+ "needsReboot": "Reinicialização necessária",
13129
+ "kernelRebootWarn": "A instalação de um novo kernel geralmente precisa ser reinicializada antes de ser usado.",
13130
+ "neverRun": "ainda não executou",
13131
+ "scanOsvN": "Digitalizar + OSV (primeiro {{n}})",
13132
+ "rebootNeeded": "reinício",
13133
+ "kernelRebootHint": "Os pacotes do kernel precisam ser reinicializados após a aplicação",
13134
+ "needApprovalHint": "Abra Disponível e filtre os pacotes que precisam de aprovação",
13135
+ "applyNeedConfirm": "Abre uma caixa de diálogo de confirmação antes de aplicar",
13136
+ "probeFailed": "Falha na investigação",
13137
+ "notViaApt": "Não gerenciado pelo apt — nenhum candidato",
13138
+ "noCandidate": "Nenhuma versão candidata",
13139
+ "jobOpenGeo": "Página GeoIP",
13140
+ "job": {
13141
+ "protection_probe": {
13142
+ "name": "Sonda de proteção",
13143
+ "hint": "Sinais de defesa periódicos"
13144
+ },
13145
+ "updates_scan": {
13146
+ "name": "Verificação de atualizações",
13147
+ "hint": "Atualizar inventário de pacotes"
13148
+ },
13149
+ "daily_backup": {
13150
+ "name": "Backup diário",
13151
+ "hint": "Backup agendado de todos"
13152
+ },
13153
+ "db_temp_expire": {
13154
+ "name": "Expirar usuários temporários do banco de dados",
13155
+ "hint": "Eliminar usuários de banco de dados temporário expirados"
13156
+ },
13157
+ "defense_auto_ban": {
13158
+ "name": "Banimento automático de defesa",
13159
+ "hint": "Aplicar tick de banimento automático"
13160
+ },
13161
+ "defense_geoip_update": {
13162
+ "name": "Atualização GeoIP",
13163
+ "hint": "Baixe bancos de dados GeoIP"
13164
+ },
13165
+ "log_auto_vacuum": {
13166
+ "name": "Vácuo de toras",
13167
+ "hint": "retenção de diário"
13168
+ },
13169
+ "email_dnsbl": {
13170
+ "name": "E-mail DNSBL",
13171
+ "hint": "Verificação DNSBL de correio"
13172
+ },
13173
+ "validators_upgrade_scan": {
13174
+ "name": "Validators upgrade scan",
13175
+ "hint": "Check validator image / binary updates"
13176
+ }
13177
+ },
13178
+ "applyPanelAlreadyLatest": "Já é a versão mais recente do painel",
13179
+ "panelRestarting": "O painel está a reiniciar para carregar a nova versão…",
13180
+ "panelRestarted": "Painel de volta · {{version}}",
13181
+ "panelRestartWait": "Atualização aplicada. Se esta página não atualizar, recarregue após alguns segundos.",
13182
+ "cveNotChecked": "Not checked",
13183
+ "cveLabel": "CVE",
13184
+ "riskUnevaluated": "Not evaluated — run Scan + OSV",
13185
+ "footerNewVersion": "New version {{version}}"
11440
13186
  },
11441
13187
  "users": {
11442
13188
  "userCount": "{{count}} usuários",
@@ -11558,7 +13304,350 @@
11558
13304
  "securityClearTotpHint": "Requer intensificação",
11559
13305
  "securityClearConfirm": "Digite o nome de usuário para confirmar a limpeza 2FA",
11560
13306
  "securityClearOk": "Liberado 2FA para {{name}}",
11561
- "securitySelfNote": "Para configurar seu próprio 2FA, abra Segurança → Minha segurança."
13307
+ "securitySelfNote": "Para configurar seu próprio 2FA, abra Segurança → Minha segurança.",
13308
+ "cannotDeleteSelf": "Não pode eliminar a conta com sessão iniciada",
13309
+ "cannotModifySelf": "Não pode suspender nem despromover a conta com sessão iniciada",
13310
+ "cannotDeleteLastAdmin": "Não é possível eliminar o último administrador",
13311
+ "cannotDemoteLastAdmin": "Não é possível suspender nem despromover o último administrador",
13312
+ "lockSelfHint": "Esta é a conta com sessão iniciada. Eliminar, suspender e alterar a função estão bloqueados para evitar bloqueio.",
13313
+ "lockLastAdminHint": "Este é o último administrador. Eliminar, suspender e despromover estão bloqueados.",
13314
+ "demoteAdminTitle": "Despromover este administrador?",
13315
+ "demoteAdminDesc": "Este utilizador perderá o acesso completo de administrador. Confirme que resta outro administrador.",
13316
+ "searchPkgPh": "Nome do pacote",
13317
+ "quotaNonNeg": "Contagens e cotas não podem ser negativas.",
13318
+ "diskQuotaHint": "As predefinições são GiB; caixa personalizada é MiB.",
13319
+ "bandwidthHint": "0 significa ilimitado.",
13320
+ "impersonateHint": "Abre uma sessão como este usuário. Use o menu da conta para sair da representação.",
13321
+ "operatorHighRiskHint": "O operador de fábrica inclui escritas de alto risco. Estreitá-lo só afeta contas novas; alterar o predefinido afeta operadores existentes.",
13322
+ "cannotImpersonateSelf": "Você já está conectado como esta conta",
13323
+ "singleAdminNo2fa": "Este host tem um único administrador e o 2FA está desativado – habilite o 2FA e adicione um administrador de backup.",
13324
+ "enableAdmin2fa": "Enable admin 2FA",
13325
+ "addBackupAdmin": "Add a backup admin"
13326
+ },
13327
+ "validators": {
13328
+ "title": "Validadores (Beta)",
13329
+ "subtitle": "Instale e gira nós L1 neste anfitrião. Não detentor — as chaves ficam consigo.",
13330
+ "beta": "Beta",
13331
+ "tab": {
13332
+ "nodes": "Nós",
13333
+ "disk": "Disco",
13334
+ "about": "Acerca",
13335
+ "stack": "Software"
13336
+ },
13337
+ "empty": {
13338
+ "title": "Ainda não há nós validador",
13339
+ "desc": "Crie um nó de testnet em poucos cliques."
13340
+ },
13341
+ "refresh": "Atualizar",
13342
+ "disk": {
13343
+ "title": "Disco dos validadores",
13344
+ "root": "Diretório de dados",
13345
+ "free": "Livre",
13346
+ "used": "Usado",
13347
+ "none": "Ainda sem dados de instância",
13348
+ "warn": "A utilização do disco está alta (70%+)",
13349
+ "danger": "A utilização do disco é crítica (85%+)",
13350
+ "autoClear": "Limpar automaticamente a maior instância parada quando o disco é crítico (desligado por omissão)",
13351
+ "autoClearRisk": "Destructive: the largest stopped instance is deleted without a further prompt. Default is off. Check audit / logs after it fires.",
13352
+ "autoClearConfirmTitle": "Enable auto-clear?",
13353
+ "autoClearC1": "When disk is critical, the largest stopped instance is deleted without asking again.",
13354
+ "fsUsed": "Filesystem used",
13355
+ "leftoverTitle": "Leftover data ({{count}})",
13356
+ "leftoverDesc": "Directories under the validators root that are not a store instance. Remove only after you confirm they are unused.",
13357
+ "leftoverRemove": "Remove",
13358
+ "leftoverRemoveTitle": "Delete leftover validator data?",
13359
+ "leftoverRemoveDesc": "Permanently delete {{path}} from disk. This is not a listed node.",
13360
+ "autoClearThreshold": "Trigger: filesystem use at or above 85%.",
13361
+ "autoClearCandidate": "Current candidate: {{id}}",
13362
+ "autoClearNone": "No stopped instance is a candidate right now.",
13363
+ "browseRoot": "Open in file browser",
13364
+ "leftoverEmpty": "No leftover instance directories"
13365
+ },
13366
+ "chain": {
13367
+ "eth": "Ethereum",
13368
+ "avax": "Avalanche",
13369
+ "near": "NEAR",
13370
+ "ada": "Cardano",
13371
+ "btc": "Bitcoin",
13372
+ "cosmos": "Cosmos Hub",
13373
+ "sui": "Sui",
13374
+ "aptos": "Aptos",
13375
+ "dot": "Polkadot",
13376
+ "sol": "Solana"
13377
+ },
13378
+ "network": {
13379
+ "hoodi": "Hoodi",
13380
+ "sepolia": "Sepolia",
13381
+ "mainnet": "Rede principal",
13382
+ "fuji": "Fuji",
13383
+ "testnet": "Rede de testes",
13384
+ "preview": "Visualização",
13385
+ "preprod": "Pré-produção",
13386
+ "westend": "Westend"
13387
+ },
13388
+ "networkKind": {
13389
+ "testnet": "Rede de testes",
13390
+ "mainnet": "Rede principal",
13391
+ "mixed": "Mainnet + testnet"
13392
+ },
13393
+ "profile": {
13394
+ "minimal": "Mínimo",
13395
+ "pruned": "Pruned",
13396
+ "validator-ready": "Pronto para validador",
13397
+ "rpc": "RPC"
13398
+ },
13399
+ "col": {
13400
+ "id": "ID",
13401
+ "chain": "Cadeia",
13402
+ "network": "Rede",
13403
+ "profile": "Perfil",
13404
+ "status": "Estado",
13405
+ "disk": "Disco"
13406
+ },
13407
+ "cli": {
13408
+ "usage": "Utilização: ysk-server validators list|chains|disk|get|status|logs|create|start|stop|restart|clear|upgrade|policy|mithril|prune|switch-network|snapshot|compose|settings [--chain C] [--network N] [--profile P] [--el EL] [--cl CL] [--data-path P] [--rpc-port N] [--id ID] [--upgrade POLICY] [--confirm TOKEN] [--execute] [--json]"
13409
+ },
13410
+ "clients": {
13411
+ "el": "Cliente de execução",
13412
+ "cl": "Cliente de consenso"
13413
+ },
13414
+ "mithril": {
13415
+ "label": "Restaurar primeiro a partir de um instantâneo Mithril (recomendado em testnet)",
13416
+ "action": "Restaurar com Mithril"
13417
+ },
13418
+ "errors": {
13419
+ "notFound": "Instância de validador não encontrada",
13420
+ "invalidId": "Identificador de instância inválido",
13421
+ "diskLow": "Disco livre insuficiente para esta cadeia, rede e perfil",
13422
+ "diskUnknownMainnet": "Não é possível medir o disco livre; recusada a criação em rede principal",
13423
+ "needDocker": "É necessário Docker Compose e não foi encontrado",
13424
+ "composeFailed": "docker compose falhou",
13425
+ "needConfirm": "Limpar exige confirm=identificador da instância ou CLEAR",
13426
+ "mithrilAdaOnly": "A restauração Mithril só está disponível para Cardano",
13427
+ "needMithrilConfirm": "Mithril exige confirm=identificador da instância ou MITHRIL",
13428
+ "mithrilBlocked": "O docker run do Mithril foi bloqueado pela lista permitida",
13429
+ "mithrilKey": "Não foi possível carregar a chave de verificação genesis do Mithril",
13430
+ "mithrilFailed": "A transferência do instantâneo Mithril falhou",
13431
+ "pruneFailed": "A limpeza falhou",
13432
+ "switchNeedStop": "Pare o nó antes de mudar de rede",
13433
+ "switchNeedClear": "Mudar de rede apaga os dados da cadeia. Confirme com o identificador da instância ou CLEAR",
13434
+ "composeMissing": "Ficheiro Compose não encontrado",
13435
+ "composeNotManaged": "Recusa de escrever um ficheiro Compose que não é gerido pelo YSK",
13436
+ "badDataPath": "O caminho de dados deve ser um diretório absoluto fora dos caminhos do sistema",
13437
+ "portInUse": "Esse porto RPC já é usado por outra instância de validador",
13438
+ "snapshotUnsupported": "Não há origem de instantâneo permitida para esta cadeia",
13439
+ "snapshotLookup": "Não foi possível resolver o ponteiro oficial do instantâneo",
13440
+ "needSnapshotConfirm": "Restaurar instantâneo exige confirm=identificador da instância ou SNAPSHOT",
13441
+ "snapshotBlocked": "O docker run do instantâneo foi bloqueado pela lista permitida",
13442
+ "snapshotFailed": "A transferência ou extração do instantâneo falhou"
13443
+ },
13444
+ "notes": {
13445
+ "beta": "Esta funcionalidade é Beta. Alterações no anfitrião precisam de root e YSK_EXECUTE=1.",
13446
+ "noKeys": "O YSK Server nunca gera nem guarda chaves de staking.",
13447
+ "dockerSoon": "Install and start from this page wizard. Host changes need root and YSK_EXECUTE=1.",
13448
+ "dryCreate": "Especificação da instância e compose escritos (dry-run). Passe --execute e YSK_EXECUTE=1 para iniciar contentores.",
13449
+ "dryStart": "O arranque é dry-run. Passe --execute e YSK_EXECUTE=1.",
13450
+ "dryStop": "A paragem é dry-run. Passe --execute e YSK_EXECUTE=1.",
13451
+ "dryClear": "A limpeza é dry-run. Passe --execute e YSK_EXECUTE=1.",
13452
+ "created": "Nó criado e compose iniciado",
13453
+ "started": "Nó iniciado",
13454
+ "stopped": "Nó parado",
13455
+ "cleared": "Dados da cadeia limpos",
13456
+ "dryMithril": "A restauração Mithril é dry-run. Passe --execute e YSK_EXECUTE=1.",
13457
+ "mithril": "Instantâneo Mithril restaurado; nó reiniciado",
13458
+ "dryPrune": "A limpeza é dry-run. Passe --execute e YSK_EXECUTE=1.",
13459
+ "pruned": "Imagens não usadas do projeto limpas",
13460
+ "pruneProfile": "A poda nativa do cliente é o perfil pruned/minimal. Recrie para o alterar.",
13461
+ "sameNetwork": "Já está nessa rede",
13462
+ "drySwitch": "A mudança de rede é dry-run.",
13463
+ "switched": "Rede alterada e dados da cadeia limpos",
13464
+ "dryCompose": "Escreveria compose.yml",
13465
+ "composeWrote": "compose.yml escrito",
13466
+ "statsEmpty": "Não há contentores em execução para medir",
13467
+ "autoClearNone": "Não há instância parada para limpar automaticamente",
13468
+ "drySnapshot": "A restauração de instantâneo é dry-run. Passe --execute e YSK_EXECUTE=1.",
13469
+ "snapshotEthEl": "Arquivo EL ethPandaOps restaurado e CL redefinido para checkpoint sync",
13470
+ "snapshotEthCl": "Dados CL redefinidos para o checkpoint sync oficial",
13471
+ "snapshotNear": "Dados NEAR apagados; o compose vai reinicializar com genesis oficial e epoch sync",
13472
+ "nativePrune": "Comando de poda nativa do cliente executado",
13473
+ "dryDelete": "Delete is dry-run. Pass --execute and YSK_EXECUTE=1.",
13474
+ "deleted": "Node deleted",
13475
+ "leftoverRemoved": "Removed leftover {{path}}"
13476
+ },
13477
+ "create": "Criar nó",
13478
+ "wizard": {
13479
+ "title": "Criar nó",
13480
+ "back": "Voltar",
13481
+ "next": "Seguinte",
13482
+ "install": "Instalar",
13483
+ "mainnetWarn": "A rede principal precisa de muito disco livre (ETH costuma ser 800 GiB+). Recomenda-se testnet.",
13484
+ "mainnetAck": "Compreendo o risco de disco e slashing. Continuar na rede principal.",
13485
+ "heavyWarn": "Esta cadeia é pesada (muito disco e IOPS altos). Solana na rede principal costuma precisar de 2 TiB+.",
13486
+ "memory": "Limite de memória (p. ex. 4g)",
13487
+ "cpus": "Limite de CPU (p. ex. 2.0)",
13488
+ "dataPath": "Caminho de dados (opcional)",
13489
+ "rpcPort": "Porto RPC (opcional)",
13490
+ "stepOf": "Step {{n}} / {{total}}",
13491
+ "stepChain": "Chain",
13492
+ "stepNetwork": "Network",
13493
+ "stepProfile": "Profile",
13494
+ "stepSummary": "Summary",
13495
+ "needDocker": "Docker Engine is not installed. Install it first — this button stays disabled.",
13496
+ "diskNeed": "This profile needs about {{need}} · free {{free}}",
13497
+ "diskShort": "Not enough free disk for this chain / network / profile",
13498
+ "limitNone": "No limit",
13499
+ "rpcDefault": "Default",
13500
+ "customPath": "Use a custom data path",
13501
+ "installConfirmTitle": "Install this node?",
13502
+ "installConfirmDesc": "{{chain}} · {{network}} · {{profile}}. About {{disk}} of disk. The image pull can take a long time.",
13503
+ "installC1": "Several gigabytes of images may be downloaded.",
13504
+ "installC2": "You can cancel the panel task; already-pulled images are not deleted automatically.",
13505
+ "lowDiskAcked": "Free disk is below the recommended size. You confirmed create anyway; sync may stop if the disk fills.",
13506
+ "diskNeedNetwork": "Default (Minimal) for this network needs about {{need}} · free {{free}}",
13507
+ "diskShortDetail": "Need {{need}} · free {{free}} · short {{short}}",
13508
+ "needCustomPath": "Enter an absolute data path",
13509
+ "previewId": "Node id",
13510
+ "previewCompose": "Compose project",
13511
+ "profileSeeAbout": "What each profile means is on the About tab.",
13512
+ "dockerAbout": "Docker Engine is required to install and start nodes.",
13513
+ "dockerAboutOk": "Docker Engine is installed.",
13514
+ "dockerAboutMissing": "Docker Engine is not installed. Open Docker to install it.",
13515
+ "rewriteCompose": "Rewrite compose",
13516
+ "rewriteComposeTitle": "Rewrite compose.yml from the current adapter?",
13517
+ "rewriteComposeDesc": "Overwrites the generated compose for {{id}} using the shipped flags for this chain.",
13518
+ "chainMeta": "{{disk}} min · {{clients}} clients",
13519
+ "profileHint": {
13520
+ "minimal": "Smallest sync — light disk, not for staking.",
13521
+ "pruned": "Keeps recent history only (Pruned). Smaller than archive, still usable for RPC.",
13522
+ "validator-ready": "Sized for a staking validator. Needs more disk than Minimal.",
13523
+ "rpc": "Public RPC node — not a staking validator."
13524
+ }
13525
+ },
13526
+ "actions": {
13527
+ "detail": "Detalhes",
13528
+ "start": "Iniciar",
13529
+ "stop": "Parar",
13530
+ "restart": "Reiniciar",
13531
+ "clear": "Limpar",
13532
+ "upgrade": "Atualizar",
13533
+ "clearConfirm": "Escreva o identificador da instância ou CLEAR",
13534
+ "prune": "Limpar imagens",
13535
+ "switchNetwork": "Mudar de rede",
13536
+ "removeUnit": "Também remover compose / o registo da instância",
13537
+ "restoreAfter": "Restaurar instantâneo após limpar",
13538
+ "delete": "Delete",
13539
+ "deleteTitle": "Delete {{id}}",
13540
+ "deleteDesc": "This removes the node from the panel.",
13541
+ "deleteC1": "Docker Compose is stopped and removed",
13542
+ "deleteC2": "Chain data on disk is deleted",
13543
+ "deleteC3": "The instance record is removed",
13544
+ "pruneTitle": "Prune unused images",
13545
+ "pruneDesc": "Type the instance id to prune unused Compose images for this node.",
13546
+ "pruneC1": "Unused images labelled for this Compose project are deleted.",
13547
+ "clearTitle": "Clear {{id}}",
13548
+ "clearC1": "Chain data on disk is deleted.",
13549
+ "clearC2": "The instance stays in the panel, stopped and empty.",
13550
+ "switchTitle": "Switch network",
13551
+ "switchC1": "The node is stopped and chain data is wiped before the new network is written."
13552
+ },
13553
+ "policy": {
13554
+ "label": "Política de atualização",
13555
+ "manual": "À mão",
13556
+ "notify": "Notificar",
13557
+ "auto-safe": "Automático (seguro)",
13558
+ "auto-all": "Automático (tudo)"
13559
+ },
13560
+ "logs": {
13561
+ "empty": "Ainda sem registos",
13562
+ "follow": "Seguir registos"
13563
+ },
13564
+ "compose": {
13565
+ "label": "Ficheiro Compose",
13566
+ "save": "Guardar compose"
13567
+ },
13568
+ "snapshot": {
13569
+ "action": "Restaurar instantâneo",
13570
+ "mithril": "O Cardano usa Mithril para restaurar instantâneos certificados.",
13571
+ "eth": "A rede principal Ethereum arranca com o checkpoint sync oficial do cliente de consenso. O EL continua com snap sync.",
13572
+ "ethEl": "Hoodi/Sepolia podem restaurar um arquivo EL ethPandaOps e depois fazer checkpoint-sync do CL.",
13573
+ "avax": "A Avalanche usa state-sync no perfil compose.",
13574
+ "near": "Os instantâneos tar gratuitos oficiais da NEAR foram retirados. Restaurar apaga dados e usa genesis oficial mais epoch sync.",
13575
+ "none": "Não há origem de instantâneo configurada para esta cadeia."
13576
+ },
13577
+ "stake": {
13578
+ "title": "Preparar staking (as chaves ficam consigo)",
13579
+ "offlineKeys": "Gere as chaves offline. O painel nunca as guarda.",
13580
+ "deposit": "Conclua o depósito / registo no launchpad oficial.",
13581
+ "withdrawal": "Defina você mesmo as credenciais de levantamento.",
13582
+ "monitor": "Vigie disco, pares e distintivos de atualização nesta página."
13583
+ },
13584
+ "alerts": {
13585
+ "diskTitle": "Disco do validador crítico",
13586
+ "diskBody": "O espaço livre no volume de dados do validador está criticamente baixo.",
13587
+ "upgradeTitle": "Atualização de validador disponível",
13588
+ "upgradeBody": "Um ou mais clientes de nó têm uma versão fixada mais recente.",
13589
+ "syncTitle": "O nó validador precisa de atenção",
13590
+ "syncBody": "Um nó está a sincronizar há mais de 6 horas ou reportou um erro.",
13591
+ "rollbackTitle": "Atualização de validador revertida",
13592
+ "rollbackBody": "A atualização de {{id}} falhou a verificação de saúde e foi revertida."
13593
+ },
13594
+ "upgrade": {
13595
+ "changelog": "Registo de alterações"
13596
+ },
13597
+ "readiness": {
13598
+ "dockerTitle": "Docker para nós validador",
13599
+ "dockerOk": "{{count}} instância(s) de validador; Docker está instalado",
13600
+ "dockerMissing": "Existem instâncias de validador mas o comando docker não foi encontrado"
13601
+ },
13602
+ "detail": {
13603
+ "status": "Status",
13604
+ "sync": "Sync",
13605
+ "peers": "Peers",
13606
+ "version": "Version",
13607
+ "access": "Access",
13608
+ "upgrade": "Updates",
13609
+ "upgradeHint": "How this node tracks client versions.",
13610
+ "network": "Network",
13611
+ "networkHint": "Switching network stops the node and clears chain data. Confirm under Clear data first.",
13612
+ "maintain": "Maintenance",
13613
+ "danger": "Clear data",
13614
+ "dangerHint": "Type the instance id or CLEAR. This deletes chain data on disk.",
13615
+ "compose": "Compose",
13616
+ "logs": "Logs"
13617
+ },
13618
+ "state": {
13619
+ "unknown": "Unknown",
13620
+ "stopped": "Stopped",
13621
+ "running": "Running",
13622
+ "syncing": "Syncing",
13623
+ "error": "Error",
13624
+ "starting": "Starting"
13625
+ },
13626
+ "profileHelp": {
13627
+ "title": "Profiles",
13628
+ "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.",
13629
+ "minimal": "Smallest disk. Use for testnets or a first install. Not a full history, and not for a live staking validator.",
13630
+ "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.",
13631
+ "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.",
13632
+ "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."
13633
+ },
13634
+ "software": {
13635
+ "engine": "Docker Engine",
13636
+ "engineDesc": "Validator nodes run as Compose projects. Install Docker here if it is missing. Image prune stays on the Docker page.",
13637
+ "client": "Client",
13638
+ "image": "Image",
13639
+ "present": "Local",
13640
+ "local": "Pulled",
13641
+ "missing": "Not pulled",
13642
+ "size": "Size",
13643
+ "usedBy": "Used by",
13644
+ "unused": "No instance",
13645
+ "pull": "Pull",
13646
+ "pulling": "Pull {{ref}}",
13647
+ "empty": "No pinned client images",
13648
+ "emptyDesc": "The catalog is empty. This should not happen.",
13649
+ "daemonDown": "Docker Engine is not running"
13650
+ }
11562
13651
  },
11563
13652
  "vnc": {
11564
13653
  "pageDesc": "Servidor e cliente VNC",
@@ -11804,7 +13893,23 @@
11804
13893
  "stackMissingShort": "Não instalado",
11805
13894
  "editClientTitle": "Editar cliente remoto",
11806
13895
  "editClientDesc": "Atualizar caminho, hosts e senha armazenada opcional.",
11807
- "clientUpdated": "Perfil do cliente atualizado"
13896
+ "clientUpdated": "Perfil do cliente atualizado",
13897
+ "rememberNeedPassword": "Digite uma senha primeiro.",
13898
+ "settingsNeedStack": "Esses padrões se aplicam quando TigerVNC (e XFCE, se selecionado) estão instalados. Instale-os primeiro na guia Instalar.",
13899
+ "clientNeedNovnc": "Abrir no navegador precisa de noVNC. Instale-o na guia Instalar antes de adicionar controles remotos que você espera abrir aqui.",
13900
+ "needXfceFirst": "Install XFCE first",
13901
+ "needSessionRunning": "Session is not running — start it first",
13902
+ "deleteKeepUserWarn": "The Linux user will stay on the host as an orphan. You must clean it up later.",
13903
+ "bindRfbLine": "RFB {{bind}} :{{port}}",
13904
+ "bindNovncLine": "noVNC 127.0.0.1:{{port}}",
13905
+ "bindNovncHint": "noVNC listens on localhost. The desktop is reached through this panel, not the public internet, unless RFB bind is all interfaces.",
13906
+ "hostnameBroken": "This host cannot resolve its own hostname ({{hostname}}). Session start will fail.",
13907
+ "hostnameFix": "Write hostname to /etc/hosts",
13908
+ "hostnameFixTitle": "Append this line to /etc/hosts?",
13909
+ "hostnameFixDesc": "{{line}}",
13910
+ "hostnameFixDone": "Hostname /etc/hosts updated",
13911
+ "startAfterCreateBlocked": "Disabled until the hostname resolves",
13912
+ "hostnameBrokenIdle": "Hostname {{hostname}} does not resolve on this host. Fix /etc/hosts before you create a session."
11808
13913
  },
11809
13914
  "vpn": {
11810
13915
  "pageDesc": "Servidor e cliente VPN",
@@ -11812,7 +13917,7 @@
11812
13917
  "tab": {
11813
13918
  "wireguard": "WireGuard",
11814
13919
  "openvpn": "OpenVPN",
11815
- "outline": "Meias Sombrias",
13920
+ "outline": "Shadowsocks",
11816
13921
  "client": "Cliente local",
11817
13922
  "software": "Programas",
11818
13923
  "monitor": "Monitor",
@@ -11935,6 +14040,21 @@
11935
14040
  "lanCidrs": "Redes LAN",
11936
14041
  "customCidr": "CIDR",
11937
14042
  "addCidr": "Adicionar"
11938
- }
14043
+ },
14044
+ "engineNotInstalled": "Este motor VPN não está instalado no anfitrião.",
14045
+ "serverNotListening": "A unidade do servidor não está ativa. UDP/TCP {{port}} pode estar fechado.",
14046
+ "installEngineFirst": "Instale o mecanismo VPN primeiro",
14047
+ "portHint": {
14048
+ "51820": "Porta de escuta padrão do WireGuard",
14049
+ "51821": "Porta de escuta alternativa do WireGuard",
14050
+ "51822": "Segunda porta de escuta alternativa do WireGuard"
14051
+ },
14052
+ "needServerRunning": "{{engine}} is not running — apply the server first",
14053
+ "engineSummarySoftware": "{{installed}} installed · {{running}} running",
14054
+ "privateKeyOnce": "The client private key is shown only here. Download or copy it now — it cannot be recovered later.",
14055
+ "showPrivateKey": "Show private key",
14056
+ "hidePrivateKey": "Hide private key",
14057
+ "deletePeerTitle": "Delete peer {{name}}?",
14058
+ "deletePeerDesc": "Remove {{name}} ({{address}}). The client disconnects immediately and the config cannot be restored."
11939
14059
  }
11940
14060
  }