ysk-server-shared 1.0.0 → 1.1.0

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 (766) 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/databases.d.ts +2 -0
  15. package/dist/databases.d.ts.map +1 -1
  16. package/dist/docker.d.ts +134 -0
  17. package/dist/docker.d.ts.map +1 -0
  18. package/dist/docker.js +94 -0
  19. package/dist/docker.js.map +1 -0
  20. package/dist/dto.d.ts +9 -0
  21. package/dist/dto.d.ts.map +1 -1
  22. package/dist/email-domain.d.ts +7 -0
  23. package/dist/email-domain.d.ts.map +1 -1
  24. package/dist/files.d.ts +18 -0
  25. package/dist/files.d.ts.map +1 -1
  26. package/dist/files.js +35 -1
  27. package/dist/files.js.map +1 -1
  28. package/dist/ftp.d.ts +3 -0
  29. package/dist/ftp.d.ts.map +1 -1
  30. package/dist/index.d.ts +2 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +2 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/migrate.d.ts +6 -0
  35. package/dist/migrate.d.ts.map +1 -1
  36. package/dist/migrate.js.map +1 -1
  37. package/dist/route-capabilities.d.ts +16 -0
  38. package/dist/route-capabilities.d.ts.map +1 -1
  39. package/dist/route-capabilities.js +132 -4
  40. package/dist/route-capabilities.js.map +1 -1
  41. package/dist/system.d.ts +4 -0
  42. package/dist/system.d.ts.map +1 -1
  43. package/dist/validators.d.ts +141 -0
  44. package/dist/validators.d.ts.map +1 -0
  45. package/dist/validators.js +109 -0
  46. package/dist/validators.js.map +1 -0
  47. package/locales/ar/agents.json +11 -1
  48. package/locales/ar/apache.json +5 -1
  49. package/locales/ar/audit.json +4 -1
  50. package/locales/ar/backups.json +20 -1
  51. package/locales/ar/btTracker.json +118 -39
  52. package/locales/ar/catalog.json +8 -8
  53. package/locales/ar/cdn.json +87 -1
  54. package/locales/ar/cli.json +4 -4
  55. package/locales/ar/common.json +8 -1
  56. package/locales/ar/cron.json +30 -1
  57. package/locales/ar/dashboard.json +21 -2
  58. package/locales/ar/db.json +58 -3
  59. package/locales/ar/dns.json +19 -1
  60. package/locales/ar/docker.json +247 -0
  61. package/locales/ar/email.json +47 -11
  62. package/locales/ar/errors.json +5 -2
  63. package/locales/ar/fail2ban.json +38 -13
  64. package/locales/ar/files.json +52 -10
  65. package/locales/ar/firewall.json +19 -10
  66. package/locales/ar/ftp.json +16 -1
  67. package/locales/ar/hostBrowse.json +35 -15
  68. package/locales/ar/listToolbar.json +2 -1
  69. package/locales/ar/login.json +12 -7
  70. package/locales/ar/logs.json +31 -2
  71. package/locales/ar/metrics.json +36 -1
  72. package/locales/ar/migrate.json +14 -1
  73. package/locales/ar/nav.json +11 -4
  74. package/locales/ar/network.json +25 -2
  75. package/locales/ar/notFound.json +6 -0
  76. package/locales/ar/notes.json +213 -61
  77. package/locales/ar/playbooks.json +1 -1
  78. package/locales/ar/projects.json +132 -11
  79. package/locales/ar/protection.json +70 -8
  80. package/locales/ar/publicFiles.json +14 -1
  81. package/locales/ar/rbac.json +15 -2
  82. package/locales/ar/readiness.json +33 -2
  83. package/locales/ar/redis.json +19 -1
  84. package/locales/ar/runtime.json +49 -2
  85. package/locales/ar/search.json +14 -10
  86. package/locales/ar/security.json +66 -7
  87. package/locales/ar/serviceExposure.json +18 -6
  88. package/locales/ar/services.json +61 -3
  89. package/locales/ar/software.json +2 -1
  90. package/locales/ar/softwareLifecycle.json +12 -2
  91. package/locales/ar/ssl.json +12 -1
  92. package/locales/ar/stackWizard.json +9 -2
  93. package/locales/ar/support.json +33 -17
  94. package/locales/ar/system.json +26 -2
  95. package/locales/ar/systemd.json +3 -1
  96. package/locales/ar/terminal.json +9 -1
  97. package/locales/ar/translation.json +2189 -295
  98. package/locales/ar/updates.json +75 -3
  99. package/locales/ar/users.json +19 -1
  100. package/locales/ar/validators.json +266 -0
  101. package/locales/ar/vnc.json +10 -1
  102. package/locales/ar/vpn.json +18 -3
  103. package/locales/bn/agents.json +11 -1
  104. package/locales/bn/apache.json +5 -1
  105. package/locales/bn/audit.json +4 -1
  106. package/locales/bn/backups.json +20 -1
  107. package/locales/bn/btTracker.json +118 -39
  108. package/locales/bn/catalog.json +5 -5
  109. package/locales/bn/cdn.json +87 -1
  110. package/locales/bn/cli.json +2 -2
  111. package/locales/bn/common.json +8 -1
  112. package/locales/bn/cron.json +30 -1
  113. package/locales/bn/dashboard.json +21 -2
  114. package/locales/bn/db.json +58 -3
  115. package/locales/bn/dns.json +19 -1
  116. package/locales/bn/docker.json +247 -0
  117. package/locales/bn/email.json +46 -10
  118. package/locales/bn/errors.json +5 -2
  119. package/locales/bn/fail2ban.json +26 -1
  120. package/locales/bn/files.json +52 -10
  121. package/locales/bn/firewall.json +17 -8
  122. package/locales/bn/ftp.json +16 -1
  123. package/locales/bn/hostBrowse.json +35 -15
  124. package/locales/bn/listToolbar.json +2 -1
  125. package/locales/bn/login.json +13 -8
  126. package/locales/bn/logs.json +31 -2
  127. package/locales/bn/metrics.json +36 -1
  128. package/locales/bn/migrate.json +14 -1
  129. package/locales/bn/nav.json +10 -3
  130. package/locales/bn/network.json +25 -2
  131. package/locales/bn/notFound.json +6 -0
  132. package/locales/bn/notes.json +183 -31
  133. package/locales/bn/projects.json +131 -10
  134. package/locales/bn/protection.json +64 -2
  135. package/locales/bn/publicFiles.json +14 -1
  136. package/locales/bn/rbac.json +15 -2
  137. package/locales/bn/readiness.json +32 -1
  138. package/locales/bn/redis.json +19 -1
  139. package/locales/bn/runtime.json +49 -2
  140. package/locales/bn/search.json +13 -9
  141. package/locales/bn/security.json +66 -7
  142. package/locales/bn/serviceExposure.json +18 -6
  143. package/locales/bn/services.json +60 -2
  144. package/locales/bn/software.json +2 -1
  145. package/locales/bn/softwareLifecycle.json +12 -2
  146. package/locales/bn/ssl.json +12 -1
  147. package/locales/bn/stackWizard.json +9 -2
  148. package/locales/bn/support.json +38 -22
  149. package/locales/bn/system.json +26 -2
  150. package/locales/bn/systemd.json +3 -1
  151. package/locales/bn/terminal.json +9 -1
  152. package/locales/bn/translation.json +2133 -239
  153. package/locales/bn/updates.json +75 -3
  154. package/locales/bn/users.json +19 -1
  155. package/locales/bn/validators.json +266 -0
  156. package/locales/bn/vnc.json +10 -1
  157. package/locales/bn/vpn.json +18 -3
  158. package/locales/en/agents.json +15 -5
  159. package/locales/en/apache.json +4 -0
  160. package/locales/en/audit.json +4 -1
  161. package/locales/en/backups.json +21 -2
  162. package/locales/en/btTracker.json +82 -3
  163. package/locales/en/cdn.json +102 -2
  164. package/locales/en/cli.json +7 -7
  165. package/locales/en/common.json +8 -1
  166. package/locales/en/cron.json +30 -1
  167. package/locales/en/dashboard.json +25 -6
  168. package/locales/en/db.json +64 -8
  169. package/locales/en/dns.json +19 -1
  170. package/locales/en/docker.json +247 -0
  171. package/locales/en/email.json +47 -11
  172. package/locales/en/errors.json +6 -3
  173. package/locales/en/fail2ban.json +31 -6
  174. package/locales/en/files.json +43 -1
  175. package/locales/en/firewall.json +10 -1
  176. package/locales/en/ftp.json +18 -3
  177. package/locales/en/hostBrowse.json +22 -2
  178. package/locales/en/listToolbar.json +2 -1
  179. package/locales/en/login.json +6 -1
  180. package/locales/en/logs.json +33 -4
  181. package/locales/en/metrics.json +37 -2
  182. package/locales/en/migrate.json +14 -1
  183. package/locales/en/nav.json +9 -2
  184. package/locales/en/network.json +25 -2
  185. package/locales/en/notFound.json +6 -0
  186. package/locales/en/notes.json +190 -38
  187. package/locales/en/projects.json +132 -11
  188. package/locales/en/protection.json +66 -3
  189. package/locales/en/publicFiles.json +14 -1
  190. package/locales/en/rbac.json +15 -2
  191. package/locales/en/readiness.json +30 -1
  192. package/locales/en/redis.json +19 -1
  193. package/locales/en/runtime.json +51 -3
  194. package/locales/en/search.json +4 -0
  195. package/locales/en/security.json +68 -9
  196. package/locales/en/serviceExposure.json +13 -1
  197. package/locales/en/services.json +60 -2
  198. package/locales/en/software.json +2 -1
  199. package/locales/en/softwareLifecycle.json +11 -1
  200. package/locales/en/ssl.json +12 -1
  201. package/locales/en/stackWizard.json +9 -2
  202. package/locales/en/support.json +17 -1
  203. package/locales/en/system.json +30 -6
  204. package/locales/en/systemd.json +2 -0
  205. package/locales/en/terminal.json +10 -2
  206. package/locales/en/translation.json +2074 -180
  207. package/locales/en/updates.json +49 -4
  208. package/locales/en/users.json +20 -1
  209. package/locales/en/validators.json +266 -0
  210. package/locales/en/vnc.json +16 -7
  211. package/locales/en/vpn.json +17 -2
  212. package/locales/es/agents.json +11 -1
  213. package/locales/es/apache.json +5 -1
  214. package/locales/es/audit.json +4 -1
  215. package/locales/es/backups.json +20 -1
  216. package/locales/es/btTracker.json +116 -37
  217. package/locales/es/catalog.json +6 -6
  218. package/locales/es/cdn.json +87 -1
  219. package/locales/es/cli.json +2 -2
  220. package/locales/es/common.json +8 -1
  221. package/locales/es/cron.json +30 -1
  222. package/locales/es/dashboard.json +21 -2
  223. package/locales/es/db.json +58 -3
  224. package/locales/es/dns.json +19 -1
  225. package/locales/es/docker.json +247 -0
  226. package/locales/es/email.json +46 -10
  227. package/locales/es/errors.json +5 -2
  228. package/locales/es/fail2ban.json +26 -1
  229. package/locales/es/files.json +51 -9
  230. package/locales/es/firewall.json +17 -8
  231. package/locales/es/ftp.json +16 -1
  232. package/locales/es/hostBrowse.json +33 -13
  233. package/locales/es/listToolbar.json +2 -1
  234. package/locales/es/login.json +12 -7
  235. package/locales/es/logs.json +31 -2
  236. package/locales/es/metrics.json +36 -1
  237. package/locales/es/migrate.json +14 -1
  238. package/locales/es/nav.json +11 -4
  239. package/locales/es/network.json +25 -2
  240. package/locales/es/notFound.json +6 -0
  241. package/locales/es/notes.json +190 -38
  242. package/locales/es/projects.json +131 -10
  243. package/locales/es/protection.json +64 -2
  244. package/locales/es/publicFiles.json +14 -1
  245. package/locales/es/rbac.json +15 -2
  246. package/locales/es/readiness.json +32 -1
  247. package/locales/es/redis.json +19 -1
  248. package/locales/es/runtime.json +49 -2
  249. package/locales/es/search.json +13 -9
  250. package/locales/es/security.json +66 -7
  251. package/locales/es/serviceExposure.json +18 -6
  252. package/locales/es/services.json +60 -2
  253. package/locales/es/software.json +2 -1
  254. package/locales/es/softwareLifecycle.json +12 -2
  255. package/locales/es/ssl.json +12 -1
  256. package/locales/es/stackWizard.json +9 -2
  257. package/locales/es/support.json +37 -21
  258. package/locales/es/system.json +26 -2
  259. package/locales/es/systemd.json +3 -1
  260. package/locales/es/terminal.json +9 -1
  261. package/locales/es/translation.json +2135 -241
  262. package/locales/es/updates.json +75 -3
  263. package/locales/es/users.json +19 -1
  264. package/locales/es/validators.json +266 -0
  265. package/locales/es/vnc.json +10 -1
  266. package/locales/es/vpn.json +18 -3
  267. package/locales/fr/agents.json +11 -1
  268. package/locales/fr/apache.json +5 -1
  269. package/locales/fr/audit.json +4 -1
  270. package/locales/fr/backups.json +20 -1
  271. package/locales/fr/btTracker.json +115 -36
  272. package/locales/fr/catalog.json +6 -6
  273. package/locales/fr/cdn.json +87 -1
  274. package/locales/fr/cli.json +3 -3
  275. package/locales/fr/common.json +8 -1
  276. package/locales/fr/cron.json +30 -1
  277. package/locales/fr/dashboard.json +21 -2
  278. package/locales/fr/db.json +58 -3
  279. package/locales/fr/dns.json +19 -1
  280. package/locales/fr/docker.json +247 -0
  281. package/locales/fr/email.json +44 -8
  282. package/locales/fr/errors.json +5 -2
  283. package/locales/fr/fail2ban.json +27 -2
  284. package/locales/fr/files.json +51 -9
  285. package/locales/fr/firewall.json +13 -4
  286. package/locales/fr/ftp.json +16 -1
  287. package/locales/fr/hostBrowse.json +32 -12
  288. package/locales/fr/listToolbar.json +2 -1
  289. package/locales/fr/login.json +11 -6
  290. package/locales/fr/logs.json +31 -2
  291. package/locales/fr/metrics.json +36 -1
  292. package/locales/fr/migrate.json +14 -1
  293. package/locales/fr/nav.json +11 -4
  294. package/locales/fr/network.json +25 -2
  295. package/locales/fr/notFound.json +6 -0
  296. package/locales/fr/notes.json +186 -34
  297. package/locales/fr/projects.json +129 -8
  298. package/locales/fr/protection.json +64 -2
  299. package/locales/fr/publicFiles.json +14 -1
  300. package/locales/fr/rbac.json +15 -2
  301. package/locales/fr/readiness.json +32 -1
  302. package/locales/fr/redis.json +20 -2
  303. package/locales/fr/runtime.json +49 -2
  304. package/locales/fr/search.json +11 -7
  305. package/locales/fr/security.json +66 -7
  306. package/locales/fr/serviceExposure.json +17 -5
  307. package/locales/fr/services.json +60 -2
  308. package/locales/fr/software.json +2 -1
  309. package/locales/fr/softwareLifecycle.json +12 -2
  310. package/locales/fr/ssl.json +12 -1
  311. package/locales/fr/stackWizard.json +9 -2
  312. package/locales/fr/support.json +37 -21
  313. package/locales/fr/system.json +26 -2
  314. package/locales/fr/systemd.json +3 -1
  315. package/locales/fr/terminal.json +9 -1
  316. package/locales/fr/translation.json +2119 -225
  317. package/locales/fr/updates.json +75 -3
  318. package/locales/fr/users.json +19 -1
  319. package/locales/fr/validators.json +266 -0
  320. package/locales/fr/vnc.json +10 -1
  321. package/locales/fr/vpn.json +17 -2
  322. package/locales/hi/agents.json +11 -1
  323. package/locales/hi/apache.json +5 -1
  324. package/locales/hi/audit.json +4 -1
  325. package/locales/hi/backups.json +20 -1
  326. package/locales/hi/btTracker.json +118 -39
  327. package/locales/hi/catalog.json +7 -7
  328. package/locales/hi/cdn.json +87 -1
  329. package/locales/hi/cli.json +1 -1
  330. package/locales/hi/common.json +8 -1
  331. package/locales/hi/cron.json +30 -1
  332. package/locales/hi/dashboard.json +21 -2
  333. package/locales/hi/db.json +58 -3
  334. package/locales/hi/dns.json +19 -1
  335. package/locales/hi/docker.json +247 -0
  336. package/locales/hi/email.json +46 -10
  337. package/locales/hi/errors.json +5 -2
  338. package/locales/hi/fail2ban.json +29 -4
  339. package/locales/hi/files.json +52 -10
  340. package/locales/hi/firewall.json +17 -8
  341. package/locales/hi/ftp.json +16 -1
  342. package/locales/hi/hostBrowse.json +35 -15
  343. package/locales/hi/listToolbar.json +2 -1
  344. package/locales/hi/login.json +13 -8
  345. package/locales/hi/logs.json +31 -2
  346. package/locales/hi/metrics.json +36 -1
  347. package/locales/hi/migrate.json +14 -1
  348. package/locales/hi/nav.json +11 -4
  349. package/locales/hi/network.json +25 -2
  350. package/locales/hi/notFound.json +6 -0
  351. package/locales/hi/notes.json +188 -36
  352. package/locales/hi/projects.json +132 -11
  353. package/locales/hi/protection.json +65 -3
  354. package/locales/hi/publicFiles.json +14 -1
  355. package/locales/hi/rbac.json +16 -3
  356. package/locales/hi/readiness.json +32 -1
  357. package/locales/hi/redis.json +19 -1
  358. package/locales/hi/runtime.json +49 -2
  359. package/locales/hi/search.json +14 -10
  360. package/locales/hi/security.json +66 -7
  361. package/locales/hi/serviceExposure.json +18 -6
  362. package/locales/hi/services.json +60 -2
  363. package/locales/hi/software.json +2 -1
  364. package/locales/hi/softwareLifecycle.json +12 -2
  365. package/locales/hi/ssl.json +12 -1
  366. package/locales/hi/stackWizard.json +9 -2
  367. package/locales/hi/support.json +36 -20
  368. package/locales/hi/system.json +26 -2
  369. package/locales/hi/systemd.json +3 -1
  370. package/locales/hi/terminal.json +9 -1
  371. package/locales/hi/translation.json +2146 -252
  372. package/locales/hi/updates.json +75 -3
  373. package/locales/hi/users.json +19 -1
  374. package/locales/hi/validators.json +266 -0
  375. package/locales/hi/vnc.json +10 -1
  376. package/locales/hi/vpn.json +19 -4
  377. package/locales/id/agents.json +11 -1
  378. package/locales/id/apache.json +5 -1
  379. package/locales/id/audit.json +4 -1
  380. package/locales/id/backups.json +20 -1
  381. package/locales/id/btTracker.json +116 -37
  382. package/locales/id/catalog.json +6 -6
  383. package/locales/id/cdn.json +87 -1
  384. package/locales/id/cli.json +2 -2
  385. package/locales/id/common.json +8 -1
  386. package/locales/id/cron.json +30 -1
  387. package/locales/id/dashboard.json +21 -2
  388. package/locales/id/db.json +58 -3
  389. package/locales/id/dns.json +19 -1
  390. package/locales/id/docker.json +247 -0
  391. package/locales/id/email.json +46 -10
  392. package/locales/id/errors.json +5 -2
  393. package/locales/id/fail2ban.json +26 -1
  394. package/locales/id/files.json +51 -9
  395. package/locales/id/firewall.json +15 -6
  396. package/locales/id/ftp.json +16 -1
  397. package/locales/id/hostBrowse.json +33 -13
  398. package/locales/id/listToolbar.json +2 -1
  399. package/locales/id/login.json +13 -8
  400. package/locales/id/logs.json +31 -2
  401. package/locales/id/metrics.json +36 -1
  402. package/locales/id/migrate.json +14 -1
  403. package/locales/id/nav.json +10 -3
  404. package/locales/id/network.json +25 -2
  405. package/locales/id/notFound.json +6 -0
  406. package/locales/id/notes.json +185 -33
  407. package/locales/id/projects.json +130 -9
  408. package/locales/id/protection.json +64 -2
  409. package/locales/id/publicFiles.json +14 -1
  410. package/locales/id/rbac.json +15 -2
  411. package/locales/id/readiness.json +32 -1
  412. package/locales/id/redis.json +19 -1
  413. package/locales/id/runtime.json +49 -2
  414. package/locales/id/search.json +13 -9
  415. package/locales/id/security.json +65 -6
  416. package/locales/id/serviceExposure.json +18 -6
  417. package/locales/id/services.json +60 -2
  418. package/locales/id/software.json +2 -1
  419. package/locales/id/softwareLifecycle.json +12 -2
  420. package/locales/id/ssl.json +12 -1
  421. package/locales/id/stackWizard.json +9 -2
  422. package/locales/id/support.json +36 -20
  423. package/locales/id/system.json +26 -2
  424. package/locales/id/systemd.json +3 -1
  425. package/locales/id/terminal.json +9 -1
  426. package/locales/id/translation.json +2125 -231
  427. package/locales/id/updates.json +75 -3
  428. package/locales/id/users.json +19 -1
  429. package/locales/id/validators.json +266 -0
  430. package/locales/id/vnc.json +10 -1
  431. package/locales/id/vpn.json +18 -3
  432. package/locales/ja/agents.json +11 -1
  433. package/locales/ja/apache.json +5 -1
  434. package/locales/ja/audit.json +4 -1
  435. package/locales/ja/backups.json +20 -1
  436. package/locales/ja/btTracker.json +118 -39
  437. package/locales/ja/catalog.json +10 -10
  438. package/locales/ja/cdn.json +87 -1
  439. package/locales/ja/cli.json +3 -3
  440. package/locales/ja/common.json +8 -1
  441. package/locales/ja/cron.json +30 -1
  442. package/locales/ja/dashboard.json +21 -2
  443. package/locales/ja/db.json +58 -3
  444. package/locales/ja/dns.json +19 -1
  445. package/locales/ja/docker.json +247 -0
  446. package/locales/ja/email.json +46 -10
  447. package/locales/ja/errors.json +5 -2
  448. package/locales/ja/fail2ban.json +26 -1
  449. package/locales/ja/files.json +51 -9
  450. package/locales/ja/firewall.json +17 -8
  451. package/locales/ja/ftp.json +16 -1
  452. package/locales/ja/hostBrowse.json +35 -15
  453. package/locales/ja/listToolbar.json +2 -1
  454. package/locales/ja/login.json +11 -6
  455. package/locales/ja/logs.json +31 -2
  456. package/locales/ja/metrics.json +36 -1
  457. package/locales/ja/migrate.json +14 -1
  458. package/locales/ja/nav.json +13 -6
  459. package/locales/ja/network.json +26 -3
  460. package/locales/ja/notFound.json +6 -0
  461. package/locales/ja/notes.json +194 -42
  462. package/locales/ja/projects.json +131 -10
  463. package/locales/ja/protection.json +64 -2
  464. package/locales/ja/publicFiles.json +14 -1
  465. package/locales/ja/rbac.json +15 -2
  466. package/locales/ja/readiness.json +32 -1
  467. package/locales/ja/redis.json +19 -1
  468. package/locales/ja/runtime.json +50 -3
  469. package/locales/ja/search.json +12 -8
  470. package/locales/ja/security.json +66 -7
  471. package/locales/ja/serviceExposure.json +18 -6
  472. package/locales/ja/services.json +60 -2
  473. package/locales/ja/software.json +2 -1
  474. package/locales/ja/softwareLifecycle.json +12 -2
  475. package/locales/ja/ssl.json +12 -1
  476. package/locales/ja/stackWizard.json +9 -2
  477. package/locales/ja/support.json +38 -22
  478. package/locales/ja/system.json +26 -2
  479. package/locales/ja/systemd.json +3 -1
  480. package/locales/ja/terminal.json +9 -1
  481. package/locales/ja/translation.json +2152 -258
  482. package/locales/ja/updates.json +75 -3
  483. package/locales/ja/users.json +19 -1
  484. package/locales/ja/validators.json +266 -0
  485. package/locales/ja/vnc.json +10 -1
  486. package/locales/ja/vpn.json +18 -3
  487. package/locales/ko/agents.json +11 -1
  488. package/locales/ko/apache.json +5 -1
  489. package/locales/ko/audit.json +4 -1
  490. package/locales/ko/backups.json +20 -1
  491. package/locales/ko/btTracker.json +118 -39
  492. package/locales/ko/catalog.json +8 -8
  493. package/locales/ko/cdn.json +87 -1
  494. package/locales/ko/cli.json +2 -2
  495. package/locales/ko/common.json +8 -1
  496. package/locales/ko/cron.json +30 -1
  497. package/locales/ko/dashboard.json +21 -2
  498. package/locales/ko/db.json +58 -3
  499. package/locales/ko/dns.json +19 -1
  500. package/locales/ko/docker.json +247 -0
  501. package/locales/ko/email.json +46 -10
  502. package/locales/ko/errors.json +5 -2
  503. package/locales/ko/fail2ban.json +37 -12
  504. package/locales/ko/files.json +51 -9
  505. package/locales/ko/firewall.json +18 -9
  506. package/locales/ko/ftp.json +16 -1
  507. package/locales/ko/hostBrowse.json +35 -15
  508. package/locales/ko/listToolbar.json +2 -1
  509. package/locales/ko/login.json +10 -5
  510. package/locales/ko/logs.json +31 -2
  511. package/locales/ko/metrics.json +36 -1
  512. package/locales/ko/migrate.json +14 -1
  513. package/locales/ko/nav.json +11 -4
  514. package/locales/ko/network.json +25 -2
  515. package/locales/ko/notFound.json +6 -0
  516. package/locales/ko/notes.json +204 -52
  517. package/locales/ko/playbooks.json +1 -1
  518. package/locales/ko/projects.json +132 -11
  519. package/locales/ko/protection.json +67 -5
  520. package/locales/ko/publicFiles.json +14 -1
  521. package/locales/ko/rbac.json +15 -2
  522. package/locales/ko/readiness.json +33 -2
  523. package/locales/ko/redis.json +19 -1
  524. package/locales/ko/runtime.json +49 -2
  525. package/locales/ko/search.json +13 -9
  526. package/locales/ko/security.json +66 -7
  527. package/locales/ko/serviceExposure.json +18 -6
  528. package/locales/ko/services.json +60 -2
  529. package/locales/ko/software.json +2 -1
  530. package/locales/ko/softwareLifecycle.json +12 -2
  531. package/locales/ko/ssl.json +12 -1
  532. package/locales/ko/stackWizard.json +9 -2
  533. package/locales/ko/support.json +36 -20
  534. package/locales/ko/system.json +26 -2
  535. package/locales/ko/systemd.json +3 -1
  536. package/locales/ko/terminal.json +9 -1
  537. package/locales/ko/translation.json +2171 -277
  538. package/locales/ko/updates.json +75 -3
  539. package/locales/ko/users.json +19 -1
  540. package/locales/ko/validators.json +266 -0
  541. package/locales/ko/vnc.json +10 -1
  542. package/locales/ko/vpn.json +19 -4
  543. package/locales/pt/agents.json +11 -1
  544. package/locales/pt/apache.json +5 -1
  545. package/locales/pt/audit.json +4 -1
  546. package/locales/pt/backups.json +20 -1
  547. package/locales/pt/btTracker.json +116 -37
  548. package/locales/pt/catalog.json +4 -4
  549. package/locales/pt/cdn.json +87 -1
  550. package/locales/pt/cli.json +2 -2
  551. package/locales/pt/common.json +8 -1
  552. package/locales/pt/cron.json +30 -1
  553. package/locales/pt/dashboard.json +21 -2
  554. package/locales/pt/db.json +58 -3
  555. package/locales/pt/dns.json +19 -1
  556. package/locales/pt/docker.json +247 -0
  557. package/locales/pt/email.json +46 -10
  558. package/locales/pt/errors.json +5 -2
  559. package/locales/pt/fail2ban.json +26 -1
  560. package/locales/pt/files.json +51 -9
  561. package/locales/pt/firewall.json +16 -7
  562. package/locales/pt/ftp.json +16 -1
  563. package/locales/pt/hostBrowse.json +35 -15
  564. package/locales/pt/listToolbar.json +2 -1
  565. package/locales/pt/login.json +14 -9
  566. package/locales/pt/logs.json +31 -2
  567. package/locales/pt/metrics.json +36 -1
  568. package/locales/pt/migrate.json +14 -1
  569. package/locales/pt/nav.json +10 -3
  570. package/locales/pt/network.json +25 -2
  571. package/locales/pt/notFound.json +6 -0
  572. package/locales/pt/notes.json +187 -35
  573. package/locales/pt/projects.json +129 -8
  574. package/locales/pt/protection.json +64 -2
  575. package/locales/pt/publicFiles.json +14 -1
  576. package/locales/pt/rbac.json +15 -2
  577. package/locales/pt/readiness.json +32 -1
  578. package/locales/pt/redis.json +19 -1
  579. package/locales/pt/runtime.json +49 -2
  580. package/locales/pt/search.json +11 -7
  581. package/locales/pt/security.json +66 -7
  582. package/locales/pt/serviceExposure.json +17 -5
  583. package/locales/pt/services.json +60 -2
  584. package/locales/pt/software.json +2 -1
  585. package/locales/pt/softwareLifecycle.json +12 -2
  586. package/locales/pt/ssl.json +12 -1
  587. package/locales/pt/stackWizard.json +9 -2
  588. package/locales/pt/support.json +36 -20
  589. package/locales/pt/system.json +26 -2
  590. package/locales/pt/systemd.json +3 -1
  591. package/locales/pt/terminal.json +9 -1
  592. package/locales/pt/translation.json +2125 -231
  593. package/locales/pt/updates.json +75 -3
  594. package/locales/pt/users.json +19 -1
  595. package/locales/pt/validators.json +266 -0
  596. package/locales/pt/vnc.json +10 -1
  597. package/locales/pt/vpn.json +17 -2
  598. package/locales/ur/agents.json +11 -1
  599. package/locales/ur/apache.json +5 -1
  600. package/locales/ur/audit.json +4 -1
  601. package/locales/ur/backups.json +20 -1
  602. package/locales/ur/btTracker.json +118 -39
  603. package/locales/ur/catalog.json +6 -6
  604. package/locales/ur/cdn.json +87 -1
  605. package/locales/ur/cli.json +2 -2
  606. package/locales/ur/common.json +8 -1
  607. package/locales/ur/cron.json +30 -1
  608. package/locales/ur/dashboard.json +21 -2
  609. package/locales/ur/db.json +58 -3
  610. package/locales/ur/dns.json +19 -1
  611. package/locales/ur/docker.json +247 -0
  612. package/locales/ur/email.json +46 -10
  613. package/locales/ur/errors.json +5 -2
  614. package/locales/ur/fail2ban.json +26 -1
  615. package/locales/ur/files.json +52 -10
  616. package/locales/ur/firewall.json +17 -8
  617. package/locales/ur/ftp.json +16 -1
  618. package/locales/ur/hostBrowse.json +35 -15
  619. package/locales/ur/listToolbar.json +2 -1
  620. package/locales/ur/login.json +13 -8
  621. package/locales/ur/logs.json +31 -2
  622. package/locales/ur/metrics.json +36 -1
  623. package/locales/ur/migrate.json +14 -1
  624. package/locales/ur/nav.json +10 -3
  625. package/locales/ur/network.json +25 -2
  626. package/locales/ur/notFound.json +6 -0
  627. package/locales/ur/notes.json +183 -31
  628. package/locales/ur/projects.json +131 -10
  629. package/locales/ur/protection.json +64 -2
  630. package/locales/ur/publicFiles.json +14 -1
  631. package/locales/ur/rbac.json +15 -2
  632. package/locales/ur/readiness.json +32 -1
  633. package/locales/ur/redis.json +19 -1
  634. package/locales/ur/runtime.json +49 -2
  635. package/locales/ur/search.json +13 -9
  636. package/locales/ur/security.json +66 -7
  637. package/locales/ur/serviceExposure.json +18 -6
  638. package/locales/ur/services.json +60 -2
  639. package/locales/ur/software.json +2 -1
  640. package/locales/ur/softwareLifecycle.json +12 -2
  641. package/locales/ur/ssl.json +12 -1
  642. package/locales/ur/stackWizard.json +9 -2
  643. package/locales/ur/support.json +37 -21
  644. package/locales/ur/system.json +26 -2
  645. package/locales/ur/systemd.json +3 -1
  646. package/locales/ur/terminal.json +9 -1
  647. package/locales/ur/translation.json +2134 -240
  648. package/locales/ur/updates.json +75 -3
  649. package/locales/ur/users.json +19 -1
  650. package/locales/ur/validators.json +266 -0
  651. package/locales/ur/vnc.json +10 -1
  652. package/locales/ur/vpn.json +19 -4
  653. package/locales/zh-CN/agents.json +11 -1
  654. package/locales/zh-CN/apache.json +6 -2
  655. package/locales/zh-CN/audit.json +4 -1
  656. package/locales/zh-CN/backups.json +20 -1
  657. package/locales/zh-CN/btTracker.json +82 -3
  658. package/locales/zh-CN/catalog.json +2 -2
  659. package/locales/zh-CN/cdn.json +87 -1
  660. package/locales/zh-CN/cli.json +5 -5
  661. package/locales/zh-CN/common.json +8 -1
  662. package/locales/zh-CN/cron.json +30 -1
  663. package/locales/zh-CN/dashboard.json +22 -3
  664. package/locales/zh-CN/db.json +59 -4
  665. package/locales/zh-CN/dns.json +19 -1
  666. package/locales/zh-CN/docker.json +247 -0
  667. package/locales/zh-CN/email.json +46 -10
  668. package/locales/zh-CN/errors.json +5 -2
  669. package/locales/zh-CN/fail2ban.json +31 -6
  670. package/locales/zh-CN/files.json +45 -3
  671. package/locales/zh-CN/firewall.json +11 -2
  672. package/locales/zh-CN/ftp.json +16 -1
  673. package/locales/zh-CN/hostBrowse.json +21 -1
  674. package/locales/zh-CN/listToolbar.json +2 -1
  675. package/locales/zh-CN/login.json +6 -1
  676. package/locales/zh-CN/logs.json +36 -7
  677. package/locales/zh-CN/metrics.json +36 -1
  678. package/locales/zh-CN/migrate.json +14 -1
  679. package/locales/zh-CN/nav.json +10 -3
  680. package/locales/zh-CN/network.json +26 -3
  681. package/locales/zh-CN/nginx.json +1 -1
  682. package/locales/zh-CN/notFound.json +6 -0
  683. package/locales/zh-CN/notes.json +177 -25
  684. package/locales/zh-CN/projects.json +128 -7
  685. package/locales/zh-CN/protection.json +64 -2
  686. package/locales/zh-CN/publicFiles.json +14 -1
  687. package/locales/zh-CN/rbac.json +15 -2
  688. package/locales/zh-CN/readiness.json +33 -2
  689. package/locales/zh-CN/redis.json +19 -1
  690. package/locales/zh-CN/runtime.json +50 -3
  691. package/locales/zh-CN/search.json +5 -1
  692. package/locales/zh-CN/security.json +66 -7
  693. package/locales/zh-CN/serviceExposure.json +13 -1
  694. package/locales/zh-CN/services.json +60 -2
  695. package/locales/zh-CN/software.json +2 -1
  696. package/locales/zh-CN/softwareLifecycle.json +12 -2
  697. package/locales/zh-CN/ssl.json +12 -1
  698. package/locales/zh-CN/stackWizard.json +9 -2
  699. package/locales/zh-CN/support.json +18 -2
  700. package/locales/zh-CN/system.json +27 -3
  701. package/locales/zh-CN/systemd.json +3 -1
  702. package/locales/zh-CN/terminal.json +9 -1
  703. package/locales/zh-CN/translation.json +2040 -146
  704. package/locales/zh-CN/updates.json +75 -3
  705. package/locales/zh-CN/users.json +19 -1
  706. package/locales/zh-CN/validators.json +266 -0
  707. package/locales/zh-CN/vnc.json +10 -1
  708. package/locales/zh-CN/vpn.json +19 -4
  709. package/locales/zh-HK/agents.json +17 -7
  710. package/locales/zh-HK/apache.json +6 -2
  711. package/locales/zh-HK/audit.json +4 -1
  712. package/locales/zh-HK/backups.json +21 -2
  713. package/locales/zh-HK/btTracker.json +86 -7
  714. package/locales/zh-HK/catalog.json +2 -2
  715. package/locales/zh-HK/cdn.json +89 -3
  716. package/locales/zh-HK/cli.json +15 -15
  717. package/locales/zh-HK/common.json +8 -1
  718. package/locales/zh-HK/cron.json +34 -5
  719. package/locales/zh-HK/dashboard.json +25 -6
  720. package/locales/zh-HK/db.json +65 -10
  721. package/locales/zh-HK/dns.json +19 -1
  722. package/locales/zh-HK/docker.json +247 -0
  723. package/locales/zh-HK/email.json +61 -25
  724. package/locales/zh-HK/errors.json +6 -3
  725. package/locales/zh-HK/fail2ban.json +32 -7
  726. package/locales/zh-HK/files.json +47 -5
  727. package/locales/zh-HK/firewall.json +13 -4
  728. package/locales/zh-HK/ftp.json +18 -3
  729. package/locales/zh-HK/hostBrowse.json +22 -2
  730. package/locales/zh-HK/listToolbar.json +2 -1
  731. package/locales/zh-HK/login.json +7 -2
  732. package/locales/zh-HK/logs.json +40 -11
  733. package/locales/zh-HK/metrics.json +38 -3
  734. package/locales/zh-HK/migrate.json +13 -0
  735. package/locales/zh-HK/nav.json +12 -5
  736. package/locales/zh-HK/network.json +30 -7
  737. package/locales/zh-HK/nginx.json +2 -2
  738. package/locales/zh-HK/notFound.json +6 -0
  739. package/locales/zh-HK/notes.json +228 -76
  740. package/locales/zh-HK/projects.json +142 -21
  741. package/locales/zh-HK/protection.json +65 -3
  742. package/locales/zh-HK/publicFiles.json +16 -3
  743. package/locales/zh-HK/rbac.json +15 -2
  744. package/locales/zh-HK/readiness.json +35 -4
  745. package/locales/zh-HK/redis.json +22 -4
  746. package/locales/zh-HK/runtime.json +58 -11
  747. package/locales/zh-HK/search.json +5 -1
  748. package/locales/zh-HK/security.json +77 -18
  749. package/locales/zh-HK/serviceExposure.json +13 -1
  750. package/locales/zh-HK/services.json +61 -3
  751. package/locales/zh-HK/software.json +2 -1
  752. package/locales/zh-HK/softwareLifecycle.json +12 -2
  753. package/locales/zh-HK/ssl.json +13 -2
  754. package/locales/zh-HK/stackWizard.json +10 -3
  755. package/locales/zh-HK/support.json +22 -6
  756. package/locales/zh-HK/system.json +30 -6
  757. package/locales/zh-HK/systemd.json +9 -7
  758. package/locales/zh-HK/terminal.json +10 -2
  759. package/locales/zh-HK/translation.json +2238 -344
  760. package/locales/zh-HK/uiInline.json +3 -3
  761. package/locales/zh-HK/updates.json +76 -4
  762. package/locales/zh-HK/users.json +20 -2
  763. package/locales/zh-HK/validators.json +266 -0
  764. package/locales/zh-HK/vnc.json +16 -7
  765. package/locales/zh-HK/vpn.json +23 -8
  766. package/package.json +1 -1
@@ -130,7 +130,17 @@
130
130
  "labelStderr": "stderr",
131
131
  "labelAckCli": "confirmação + CLI JSON",
132
132
  "labelStdoutBody": "Corpo padrão da CLI",
133
- "resultOuterHint": "O resultado externo é CLI --json stdout."
133
+ "resultOuterHint": "O resultado externo é CLI --json stdout.",
134
+ "statusFlowTitle": "Fluxo de status",
135
+ "statusFlow": "Registrado apenas → online → obsoleto (>60 anos) → offline (desconectado). O filtro “Offline” está desconectado.",
136
+ "colSession": "UUID da sessão",
137
+ "copySession": "Copiar UUID de sessão para cluster/CLI --session",
138
+ "staleFor": "Invisível {{age}}",
139
+ "commandTitle": "Enfileirar um comando para esta sessão",
140
+ "historyTitleShort": "Abrir histórico de comandos (somente leitura)",
141
+ "expEdge": "No limite:",
142
+ "noteAllowlist": "Agent tool calls must pass the allowlist.",
143
+ "noteRbacCap": "Agent role is capped at write-low."
134
144
  },
135
145
  "ai": {
136
146
  "status": {
@@ -248,7 +258,11 @@
248
258
  "cleanupConflicts": "Limpar resíduos de conflito",
249
259
  "cleanupConflictsTitle": "Limpar todos os resíduos de conflito?",
250
260
  "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"
261
+ "artifactRemovedOk": "Configuração residual removida",
262
+ "sslTerminatedUpstream": "TLS termina na frente do Nginx",
263
+ "removeArtifactHint": "Apaga só este conf residual em disco. Não elimina o projeto.",
264
+ "sourceOrphan": "Leftover",
265
+ "orphanSite": "Project gone"
252
266
  },
253
267
  "applyStatus": {
254
268
  "draft": "Rascunho",
@@ -285,7 +299,10 @@
285
299
  "project.publish": "Publicar Nginx",
286
300
  "project.suspend": "Suspender projeto",
287
301
  "software.install": "Instalar software",
288
- "software.update": "Atualizar software"
302
+ "software.update": "Atualizar software",
303
+ "backup.restore": "Backup restore",
304
+ "backup.run": "Backup run",
305
+ "backup.delete": "Backup deleted"
289
306
  }
290
307
  },
291
308
  "backups": {
@@ -419,20 +436,39 @@
419
436
  "remotePushSub": "Depois que o tar local for bem-sucedido, envie para SFTP, caminho local ou S3",
420
437
  "accessKey": "Chave de acesso",
421
438
  "secretKey": "Chave secreta",
422
- "overwriteConfirmHint": "Digite OVERWRITE para confirmar a substituição"
439
+ "overwriteConfirmHint": "Digite OVERWRITE para confirmar a substituição",
440
+ "testRemote": "Testar destino",
441
+ "testRemoteDone": "Sonda remota concluída",
442
+ "testRemoteFailed": "Sonda remota falhou",
443
+ "resticRepoPh": "Diretório de dados do painel / restic-repo",
444
+ "testDisabledHint": "Ative o envio remoto antes de testar.",
445
+ "identityId": "Identidade SSH de saída",
446
+ "identityHint": "Preferido. O mesmo cofre que /security SSH. A senha precisa de sshpass.",
447
+ "identityNone": "Nenhum – senha ou chave padrão",
448
+ "remotePathHint": "Relativo à casa do usuário remoto (ou chroot SFTP). “.” é aquela casa.",
449
+ "restoreFullTitle": "Substitua arquivos de projeto e bancos de dados deste arquivo — digite o nome do arquivo para confirmar",
450
+ "restoreWebTitle": "Restaure arquivos de sites apenas deste arquivo",
451
+ "previewTitle": "Visualizar restauração sem escrever",
452
+ "partialSkipped": "Parcial – alguns projetos ignorados",
453
+ "testRemoteHint": "Connects to the remote host and writes a small probe file. Not read-only.",
454
+ "skippedListHint": "These projects were skipped:",
455
+ "goLogs": "Open logs",
456
+ "goAbout": "Backup notes",
457
+ "skippedPendingOs": "Skipped — OS user / home not provisioned",
458
+ "latestFile": "Latest archive"
423
459
  },
424
460
  "btTracker": {
425
461
  "title": "Rastreador BT",
426
462
  "sub": "Self-hosted BitTorrent / WebTorrent tracker for file shares",
427
463
  "pageDesc": "Seed panel file shares over BitTorrent. Start the tracker, set a public announce host, then create BT shares in Files.",
428
464
  "status": "Status",
429
- "running": "Running",
430
- "stopped": "Stopped",
465
+ "running": "Correndo",
466
+ "stopped": "Parou",
431
467
  "installed": "Installed (bundled)",
432
468
  "start": "Start tracker",
433
469
  "stop": "Stop tracker",
434
- "refresh": "Refresh",
435
- "settings": "Settings",
470
+ "refresh": "Atualizar",
471
+ "settings": "Configurações",
436
472
  "httpPort": "HTTP / WebSocket port",
437
473
  "udpPort": "UDP port (0 = off)",
438
474
  "listenHost": "Listen host",
@@ -451,18 +487,18 @@
451
487
  "torrentsEmpty": "No announce traffic yet",
452
488
  "torrentsEmptyHint": "Create a file share with BitTorrent mode in Files. This table fills as peers announce and the server seeds.",
453
489
  "torrentsDesc": "Live swarm from the tracker, plus local seeder status for panel shares.",
454
- "colName": "Name",
490
+ "colName": "Nome",
455
491
  "colHash": "Info hash",
456
- "colSeeds": "Seeds",
457
- "colLeechers": "Leechers",
492
+ "colSeeds": "Sementes",
493
+ "colLeechers": "Sanguessugas",
458
494
  "colStatus": "Status",
459
495
  "announceUrls": "Announce URLs",
460
496
  "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",
497
+ "copy": "Cópia",
498
+ "copied": "Copiado",
499
+ "statsTorrents": "Torrentes",
500
+ "statsPeers": "Pares",
501
+ "statsAnnounces": "Anuncia",
466
502
  "statsJobs": "Active jobs",
467
503
  "openShares": "File shares",
468
504
  "needExecute": "Enable system-change permission (YSK_EXECUTE) to open ports and run production seeds.",
@@ -471,27 +507,27 @@
471
507
  "restoreSeeds": "Re-seed BT shares",
472
508
  "restoreSeedsHint": "Start tracker if needed and re-seed shares that still have a .torrent on disk.",
473
509
  "bundledNote": "Bundled with YSK Server (Node). No apt install/uninstall — Start/Stop manages the process.",
474
- "stackTitle": "Software",
510
+ "stackTitle": "Programas",
475
511
  "jobs": "Torrent jobs",
476
512
  "jobsEmpty": "No background torrent jobs",
477
513
  "jobsEmptyHint": "Large shares (≥128 MiB) build .torrent files in the background so the Files dialog stays responsive.",
478
514
  "jobsDesc": "Background create-torrent queue for large file or folder shares.",
479
- "colJob": "Job",
480
- "colShare": "Share",
515
+ "colJob": "Trabalho",
516
+ "colShare": "Compartilhar",
481
517
  "colJobStatus": "Job status",
482
518
  "colEnqueued": "Enqueued",
483
519
  "refreshJobs": "Refresh jobs",
484
- "tabOverview": "Overview",
485
- "tabTorrents": "Torrents",
486
- "tabJobs": "Jobs",
487
- "tabSettings": "Settings",
488
- "tabAbout": "About",
520
+ "tabOverview": "Visão geral",
521
+ "tabTorrents": "Torrentes",
522
+ "tabJobs": "Empregos",
523
+ "tabSettings": "Configurações",
524
+ "tabAbout": "Sobre",
489
525
  "heroRunning": "Tracker is live",
490
526
  "heroStopped": "Tracker is stopped",
491
527
  "heroRunningSub": "Peers can announce and discover seeds for panel shares.",
492
528
  "heroStoppedSub": "Start the tracker before sharing large files over BitTorrent.",
493
- "live": "Live",
494
- "liveOff": "Idle",
529
+ "live": "Ao vivo",
530
+ "liveOff": "Parado",
495
531
  "quickStart": "Quick start",
496
532
  "quickStartDesc": "Three steps to share files over BitTorrent.",
497
533
  "step1Title": "Set public announce host",
@@ -500,28 +536,28 @@
500
536
  "step2Hint": "Open port exposure if peers are off this host.",
501
537
  "step3Title": "Create a BT share",
502
538
  "step3Hint": "In Files → Share, choose BitTorrent or both.",
503
- "stepDone": "Done",
504
- "stepTodo": "Todo",
505
- "networkCard": "Network",
539
+ "stepDone": "Feito",
540
+ "stepTodo": "Pendência",
541
+ "networkCard": "Rede",
506
542
  "networkCardDesc": "Where the tracker listens and what host appears in magnets.",
507
- "seederCard": "Seeder",
543
+ "seederCard": "Semeador",
508
544
  "seederCardDesc": "In-process WebTorrent seeder limits and peer ports.",
509
- "lifecycleCard": "Lifecycle",
545
+ "lifecycleCard": "Vida útil",
510
546
  "lifecycleCardDesc": "Boot behaviour and how the service is packaged.",
511
547
  "pid": "PID",
512
- "port": "Port",
548
+ "port": "Porta",
513
549
  "announceHost": "Announce host",
514
550
  "goSettings": "Open settings",
515
551
  "searchTorrents": "Search name or hash…",
516
- "filterAll": "All",
517
- "filterSeeding": "Seeding",
518
- "filterOther": "Other",
552
+ "filterAll": "Todos",
553
+ "filterSeeding": "Semeando",
554
+ "filterOther": "Outro",
519
555
  "noMatch": "No torrents match your filter",
520
- "seedStatusSeeding": "Seeding",
521
- "seedStatusPending": "Pending",
522
- "seedStatusError": "Error",
523
- "seedStatusStopped": "Stopped",
524
- "seedStatusNone": "None",
556
+ "seedStatusSeeding": "Semeando",
557
+ "seedStatusPending": "Pendente",
558
+ "seedStatusError": "Erro",
559
+ "seedStatusStopped": "Parou",
560
+ "seedStatusNone": "Nenhum",
525
561
  "notesTitle": "Service notes",
526
562
  "exposureTitle": "Network access",
527
563
  "protoHttp": "HTTP",
@@ -538,14 +574,93 @@
538
574
  "udpPortClassic": "6969 · Classic",
539
575
  "portSuggest8000": "8000 · Recommended",
540
576
  "saveOkRestart": "Salvo – reinicie o rastreador para aplicar portas",
541
- "announceHostUnset": ""
577
+ "announceHostUnset": "Não definido",
578
+ "tabTrackers": "Rastreadores",
579
+ "addTorrent": "Adicionar torrent",
580
+ "addTorrentTitle": "Adicionar torrent",
581
+ "addTorrentHint": "Carregue um .torrent ou cole um ímã. Escolha uma pasta Arquivos. O WebTorrent baixa arquivos e sementes ausentes quando concluído.",
582
+ "dropTorrent": "Solte um .torrent aqui",
583
+ "chooseFile": "ou escolha um arquivo",
584
+ "magnetLabel": "Ímã",
585
+ "magnetPlaceholder": "ímã:?xt=urna:btih:…",
586
+ "inspect": "Ler",
587
+ "extraTrackersPreview": "Também anunciará para {{n}} rastreadores extras",
588
+ "saveLocation": "Salvar localização",
589
+ "saveRootPublic": "Arquivos públicos",
590
+ "newFolder": "Nova pasta",
591
+ "destPreview": "Escreverei para",
592
+ "startDownload": "Iniciar transferência",
593
+ "filterDownloading": "Baixando",
594
+ "filterPaused": "Pausado",
595
+ "filterError": "Erro",
596
+ "emptyDrop": "Solte um .torrent aqui ou escolha um arquivo",
597
+ "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.",
598
+ "pause": "Pausa",
599
+ "resume": "Retomar",
600
+ "openFolder": "Abrir pasta",
601
+ "remove": "Remover",
602
+ "removeKeep": "Remover, manter arquivos",
603
+ "removeDelete": "Remover e excluir arquivos",
604
+ "removeConfirm": "Remover este torrent da biblioteca?",
605
+ "kindShare": "Compartilhar",
606
+ "filesInTorrent": "arquivos",
607
+ "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.",
608
+ "extraTrackersEmpty": "Sem rastreadores extras. Adicione URLs de anúncio HTTP(S), UDP ou WS(S) para que este host possa encontrar pares.",
609
+ "extraTrackerAdd": "Adicionar",
610
+ "extraTrackerUrl": "Anunciar URL",
611
+ "extraTrackerApply": "Aplicar às sementes atuais",
612
+ "extraTrackerApplyOk": "Rastreadores extras aplicados",
613
+ "extraEnabled": "Sobre",
614
+ "extraTrackerBad": "O URL deve começar com http://, https://, udp://, ws:// ou wss://",
615
+ "extraTrackerDup": "Já listado",
616
+ "extraTrackerLimit": "Máximo de 32 rastreadores extras",
617
+ "addOk": "Adicionado à biblioteca",
618
+ "savedTo": "Salvar",
619
+ "folderEmpty": "Sem subpastas",
620
+ "needTorrentFile": "Escolha um arquivo .torrent",
621
+ "torrentTooBig": ".torrent maior que 8 MiB",
622
+ "seedStatusDownloading": "Baixando",
623
+ "seedStatusChecking": "Verificando",
624
+ "seedStatusPaused": "Pausado",
625
+ "seedStatusQueued": "Na fila",
626
+ "swarmLeftover": "O Tracker tem {{count}} anúncio(s) fora da biblioteca (origem distinta da lista de torrents)",
627
+ "addSourceSection": "Origem",
628
+ "addSourceFile": "Ficheiro",
629
+ "addSourceMagnet": "Ímã",
630
+ "previewSection": "Pré-visualização",
631
+ "saveRoot": "Raiz",
632
+ "clearFile": "Limpar ficheiro",
633
+ "extraTrackersTitle": "Announce extra",
634
+ "extraTrackersEmptyTitle": "Ainda sem trackers",
635
+ "extraEnabledCount": "{{count}} ativos",
636
+ "extraApplyHint": "Ative pelo menos um para aplicar às sementes atuais",
637
+ "destMode": "Utilização desta pasta",
638
+ "seedExisting": "Semear ficheiros existentes",
639
+ "downloadNewFolder": "Descarregar para uma pasta nova",
640
+ "destFileConflict": "Já existe o ficheiro {{name}}. Escolha outra pasta ou semeie o ficheiro existente se coincidir.",
641
+ "waitingPeers": "A aguardar pares. Se os ficheiros já estão neste anfitrião, adicione de novo e escolha semear existentes.",
642
+ "stopTitle": "Pare o rastreador – a propagação e os downloads serão interrompidos",
643
+ "stopDesc": "A execução de torrents para de anunciar. Os peers se desconectam até você iniciar o rastreador novamente.",
644
+ "fillPublicHost": "Usar {{host}}",
645
+ "fillPublicHostTitle": "Preencha o nome do host do painel atual como o host do anúncio público",
646
+ "listenHostHint": "0.0.0.0 listens on every address. Prefer 127.0.0.1 unless peers must reach this host.",
647
+ "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.",
648
+ "bindLoopback": "127.0.0.1 only",
649
+ "bindAll": "0.0.0.0 (all)",
650
+ "seederPortMin": "Peer port start",
651
+ "seederPortMax": "Peer port end",
652
+ "statsLibrary": "Library",
653
+ "statsLibraryHint": "Torrents in the panel library / file shares",
654
+ "statsTrackerLeftover": "Tracker leftover",
655
+ "statsTrackerLeftoverHint": "Tracker announce hashes that are not library rows",
656
+ "statsAnnouncesHint": "Announce requests seen by the tracker process"
542
657
  },
543
658
  "catalog": {
544
659
  "sw": {
545
660
  "vsftpd": "vsftpd (FTPS)",
546
661
  "db_util": "db-util (banco de dados de usuário FTP)",
547
662
  "nginx": "Nginx",
548
- "certbot": "Certbot (vamos criptografar)",
663
+ "certbot": "Certbot (Let's Encrypt)",
549
664
  "mysql_client": "Cliente MySQL/MariaDB",
550
665
  "mysql_server": "Servidor MySQL",
551
666
  "mariadb_server": "Servidor MariaDB",
@@ -555,8 +670,8 @@
555
670
  "redis_server": "Servidor Redis",
556
671
  "ufw": "Firewall UFW",
557
672
  "fail2ban": "fail2ban",
558
- "postfix": "Pós-fixo",
559
- "dovecot": "Pombal",
673
+ "postfix": "Postfix",
674
+ "dovecot": "Dovecot",
560
675
  "opendkim": "OpenDKIM",
561
676
  "pdns_server": "PowerDNS",
562
677
  "git": "Git",
@@ -565,7 +680,7 @@
565
680
  "python": "Python",
566
681
  "go": "Go",
567
682
  "rust": "Rust",
568
- "chromium": "Cromo / Cromo"
683
+ "chromium": "Chromium / Chrome"
569
684
  },
570
685
  "php": {
571
686
  "session": "Sessão",
@@ -689,7 +804,93 @@
689
804
  "deleteNodeDesc": "Exclui o nó CDN \"{{name}}\".",
690
805
  "deleteSiteDesc": "Exclui site CDN \"{{name}}\".",
691
806
  "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"
807
+ "deleteSiteC2": "As configurações nginx aplicadas podem precisar de limpeza separada ou reaplicação",
808
+ "statOnline": "Online",
809
+ "statOffline": "Off-line {{n}}",
810
+ "statHitRate": "Taxa de acerto {{v}}",
811
+ "hitNoStats": "Ainda sem estatísticas de bordo",
812
+ "loopbackOriginBlocked": "Não aplica o origin de loopback {{url}} a um bordo remoto. Defina um origin alcançável.",
813
+ "applyFailedHint": "Falha ao aplicar — veja as notas abaixo",
814
+ "applyStatus": {
815
+ "draft": "Rascunho",
816
+ "planned": "Planeado",
817
+ "applying": "A aplicar",
818
+ "applied": "Aplicado",
819
+ "failed": "Falhou",
820
+ "partial": "Parcial"
821
+ },
822
+ "drain": "Ralo",
823
+ "drainTitle": "Pare de enviar novo tráfego CDN para esta borda",
824
+ "drainDesc": "Drenar “{{name}}”? As conexões existentes permanecem até terminarem.",
825
+ "drainLastTitle": "Esta é a última vantagem – o dreno deixará todos os locais sem borda",
826
+ "drainLastDesc": "“{{name}}” é a única aresta. Drene-o e todos os sites não terão vantagem.",
827
+ "clearDrainTitle": "Aceite novo tráfego nesta borda novamente",
828
+ "clearDrainDesc": "Limpar dreno em “{{name}}”?",
829
+ "deleteNodeTitle": "Exclua esta borda CDN",
830
+ "deleteLastNodeTitle": "Exclua a última borda – todos os sites não terão borda",
831
+ "purge": "Purga",
832
+ "previewTitle": "Visualizar configuração do nginx (sem gravação)",
833
+ "writeConfTitle": "Escreva arquivos de configuração do edge nginx",
834
+ "applyEdgesTitle": "Aplique este site às bordas (escreve nginx)",
835
+ "purgeTitle": "Limpar cache nas bordas",
836
+ "dnsSyncTitle": "Gravar registros DNS CDN",
837
+ "probeDnsTitle": "Sondar bordas e DNS (somente leitura)",
838
+ "distSslTitle": "Copiar materiais TLS para bordas",
839
+ "leIssueTitle": "Emita um certificado Let’s Encrypt e distribua-o",
840
+ "deleteSiteTitle": "Exclua este site CDN",
841
+ "siteOpConfirmGeneric": "Executar esta ação em “{{name}}”?",
842
+ "siteOpConfirmDesc": "Site “{{name}}” · {{action}}. Isso pode alterar o nginx, DNS ou certificados.",
843
+ "siteOpConfirm": {
844
+ "apply": "Aplicar este site às bordas?",
845
+ "render": "Escreva a configuração do nginx para este site?",
846
+ "purge": "Limpar cache deste site?",
847
+ "dns-sync": "Sincronizar DNS para este site?",
848
+ "dist": "Distribuir TLS para bordas?",
849
+ "issue": "Problema Vamos criptografar e distribuir?"
850
+ },
851
+ "pillNodesSites": "{{n}} nós · {{s}} locais",
852
+ "statHit": "Taxa de acerto",
853
+ "hitUnknown": "Desconhecido",
854
+ "lastHealthHint": "Última sondagem {{at}} · {{ok}}",
855
+ "lastHealthNever": "Ainda não investigado – execute Probe",
856
+ "lastHealthFail": "falha na sonda",
857
+ "healthLoopNeedSites": "Adicione um site primeiro",
858
+ "nodeStatus": {
859
+ "online": "on-line",
860
+ "offline": "off-line",
861
+ "draining": "drenando",
862
+ "unknown": "desconhecido"
863
+ },
864
+ "statOnlineOf": "Online {{n}}/{{total}}",
865
+ "statDraining": "Draining {{n}}",
866
+ "localTest": "local / test",
867
+ "colRegion": "Region",
868
+ "previewOnlyNote": "Preview only — nothing was written to the edges.",
869
+ "statByRegion": "Region: ",
870
+ "statByApply": "Apply status: ",
871
+ "col": {
872
+ "origin": "Origin",
873
+ "edges": "Edges",
874
+ "apply": "Apply",
875
+ "dns": "DNS",
876
+ "edgesOnline": "Edges online / applied",
877
+ "dnsRr": "CDN DNS records"
878
+ },
879
+ "mode": {
880
+ "origin_pull": "Origin pull",
881
+ "reverse_proxy": "Reverse proxy",
882
+ "static_edge": "Static edge"
883
+ },
884
+ "dnsStrategy": {
885
+ "multi_a": "Multiple A records",
886
+ "cname": "CNAME",
887
+ "geo": "Geo"
888
+ },
889
+ "edgesOnlineApplied": "{{online}}/{{total}} online · {{applied}} applied",
890
+ "hitMiss": "Hits {{hits}} / misses {{misses}}",
891
+ "cacheBytes": "Cache ≈ {{n}} B",
892
+ "hitRateUnknown": "No access log with cache status and no cache directory, so hit rate cannot be estimated.",
893
+ "offlineHint": "Offline — probe failed. Remove the node if it is leftover."
693
894
  },
694
895
  "cli": {
695
896
  "unknownCommand": "Comando desconhecido: {{command}}\nExecute `{{cli}} ajuda`",
@@ -1575,7 +1776,7 @@
1575
1776
  },
1576
1777
  "status": {
1577
1778
  "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"
1779
+ "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
1780
  }
1580
1781
  }
1581
1782
  }
@@ -1741,7 +1942,7 @@
1741
1942
  }
1742
1943
  },
1743
1944
  "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"
1945
+ "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
1946
  },
1746
1947
  "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
1948
  "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 +2111,7 @@
1910
2111
  "noData": "Sem dados",
1911
2112
  "input": "Entrada",
1912
2113
  "pleaseEnter": "Digite {{value}}",
2114
+ "required": "Obrigatório",
1913
2115
  "about": "Sobre",
1914
2116
  "operation": "Ações",
1915
2117
  "delete": "Excluir",
@@ -1996,7 +2198,13 @@
1996
2198
  "show": "Mostrar",
1997
2199
  "done": "Feito",
1998
2200
  "next": "Próximo",
1999
- "previous": "Anterior"
2201
+ "previous": "Anterior",
2202
+ "all": "Todos",
2203
+ "showPassword": "Mostrar",
2204
+ "hidePassword": "Esconder",
2205
+ "more": "Mais",
2206
+ "redirectedTo": "Aberto {{to}} (antes {{from}})",
2207
+ "unavailable": "Not available right now"
2000
2208
  },
2001
2209
  "cron": {
2002
2210
  "presetCdTrue": "aplicativo cd + verdadeiro (teste)",
@@ -2135,7 +2343,36 @@
2135
2343
  "sourceHost": "Hospedar",
2136
2344
  "noHostJobs": "Nenhum trabalho crontab neste escopo",
2137
2345
  "hostPartial": "Não foi possível ler o crontab de todos os usuários (é necessário root)",
2138
- "pendingInstall": "Instalação pendente ({{count}})"
2346
+ "pendingInstall": "Instalação pendente ({{count}})",
2347
+ "hourRange": "A hora deve ser 0–23.",
2348
+ "minuteRange": "O minuto deve ser 0–59.",
2349
+ "hoursCommon": "Horário comum",
2350
+ "hoursAll": "Todas as horas",
2351
+ "invalidExpr": "Não é uma expressão cron válida de 5 campos.",
2352
+ "needCommand": "O comando é necessário.",
2353
+ "needUser": "Escolha um projeto ou um usuário do sistema.",
2354
+ "hostCounts": "Linhas hospedeiras",
2355
+ "hostCountsVal": "{{ysk}} · outro {{other}} · total {{total}}",
2356
+ "hostYskYes": "linhas do painel presentes",
2357
+ "hostYskNo": "sem linhas de painel",
2358
+ "emptyHostCrontab": "Não há crontab para {{user}}.",
2359
+ "writtenOnHost": "Written",
2360
+ "registeredJobsChip": "Registered",
2361
+ "registeredVsWritten": "Registered in the panel vs written to host crontab",
2362
+ "installPreviewTitle": "Preview before installing to system crontab",
2363
+ "installPreviewDesc": "This merges the YSK block into the host crontab. Existing non-YSK lines stay.",
2364
+ "installPreviewMerge": "Install writes a YSK Server crontab merge block. It does not replace the whole crontab.",
2365
+ "installPreviewEmpty": "No pending managed jobs — install still refreshes the YSK block.",
2366
+ "editJobTitle": "Edit job",
2367
+ "editJobDesc": "Changes stay in the panel until you install to the system crontab.",
2368
+ "saveJob": "Save (management only)",
2369
+ "panelLines": "Panel lines",
2370
+ "otherLines": "Other lines",
2371
+ "totalLines": "Total",
2372
+ "writtenOnHostHint": "Lines already written to the host crontab",
2373
+ "registeredJobsHint": "Jobs registered in the panel (including pending install)",
2374
+ "pendingInstallCount": "{{n}} pending install",
2375
+ "systemJobBadge": "No project · system user"
2139
2376
  },
2140
2377
  "dashboard": {
2141
2378
  "title": "Painel",
@@ -2224,7 +2461,7 @@
2224
2461
  "runtime": "Tempo de execução",
2225
2462
  "runtimeHint": "Define a versão de tempo de execução padrão e o estilo de implantação",
2226
2463
  "runtimeVersion": "Versão de tempo de execução",
2227
- "versionHint": "Armazenado como projeto runtime_version",
2464
+ "versionHint": "Grava a definição de versão do ambiente de execução do projeto",
2228
2465
  "serverIpv4": "Servidor IPv4",
2229
2466
  "serverIpv4Hint": "DNS A / correio SPF",
2230
2467
  "serverIpv4Ph": "Este host IPv4 público",
@@ -2246,7 +2483,26 @@
2246
2483
  "noNotifs": "Sem notificações",
2247
2484
  "noNotifsDesc": "Alertas do sistema e todos aparecem aqui",
2248
2485
  "applyAuditTitle": "Aplicar auditoria de status",
2249
- "applyAuditDesc": "ok {{ok}} · avisar {{warn}} · ruim {{bad}}"
2486
+ "applyAuditDesc": "ok {{ok}} · avisar {{warn}} · ruim {{bad}}",
2487
+ "barTitle": "{{count}} alerta(s) do host",
2488
+ "levelCritical": "Crítico",
2489
+ "levelWarn": "Aviso",
2490
+ "levelInfo": "Informações",
2491
+ "colTitle": "Alerta",
2492
+ "colDetail": "Detalhe",
2493
+ "colSource": "Origem",
2494
+ "notifSearch": "Alertas de pesquisa",
2495
+ "notifAll": "Todos",
2496
+ "notifDismiss": "Esconder",
2497
+ "goFix": "Consertar",
2498
+ "needDomainFirst": "Introduza primeiro um domínio",
2499
+ "serviceAria": "{{name}}: {{state}}",
2500
+ "sev": {
2501
+ "ok": "OK",
2502
+ "warn": "Warning",
2503
+ "bad": "Problem"
2504
+ },
2505
+ "publicNo2fa": "This panel listens on all interfaces and your admin account has no 2FA."
2250
2506
  },
2251
2507
  "dataTable": {
2252
2508
  "empty": "Sem dados",
@@ -2471,7 +2727,37 @@
2471
2727
  "probe": "Sondar",
2472
2728
  "name": "Nome",
2473
2729
  "type": "Tipo",
2474
- "status": "Status"
2730
+ "status": {
2731
+ "healthy": "Saudável",
2732
+ "planned": "Planejado",
2733
+ "partial": "Parcial",
2734
+ "failed": "Fracassado",
2735
+ "draft": "Rascunho",
2736
+ "degraded": "Degradado",
2737
+ "applied": "Aplicado"
2738
+ },
2739
+ "fleetSession": "ID de sessão do agente de frota",
2740
+ "fleetSessionHint": "Optional. Paste a session UUID from /agents. Then this peer uses fleet (no SSH). Leave empty for SSH scp.",
2741
+ "fleetSessionPh": "UUID da sessão da página dos agentes",
2742
+ "engineNotInstalled": "{{engine}} não está instalado neste host — instale-o primeiro ou abra o mecanismo que está realmente em execução.",
2743
+ "fleetSessionNone": "Nenhum – use SSH",
2744
+ "fleetSessionOpenAgents": "Abra /agentes para registrar uma sessão",
2745
+ "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.",
2746
+ "bootstrap": "Inicialização",
2747
+ "fleetApply": "Aplicação de frota",
2748
+ "planTitle": "Gerar novamente o plano de cluster (sem alteração de host)",
2749
+ "writeFileTitle": "Grave arquivos de gerenciamento no diretório de dados do painel (simulação)",
2750
+ "probeLocalTitle": "Sondar apenas este host",
2751
+ "probeAllTitle": "Sonde cada membro registrado",
2752
+ "bootstrapTitle": "Instale o drop-in local e inicialize o primeiro nó",
2753
+ "remoteInstallPlanTitle": "Visualizar instalação remota (sem execução)",
2754
+ "downloadBundleTitle": "Baixe o pacote peer conf (.tar.gz)",
2755
+ "pushPlanTitle": "Visualizar push to peer (sem scp)",
2756
+ "fleetSyncPlanTitle": "Visualizar sincronização da frota (sem execução)",
2757
+ "fleetApplyTitle": "O enfileiramento se aplica aos membros da frota?",
2758
+ "redirectedFromCluster": "You were redirected here from /cluster. This is the database cluster tab.",
2759
+ "roleUnassigned": "No role assigned",
2760
+ "standaloneOtherEngines": "This engine is standalone. Other engines have clusters: {{names}}."
2475
2761
  },
2476
2762
  "console": {
2477
2763
  "dataBrowse": "Navegar pelos dados",
@@ -2511,7 +2797,9 @@
2511
2797
  "reloadConfig": "Recarregar configuração",
2512
2798
  "disableBoot": "Desativar na inicialização",
2513
2799
  "needRights": "Precisa de direitos de alteração do sistema e administrador. Os fracassos mostram razões – nunca finja o sucesso.",
2514
- "noneFetched": "- nenhum -"
2800
+ "noneFetched": "- nenhum -",
2801
+ "disableBootConfirm": "O mecanismo não iniciará após a reinicialização até que você o habilite novamente.",
2802
+ "affectsProjects": "Sites and services that use this engine will be interrupted."
2515
2803
  },
2516
2804
  "expiresLabel": "Expira",
2517
2805
  "importEntry": "Entrada: {{url}}",
@@ -2537,7 +2825,30 @@
2537
2825
  "unfreezeOk": "{{engine}} reparo concluído",
2538
2826
  "startAfterUnfreeze": "Iniciar serviço (executa automaticamente o plano de reparo em caso de falha)",
2539
2827
  "serviceDownTitle": "O serviço de banco de dados está inativo",
2540
- "serviceDownBody": "O serviço não é saudável"
2828
+ "serviceDownBody": "O serviço não é saudável",
2829
+ "emptyDbHostHasRows": "O host já possui bancos de dados que não estão nesta lista de plano de controle.",
2830
+ "hostHasUntracked": "{{count}} bancos de dados host não estão registrados no painel",
2831
+ "hostInventoryHint": "A tabela contém apenas linhas do plano de controle. Os nomes ativos vêm de SHOW DATABASES.",
2832
+ "adoptHostDb": "Cadastre-se {{name}}",
2833
+ "remoteTest": "Conexão de teste",
2834
+ "remoteTestDone": "Sondagem de host remoto concluída",
2835
+ "remoteTestOk": "alcançável",
2836
+ "remoteTestFail": "inacessível",
2837
+ "remoteNotChecked": "não testado",
2838
+ "registeredVsHostHint": "Registado no painel / encontrado no anfitrião",
2839
+ "dumpNeedRegistered": "Registe primeiro uma base de dados no painel",
2840
+ "dumpFirstDbTitle": "Exportar a primeira base registada",
2841
+ "importNeedRegistered": "Registe primeiro uma base de dados no painel",
2842
+ "importLatestNeedConfirm": "Precisa de confirmação — importa para a base registada",
2843
+ "adoptHostDbTitle": "Só regista o nome no plano de controlo; não altera dados do anfitrião.",
2844
+ "cleanupExpiredTempUsersTitle": "Remove utilizadores temporários do painel já expirados",
2845
+ "remoteDeleteTitle": "Remover apenas este registo",
2846
+ "remoteDeleteConfirm": "Remover o registo {{name}}? O servidor remoto não é alterado.",
2847
+ "registeredCount": "Registered",
2848
+ "hostCount": "On host",
2849
+ "registeredUsers": "Registered users",
2850
+ "registeredUsersHint": "Panel registrations only — not every MySQL account",
2851
+ "hostStillExists": "Still on host"
2541
2852
  },
2542
2853
  "dialogs": {
2543
2854
  "confirmDefault": "Confirmar",
@@ -2761,7 +3072,272 @@
2761
3072
  "aboutHealthTitle": "Integridade do serviço",
2762
3073
  "aboutHealthBody": "Use Ferramentas para testar o PowerDNS, reparar o bind e abrir a porta 53.",
2763
3074
  "aboutStackTitle": "Programas",
2764
- "aboutStackBody": "Verifique/atualize o pacote PowerDNS em Software."
3075
+ "aboutStackBody": "Verifique/atualize o pacote PowerDNS em Software.",
3076
+ "invalidZone": "Nome de zona inválido. Use um domínio real (por exemplo, example.com).",
3077
+ "invalidIpv4": "IPv4 inválido. Cada octeto deve ser de 0 a 255.",
3078
+ "mailZonesMissing": "Os domínios de e-mail não têm zona DNS aqui: {{domains}}.",
3079
+ "createMailZone": "Criar zona de correio",
3080
+ "createMailZoneNow": "Zona de correio criada {{domain}}",
3081
+ "healNeedInstall": "PowerDNS não está instalado - instale-o primeiro na guia Software",
3082
+ "applyNeedService": "O serviço DNS não está em execução – inicie ou instale-o antes de aplicar",
3083
+ "deleteZoneNeedName": "Exclua esta zona — você digitará o nome da zona para confirmar",
3084
+ "toolsFirewallTitle": "Firewall (UFW)",
3085
+ "toolsFirewallHint": "Permitir ou negar a porta 53. Não inicia nem para o PowerDNS.",
3086
+ "toolsUnitTitle": "Unidade PowerDNS",
3087
+ "toolsUnitHint": "Unidade systemd pdns — iniciar, parar, reiniciar, recarregar.",
3088
+ "installConfirmTitle": "Instalar o PowerDNS?",
3089
+ "installConfirmDesc": "Instala pdns-server e escreve a configuração gerida. Precisa de root e YSK_EXECUTE=1.",
3090
+ "installConfirmConsequence": "Após instalar e iniciar, o PowerDNS liga a porta 53.",
3091
+ "installPort53Busy": "A porta 53 já tem um ouvinte. O PowerDNS pode falhar a ligar até esse processo ser parado ou reparado.",
3092
+ "installPort53BusyConsequence": "Repare a ligação ou pare o outro ouvinte antes de esperar respostas na 53.",
3093
+ "createZoneNeedValid": "Enter a valid zone name and IPv4 address"
3094
+ },
3095
+ "docker": {
3096
+ "title": "Docker",
3097
+ "subtitle": "Instale e controle o motor Docker, contentores, imagens, projetos Compose e disco neste anfitrião.",
3098
+ "refresh": "Atualizar",
3099
+ "notInstalled": "O Docker Engine não está instalado. Instale docker.io e docker-compose-v2 nesta página.",
3100
+ "protected": "Protegido",
3101
+ "pruneConfirm": "Escreva PRUNE para confirmar a limpeza de volume ou do sistema",
3102
+ "settingsHint": "Apenas um subconjunto seguro de daemon.json. Aplicar escreve o ficheiro e reinicia docker.service.",
3103
+ "cli": {
3104
+ "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]"
3105
+ },
3106
+ "tab": {
3107
+ "overview": "Visão geral",
3108
+ "containers": "Contentores",
3109
+ "images": "Imagens",
3110
+ "compose": "Compose",
3111
+ "volumes": "Volumes",
3112
+ "networks": "Redes",
3113
+ "prune": "Limpar",
3114
+ "settings": "Definições",
3115
+ "about": "Sobre"
3116
+ },
3117
+ "col": {
3118
+ "engine": "Motor",
3119
+ "containers": "Contentores",
3120
+ "version": "Versão",
3121
+ "dataRoot": "Diretório de dados",
3122
+ "disk": "Disco",
3123
+ "validators": "Pilhas de validador",
3124
+ "name": "Nome",
3125
+ "image": "Imagem",
3126
+ "status": "Estado",
3127
+ "ports": "Portos",
3128
+ "managed": "Gerido pelo painel",
3129
+ "size": "Tamanho",
3130
+ "driver": "Controlador",
3131
+ "type": "Tipo",
3132
+ "reclaimable": "Recuperável"
3133
+ },
3134
+ "state": {
3135
+ "up": "Ativo",
3136
+ "down": "Parado",
3137
+ "running": "Running",
3138
+ "exited": "Exited",
3139
+ "restarting": "Restarting",
3140
+ "restartingCount": "Restarting · {{n}} times",
3141
+ "paused": "Paused",
3142
+ "created": "Created",
3143
+ "dead": "Dead",
3144
+ "removing": "Removing",
3145
+ "unknown": "Unknown"
3146
+ },
3147
+ "actions": {
3148
+ "start": "Iniciar",
3149
+ "stop": "Parar",
3150
+ "restart": "Reiniciar",
3151
+ "remove": "Remover",
3152
+ "logs": "Registos",
3153
+ "inspect": "Inspecionar",
3154
+ "exec": "Exec (versão)",
3155
+ "run": "Executar imagem",
3156
+ "pull": "Obter",
3157
+ "up": "Subir",
3158
+ "down": "Descer",
3159
+ "createVolume": "Criar volume",
3160
+ "createNetwork": "Criar rede",
3161
+ "pruneContainers": "Limpar contentores",
3162
+ "pruneImages": "Limpar imagens",
3163
+ "pruneVolumes": "Limpar volumes",
3164
+ "pruneSystem": "Limpeza do sistema",
3165
+ "startEngine": "Iniciar motor",
3166
+ "stopEngine": "Parar motor",
3167
+ "restartEngine": "Reiniciar motor",
3168
+ "applyDaemon": "Aplicar definições do motor"
3169
+ },
3170
+ "empty": {
3171
+ "containers": "Sem contentores",
3172
+ "images": "Sem imagens",
3173
+ "compose": "Sem projetos Compose",
3174
+ "volumes": "Sem volumes",
3175
+ "networks": "Sem redes",
3176
+ "composeDesc": "Projects come from validator nodes or Compose files already on this host. This page does not accept arbitrary YAML uploads.",
3177
+ "composeCta": "Open validator nodes"
3178
+ },
3179
+ "logs": {
3180
+ "empty": "Ainda sem registos",
3181
+ "follow": "Follow"
3182
+ },
3183
+ "settings": {
3184
+ "logMaxSize": "Tamanho máximo do registo do contentor",
3185
+ "liveRestore": "Restauro em direto (manter contentores se o daemon reiniciar)",
3186
+ "mirrors": "Espelhos Registry (um URL por linha)",
3187
+ "insecure": "Registries sem cifra (um anfitrião por linha)"
3188
+ },
3189
+ "about": {
3190
+ "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-*.",
3191
+ "honesty": "Alterações no anfitrião precisam de root e YSK_EXECUTE=1. O predefinido é dry-run. Esta página não é Kubernetes.",
3192
+ "validators": "Abrir nós validador"
3193
+ },
3194
+ "alerts": {
3195
+ "daemonTitle": "O daemon Docker está parado",
3196
+ "daemonBody": "O Docker está instalado mas o docker.service não está ativo. As pilhas de validador não conseguem arrancar."
3197
+ },
3198
+ "errors": {
3199
+ "notInstalled": "O Docker não está instalado",
3200
+ "daemonDown": "O daemon Docker não está ativo",
3201
+ "needCompose": "É necessário docker compose (extensão v2)",
3202
+ "badImage": "Referência de imagem inválida",
3203
+ "badName": "Nome inválido",
3204
+ "badPort": "Publicação de porto inválida",
3205
+ "badEnv": "Variável de ambiente inválida",
3206
+ "badVolume": "Montagem de volume inválida",
3207
+ "badNetwork": "Rede inválida",
3208
+ "protectedNetwork": "Não é possível remover uma rede Docker integrada",
3209
+ "badRestart": "Política de reinício inválida",
3210
+ "badPrune": "Âmbito de limpeza inválido",
3211
+ "needPruneConfirm": "Limpar volume ou sistema exige confirm=PRUNE",
3212
+ "badDaemon": "Definição do motor inválida",
3213
+ "composeMissing": "Ficheiro Compose deste projeto não encontrado",
3214
+ "logsFailed": "Não foi possível ler os registos do contentor",
3215
+ "mutateFailed": "O comando Docker falhou",
3216
+ "engineFailed": "Não foi possível controlar o docker.service",
3217
+ "badExec": "O exec limita-se a binários e predefinições permitidos (sem shell nem TTY)",
3218
+ "uninstallBusy": "Pare os contentores geridos pelo painel (incluindo pilhas de validador) antes de desinstalar o Docker"
3219
+ },
3220
+ "notes": {
3221
+ "dryMutate": "Apenas dry-run. Passe --execute e YSK_EXECUTE=1 para alterar o anfitrião.",
3222
+ "dryPrune": "Pré-visualização da limpeza (não aplicada).",
3223
+ "dryEngine": "O controlo do motor é dry-run.",
3224
+ "dryDaemon": "Escreveria /etc/docker/daemon.json e reiniciaria o docker.service.",
3225
+ "daemonWrote": "daemon.json escrito",
3226
+ "start": "Contentor iniciado",
3227
+ "stop": "Contentor parado",
3228
+ "restart": "Contentor reiniciado",
3229
+ "remove": "Contentor removido",
3230
+ "ran": "Contentor iniciado a partir da imagem",
3231
+ "pulled": "Imagem obtida",
3232
+ "exec": "Exec permitido executado",
3233
+ "imageRemoved": "Imagem removida",
3234
+ "volumeCreated": "Volume criado",
3235
+ "volumeRemoved": "Volume removido",
3236
+ "networkCreated": "Rede criada",
3237
+ "networkRemoved": "Rede removida",
3238
+ "pruned": "Limpeza concluída",
3239
+ "compose": {
3240
+ "up": "Projeto Compose iniciado",
3241
+ "down": "Projeto Compose parado",
3242
+ "restart": "Projeto Compose reiniciado",
3243
+ "rm": "Compose project removed"
3244
+ },
3245
+ "engine": {
3246
+ "start": "docker.service iniciado",
3247
+ "stop": "docker.service parado",
3248
+ "restart": "docker.service reiniciado"
3249
+ }
3250
+ },
3251
+ "needEngineTitle": "Install Docker Engine first",
3252
+ "notInstalledValue": "Not installed",
3253
+ "nameHint": "Letters, digits, underscore, dot, hyphen (max 128)",
3254
+ "volPlaceholder": "my-data",
3255
+ "netPlaceholder": "my-net",
3256
+ "runPorts": "Publish ports",
3257
+ "runPortsHint": "host:container per line, e.g. 8080:80",
3258
+ "runEnv": "Environment",
3259
+ "runEnvHint": "KEY=value per line",
3260
+ "runRestart": "Restart policy",
3261
+ "runNetwork": "Network",
3262
+ "runVolumes": "Volumes",
3263
+ "runVolumesHint": "volume:dest per line",
3264
+ "runAdvancedHint": "For multi-service stacks use validator nodes or Compose files already on this host.",
3265
+ "daemonConfirmTitle": "Apply daemon settings?",
3266
+ "daemonConfirmDesc": "Writes daemon.json and restarts docker.service. All containers will be interrupted.",
3267
+ "ui": {
3268
+ "whatYouGet": "O que esta página faz",
3269
+ "whatYouGetLead": "Instale primeiro o Docker Engine. Depois pode executar um contentor, obter imagens e ver as pilhas Compose de validador já neste anfitrião.",
3270
+ "capEngine": "Motor",
3271
+ "capEngineDesc": "Instalação num clique de docker.io e docker-compose-v2. Inicie e pare o docker.service aqui.",
3272
+ "capWork": "Contentores e imagens",
3273
+ "capWorkDesc": "Escolha uma imagem comum, obtenha-a, execute-a e depois leia os registos ou inspecione o contentor.",
3274
+ "capStacks": "Pilhas de validador",
3275
+ "capStacksDesc": "Pilhas de vários serviços são projetos Compose de validador (yskval-*). Esta página não aceita YAML carregado.",
3276
+ "cardEngine": "Motor",
3277
+ "cardDisk": "Disco",
3278
+ "cardWork": "Neste anfitrião",
3279
+ "compose": "Compose",
3280
+ "cgroup": "cgroup",
3281
+ "used": "Usado",
3282
+ "free": "Livre",
3283
+ "running": "Em execução",
3284
+ "images": "Imagens",
3285
+ "volumes": "Volumes",
3286
+ "networks": "Redes",
3287
+ "goImages": "Imagens",
3288
+ "goValidators": "Nós validador",
3289
+ "imagePickHint": "Escolha uma imagem comum. Use Outra só quando precisar de outra referência.",
3290
+ "imageCustom": "Outra",
3291
+ "driver": "Controlador",
3292
+ "driverLocalOnly": "Este painel cria apenas volumes local.",
3293
+ "netDefaultDriver": "Novas redes usam o controlador bridge predefinido do Docker.",
3294
+ "pruneWhat": "O que remover",
3295
+ "pruneAck": "Compreendo que os dados não usados serão eliminados e não podem ser restaurados",
3296
+ "pruneAckDesc": "Limpar volumes ou o sistema não pode ser anulado. Contentores parados e imagens não usadas do âmbito escolhido são removidos.",
3297
+ "pruneNow": "Limpar agora",
3298
+ "useMirrors": "Usar espelhos de registo",
3299
+ "useInsecure": "Permitir registos sem cifra",
3300
+ "publishPorts": "Publicar portos no anfitrião",
3301
+ "attachVolume": "Anexar um volume",
3302
+ "setEnv": "Definir variáveis de ambiente",
3303
+ "defaultNet": "Predefinida",
3304
+ "mountPath": "Caminho de montagem",
3305
+ "restartNo": "Nunca",
3306
+ "restartUnless": "Salvo se parado",
3307
+ "restartAlways": "Sempre",
3308
+ "restartOnFail": "Em falha",
3309
+ "needAck": "Confirme antes de limpar",
3310
+ "scopeContainers": "Contentores parados",
3311
+ "scopeImages": "Imagens não usadas",
3312
+ "scopeVolumes": "Volumes não usados",
3313
+ "scopeBuilder": "Cache de construção",
3314
+ "scopeSystem": "Tudo o que não é usado",
3315
+ "noVolumesYet": "Ainda sem volumes — crie um no separador Volumes primeiro.",
3316
+ "customPort": "Outro porto do anfitrião",
3317
+ "customPortHost": "Porto do anfitrião",
3318
+ "customPortContainer": "Porto do contentor",
3319
+ "pctUsed": "{{n}}% usado",
3320
+ "customPortHint": "1–65535. Example: 9090 → 80.",
3321
+ "pickBridge": "Bridge network"
3322
+ },
3323
+ "deleteTitle": "Delete {{id}}",
3324
+ "deleteDesc": "This cannot be undone.",
3325
+ "deleteC1": "The resource is removed from this host.",
3326
+ "deleteComposeVal": "This is a validator stack — the validator instance is also deleted.",
3327
+ "pruneTitle": "Prune Docker resources",
3328
+ "pruneDesc": "Type PRUNE to confirm. Unused data cannot be restored.",
3329
+ "pruneC1": "Unused resources in the selected scope are deleted.",
3330
+ "pruneC2": "Volume and system prune permanently delete unused data volumes.",
3331
+ "pruneC3": "Stopped containers or unused images in this scope are removed.",
3332
+ "df": {
3333
+ "images": "Images",
3334
+ "containers": "Containers",
3335
+ "volumes": "Local volumes",
3336
+ "builder": "Build cache",
3337
+ "other": "Other"
3338
+ },
3339
+ "deleteRunningWarn": "This container is still running or restarting. It will be force-removed.",
3340
+ "stopEngineDesc": "This stops the Docker engine and all {{n}} container(s) on this host."
2765
3341
  },
2766
3342
  "email": {
2767
3343
  "title": "E-mail",
@@ -2812,7 +3388,7 @@
2812
3388
  "needExecute": "Precisa de YSK_EXECUTE",
2813
3389
  "viewQueue": "Ver fila",
2814
3390
  "flushQueue": "Liberar fila",
2815
- "queueHint": "Clique em Exibir fila para ler a fila local do Postfix",
3391
+ "queueHint": "Fila Postfix local. Ver é sonda de leitura; limpar exige YSK_EXECUTE.",
2816
3392
  "deleteThisId": "Excluir este ID",
2817
3393
  "queueEmpty": "Sem correio diferido",
2818
3394
  "queueEmptyHint": "Nenhuma mensagem adiada",
@@ -3081,7 +3657,8 @@
3081
3657
  "dmarcMissing": "DMARC ausente – altamente recomendado",
3082
3658
  "ptrBad": "DNS reverso PTR ausente ou incorreto – solicitação no provedor VPS",
3083
3659
  "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"
3660
+ "port25Unknown": "Status da porta 25 desconhecido – execute a verificação de conectividade",
3661
+ "dmarcUnpublished": "O DMARC é gerado no painel, mas ainda não foi publicado no DNS público"
3085
3662
  },
3086
3663
  "stack": {
3087
3664
  "tlsNote": "Certificados TLS via Let’s Encrypt para SMTP/IMAP",
@@ -3122,7 +3699,8 @@
3122
3699
  "postfixReloaded": "Postfix recarregado.",
3123
3700
  "postfixReloadFailed": "Falha ao recarregar o Postfix: {{detail}}",
3124
3701
  "dovecotApplied": "Escreveu o snippet Dovecot TLS e tentou recarregar.",
3125
- "dovecotSkipped": "Dovecot ignorado (não instalado ou doveconf indisponível)."
3702
+ "dovecotSkipped": "Dovecot ignorado (não instalado ou doveconf indisponível).",
3703
+ "dovecotSslOmitted": "O certificado de correio está faltando; escrevi ssl=no para que o Dovecot possa iniciar sem os arquivos LE."
3126
3704
  },
3127
3705
  "policyApplySystemHint": "Marque “aplicar ao sistema” para escrever mapas Postfix/Rspamd e recarregar;",
3128
3706
  "rateLimitAppliedNote": "Taxa de saída por hora e sinalizador antispam aplicados (quando a aplicação do sistema está ativada).",
@@ -3161,12 +3739,12 @@
3161
3739
  "deliverabilityDesc": "Verificações de PTR/DNS/porta 25",
3162
3740
  "dnsTodosDesc": "Copie e adicione em seu host DNS",
3163
3741
  "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",
3742
+ "warmupSuggest": "Sugestões de aquecimento",
3743
+ "writeSsoSkeleton": "Escrever o esqueleto SSO do Roundcube",
3744
+ "rateLimitPerHour": "Limite de mensagens por hora",
3745
+ "rateLimitGlobalHint": "O global usa o mínimo de cada domínio",
3746
+ "savePolicyWritten": "Gravado apenas no plano de controlo",
3747
+ "dnsblMultiIp": "RBL de várias IP",
3170
3748
  "webmailTool": "Software de webmail",
3171
3749
  "webmailToolRoundcube": "Cubo redondo (padrão)",
3172
3750
  "webmailToolSnappy": "SnappyMail (leve)",
@@ -3238,7 +3816,41 @@
3238
3816
  "mailboxEmptyTitle": "Ainda não há caixas de correio",
3239
3817
  "passwordMismatch": "As senhas não coincidem",
3240
3818
  "passwordTooShort": "A senha deve ter pelo menos 8 caracteres",
3241
- "mailboxUpdateNeedField": "Defina uma nova senha ou altere o status"
3819
+ "mailboxUpdateNeedField": "Defina uma nova senha ou altere o status",
3820
+ "catchallHint": "Partes locais desconhecidas vão para a caixa destino. Rascunho até aplicar.",
3821
+ "queueSearchPh": "Pesquisar ID, remetente ou destinatário…",
3822
+ "queueId": "ID da fila",
3823
+ "queueSender": "Remetente",
3824
+ "queueRecipients": "Destinatários",
3825
+ "queueSize": "Tamanho",
3826
+ "queueReason": "Motivo",
3827
+ "queueActive": "Ativo",
3828
+ "queueHeld": "Retido",
3829
+ "queueDeferred": "Adiado",
3830
+ "deleteQueueTitle": "Eliminar esta mensagem da fila?",
3831
+ "deleteQueueDesc": "Remover {{id}} da fila MTA local. Precisa de YSK_EXECUTE.",
3832
+ "openQueuePage": "Abrir fila de correio",
3833
+ "healthUnchecked": "Ainda não verificado",
3834
+ "dovecotFailedHint": "Dovecot failed. Open the Software tab for status; if the mail certificate is missing, issue it on the SSL page first.",
3835
+ "domainsListDesc": "Domínios de correio registrados neste host",
3836
+ "healthChecklist": "Lista {{score}}/100",
3837
+ "healthChecklistHint": "Pontuação da lista — DNS / PTR / porta 25 ainda não verificados",
3838
+ "healthLiveHint": "Pontuação da sonda ao vivo",
3839
+ "installWebmailTitle": "Crie o projeto de webmail compartilhado (primeira instalação)",
3840
+ "reinstallWebmailTitle": "Reconstruir/atualizar o projeto de webmail existente",
3841
+ "reinstallNeedInstall": "Instale o webmail primeiro",
3842
+ "dovecotFailedStatus": "Pombal é {{status}}. Abra a guia Software para o resumo da unidade.",
3843
+ "mailCertMissing": "Nenhum certificado para {{hosts}}. Emita-o na página SSL.",
3844
+ "mailCertPresent": "Um certificado de correio já foi emitido — este não é um problema de certificado ausente.",
3845
+ "webmailNeedCert": "Nenhum certificado para {{host}} — emita-o em SSL antes de forçar HTTPS.",
3846
+ "flushQueueEmpty": "A fila está vazia",
3847
+ "flushQueueNeedExecute": "A liberação da fila precisa de YSK_EXECUTE (permissão de execução do host)",
3848
+ "healthUncheckedHint": "DNS / PTR / porta 25 ainda não foram sondados.",
3849
+ "deliverabilityScore": "Pacote de entregabilidade",
3850
+ "opendkimNoReload": "O OpenDKIM não tem reload — use reinício após alterar chaves ou tabelas.",
3851
+ "opendkimNoReloadTitle": "systemctl reload opendkim não é suportado nesta pilha",
3852
+ "tlsRequestLeFor": "Request LE for {{host}}",
3853
+ "deliverabilityChecks": "Checks"
3242
3854
  },
3243
3855
  "errors": {
3244
3856
  "YSK_UNAUTHORIZED": "Não autorizado",
@@ -3279,7 +3891,9 @@
3279
3891
  "sessionExpired": "Sessão expirada; faça login novamente",
3280
3892
  "sessionIdle": "Tempo limite de inatividade; faça login novamente",
3281
3893
  "totpNotEnabled": "2FA não está ativado",
3282
- "totpSecretNoDataDir": "O segredo TOTP está criptografado, mas dataDir não está definido"
3894
+ "totpSecretNoDataDir": "O segredo TOTP está criptografado, mas dataDir não está definido",
3895
+ "mustChangePassword": "Defina uma nova senha antes de continuar",
3896
+ "policyNeedsOwn2fa": "Ative o 2FA para esta conta e confirme com um código TOTP antes de exigir 2FA para outras contas"
3283
3897
  },
3284
3898
  "http": {
3285
3899
  "notFoundRoute": "Não encontrado: {{method}} {{path}}",
@@ -3289,7 +3903,8 @@
3289
3903
  "unprocessable": "Solicitação rejeitada pelo servidor",
3290
3904
  "requestFailed": "Falha na solicitação ({{status}})",
3291
3905
  "jsonInvalid": "JSON inválido",
3292
- "internal": "Erro interno"
3906
+ "internal": "Erro interno",
3907
+ "payloadTooLarge": "O corpo do pedido é demasiado grande"
3293
3908
  },
3294
3909
  "YSK_HOST_BROWSE_SSRF": "Navegação no host bloqueada pela política de segurança",
3295
3910
  "YSK_HOST_BROWSE_SESSION": "Sessão de navegação do host não encontrada ou expirada",
@@ -3376,7 +3991,32 @@
3376
3991
  "reload": "fail2ban recarregado",
3377
3992
  "restart": "fail2ban reiniciado",
3378
3993
  "stop": "fail2ban parou"
3379
- }
3994
+ },
3995
+ "statWhitelist": "Lista de permissões",
3996
+ "invalidIp": "Insira um IPv4, IPv6 ou CIDR válido.",
3997
+ "whitelistPendingApply": "Salvo na lista de painéis. Pressione Aplicar política para escrever jail.local.",
3998
+ "ignoreipFile": "dataDir/fail2ban/ignoreip.txt",
3999
+ "jailsTabHint": "Situação das prisões ativas. Ative ou desative as prisões na guia Política.",
4000
+ "colJail": "Cadeia",
4001
+ "colEnabled": "Sobre",
4002
+ "serviceStateLine": "Unidade {{unit}} · {{state}} · inicialização {{boot}}",
4003
+ "jail": {
4004
+ "sshd": "Força bruta SSH",
4005
+ "nginxHttpAuth": "Autenticação HTTP Nginx",
4006
+ "nginxBotsearch": "Verificadores de scanner/bot Nginx",
4007
+ "nginxBadbots": "Nginx é conhecido por bots ruins",
4008
+ "nginxLimitReq": "Prisão com limite de taxa Nginx",
4009
+ "postfix": "Força bruta de correio Postfix",
4010
+ "dovecot": "Login de e-mail Dovecot",
4011
+ "recidive": "Ofensores reincidentes"
4012
+ },
4013
+ "cannotBanSelf": "Este é o host ou seu IP de login – adicione-o ao ignoreip em vez de banir",
4014
+ "suggestIgnoreHint": "IPs de administrador sugeridos (arquivo do painel somente até você aplicar a política):",
4015
+ "suggestIgnoreAdd": "Adicionar {{ip}}",
4016
+ "whitelistEmptyWarn": "A lista branca está vazia e as jails podem bloqueá-lo. Adicione o IP de início antes de aplicar ignoreip.",
4017
+ "suggestIgnoreLogin": "O seu IP de início {{ip}}",
4018
+ "applyIgnoreEmptyWarn": "Aplicar com lista branca vazia limpa o ignoreip",
4019
+ "applyIgnoreNeedConfirm": "Reescreve o ignoreip do jail e recarrega o fail2ban"
3380
4020
  },
3381
4021
  "featurePage": {
3382
4022
  "back": "Voltar"
@@ -3674,18 +4314,18 @@
3674
4314
  "shareTorrentFile": "Baixar .torrent",
3675
4315
  "shareSeedStatus": "Status de propagação",
3676
4316
  "shareBtStats": "Status do BitTorrent",
3677
- "btSeeds": "Seeds",
3678
- "btLeechers": "Leechers",
3679
- "btPeers": "Peers",
4317
+ "btSeeds": "Sementes",
4318
+ "btLeechers": "Sanguessugas",
4319
+ "btPeers": "Pares",
3680
4320
  "btUploadSpeed": "Velocidade de upload",
3681
4321
  "btDownloadSpeed": "Velocidade de download",
3682
- "btUploaded": "Uploaded",
3683
- "btDownloaded": "Downloaded",
3684
- "btRatio": "Ratio",
3685
- "btUpdatedAt": "Updated",
4322
+ "btUploaded": "Enviado",
4323
+ "btDownloaded": "Baixado",
4324
+ "btRatio": "Razão",
4325
+ "btUpdatedAt": "Atualizado",
3686
4326
  "btServerStats": "Semeador de servidor",
3687
4327
  "btClientStats": "Seu cliente",
3688
- "btSeeding": "Seeding",
4328
+ "btSeeding": "Semeando",
3689
4329
  "btPending": "Sementeira pendente",
3690
4330
  "btStopped": "Semente parada",
3691
4331
  "btError": "Erro de semente",
@@ -3699,7 +4339,49 @@
3699
4339
  "publicShareBtFailed": "Falha no WebTorrent: {{detail}}",
3700
4340
  "publicShareBtNeedMagnet": "Nenhum URI magnético para este compartilhamento",
3701
4341
  "publicShareBtUnsupported": "Este navegador não pode executar WebTorrent; use magnet ou .torrent",
3702
- "btNone": "—"
4342
+ "btNone": "—",
4343
+ "uploadStatusSkipped": "Ignorado",
4344
+ "uploadStatusCancelled": "Cancelado",
4345
+ "conflict": {
4346
+ "titleFile": "Já existe um item chamado “{{name}}”",
4347
+ "titleFolder": "Já existe uma pasta chamada “{{name}}”",
4348
+ "descFile": "Escolha o que fazer. Nada é substituído até escolher Substituir.",
4349
+ "descFolder": "Escolha o que fazer. Unir mantém a pasta existente e continua com o conteúdo.",
4350
+ "incoming": "A entrar",
4351
+ "existing": "Já está aqui",
4352
+ "kindFile": "Ficheiro",
4353
+ "kindFolder": "Pasta",
4354
+ "skip": "Ignorar",
4355
+ "skipHint": "Não adicionar este item",
4356
+ "keepBoth": "Manter os dois",
4357
+ "keepBothHint": "Guardar o item a entrar como {{name}}",
4358
+ "replace": "Substituir",
4359
+ "replaceHint": "Substituir o ficheiro existente. É guardada uma cópia de versão quando possível.",
4360
+ "replaceFolderHint": "Substitui ficheiros com o mesmo nome nesta pasta. Os outros ficam.",
4361
+ "merge": "Unir",
4362
+ "mergeHint": "Manter a pasta existente e adicionar os ficheiros a entrar",
4363
+ "applyAll": "Aplicar a todos os conflitos restantes",
4364
+ "applyAllHint": "Usar esta ação no resto deste arrastar ou transferência",
4365
+ "cancelRest": "Cancelar o resto",
4366
+ "progress": "{{current}} de {{total}}",
4367
+ "typeMismatch": "Já existe {{destKind}} chamado “{{name}}”. O que chega é {{incomingKind}}.",
4368
+ "skipped": "Ignorado",
4369
+ "cancelled": "Cancelado"
4370
+ },
4371
+ "emptyTrashTitle": "Lixo vazio?",
4372
+ "emptyTrashDesc": "Todos os arquivos na lixeira serão excluídos permanentemente. Isto não pode ser desfeito.",
4373
+ "purgeForeverDesc": "Este arquivo será excluído permanentemente. Isto não pode ser desfeito.",
4374
+ "webdavReissueUnchanged": "O ID do token não mudou após a reemissão — a gravação pode não ter persistido. Tente novamente.",
4375
+ "webdavDisableFailed": "O WebDAV ainda está ativado após a desativação — a gravação pode não ter persistido. Tente novamente.",
4376
+ "dirNamedLikeFile": "(pasta residual; o nome parece um ficheiro)",
4377
+ "webdavAfterEnable": "Disponível depois de ativar o WebDAV e emitir um token.",
4378
+ "webdavAlreadyOff": "WebDAV is already off",
4379
+ "deleteMore": " and {{n}} more",
4380
+ "unshareTitle": "Revoke this share?",
4381
+ "unshareDesc": "Revoke the link for {{name}} ({{url}}). The link stops working immediately.",
4382
+ "pillTrash": "{{count}} in trash",
4383
+ "pillSpace": "{{used}} used",
4384
+ "webdavTokenInactive": "Disabled — token #{{id}} is not active"
3703
4385
  },
3704
4386
  "firewall": {
3705
4387
  "profiles": {
@@ -3732,7 +4414,7 @@
3732
4414
  "notInstalled": "UFW não está instalado",
3733
4415
  "toolHintPrefix": "Ferramentas subjacentes:",
3734
4416
  "toolHintBody": "UFW = portas/regras permanentes · para resposta a ataques e uso de banimento automático",
3735
- "toolHintFail2ban": "fail2ban = banimentos temporários baseados em log",
4417
+ "toolHintfail2ban": "fail2ban = banimentos temporários baseados em log",
3736
4418
  "executeOffHint": "O sistema é desligado — o status é legível;",
3737
4419
  "tabs": {
3738
4420
  "rules": "Regras",
@@ -3740,7 +4422,7 @@
3740
4422
  "deny": "Negar IP permanente",
3741
4423
  "profiles": "Perfis",
3742
4424
  "about": "Sobre",
3743
- "services": "Services"
4425
+ "services": "Serviços"
3744
4426
  },
3745
4427
  "currentRules": "Regras atuais",
3746
4428
  "rulesSourceHint": "Regras numeradas UFW (status ufw numerado)",
@@ -3796,12 +4478,21 @@
3796
4478
  "servicesEmptyDesc": "Inicie um serviço gerenciado (web, FTPS, VPN, DB…) para preencher esta lista.",
3797
4479
  "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
4480
  "portsManualHint": "Regras manuais avançadas. Prefira a guia Serviços para software gerenciado.",
3799
- "colService": "Service",
3800
- "colMode": "Mode",
3801
- "colPorts": "Ports",
4481
+ "colService": "Serviço",
4482
+ "colMode": "Modo",
4483
+ "colPorts": "Portas",
3802
4484
  "colSync": "Status",
3803
- "synced": "Synced",
3804
- "syncNow": "Sync"
4485
+ "synced": "Sincronizado",
4486
+ "syncNow": "Sincronizar",
4487
+ "disableConfirmTitle": "Desativar o UFW?",
4488
+ "disableConfirmDesc": "A firewall do anfitrião deixará de filtrar o tráfego. Numa rede pública, o SSH e o painel podem ficar expostos.",
4489
+ "disableConfirmConsequence": "As regras de permitir/negar mantêm-se, mas só são aplicadas quando o UFW for reativado.",
4490
+ "toolHintFail2ban": "fail2ban = banimentos temporários baseados em log",
4491
+ "servicesUfwOff": "A UFW está desligada. Esta lista é a exposição desejada, não as regras que o host está aplicando.",
4492
+ "desiredOnlyUfwOff": "Desejado: {{mode}} · UFW desativado (não aplicado)",
4493
+ "syncNotApplied": "UFW desativado · não aplicado",
4494
+ "defaultNotApplied": "n/a (UFW desativado)",
4495
+ "ufwOffHint": "A entrada padrão não é aplicada enquanto o UFW está desligado"
3805
4496
  },
3806
4497
  "ftp": {
3807
4498
  "title": "Contas FTPS",
@@ -3936,7 +4627,22 @@
3936
4627
  "sftpRegister": "Chave de registro",
3937
4628
  "sftpAddedAt": "Adicionado {{time}}",
3938
4629
  "sftpTechSummary": "Detalhes técnicos (avançado)",
3939
- "sftpTechNote": "As chaves são gravadas no caminho gerenciado"
4630
+ "sftpTechNote": "As chaves são gravadas no caminho gerenciado",
4631
+ "filterProject": "Apenas contas FTP deste projeto",
4632
+ "clearProjectFilter": "Mostrar todas as contas",
4633
+ "vsftpdFailedHint": "vsftpd falhou. Abra a guia Serviço (listen e listen_ipv6 não podem ser SIM).",
4634
+ "tabService": "Serviço",
4635
+ "listenConflictLive": "Live vsftpd.conf tem listen={{v4}} e listen_ipv6={{v6}} - ambos SIM falharão ao iniciar.",
4636
+ "listenConflictNeedFix": "Corrija listen / listen_ipv6 primeiro (ambos não podem ser SIM) e depois aplique.",
4637
+ "fixListenIpv4": "Use apenas IPv4 (ouvir=SIM, ouvir_ipv6=NÃO)",
4638
+ "liveFileValue": "Arquive agora: {{value}}",
4639
+ "startBlockedFailed": "O serviço falhou – aplique uma configuração válida antes de iniciar",
4640
+ "ftpsNeedCert": "Escolha primeiro um domínio de certificado",
4641
+ "detectPublicIp": "Detectar IP público",
4642
+ "detectPublicIpTitle": "Preencha o primeiro IPv4 sem loopback deste host",
4643
+ "pasvIpRequired": "Defina um IP público PASV antes de aplicar (NAT/nuvem). Detete ou escreva um endereço.",
4644
+ "vsftpdFailedGeneric": "vsftpd failed. Open the Service tab for live settings and journal.",
4645
+ "stateFailed": "Failed to start"
3940
4646
  },
3941
4647
  "geo": {
3942
4648
  "continents": {
@@ -4181,26 +4887,26 @@
4181
4887
  "mediaNote": "Navegador real: o vídeo é transmitido; o áudio ainda não está conectado ao painel (fase 2).",
4182
4888
  "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
4889
  "resumeHint": "Retomar sessão anterior (guias {{count}})",
4184
- "resume": "Resume",
4185
- "resumeDismiss": "Dismiss",
4890
+ "resume": "Retomar",
4891
+ "resumeDismiss": "Liberar",
4186
4892
  "resumeDone": "Sessão retomada",
4187
4893
  "settingsSafety": "Segurança de navegação",
4188
4894
  "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",
4895
+ "safetyStrict": "Estrito",
4896
+ "safetyStandard": "Padrão",
4897
+ "safetyRelaxed": "Descontraído",
4192
4898
  "settingsBlockHosts": "Sufixos de host bloqueados",
4193
4899
  "settingsBlockHostsHint": "Um nome de host ou sufixo por linha (por exemplo, malware.test). As correspondências exatas e de sufixo são bloqueadas.",
4194
4900
  "settingsAllowDangerousDownloads": "Permitir downloads de alto risco (exe/scripts)",
4195
4901
  "settingsAudioBridge": "Conecte o áudio da página ao painel",
4196
4902
  "settingsAudioBridgeHint": "Os streams hospedam o áudio do Chrome neste navegador. Alguns sites precisam de um clique para desbloquear a reprodução.",
4197
- "downloads": "Downloads",
4903
+ "downloads": "Transferências",
4198
4904
  "downloadsEmpty": "Nenhum download nesta sessão",
4199
- "downloadReady": "Ready",
4200
- "downloadBlocked": "Blocked",
4201
- "downloadPending": "Pending",
4202
- "downloadFailed": "Failed",
4203
- "downloadSave": "Save",
4905
+ "downloadReady": "Preparar",
4906
+ "downloadBlocked": "Bloqueado",
4907
+ "downloadPending": "Pendente",
4908
+ "downloadFailed": "Fracassado",
4909
+ "downloadSave": "Salvar",
4204
4910
  "audioUnlock": "Ativar som",
4205
4911
  "audioUnlockHint": "Clique para desbloquear a reprodução de áudio nesta guia",
4206
4912
  "audioUnlocked": "Áudio desbloqueado",
@@ -4210,12 +4916,32 @@
4210
4916
  "audioNotBridged": "Áudio desligado",
4211
4917
  "audioNotBridgedHint": "Ative a ponte de áudio em Configurações para ouvir a página",
4212
4918
  "mediaPolicyTitle": "Mídia em navegador real",
4213
- "mediaVideoLabel": "Video",
4919
+ "mediaVideoLabel": "Vídeo",
4214
4920
  "mediaVideoDesc": "Renderizado no host e transmitido como quadros no painel.",
4215
- "mediaAudioLabel": "Audio",
4921
+ "mediaAudioLabel": "Áudio",
4216
4922
  "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."
4923
+ "mediaPolicyLabel": "Política",
4924
+ "mediaPolicyDesc": "Os downloads e a reprodução automática seguem as configurações de segurança e download acima.",
4925
+ "frameBlocked": "A página não pôde ser mostrada no quadro do painel.",
4926
+ "historyEmpty": "Não há histórico nesta sessão.",
4927
+ "bookmarksEmpty": "Ainda não há favoritos.",
4928
+ "closeSessionHint": "Limpa os cookies desta sessão de navegação. Os marcadores permanecem.",
4929
+ "bookmarkAdd": "Adicionar ou remover favorito",
4930
+ "bookmarkList": "Lista de favoritos",
4931
+ "envUnset": "não definido",
4932
+ "envPanelValue": "painel: {{value}}",
4933
+ "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.",
4934
+ "settingsDangerDlWarn": "Permite downloads de executáveis ​​e scripts através do navegador host. Confirme que você precisa disso.",
4935
+ "settingsDangerConfirmTitle": "Ativar uma configuração de navegação de alto risco?",
4936
+ "needUrl": "Introduza um URL acima para iniciar uma sessão.",
4937
+ "envColVar": "Variável",
4938
+ "envColHost": "Processo do anfitrião",
4939
+ "envColPanel": "Definição do painel",
4940
+ "envColEffective": "Efetivo",
4941
+ "engineBrowserNeedChrome": "Real browser (Chrome not installed)",
4942
+ "egressHint": "The target site sees this server’s outbound address ({{host}}), not your laptop. Cookies stay in the server session jar.",
4943
+ "closeNoSession": "No session yet",
4944
+ "resumeHintDetail": "Resume previous session ({{count}} tabs) · {{url}} · {{when}}"
4219
4945
  },
4220
4946
  "listToolbar": {
4221
4947
  "searchPlaceholder": "Procurar…",
@@ -4227,24 +4953,30 @@
4227
4953
  "activeFilters": "{{count}} filtros ativos",
4228
4954
  "noResults": "Nenhuma correspondência",
4229
4955
  "noResultsHint": "Experimente outra palavra-chave ou limpe os filtros.",
4230
- "searching": "Procurando…"
4956
+ "searching": "Procurando…",
4957
+ "emptyChip": "No items in this filter"
4231
4958
  },
4232
4959
  "logViewer": {
4233
4960
  "banIpTitle": "Banimento {{ip}} em Proteção"
4234
4961
  },
4235
4962
  "login": {
4236
- "title": "Faça login no servidor YSK",
4963
+ "title": "Iniciar sessão no YSK Server",
4237
4964
  "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.",
4965
+ "username": "Nome de utilizador",
4966
+ "password": "Palavra-passe",
4967
+ "submit": "Iniciar sessão",
4968
+ "failed": "Falha ao iniciar sessão. Verifique o nome de utilizador ou a palavra-passe.",
4242
4969
  "footer": "Um produto da YSK Limited",
4243
- "totpRequired": "2FA está habilitado para esta conta. Digite o código de 6 dígitos.",
4970
+ "totpRequired": "A 2FA está ativa nesta conta. Introduza o código de 6 dígitos.",
4244
4971
  "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"
4972
+ "totpHint": "Código de 6 dígitos da aplicação de autenticação",
4973
+ "submitting": "A iniciar sessão…",
4974
+ "sessionExpired": "Sessão expirada; inicie sessão novamente",
4975
+ "newPassword": "Nova senha",
4976
+ "newPasswordAgain": "Confirmar nova senha",
4977
+ "changePassword": "Alterar senha",
4978
+ "passwordMismatch": "As senhas não coincidem",
4979
+ "passwordChanged": "Senha atualizada"
4248
4980
  },
4249
4981
  "logs": {
4250
4982
  "catSystem": "Arquivos do sistema",
@@ -4371,7 +5103,7 @@
4371
5103
  "logrotateLabel": "logrotate",
4372
5104
  "srcNginx": "nginx",
4373
5105
  "srcSsh": "ssh",
4374
- "srcFail2ban": "fail2ban",
5106
+ "srcfail2ban": "fail2ban",
4375
5107
  "srcAuthLog": "auth.log",
4376
5108
  "srcNginxError": "erro nginx",
4377
5109
  "srcLetsEncrypt": "letsencrypt",
@@ -4379,7 +5111,36 @@
4379
5111
  "groupVarLog": "/var/log",
4380
5112
  "prioErr": "errar+",
4381
5113
  "prioWarn": "avisar+",
4382
- "prioInfo": "informações+"
5114
+ "prioInfo": "informações+",
5115
+ "srcFail2ban": "fail2ban",
5116
+ "vacuumSize": "Limite a 500 MB",
5117
+ "logrotateNoStatus": "Ainda não há arquivo de status do logrotate (normal se nunca tiver sido executado).",
5118
+ "autoVacuumOff": "A limpeza automática está desativada. O tempo não é utilizado até que você o habilite.",
5119
+ "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.",
5120
+ "aboutCustomPath": "Adicione um caminho personalizado em Configurações (somente /var/log ou /run/log). Em seguida, abra-o em Explorar.",
5121
+ "noRowsInWindow": "Não há registros nesta janela de tempo",
5122
+ "showInactiveUnits": "Mostrar unidades inativas",
5123
+ "sseNeedFollow": "Ative Seguir primeiro – SSE é apenas para acompanhamento ao vivo",
5124
+ "vacuumNeedRetention": "Introduza primeiro uma janela de retenção (p.ex. 14d)",
5125
+ "vacuumNeedConfirm": "Precisa de confirmação — apaga journal antigos",
5126
+ "vacuumSizeNeedConfirm": "Precisa de confirmação — limita o disco do journal",
5127
+ "vacuumSizeAlreadyBelow": "O uso atual já está abaixo do limite; normalmente não apaga nada.",
5128
+ "vacuumSizeNoopDesc": "O journal já está abaixo de 500 MB. Ainda corre vacuum --size=500M e normalmente não apaga nada.",
5129
+ "journalDiskHint": "Uso atual do systemd-journald (journal ativo). Não inclui rodados em /var/log.",
5130
+ "varLogDiskHint": "Estimativa de /var/log, incluindo rodados.",
5131
+ "queryFirst": "Consulte primeiro",
5132
+ "projectSourcesTitle": "{{n}} origem(ns) (ficheiros + journal)",
5133
+ "logrotatePath": "Caminho",
5134
+ "logrotateLast": "Última rotação",
5135
+ "logrotateExpand": "Mostrar {{n}} mais",
5136
+ "logrotateCollapse": "Mostrar menos",
5137
+ "logrotateVersion": "Versão de status {{v}}",
5138
+ "errorsWindowHint": "Recent errors from the last overview probe (not live-updating when you switch tabs)",
5139
+ "sourceCount": "{{shown}} shown",
5140
+ "sourceUnavailable": "This source has not produced a log yet",
5141
+ "sourceNoLog": "No log yet",
5142
+ "exportJsonl": "JSONL export",
5143
+ "sseLive": " (live stream)"
4383
5144
  },
4384
5145
  "metrics": {
4385
5146
  "alert": {
@@ -4511,7 +5272,42 @@
4511
5272
  "usageNoteFull": "Uso do du local (não estimado). Cota é um limite flexível do plano de controle; hard setquota precisa aplicar ao host.",
4512
5273
  "sseNeedLogin": "Não logado; não consigo abrir o SSE",
4513
5274
  "sseSessionExpired": "Não logado ou sessão expirada; não consigo abrir o SSE",
4514
- "sseHttpError": "transmitir HTTP {{status}}"
5275
+ "sseHttpError": "transmitir HTTP {{status}}",
5276
+ "colFilesystem": "Sistema de arquivos",
5277
+ "colMount": "Montar",
5278
+ "colSize": "Tamanho",
5279
+ "colUsed": "Usado",
5280
+ "colAvail": "Disponível",
5281
+ "colUsePct": "Usado %",
5282
+ "colHome": "Lar",
5283
+ "usageNoteLink": "Cota flexível do plano de controle. Aplique limites rígidos na guia Isolamento do projeto.",
5284
+ "alertsBuiltinOnly": "Somente limites integrados de CPU/memória/disco. Nenhum e-mail, webhook ou canal do Slack.",
5285
+ "lastEvaluated": "Última verificação",
5286
+ "shareNoQuotaHint": "Sem quota, a parte não é uma percentagem. Defina-a no separador Isolamento do projeto.",
5287
+ "setQuotaLink": "Definir quota",
5288
+ "unusualHome": "Caminho invulgar",
5289
+ "unusualHomeHint": "Não é uma casa de projeto /home/…. O isolamento canônico é /home/ysk-server-{id}.",
5290
+ "protectedPid": "PID 1/init/systemd não pode ser sinalizado pelo painel",
5291
+ "sigTermTitle": "Enviar SIGTERM (pedir ao processo para sair)",
5292
+ "sigKillTitle": "Enviar SIGKILL (forçar matar – não pode ser capturado)",
5293
+ "batchTerm": "TERM",
5294
+ "batchKill": "KILL",
5295
+ "rawTopLabel": "Topo bruto (não traduzido)",
5296
+ "followSseLabel": "Siga (transmissão ao vivo)",
5297
+ "alertsReadOnly": "Somente limites integrados de CPU/memória/disco. Nenhum e-mail, webhook ou canal do Slack.",
5298
+ "alertsGoNotifications": "Abrir centro de notificações",
5299
+ "lastCheck": "Última verificação",
5300
+ "rawTopHint": "Saída superior (1) não traduzida",
5301
+ "load1m": "Load 1m",
5302
+ "uptime": "Uptime",
5303
+ "filterCpu5": "≥5% CPU",
5304
+ "filterMem5": "≥5% memory",
5305
+ "signalHint": "Select a process, then send TERM or KILL.",
5306
+ "signalFromRow": "Select this process for TERM / KILL",
5307
+ "selectForSignal": "Select",
5308
+ "forceKillTitleNamed": "KILL PID {{pid}} ({{cmd}})?",
5309
+ "sendSigTitleNamed": "Send TERM to PID {{pid}} ({{cmd}})?",
5310
+ "controlPlaneNoSignal": "The control-plane process cannot be signalled"
4515
5311
  },
4516
5312
  "migrate": {
4517
5313
  "tabInventory": "Inventário",
@@ -4593,7 +5389,20 @@
4593
5389
  "dryRunOnlyDesc": "· Estoque + pré-verificação somente; sem rsync ou gravações de destino",
4594
5390
  "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
5391
  "dnsCutover": "Substituição de DNS (manual)",
4596
- "dnsCutoverDesc": "Aponte A/AAAA para esses nomes para o novo IP público;"
5392
+ "dnsCutoverDesc": "Aponte A/AAAA para esses nomes para o novo IP público;",
5393
+ "orphanHomesHint": "Sobras de casas do projeto (não na loja). Remova somente depois de confirmar que não foram utilizados.",
5394
+ "orphanRemove": "Remova os restos de casa",
5395
+ "orphanRemoveTitle": "Excluir as sobras da página inicial do projeto?",
5396
+ "orphanRemoveDesc": "Exclua permanentemente {{path}} do disco. Este não é um projeto de loja. Precisa de YSK_EXECUTE=1.",
5397
+ "orphanRemovePhrase": "Escreva DELETE para confirmar.",
5398
+ "orphanRemoveNeedConfirm": "Requer confirmação",
5399
+ "passwordNotStored": "Password is used for this SSH session only and is not saved on disk.",
5400
+ "overwriteDanger": "Overwrite will replace existing YSK data on the target. This cannot be undone from the panel.",
5401
+ "orphanBackupFirst": "Back up first (open Backups)",
5402
+ "expandAllWarnings": "Show all {{n}} warnings",
5403
+ "collapseWarnings": "Show fewer",
5404
+ "inventoriedWarn": "Inventoried · {{n}} warnings",
5405
+ "orphanMtime": "Last modified {{at}}"
4597
5406
  },
4598
5407
  "multiCheck": {
4599
5408
  "customPlaceholder": "Código personalizado",
@@ -4670,7 +5479,9 @@
4670
5479
  "runtimes": "Tempos de execução",
4671
5480
  "security": "Segurança",
4672
5481
  "system": "Sistema",
4673
- "ai": "AI"
5482
+ "ai": "AI",
5483
+ "validators": "Validadores",
5484
+ "containers": "Contentores"
4674
5485
  },
4675
5486
  "java": "Java",
4676
5487
  "kotlin": "Kotlin",
@@ -4689,8 +5500,13 @@
4689
5500
  "bookmarkPinned": "Fixado",
4690
5501
  "bookmarkAdded": "Fixado na barra lateral",
4691
5502
  "bookmarkRemoved": "Removido da barra lateral",
4692
- "btTracker": "Rastreador BT",
4693
- "support": "Support"
5503
+ "btTracker": "BT Tracker",
5504
+ "support": "Apoiar",
5505
+ "noAccessTitle": "Sem acesso",
5506
+ "noAccessDesc": "A sua função não inclui esta página. Peça a um administrador se precisar dela.",
5507
+ "backToDashboard": "Voltar ao painel",
5508
+ "validators": "Validadores (Beta)",
5509
+ "docker": "Docker"
4694
5510
  },
4695
5511
  "network": {
4696
5512
  "title": "Interfaces de rede",
@@ -4829,10 +5645,33 @@
4829
5645
  "azure_frontdoor": "Porta frontal Azure",
4830
5646
  "gcore": "CDN Gcore",
4831
5647
  "custom": "Proxies personalizados"
4832
- }
5648
+ },
5649
+ "needProvider": "Escolha um provedor de CDN antes de buscar sua lista de IPs.",
5650
+ "spoofWarn": "Confiar no CIDR errado permite que os clientes falsifiquem os cabeçalhos X-Forwarded-For/CDN como seu IP."
4833
5651
  },
4834
5652
  "linkUp": "Acima",
4835
- "linkDown": "Abaixo"
5653
+ "linkDown": "Abaixo",
5654
+ "linkDownTitle": "Coloque {{name}} off-line",
5655
+ "linkDownNeedConfirm": "Digite o nome da interface para confirmar",
5656
+ "persistNmHint": "Persistente significa que as alterações podem sobreviver à reinicialização via NetworkManager.",
5657
+ "hideRaw": "Ocultar saída bruta",
5658
+ "rawLoadedAt": "Carregado {{time}}",
5659
+ "deleteDefaultPanelWarn": "Excluir a rota padrão pode encerrar esta sessão do painel. Digite DEFAULT para confirmar.",
5660
+ "typeDefaultToConfirm": "Digite DEFAULT para confirmar",
5661
+ "deleteDefaultNeedConfirm": "Requer confirmação — escreva DEFAULT (pode interromper este painel)",
5662
+ "deleteRouteNeedConfirm": "Requer confirmação",
5663
+ "nmUnavailable": "O NetworkManager não está em execução — apenas uma rota ativa pode ser adicionada",
5664
+ "defaultRouteDownNeedName": "Esta é a saída da rota padrão. Digite o nome da interface para confirmar — o painel pode se desconectar.",
5665
+ "linkDownDefault": "Down default route",
5666
+ "loopbackImmutable": "Loopback cannot be changed",
5667
+ "operUnknownHint": "Kernel did not report UP/DOWN (common for lo). The interface is still usable.",
5668
+ "statUp": "Up",
5669
+ "oper": {
5670
+ "up": "Up",
5671
+ "down": "Down",
5672
+ "unknown": "Unknown",
5673
+ "other": "Other"
5674
+ }
4836
5675
  },
4837
5676
  "nginx": {
4838
5677
  "pillSites": "{{count}} sites",
@@ -4918,6 +5757,12 @@
4918
5757
  "setIndexes": "Listagem de diretório",
4919
5758
  "bodyInherit": "Global"
4920
5759
  },
5760
+ "notFound": {
5761
+ "title": "Página não encontrada",
5762
+ "body": "Nenhuma página do painel em {{path}}.",
5763
+ "hint": "URLs desconhecidos não direcionam mais você para o painel.",
5764
+ "home": "Painel"
5765
+ },
4921
5766
  "notes": {
4922
5767
  "notFound": "Não encontrado",
4923
5768
  "needPath": "Especifique um caminho",
@@ -4950,16 +5795,42 @@
4950
5795
  },
4951
5796
  "ssh": {
4952
5797
  "identityNotFound": "Identidade não encontrada",
4953
- "registrationNotFound": "Cadastro não encontrado"
5798
+ "registrationNotFound": "Cadastro não encontrado",
5799
+ "keyOkNologin": "Key accepted. Account has no login shell (nologin) — use SFTP. Treated as PASS.",
5800
+ "keyOkSftp": "SFTP pwd foi bem-sucedido depois que o shell SSH foi recusado."
4954
5801
  },
4955
5802
  "cdn": {
4956
5803
  "siteNotFound": "Site CDN não encontrado",
4957
- "nodeMissing": "O nó não existe"
5804
+ "nodeMissing": "O nó não existe",
5805
+ "probe": {
5806
+ "timeout": "Tempo limite de conexão após {{ms}}ms ({{detail}}). O peer pode estar protegido por firewall.",
5807
+ "dns": "Falha na pesquisa de DNS ({{detail}}).",
5808
+ "refused": "Conexão recusada após {{ms}}ms ({{detail}}). Porto fechado ou bloqueio de mão única.",
5809
+ "tls": "Falha na verificação de TLS ({{detail}}).",
5810
+ "unreach": "Host inacessível após {{ms}}ms ({{detail}}).",
5811
+ "http": "A sonda HTTP falhou após {{ms}}ms ({{detail}})."
5812
+ },
5813
+ "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.",
5814
+ "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.",
5815
+ "originRemoteRewrite": "As bordas remotas usarão origem acessível {{url}} em vez de loopback.",
5816
+ "originRemoteUnknown": "A origem é loopback e nenhum IP público/LAN ou bind_ip é conhecido — apply recusará bordas remotas até que uma seja definida."
4958
5817
  },
4959
5818
  "backup": {
4960
5819
  "fileNotFound": "Arquivo de backup não encontrado",
4961
5820
  "resticNoPassword": "restic está ativado, mas a senha não está definida",
4962
- "resticNotInPath": "restic não está em PATH"
5821
+ "resticNotInPath": "restic não está em PATH",
5822
+ "dbEnvUnreadable": "Não foi possível ler .db.env; despejo SQL ignorado.",
5823
+ "dbEnvNoName": ".db.env não possui nome de banco de dados; despejo SQL ignorado.",
5824
+ "targetOutside": "O destino de restauração deve estar dentro da página inicial do projeto ou na raiz dos arquivos públicos.",
5825
+ "testUnsaved": "Testando valores de formulário não salvos (não gravados nas configurações).",
5826
+ "testIdentity": "ssh (identity) to {{spec}} ok",
5827
+ "sshAuthFailed": "Chave SSH ou senha rejeitada (publickey). Escolha uma identidade de saída ou instale o sshpass.",
5828
+ "remotePathIsFile": "O caminho remoto {{path}} é um arquivo. Use um diretório.",
5829
+ "remoteMkdirFailed": "Não foi possível criar o diretório remoto: {{detail}}",
5830
+ "sidecarPushed": "Também enviou sidecar SQL {{name}}",
5831
+ "controlPlaneDryRun": "Apenas visualização – nada escrito. No painel, use Restaurar e confirme a frase a ser escrita.",
5832
+ "controlPlaneNeedConfirm": "A restauração completa do plano de controle precisa da frase de confirmação RESTORE-CONTROL-PLANE.",
5833
+ "controlPlaneRestartAfter": "Reinicie a API após uma restauração bem-sucedida."
4963
5834
  },
4964
5835
  "redis": {
4965
5836
  "cliMissing": "redis-cli não está instalado"
@@ -5003,7 +5874,8 @@
5003
5874
  "pathOutsideSandbox": "Caminho fora da sandbox: {{target}}",
5004
5875
  "notFoundRel": "Não encontrado: {{relPath}}",
5005
5876
  "fileNotFoundRel": "Arquivo não encontrado: {{relPath}}",
5006
- "notFoundFrom": "Não encontrado: {{fromPath}}"
5877
+ "notFoundFrom": "Não encontrado: {{fromPath}}",
5878
+ "alreadyExists": "Já existe: {{name}}"
5007
5879
  },
5008
5880
  "dns": {
5009
5881
  "needZoneServerIp": "Insira a zona e o IP do servidor",
@@ -5043,7 +5915,10 @@
5043
5915
  },
5044
5916
  "db": {
5045
5917
  "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"
5918
+ "dryRunMysql": "simulação: banco de dados não criado. Use --execute com YSK_EXECUTE=1 para provisionar",
5919
+ "remoteNoCreds": "Nenhum nome de usuário/senha armazenado — apenas TCP (o registro não é um login).",
5920
+ "remoteReachable": "TCP {{host}}:{{port}} aberto ({{ms}}ms).",
5921
+ "remoteUnreachable": "TCP {{host}}:{{port}} fechado ou filtrado ({{ms}}ms)."
5047
5922
  },
5048
5923
  "net": {
5049
5924
  "invalidIface": "Nome de interface inválido",
@@ -5124,7 +5999,17 @@
5124
5999
  "dns": "DNS",
5125
6000
  "email": "E-mail",
5126
6001
  "isolation": "Isolamento do projeto",
5127
- "ops": "Operações"
6002
+ "ops": "Operações",
6003
+ "runtimesNode": "Node.js",
6004
+ "runtimesPhp": "PHP",
6005
+ "runtimesPython": "Pitão",
6006
+ "runtimesGo": "Go",
6007
+ "pm2": "PM2",
6008
+ "runtimesNodeFix": "Instale o nó de /runtimes/node",
6009
+ "runtimesPhpFix": "Instale o PHP em /runtimes/php",
6010
+ "runtimesPythonFix": "Instale o Python em /runtimes/python",
6011
+ "runtimesGoFix": "Instale o Go em /runtimes/go",
6012
+ "pm2Fix": "Instale o PM2 na página de tempo de execução do Node"
5128
6013
  },
5129
6014
  "needAdmin": "É necessária permissão de administrador",
5130
6015
  "notInstalled": "Não instalado",
@@ -5397,7 +6282,7 @@
5397
6282
  "n0259": "domínio",
5398
6283
  "n0260": "domínio não encontrado:",
5399
6284
  "n0261": "falha no recarregamento do dovecot ou servicenot (peneira escrita; recarregamento com sucesso)",
5400
- "n0262": "despacho de frota a seco (não )",
6285
+ "n0262": "ensaio de envio da frota (não colocado em fila)",
5401
6286
  "n0263": "push de pares de simulação (não scp)",
5402
6287
  "n0264": "instalação remota de simulação (não ssh)",
5403
6288
  "n0265": "transferência de simulação concluída (bootstrap completo)",
@@ -5406,10 +6291,10 @@
5406
6291
  "n0268": "simulação - não escreva /etc",
5407
6292
  "n0269": "simulação: adicione --execute firstapply ufw",
5408
6293
  "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",
6294
+ "n0271": "Teste: apenas sonda/plano. Passe --execute com YSK_EXECUTE=1 para realmente provisionar.",
6295
+ "n0272": "Teste: gravou o arquivo gerenciado (dataDir). Passe --execute com YSK_EXECUTE=1 como root para instalar o sistema drop-in.",
6296
+ "n0273": "Funcionamento a seco: não proibido. Passe --execute com YSK_EXECUTE=1 para realmente banir.",
6297
+ "n0274": "Teste: não desbanido. Passe --execute com YSK_EXECUTE=1 para realmente cancelar o banimento.",
5413
6298
  "n0275": "dryRun=true — alterar API",
5414
6299
  "n0276": "dryRun: não escreve",
5415
6300
  "n0277": "dump Escreveu dataDir, não transferiu",
@@ -5758,7 +6643,7 @@
5758
6643
  "n0620": "iniciarprocesso não processo",
5759
6644
  "n0621": "OPcache",
5760
6645
  "n0622": "SSL",
5761
- "n0623": "",
6646
+ "n0623": "Ativo",
5762
6647
  "n0624": "arquivo",
5763
6648
  "n0625": "arquivo",
5764
6649
  "n0626": "nó wsrep, HA ≥2 nó",
@@ -5860,9 +6745,9 @@
5860
6745
  "n0722": "e biscoito",
5861
6746
  "n0723": "ativar --agora fail2ban",
5862
6747
  "n0724": "galera_new_cluster (inicialização)",
5863
- "n0725": "Fail2ban recarregado",
6748
+ "n0725": "fail2ban recarregado",
5864
6749
  "n0726": "recarregar nginx",
5865
- "n0727": "Fail2ban reiniciado",
6750
+ "n0727": "fail2ban reiniciado",
5866
6751
  "n0728": "zona scp (escrita em peer ≠ nomeada recarregada)",
5867
6752
  "n0729": "scp para peer /tmp (escrito em peer ≠ serviço reiniciado)",
5868
6753
  "n0730": "systemctl recarrega nginx",
@@ -5889,7 +6774,7 @@
5889
6774
  "n0751": "diretório de cache nginx e recarregar (hostnot proxy_cache pode)",
5890
6775
  "n0752": "serverdonecertificatepor favor",
5891
6776
  "n0753": "UFW somente CF aplicado (CF de origem + porta mantida)",
5892
- "n0754": "Fail2ban aplicado",
6777
+ "n0754": "fail2ban aplicado",
5893
6778
  "n0755": "Configurações aplicadas ao sistema Postfix",
5894
6779
  "n0756": "Aplicado ao sistema Nginx",
5895
6780
  "n0757": "Regra de firewall aplicada",
@@ -5974,7 +6859,7 @@
5974
6859
  "n0836": "certificado por favor falhou",
5975
6860
  "n0837": "≥ arquivo",
5976
6861
  "n0838": "configuraçõeskeptbackup",
5977
- "n0839": "Sucessoeste alvo pode BatchMode, ",
6862
+ "n0839": "Sucesso significa que este destino aceita SSH BatchMode (não interativo). Não é uma concessão de acesso global.",
5978
6863
  "n0840": "ou 32767",
5979
6864
  "n0841": "software instalado",
5980
6865
  "n0842": "permissão/",
@@ -6134,7 +7019,7 @@
6134
7019
  "n0996": "local nginx -t OK (gerenciado conf, ≠ borda aplicada)",
6135
7020
  "n0997": "wsrep local pode, tamanho não nó",
6136
7021
  "n0998": "ysk.json local não pode ler / impressão digital",
6137
- "n0999": "locais OK; investigação de pares íntegra completa (não)",
7022
+ "n0999": "O nó local está OK; um status íntegro completo precisa de uma investigação de pares (não concluída).",
6138
7023
  "n1000": "local nginx — conf Escreveu, não recarregou",
6139
7024
  "n1001": "Conexão NM local disponível; seráSucesso. pode \"\" ou NetworkManager.",
6140
7025
  "n1002": "localAvailable ps — não é possível ()",
@@ -6730,7 +7615,7 @@
6730
7615
  "n1590": "",
6731
7616
  "n1591": "Não root – os caminhos do sistema useradd / systemd / nginx são restritos",
6732
7617
  "n1592": "não seccomp requer runAsUser",
6733
- "n1593": "painelpor favor /",
7618
+ "n1593": "Pedidos públicos / min",
6734
7619
  "n1594": "conexão do painel; Disponível\"\" ( )",
6735
7620
  "n1595": "O painel não está sendo executado como root",
6736
7621
  "n1596": "Disponível aplicar:falso",
@@ -7001,7 +7886,7 @@
7001
7886
  "t0251": "{{v0}} Instalação incompleta",
7002
7887
  "t0252": "{{v0}} início do serviço",
7003
7888
  "t0253": "Falha na inicialização: {{v0}}",
7004
- "t0254": "Suporta versão Node.js {{v0}}; Versão disponível: {{v1}}",
7889
+ "t0254": "Suporta Node.js {{v0}}; versões disponíveis: {{v1}}",
7005
7890
  "t0255": "Suporta versão PHP {{v0}}; Disponível: {{v1}}",
7006
7891
  "t0256": "Suporta versão Python {{v0}}; Disponível: {{v1}}",
7007
7892
  "t0257": "Suporta versão Go {{v0}}; Disponível: {{v1}}",
@@ -7123,12 +8008,12 @@
7123
8008
  "t0373": "Isolamento do projeto \"{{v0}}\"",
7124
8009
  "t0374": "para caminho local {{v0}}",
7125
8010
  "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)",
8011
+ "t0376": "sftp (identidade) para {{v0}} com êxito",
8012
+ "t0377": "sftp (identidade) falhou: {{v0}}",
8013
+ "t0378": "sftp para {{v0}} com êxito",
8014
+ "t0379": "sftp falhou: {{v0}}",
8015
+ "t0380": "sftp para {{v0}} com êxito",
8016
+ "t0381": "sftp falhou: {{v0}} (pode definir backup remote identityId)",
7132
8017
  "t0382": "S3 {{v0}}",
7133
8018
  "t0383": "S3 falhou: {{v0}}",
7134
8019
  "t0384": ": {{v0}}/{{v1}} admin Habilitado 2FA",
@@ -7136,7 +8021,7 @@
7136
8021
  "t0386": "{{v0}} CAMINHO",
7137
8022
  "t0387": "{{v0}} não encontrado",
7138
8023
  "t0388": "Instale {{v0}} ou adicione-o ao PATH",
7139
- "t0389": "Versão disponível: {{v0}}",
8024
+ "t0389": "Versões disponíveis: {{v0}}",
7140
8025
  "t0390": "{{v0}}% ({{v1}}MB)",
7141
8026
  "t0391": "{{v0}}% ({{v1}})",
7142
8027
  "t0392": "início do serviço {{v0}}",
@@ -7379,15 +8264,15 @@
7379
8264
  "t0629": "projeto {{v0}} casa: {{v1}}",
7380
8265
  "t0630": "projeto {{v0}} bind_ip={{v1}} — pode ( IP )",
7381
8266
  "t0631": "projeto {{v0}} casa, não caminho: {{v1}}",
7382
- "t0632": "casa (loja): {{v0}}",
8267
+ "t0632": "Casa órfã no disco (sem projeto de loja correspondente): {{v0}}",
7383
8268
  "t0633": "Maildir: {{v0}}",
7384
8269
  "t0634": "{{v0}} — não é possível segmentar",
7385
8270
  "t0635": "não é possível sondar {{v0}}",
7386
8271
  "t0636": "{{v0}} · {{v1}}",
7387
8272
  "t0637": "projeto {{v0}} · {{v1}} · Banco de dados {{v2}} · Redis {{v3}}",
7388
- "t0638": "instalar software {{v0}} · casas {{v1}}",
8273
+ "t0638": "Instalar software {{v0}} · homes {{v1}}",
7389
8274
  "t0639": "host de transição {{v0}}",
7390
- "t0640": "Aviso {{v0}} (por favor)",
8275
+ "t0640": "{{v0}} aviso(s) — revisão antes da transição.",
7391
8276
  "t0641": "chave {{v0}}",
7392
8277
  "t0642": "não pode chave: {{v0}}",
7393
8278
  "t0643": "targetnot escrever chaves_autorizadas: {{v0}}",
@@ -7451,7 +8336,7 @@
7451
8336
  "t0701": "CDN {{v0}}",
7452
8337
  "t0702": "O nó do escudo de origem não existe: {{v0}}",
7453
8338
  "t0703": "bordas: {{v0}}",
7454
- "t0704": "URL de origem (): {{v0}}",
8339
+ "t0704": "URL de origem (do vínculo do projeto): {{v0}}",
7455
8340
  "t0705": "atualizar CDN {{v0}}",
7456
8341
  "t0706": "criar CDN {{v0}}",
7457
8342
  "t0707": "escudo de origem: escudo de borda {{v0}} → {{v1}}",
@@ -7547,7 +8432,16 @@
7547
8432
  "t0797": "fuso horário falhou: {{v0}}",
7548
8433
  "tScoreFrom": "pontuação={{score}} de={{from}}",
7549
8434
  "appliedTag": "(aplicado)",
7550
- "writtenTag": "(apenas escrito)"
8435
+ "writtenTag": "(apenas escrito)",
8436
+ "selfDestMissing": "Diretório de instalação em execução não encontrado (systemd ExecStart ou cli.js)",
8437
+ "selfDestUnwritable": "Não é possível escrever no diretório de instalação em execução {{v0}}",
8438
+ "selfApplied": "{{v0}} aplicado em {{v1}}",
8439
+ "selfVerifyFail": "O ficheiro de versão não contém {{v0}} após aplicar",
8440
+ "selfDownloadFail": "Não foi possível descarregar ou extrair o pacote oficial {{v0}}: {{v1}}",
8441
+ "selfOverlayFail": "Não foi possível aplicar o pacote oficial ao diretório em execução: {{v0}}",
8442
+ "selfUpgradeHint": "Falha ao aplicar o painel. Como root: curl -fsSL https://raw.githubusercontent.com/yanshekki/ysk-server/main/install.sh | bash -s -- --upgrade",
8443
+ "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.",
8444
+ "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
8445
  },
7552
8446
  "tpl": {
7553
8447
  "deleted": "Excluído {{name}}",
@@ -7610,7 +8504,7 @@
7610
8504
  "noParen": "(nenhum)",
7611
8505
  "keepOldDb": "(mantive o banco de dados antigo)",
7612
8506
  "ufwNotDetected": "UFW não detectado neste host",
7613
- "fail2banStartHint": "Inicie na página Fail2ban",
8507
+ "fail2banStartHint": "Inicie na página fail2ban",
7614
8508
  "hasExecuteNotRoot": "EXECUTE está ativado, mas o processo não é root",
7615
8509
  "notRootTarget": "Não é root (o destino useradd/apt será bloqueado)",
7616
8510
  "reapplyDone": "reaplicar as principais etapas concluídas",
@@ -7777,7 +8671,10 @@
7777
8671
  "accessReconnectHint": "Clientes já conectados devem se reconectar para escolher novas rotas",
7778
8672
  "ovpnNatDurable": "OpenVPN NAT/forward instalado para reinicialização (systemd ExecStartPost).",
7779
8673
  "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."
8674
+ "clientFullTunnelHint": "Dica: apenas para acesso dividido, defina AllowedIPs como CIDRs VPN/LAN (não 0.0.0.0/0) no conf e reconecte.",
8675
+ "serverStopped": "{{engine}} servidor parado.",
8676
+ "serverStopFailed": "Não foi possível parar o servidor {{engine}}: {{detail}}",
8677
+ "peersSynced": "Peer list reloaded on the running WireGuard interface."
7781
8678
  },
7782
8679
  "vnc": {
7783
8680
  "needInstall": "Instalar {{stack}}",
@@ -7871,7 +8768,12 @@
7871
8768
  "clientDeleted": "Perfil do cliente excluído",
7872
8769
  "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
8770
  "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."
8771
+ "desktopNeedsStart": "Perfil da área de trabalho {{desktop}} gravado em xstartup. Inicie a sessão para se inscrever.",
8772
+ "passwordNeedTiger": "vncpasswd não encontrado. Instale TigerVNC (tigervnc-standalone-server) antes de definir uma senha.",
8773
+ "linuxUserRolledBack": "Removido o usuário restante do Linux {{user}} após falha na senha do VNC.",
8774
+ "linuxUserOrphan": "Não foi possível remover o usuário restante do Linux {{user}} após falha na senha do VNC.",
8775
+ "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.",
8776
+ "userdelLeftover": "Panel account removed, but Linux user {{user}} is still on the host. Remove it from Users or the host."
7875
8777
  },
7876
8778
  "apache": {
7877
8779
  "needServerName": "Nome do servidor obrigatório",
@@ -7921,7 +8823,102 @@
7921
8823
  "startedDetached": "Trabalhador desanexado do rastreador BT iniciado (pid {{pid}}, porta {{port}})",
7922
8824
  "runningDetached": "Rastreador rodando como trabalhador desanexado (pid {{pid}})",
7923
8825
  "jobQueued": "Criação de torrent BT na fila (grande parcela)",
7924
- "jobRunning": "Criação de torrent BT em execução"
8826
+ "jobRunning": "Criação de torrent BT em execução",
8827
+ "libraryAdded": "Adicionado {{name}} à biblioteca WebTorrent",
8828
+ "libraryInspectFailed": "Não foi possível ler aquele .torrent ou magnet",
8829
+ "libraryDup": "Esse torrent já está na biblioteca",
8830
+ "libraryDestBad": "A pasta Salvar não é um caminho de arquivos válido",
8831
+ "libraryTorrentTooBig": "O arquivo .torrent é maior que 8 MiB",
8832
+ "libraryNotFound": "Item da biblioteca não encontrado",
8833
+ "libraryPaused": "Pausado",
8834
+ "libraryResumed": "Retomada",
8835
+ "libraryRemoved": "Removido da biblioteca",
8836
+ "libraryFilesRemoved": "Arquivos baixados excluídos",
8837
+ "libraryRestoreDone": "Restauração da biblioteca: iniciada {{started}}/{{attempted}} (falhou {{failed}})",
8838
+ "applyTrackersDone": "Aplicados rastreadores extras para slots de anúncio ao vivo {{n}}",
8839
+ "libraryNeedServe": "Salvo. Abra o painel (ysk-server serve) para que o WebTorrent possa fazer o download ou propagar.",
8840
+ "libraryDestIsFile": "Não é possível criar uma pasta chamada {{name}} — já existe um arquivo com esse nome.",
8841
+ "librarySeedMissing": "Não há arquivos correspondentes nessa pasta para propagar.",
8842
+ "libraryWaitingPeers": "Esperando por colegas. Se os arquivos já estiverem neste host, adicione novamente e escolha seed-existente."
8843
+ },
8844
+ "leftover": {
8845
+ "staleCliTitle": "CLI restante obsoleta",
8846
+ "staleCli": "CLI restante ainda presente: {{path}} (produto em execução {{version}}). PATH pode preferir. Remova com: rm -f {{path}}",
8847
+ "apacheDefaultTitle": "Site padrão restante do Apache",
8848
+ "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.",
8849
+ "nginxCatchAllTitle": "Nginx pega tudo faltando",
8850
+ "nginxCatchAll": "ysk-000-default.conf não está em /etc/nginx/conf.d. SNI desconhecido pode falhar. Execute projetos nginx-sync --execute.",
8851
+ "vsftpdTitle": "unidade vsftpd falhou",
8852
+ "vsftpd": "vsftpd falhou. A sobreposição não reescreve listen/listen_ipv6. Aplique FTP no painel.",
8853
+ "dovecotTitle": "Dovecot TLS aponta na falta de certificado",
8854
+ "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.",
8855
+ "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).",
8856
+ "readinessTitle": "Sobras de host após a sobreposição",
8857
+ "readinessClean": "Nenhum padrão restante do Apache, nginx catch-all ausente, vsftpd com falha ou CLI obsoleto detectado.",
8858
+ "staleCliRemoved": "CLI residual {{path}} removido.",
8859
+ "staleCliRemoveFailed": "Não foi possível remover o CLI residual {{path}}: {{detail}}",
8860
+ "vsftpdSslOff": "Sem certificado FTPS: vsftpd com ssl_enable=NO e reinício.",
8861
+ "dovecotSslOff": "Falta {{path}}: Dovecot com ssl=no e reinício."
8862
+ },
8863
+ "git": {
8864
+ "missingBin": "git não está no PATH",
8865
+ "auth": "Falha na autenticação. Adicione uma chave de implantação ou um token HTTPS.",
8866
+ "hostkey": "A verificação da chave do host SSH falhou. Confirme e fixe a chave do host.",
8867
+ "dirty": "A árvore de trabalho possui {{count}} alterações locais. A tração está bloqueada.",
8868
+ "diverged": "Não é possível avançar rapidamente. Redefina para a referência remota se você pretende descartar o histórico local do Git.",
8869
+ "missingRef": "Esse branch, tag ou commit não está no controle remoto.",
8870
+ "shallow": "Este clone é superficial. Busque o histórico completo antes de fixar um commit antigo.",
8871
+ "notRepo": "app/ ainda não é um repositório Git.",
8872
+ "unrelated": "Histórias não relacionadas. Reclone somente após confirmação – os arquivos personalizados serão perdidos.",
8873
+ "lock": "Git index.lock está presente. Remova-o somente se nenhum processo git estiver em execução.",
8874
+ "disk": "Disco cheio ou cota excedida.",
8875
+ "timeout": "O tempo limite do Git expirou.",
8876
+ "network": "Erro de rede ao falar com o controle remoto.",
8877
+ "lfs": "Este repositório usa Git LFS e git-lfs não está disponível.",
8878
+ "submodule": "Falha na atualização do submódulo.",
8879
+ "unknown": "Git falhou. Veja a saída do comando.",
8880
+ "fetchOk": "Obtido da origem.",
8881
+ "checkoutOk": "Verificado {{ref}}.",
8882
+ "resetOk": "Redefinir com força para {{ref}}.",
8883
+ "envRestored": "App/.env restaurado do plano de controle.",
8884
+ "needPinHost": "A chave do host SSH não está fixada. Digitalize e fixe-o antes de clonar ou buscar.",
8885
+ "tokenSaved": "Token HTTPS armazenado (nunca mostrado novamente).",
8886
+ "tokenCleared": "Token HTTPS removido.",
8887
+ "tokenInvalid": "O token deve ter pelo menos 8 caracteres.",
8888
+ "deployKeyCreated": "Chave de implantação criada. Adicione a chave pública no host Git.",
8889
+ "deployKeyCleared": "Implante a chave desanexada deste projeto.",
8890
+ "hostPinned": "Chaves de host SSH fixadas para {{host}}.",
8891
+ "hostUnpinned": "Chaves de host SSH fixadas limpas.",
8892
+ "hostScanFailed": "ssh-keyscan não retornou nenhuma chave para esse host.",
8893
+ "hookEnabled": "O gancho Git de entrada está ativado. Cole você mesmo o URL no GitHub, Gitea ou GitLab.",
8894
+ "hookDisabled": "O gancho de entrada do Git está desativado. O URL não será sincronizado.",
8895
+ "hookSecretOnce": "Copie este segredo do gancho agora. Não é mostrado novamente.",
8896
+ "refsNeedUrl": "Insira um URL do Git primeiro.",
8897
+ "refsOk": "Carregadas {{branches}} ramificações e {{tags}} tags.",
8898
+ "refsEmpty": "Remoto não anunciado sem filiais ou tags.",
8899
+ "diffEmpty": "Nenhuma diferença não preparada (o .env protegido é excluído)."
8900
+ },
8901
+ "migrate": {
8902
+ "orphanConfirm": "Digite o caminho inicial exato que sobrou para confirmar a exclusão.",
8903
+ "orphanStillInStore": "Essa casa ainda pertence a um projeto da loja.",
8904
+ "orphanMissing": "Caminho não no disco: {{path}}",
8905
+ "orphanNeedExecute": "Removeria as sobras {{path}}. Precisa de YSK_EXECUTE=1.",
8906
+ "orphanRmFailed": "Não foi possível remover as sobras da casa: {{detail}}",
8907
+ "orphanRemoved": "Removidas as sobras da casa do projeto {{path}}."
8908
+ },
8909
+ "defense": {
8910
+ "panelReqLabel": "Solicitações de painel/min",
8911
+ "panelReqExcluded": "Tráfego de painel autenticado — mostrado aqui, não contado na pontuação de ameaças",
8912
+ "tcpOk": "TCP {{target}} acessível",
8913
+ "tcpFail": "TCP {{target}} falhou",
8914
+ "dnsDegraded": "Caminho DNS degradado",
8915
+ "reqRateHigh": "Taxa de solicitação pública {{reqs}}/min ≥ {{threshold}}",
8916
+ "ddosHeuristic": "Alta taxa de solicitação pública mais falha na sonda de borda"
8917
+ },
8918
+ "publicFiles": {
8919
+ "liveConf": "Conf Nginx em vigor: {{path}}",
8920
+ "publicRoot": "Raiz pública: {{path}}",
8921
+ "confNameStale": "O ficheiro {{file}} não coincide com o server_name atual {{serverName}}. Volte a aplicar os ficheiros públicos para o renomear."
7925
8922
  }
7926
8923
  },
7927
8924
  "ops": {
@@ -8123,7 +9120,12 @@
8123
9120
  "httpStatus": "HTTP",
8124
9121
  "latency": "Latência",
8125
9122
  "error": "Erro",
8126
- "at": "Verificado em"
9123
+ "at": "Verificado em",
9124
+ "deployMode": "Deploy mode",
9125
+ "edgeKind": "Edge",
9126
+ "goLiveOk": "Go-live",
9127
+ "goLiveAt": "Go-live at",
9128
+ "degraded": "Degraded"
8127
9129
  },
8128
9130
  "railPhp": "PHP/site",
8129
9131
  "railStatic": "Site estático",
@@ -8556,12 +9558,12 @@
8556
9558
  "php": "PHP",
8557
9559
  "node": "Node.js",
8558
9560
  "static": "Estático",
8559
- "python": "Python",
8560
- "go": "Go",
8561
- "rust": "Rust",
9561
+ "python": "Pitão",
9562
+ "go": "Ir",
9563
+ "rust": "Ferrugem",
8562
9564
  "java": "Java",
8563
9565
  "kotlin": "Kotlin",
8564
- "bun": "Bun"
9566
+ "bun": "Pão"
8565
9567
  },
8566
9568
  "netCacheTitle": "Cache",
8567
9569
  "logsDeepAccess": "Centro de registro · acesso",
@@ -8598,16 +9600,132 @@
8598
9600
  "netPublishMaint": "Manutenção",
8599
9601
  "sslNeedDomain": "Defina um domínio antes de publicar Nginx/SSL.",
8600
9602
  "createTemplateMissing": "{{v0}} ;「— —」。",
8601
- "deleteDialogDesc": "「{{v0}}」。。",
9603
+ "deleteDialogDesc": "「{{name}}」。。",
8602
9604
  "deleteWillStop": "sistemad/PM2/",
8603
9605
  "deleteWillWeb": "Nginx conf, pool PHP-FPM, Apache vhost()",
8604
9606
  "deleteWillOs": "Página inicial do Linux ()",
8605
9607
  "deleteKeepOs": "Linux doméstico (()",
8606
9608
  "deleteWillDb": "…",
8607
9609
  "deleteRemoveFilesDesc": "Cancelar,",
8608
- "deleteTypeNameHint": "「{{v0}}」",
9610
+ "deleteTypeNameHint": "「{{name}}」",
8609
9611
  "deleteDnsWarn": "Zona / domínio DNS.",
8610
- "manageInNginx": "Gerenciar no Nginx"
9612
+ "manageInNginx": "Gerenciar no Nginx",
9613
+ "advFtpHomeApp": "Diretório app do site",
9614
+ "advFtpHomeRoot": "Home do projeto (completo)",
9615
+ "advFtpManage": "Abrir página FTP",
9616
+ "listDesc": "Gerencie sites neste host.",
9617
+ "resShell": "Concha de login",
9618
+ "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.",
9619
+ "resBashConfirmTitle": "Permitir festa interativa?",
9620
+ "resBashConfirmDesc": "Isso concede um shell de login interativo ao usuário do projeto. Confirme apenas se precisar de SSH ou PTY como usuário.",
9621
+ "noPathSepHint": "O nome não pode conter / ou \\.",
9622
+ "createGitHint": "Opcional. Armazenado no projeto; clone na guia Implantar (não clona na criação).",
9623
+ "gitBranch": "Filial",
9624
+ "gitBranchHint": "Branch or tag. Empty uses the remote default. First clone is shallow (depth 1).",
9625
+ "gitLastRef": "Última sincronização: {{branch}} @ {{commit}}",
9626
+ "gitConfirmTitle": "Clonar neste projeto?",
9627
+ "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.",
9628
+ "runtimeActual": "Binário real {{path}}",
9629
+ "gitConfirmRemoteBody": "Isso aponta a origem para o novo URL e puxa. Histórias não relacionadas falham; arquivos personalizados não são apagados.",
9630
+ "runtimeFallback": "O escolhido {{version}} não está neste host. O processo usa {{path}}.",
9631
+ "gitSync": "Sincronizar",
9632
+ "gitFetch": "Buscar",
9633
+ "gitCheckout": "Confira",
9634
+ "gitReset": "Redefinir para remoto",
9635
+ "gitDeepen": "Buscar histórico completo",
9636
+ "gitLogTitle": "Confirmações recentes",
9637
+ "gitDirtyTitle": "Mudanças locais bloqueiam pull",
9638
+ "gitDirtyBody": "{{count}} arquivo(s) diferente(s) do Git (edições de arquivos ou aplicativo). Descarte-os ou aborte.",
9639
+ "gitDiscard": "Descartar arquivos locais",
9640
+ "gitOpenFiles": "Abrir em arquivos",
9641
+ "gitNotCloned": "Não clonado",
9642
+ "gitClean": "Limpar",
9643
+ "gitDirty": "Sujo",
9644
+ "gitBehind": "Atrás {{count}}",
9645
+ "gitAhead": "À frente {{count}}",
9646
+ "gitDetached": "Fixado",
9647
+ "gitShallow": "Raso",
9648
+ "gitMissing": "está faltando",
9649
+ "gitResetConfirmTitle": "Redefinir difícil para remoto?",
9650
+ "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.",
9651
+ "gitHeads": "Filiais remotas",
9652
+ "gitToken": "Token HTTPS",
9653
+ "gitTokenHint": "Personal access token. Stored encrypted; never written into the remote URL.",
9654
+ "gitTokenPlaceholder": "ghp_… ou glpat-…",
9655
+ "gitTokenSet": "Conjunto de tokens",
9656
+ "gitSaveToken": "Salvar token",
9657
+ "gitClearToken": "Token claro",
9658
+ "gitDeployKey": "Implantar chave pública",
9659
+ "gitDeployKeyHint": "Adicione isso como uma chave de implantação somente leitura no host Git.",
9660
+ "gitDeployKeyOn": "Implantar chave",
9661
+ "gitMakeKey": "Criar chave de implantação",
9662
+ "gitCopyPub": "Copiar chave pública",
9663
+ "gitClearKey": "Limpar chave de implantação",
9664
+ "gitKeyCopied": "Chave pública copiada",
9665
+ "gitPinHost": "Fixar chave do host",
9666
+ "gitPinHostBody": "{{host}} não está fixado. Confirme as impressões digitais e fixe-as antes da clonagem SSH.",
9667
+ "gitHostUnpinned": "Chave de host não fixada",
9668
+ "gitHookTitle": "Inbound hook",
9669
+ "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.",
9670
+ "gitHookOn": "Hook on",
9671
+ "gitHookOff": "Hook off",
9672
+ "gitHookEnable": "Enable hook",
9673
+ "gitHookRotate": "Girar segredo",
9674
+ "gitHookDisable": "Disable hook",
9675
+ "gitHookSecretOnce": "Copy this secret now — it is not stored in the page after you leave.",
9676
+ "gitHookCopyUrl": "Copy URL",
9677
+ "gitHookCopySecret": "Copiar segredo",
9678
+ "gitHookCopied": "Copiado",
9679
+ "gitHookSetup": "Add the webhook yourself. Payload URL = the URL above. Content type application/json. Events: push only. Secret = the one-time value.",
9680
+ "gitHookGithub": "GitHub: Settings → Webhooks → Add webhook. Content type application/json. Events: Just the push event. GitHub.com requires HTTPS.",
9681
+ "gitHookGitea": "Gitea: Settings → Webhooks → Add Webhook → Gitea. HTTP Method POST. Push events.",
9682
+ "gitHookGitlab": "GitLab: Settings → Webhooks. Trigger: Push events. Secret token = the hook secret (sent as X-Gitlab-Token).",
9683
+ "gitHookHonesty": "The host unit must have YSK_EXECUTE=1. Without it the hook answers but does not clone or deploy.",
9684
+ "gitHookSkipOther": "Pushes to other branches are ignored. Only the project ref syncs.",
9685
+ "gitAuthHttps": "Token HTTPS",
9686
+ "gitAuthSsh": "Chave de implantação SSH",
9687
+ "gitLoadRefs": "Carregar filiais",
9688
+ "gitRefDefault": "Padrão remoto",
9689
+ "gitRefBranches": "Galhos",
9690
+ "gitRefTags": "Etiquetas",
9691
+ "gitRefOther": "Outras referências…",
9692
+ "gitRefCustom": "Confirmar ou ref",
9693
+ "gitRefsNeedUrl": "Insira um URL primeiro.",
9694
+ "gitRefsNeedAuth": "Salve um token ou uma chave de implantação e carregue as ramificações.",
9695
+ "gitRefsHint": "Carregado do controle remoto. Escolha um – não digite.",
9696
+ "gitHookSetupToggle": "Como colar isso",
9697
+ "gitHookOneLiner": "HMAC ou X-YSK-Git-Hook. Apenas a ref. deste projeto.",
9698
+ "gitHookExecuteHint": "Precisa de YSK_EXECUTE=1 para clonar ou implantar.",
9699
+ "gitShowKey": "Mostrar chave",
9700
+ "gitHideKey": "Esconder",
9701
+ "gitBehindShort": "↓{{count}}",
9702
+ "gitAheadShort": "↑{{count}}",
9703
+ "gitDirtyShort": "Sujo · {{count}}",
9704
+ "gitFilesLink": "Arquivos",
9705
+ "gitTokenLaterHint": "O token HTTPS e a profundidade do clone são definidos na guia Implantar do projeto após a criação.",
9706
+ "netForceHttpsOn": "O HTTP redirecionará para HTTPS depois que você publicar a borda.",
9707
+ "netForceHttpsOff": "Nenhum redirecionamento forçado é armazenado.",
9708
+ "netHttpsLiveNotForced": "Existe um arquivo de borda; HTTPS já pode funcionar. Esta caixa força apenas HTTP→HTTPS.",
9709
+ "gitSyncBlockedDirty": "A sincronização é desativada até que as alterações locais sejam descartadas (redefinir) ou os arquivos correspondam ao Git.",
9710
+ "gitViewDiff": "Ver diferença",
9711
+ "gitBranchAfterUrl": "Introduza primeiro o URL Git. Vazio usa o ramo predefinido remoto.",
9712
+ "gitResetNeedConfirm": "Requer confirmação — descarta commits locais",
9713
+ "openUrlNeedDomain": "Defina um domínio primeiro – não abra 127.0.0.1 em seu navegador",
9714
+ "needOsUser": "Crie primeiro o usuário do sistema na guia Isolamento",
9715
+ "stopTitle": "Pare este projeto (unidade systemd e site público)",
9716
+ "deployTitle": "Implantar este projeto",
9717
+ "httpStatsHint": "Do log de acesso deste projeto (última amostra)",
9718
+ "httpStatsNone": "Ainda não há registro de acesso ao projeto",
9719
+ "statStoppedOnly": "Parou",
9720
+ "statReadyOnly": "Preparar",
9721
+ "netBoundCert": "Certificado associado",
9722
+ "netBoundCertExpiry": "expira {{at}}",
9723
+ "netNoBoundCert": "Não há certificado em disco para este nome",
9724
+ "netForceHttpsNeedCert": "Emita um certificado em /ssl para este domínio antes de forçar HTTPS.",
9725
+ "goIsolation": "Open Isolation tab",
9726
+ "netHstsNeedHttps": "Turn on force HTTPS first",
9727
+ "homeMissing": "Home directory does not exist",
9728
+ "homeMissingHint": "Same live probe as migrate inventory — create the system user on Isolation"
8611
9729
  },
8612
9730
  "protection": {
8613
9731
  "levels": {
@@ -8641,7 +9759,9 @@
8641
9759
  "note": {
8642
9760
  "notApplied": "Não aplicado no host (precisa de root + YSK_EXECUTE=1) — salvo nas configurações do painel",
8643
9761
  "nginxWritten": "Escreveu o arquivo do painel de limite de taxa Nginx",
8644
- "f2bWritten": "Escreveu as configurações do painel fail2ban"
9762
+ "f2bWritten": "Escreveu as configurações do painel fail2ban",
9763
+ "hintDropped": "Internal protection hint omitted",
9764
+ "nginxLimits": "Will write Nginx rate-limit snippet"
8645
9765
  },
8646
9766
  "rel": {
8647
9767
  "justNow": "Agora mesmo",
@@ -8955,7 +10075,67 @@
8955
10075
  "plusRegion": "+ região {{v}}",
8956
10076
  "plusCity": "+ cidade {{v}}",
8957
10077
  "lastTickPrefix": "· último {{t}}",
8958
- "nextTickPrefix": "· próximo {{t}}"
10078
+ "nextTickPrefix": "· próximo {{t}}",
10079
+ "stackApply": "Aplicar pilha de proteção (UFW, fail2ban, predefinição)",
10080
+ "stackApplyDone": "Aplicação de pilha de proteção solicitada",
10081
+ "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.",
10082
+ "cannotBanSelf": "Não é possível bloquear {{ip}} — é o anfitrião, o IP de início ou ignoreip",
10083
+ "selfIp": "Este anfitrião",
10084
+ "selfHostIp": "IP do host",
10085
+ "selfLoginIp": "Seu IP de login",
10086
+ "showZeroScore": "Mostrar pontuação 0",
10087
+ "hideZeroScore": "Ocultar pontuação 0",
10088
+ "freshnessNa": "n / D",
10089
+ "geoDraftOnly": "Política desligada — Guardar só grava rascunho. O Nginx não aplica até a ativar.",
10090
+ "selectAllCountriesWarn": "Selecionar todos os países em lista de bloqueio? Pode bloquear este anfitrião e o país de início.",
10091
+ "badgeRecommendPreset": "Recomenda-se um predefinição mais forte para a ameaça atual",
10092
+ "badgeAutomationOn": "A automatização está ligada",
10093
+ "badgeBanCount": "Bloqueios ativos",
10094
+ "badgeGeoOn": "A política de acesso Geo está ligada",
10095
+ "badgeGeoNotReady": "A base GeoIP não está pronta",
10096
+ "badgeIntelSignals": "Sinais que somam pontuação agora",
10097
+ "signalActive": "Ativo",
10098
+ "signalInactive": "Inativo",
10099
+ "signalJails": "{{n}} cadeia(s)",
10100
+ "dbReadyHint": "Ficheiros MMDB presentes",
10101
+ "dbNotReadyHint": "Descarregue primeiro uma base GeoIP",
10102
+ "staleHint": "Se a última atualização bem-sucedida tem mais de 7 dias",
10103
+ "statSuspects": "IPs suspeitos",
10104
+ "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.",
10105
+ "geoNeedDb": "Os bancos de dados GeoIP estão faltando — atualize os arquivos MMDB primeiro",
10106
+ "colHits": "Acessos",
10107
+ "col429": "429",
10108
+ "topIpsTitle": "IPs de topo",
10109
+ "hitsCount": "{{n}} acessos",
10110
+ "sampleWindowHint": "As contagens vêm da janela de amostras access + auth atual, não do ficheiro de registo completo.",
10111
+ "statSuspectsSplit": "{{actionable}} actionable / {{total}} listed",
10112
+ "suspectActionableCount": "Actionable IPs {{count}}",
10113
+ "uaNeedZones": "Set a Cloudflare zone first",
10114
+ "banConfirmTitle": "Ban {{ip}}?",
10115
+ "banConfirmDesc": "This IP will be blocked on the host. Confirm it is not a current panel or session address.",
10116
+ "ufwOff": "UFW (off)",
10117
+ "ufwOffHint": "UFW is not active — fail2ban is the usable target.",
10118
+ "whitelistSyncHint": "{{n}} panel entries · fail2ban ignoreip sync: {{sync}}",
10119
+ "whitelistSyncOn": "on",
10120
+ "whitelistSyncOff": "off (lists may differ)",
10121
+ "draftBadge": "Draft",
10122
+ "banIsSelf": "This IP matches the current panel source or this host.",
10123
+ "banNotSelf": "This IP is not the current panel source.",
10124
+ "geoSourceLocal": "Local GeoIP library (sapics + DB-IP)",
10125
+ "nginxPreviewHint": "Nginx snippet this preset would write (preview only):",
10126
+ "modeValue": {
10127
+ "normal": "Normal",
10128
+ "degraded": "Degraded",
10129
+ "ddos-protection": "DDoS protection",
10130
+ "offline": "Offline"
10131
+ },
10132
+ "wlRemovedUndo": "Removed {{ip}} from the allow list. Undo within 5 seconds.",
10133
+ "undo": "Undo",
10134
+ "banSelectedConfirmTitle": "Ban {{count}} selected IPs?",
10135
+ "banSelectedConfirmDesc": "These addresses will be blocked on the host: {{ips}}",
10136
+ "freshnessMissing": "No database",
10137
+ "freshnessStale": "Stale",
10138
+ "freshnessFresh": "Current"
8959
10139
  },
8960
10140
  "publicFiles": {
8961
10141
  "notSet": "Não definido",
@@ -8987,7 +10167,20 @@
8987
10167
  "diskRoot": "Raiz do disco",
8988
10168
  "filesInRoot": "Entradas",
8989
10169
  "managedConf": "Configuração gerenciada",
8990
- "systemConf": "Configuração do sistema.d"
10170
+ "systemConf": "Configuração do sistema.d",
10171
+ "notes": {
10172
+ "noManagedConf": "Nenhuma configuração Nginx gerenciada ainda – clique em Aplicar",
10173
+ "notSynced": "O conf gerenciado existe, mas não está em /etc/nginx/conf.d — aplique novamente como root com YSK_EXECUTE"
10174
+ },
10175
+ "autoindex": "Listagem de diretório (autoindex)",
10176
+ "liveSystemConf": "Conf. de sistema em direto: {{path}}",
10177
+ "publicRootNote": "Raiz pública: {{path}}",
10178
+ "applyConfirmTitle": "Aplicar o sítio de ficheiros públicos?",
10179
+ "applyConfirmDesc": "Escrever Nginx server_name {{name}} e recarregar o Nginx.",
10180
+ "serverNameMismatch": "A conf. em direto usa {{live}}; o formulário tem {{draft}}. Aplique para substituir.",
10181
+ "executeFlag": "Execute",
10182
+ "asRoot": "Root",
10183
+ "statusDraft": "Draft / not applied"
8991
10184
  },
8992
10185
  "rbac": {
8993
10186
  "permissions": "Permissões",
@@ -9071,7 +10264,13 @@
9071
10264
  "auditExport": "Exportação de auditoria",
9072
10265
  "securityApiKeysAdmin": "Administrador de chaves de API",
9073
10266
  "networkBrowse": "Navegação na web mediada por host",
9074
- "networkVnc": "Área de trabalho remota VNC"
10267
+ "networkVnc": "Área de trabalho remota VNC",
10268
+ "validatorsRead": "Validadores (leitura)",
10269
+ "validatorsManage": "Validadores gerir",
10270
+ "validatorsWipe": "Validadores limpar dados",
10271
+ "dockerRead": "Docker (leitura)",
10272
+ "dockerManage": "Docker gerir",
10273
+ "dockerWipe": "Docker remover / limpar"
9075
10274
  },
9076
10275
  "aboutRoles": "Funções (padrões de fábrica)",
9077
10276
  "aboutRolesBody": "As funções definem recursos padrão; os usuários podem substituir os individuais.",
@@ -9087,7 +10286,14 @@
9087
10286
  "capabilitiesHint": "Alternar o que esta função pode fazer",
9088
10287
  "enabledCount": "{{enabled}} de {{total}} ativado",
9089
10288
  "bandAboveMax": "Acima do nível máximo",
9090
- "dirtyHint": "Personalizado (diferente da fábrica)"
10289
+ "dirtyHint": "Personalizado (diferente da fábrica)",
10290
+ "unsaved": "Não salvo",
10291
+ "unsavedHint": "Edições não salvas nesta função",
10292
+ "nothingToSave": "Nada para salvar",
10293
+ "saveRole": "Salvar política {{role}}",
10294
+ "discardTitle": "Descartar política não salva?",
10295
+ "discardDesc": "A troca de funções descarta edições de recursos não salvas.",
10296
+ "roleUnavailable": "Not available for this role"
9091
10297
  },
9092
10298
  "readiness": {
9093
10299
  "cat": {
@@ -9198,7 +10404,38 @@
9198
10404
  "fixNow": "Corrigir agora",
9199
10405
  "fixFailed": "Falha na correção",
9200
10406
  "fixDone": "Permissões dataDir reforçadas (chmod 750)",
9201
- "fixDoneWebUi": "UI da Web construída/instalada"
10407
+ "fixDoneWebUi": "UI da Web construída/instalada",
10408
+ "rootLabel": "Superusuário",
10409
+ "exportStarted": "Baixando {{name}}",
10410
+ "blockersHint": "Os bloqueios são o subconjunto crítico de Em falta — não são verificações extra.",
10411
+ "techDetails": "Detalhes técnicos",
10412
+ "missingOwner": "Nenhum proprietário de painel atribuído (atribuição de cota de pacote)",
10413
+ "notOsProvisioned": "Usuário/home do SO ainda não provisionado",
10414
+ "ondrejNone": "Nenhuma fonte ondrej Launchpad PHP detectada",
10415
+ "ondrejFound": "Fontes herdadas ondrej/php encontradas que entram em conflito com packages.sury.org: {{paths}}",
10416
+ "ondrejTitle": "Fonte apt PHP (ondrej residual)",
10417
+ "systemctlActive": "O serviço está em execução",
10418
+ "systemctlStatus": "Status do serviço: {{status}}",
10419
+ "binInPath": "{{bin}} em PATH",
10420
+ "leftoverApache": "Site padrão restante do Apache",
10421
+ "leftoverVsftpd": "unidade vsftpd falhou",
10422
+ "leftoverCli": "CLI restante obsoleta",
10423
+ "leftoverNginx": "Nginx pega tudo faltando",
10424
+ "leftoverDovecot": "Dovecot TLS aponta na falta de certificado",
10425
+ "leftoverOther": "Sobras de host",
10426
+ "leftoverApply": "Sobras aplicam-se",
10427
+ "isolationOwnerDegrades": "Owner_user_id ausente afeta a atribuição de cota do pacote – o status é degradado, não está pronto.",
10428
+ "totalChecks": "All checks",
10429
+ "totalChecksHint": "Ready + degraded + missing = this total. Blockers are the critical missing subset.",
10430
+ "requireAdminTotp": "require admin 2FA policy",
10431
+ "listenBind": "listen address",
10432
+ "item": {
10433
+ "admin2fa": "Admin two-factor"
10434
+ },
10435
+ "dataDirPerms": "panel data-directory permissions",
10436
+ "mode750": "mode 750",
10437
+ "gateBlocked": "Not passed · {{n}} missing",
10438
+ "isolationPendingOs": "Same as project status: OS user pending. Open Isolation to provision the system user and home."
9202
10439
  },
9203
10440
  "redis": {
9204
10441
  "neverExpire": "Nunca expira",
@@ -9266,7 +10503,25 @@
9266
10503
  "pickKey": "Selecione uma tecla à esquerda para visualizar o conteúdo.",
9267
10504
  "ttlPrefix": "TTL: {{ttl}}",
9268
10505
  "writeLiveHint": "Grava Redis ao vivo; não é possível desfazer no painel com um clique.",
9269
- "refPath": "Referência: {{path}}"
10506
+ "refPath": "Referência: {{path}}",
10507
+ "dbEmptyMark": " · vazio",
10508
+ "noRequirepass": "O modo protegido está ligado, mas requirepass está vazio ou não foi lido — sem palavra-passe.",
10509
+ "setRequirepass": "Definir palavra-passe",
10510
+ "rdbOnlyLossHint": "AOF desligado e RDB ligado. Um reinício ou falha pode perder escritas recentes.",
10511
+ "dirDataContainer": "/dados (contêiner)",
10512
+ "dirHostDefault": "/var/lib/redis",
10513
+ "dirDefaultInstance": "/var/lib/redis/default",
10514
+ "dirDataWarn": "/data geralmente é um caminho de contêiner; este painel não pode confirmar que existe.",
10515
+ "saveOff": "Desativar instantâneos (não recomendado)",
10516
+ "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.",
10517
+ "dirMoveWarn": "Alterar o diretório não move dump.rdb/AOF. A próxima inicialização usa o novo caminho como está.",
10518
+ "passwordUnset": "Não definido no serviço",
10519
+ "passwordSetHidden": "Conjunto (não mostrado)",
10520
+ "scanHint": "Uses SCAN, not KEYS. Returns at most {{n}} keys — avoid * on huge databases.",
10521
+ "scanCapped": "Showing the first {{n}} matches.",
10522
+ "dbOptionKeys": "DB {{i}} · {{n}} keys",
10523
+ "dbOptionEmpty": "DB {{i}} · empty",
10524
+ "insecureShort": "No password"
9270
10525
  },
9271
10526
  "resources": {
9272
10527
  "created": "Criado",
@@ -9734,7 +10989,29 @@
9734
10989
  "projectsCount": "Projetos YSK",
9735
10990
  "noProjects": "Nenhum projeto",
9736
10991
  "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."
10992
+ "pm2OnlyDesc": "Somente aplicativos iniciados com PM2 no usuário do painel. As implantações do systemd aparecem acima.",
10993
+ "startupTitle": "Comece na inicialização",
10994
+ "startupDesc": "Registre o PM2 para que os processos voltem após a reinicialização.",
10995
+ "systemdActionsHint": "As ações do systemd precisam de root e YSK_EXECUTE.",
10996
+ "startupOk": "Startup registered. {{notes}}",
10997
+ "startupFail": "Could not register startup. {{notes}}",
10998
+ "actionOk": "{{action}} {{name}} — {{notes}}",
10999
+ "actionFail": "Could not {{action}} {{name}}. {{notes}}",
11000
+ "startupReady": "Ready",
11001
+ "startupReadyYes": "Yes",
11002
+ "startupReadyNo": "No",
11003
+ "startupUnit": "Unit",
11004
+ "startupDump": "Dump",
11005
+ "startupInstall": "Install startup",
11006
+ "startupSave": "Save process list",
11007
+ "actRestart": "Restart",
11008
+ "actStop": "Stop",
11009
+ "actReload": "Reload",
11010
+ "pm2ActionsHint": "PM2 actions apply to the panel user’s process list only.",
11011
+ "noteUnparsed": "PM2 list could not be parsed (empty or unexpected output).",
11012
+ "notePanelUserOnly": "PM2 list is for the panel process user only.",
11013
+ "noteProjectUnits": "{{n}} YSK project unit(s) listed",
11014
+ "glossary": "PM2 = process manager; SSE = live stream."
9738
11015
  },
9739
11016
  "recordedInstalled": "Gravado {{v}}",
9740
11017
  "remoteSourceSuffix": "({{source}})",
@@ -9788,7 +11065,32 @@
9788
11065
  "path": "Caminho",
9789
11066
  "fullVersion": "Versão completa",
9790
11067
  "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"
11068
+ "alreadyHostDefaultShort": "Padrão de host",
11069
+ "managedPathMissingTitle": "Caminho {{name}} gerenciado não está pronto",
11070
+ "managedPathMissing": "{{name}} gerenciado por YSK para a versão {{version}} não está pronto. Teste novamente ou reinstale.",
11071
+ "installRecordedCta": "Instalação gravada {{v}}",
11072
+ "targetMissing": "Versão de destino não instalada",
11073
+ "targetMissingHint": "O destino {{version}} não está neste anfitrião. Ligue uma versão instalada ou instale este pin.",
11074
+ "needsInstall": "é preciso instalar",
11075
+ "needsInstallHint": "Não está neste anfitrião. Instale-o ou escolha uma versão instalada.",
11076
+ "unitBytes": "bytes",
11077
+ "headerSizeKb": "{{n}}KB",
11078
+ "phpIniChipEmpty": "Não carregado — abra o separador php.ini",
11079
+ "phpFpmService": "PHP-FPM",
11080
+ "phpFpmServiceDesc": "Iniciar, parar, recarregar ou reiniciar a unidade PHP-FPM",
11081
+ "rustupDefaultMissingTitle": "Sem toolchain predefinida do rustup",
11082
+ "rustupDefaultMissing": "O rustup não tem predefinição. Defina stable no separador Software.",
11083
+ "rustupDefaultMissingShort": "Nenhum conjunto de ferramentas padrão",
11084
+ "rustupSetDefaultHint": "Definir conjunto de ferramentas padrão",
11085
+ "uninstalledCountHint": "{{n}} versão(ões) não estão neste anfitrião",
11086
+ "applyPhpVhostTitle": "Precisa de confirmação – grava arquivos pool/vhost",
11087
+ "applyPhpVhostDesc": "Escreverá o pool {{pool}} e o {{domain}} vhost. Serviços de recarga: {{reload}}.",
11088
+ "binaryPath": "Caminho do binário",
11089
+ "installedLabel": "Installed",
11090
+ "installedHint": "Host probe result — not the control-plane record",
11091
+ "targetHint": "Version this page will install or pin",
11092
+ "rebuildFromHost": "Rebuild record from host",
11093
+ "rebuiltFromHost": "Record refreshed from host probe"
9792
11094
  },
9793
11095
  "search": {
9794
11096
  "placeholder": "Pesquisar páginas e recursos…",
@@ -9797,21 +11099,25 @@
9797
11099
  "loading": "Procurando…",
9798
11100
  "noResults": "Nenhuma correspondência",
9799
11101
  "kinds": {
9800
- "page": "Pages",
9801
- "project": "Projects",
9802
- "email": "Email",
9803
- "mailbox": "Mailboxes",
11102
+ "page": "Páginas",
11103
+ "project": "Projetos",
11104
+ "email": "E-mail",
11105
+ "mailbox": "Caixas de correio",
9804
11106
  "ssl": "SSL",
9805
11107
  "dns": "DNS",
9806
11108
  "nginx": "Nginx",
9807
- "share": "Shares",
11109
+ "share": "Ações",
9808
11110
  "ftp": "FTP",
9809
11111
  "mysql": "MySQL",
9810
11112
  "postgres": "PostgreSQL",
9811
11113
  "redis": "Redis",
9812
11114
  "cron": "Cron",
9813
- "user": "Users",
9814
- "other": "Other"
11115
+ "user": "Usuários",
11116
+ "other": "Outro"
11117
+ },
11118
+ "alias": {
11119
+ "ssl": "certificado certificado certificados",
11120
+ "projects": "locais do projeto"
9815
11121
  }
9816
11122
  },
9817
11123
  "security": {
@@ -9835,7 +11141,7 @@
9835
11141
  "tabApiKeys": "Chaves de API",
9836
11142
  "tabSsh": "SSH",
9837
11143
  "tabApprovals": "Aprovações",
9838
- "tabAllowlist": "Lista de permissões",
11144
+ "tabAllowlist": "Ferramentas do agente",
9839
11145
  "apiTokenOnce": "Token de API (mostrado uma vez):",
9840
11146
  "copiedToken": "Token copiado",
9841
11147
  "totpTitle": "Dois fatores (TOTP)",
@@ -9919,8 +11225,8 @@
9919
11225
  "revokeAllDevices": "Revogar todos os dispositivos",
9920
11226
  "revokedAllDevices": "Todos os dispositivos confiáveis ​​revogados",
9921
11227
  "export2faBackup": "Exportar backup criptografado 2FA",
9922
- "fail2banSnippetMsg": "Trechos de Fail2ban: {{written}} — {{notes}}",
9923
- "generateFail2ban": "Gerar trechos Fail2ban",
11228
+ "fail2banSnippetMsg": "Trechos de fail2ban: {{written}} — {{notes}}",
11229
+ "generatefail2ban": "Gerar trechos fail2ban",
9924
11230
  "adminPolicyTitle": "Política 2FA do administrador",
9925
11231
  "adminPolicyDesc": "",
9926
11232
  "requireAdmin2fa": "Exigir 2FA de administrador",
@@ -9940,8 +11246,8 @@
9940
11246
  "apiKeysEmpty": "Ainda não há chaves de API",
9941
11247
  "apiKeysEmptyHint": "Crie na barra de ferramentas; em seguida, chame a API com o token do portador",
9942
11248
  "approve": "Aprovar",
9943
- "allowlistTitle": "Lista de permissões ({{count}})",
9944
- "allowlistEmpty": "Nenhuma ferramenta de lista de permissões",
11249
+ "allowlistTitle": "Ferramentas do agente ({{count}})",
11250
+ "allowlistEmpty": "Não ferramentas no catálogo",
9945
11251
  "createApiKeyTitle": "Criar chave de API",
9946
11252
  "createApiKeyDesc": "O token completo é mostrado apenas uma vez após a criação",
9947
11253
  "createKeyBtn": "Criar chave",
@@ -10183,7 +11489,23 @@
10183
11489
  "sharePanelTitle": "Compartilhar segredo TOTP do painel?",
10184
11490
  "sharePanelDesc": "Alto risco. Digite COMPARTILHADO para confirmar.",
10185
11491
  "confirmString": "Sequência de confirmação",
10186
- "enableShare": "Ativar compartilhamento"
11492
+ "enableShare": "Ativar compartilhamento",
11493
+ "invalidPub": "Cole uma linha completa de chave pública OpenSSH (ssh-ed25519 / ssh-rsa / ecdsa…).",
11494
+ "dryRunOk": "Pré-visualização concluída. Reveja o conteúdo abaixo.",
11495
+ "strictBlocked": "O pacote ou o PAM não está pronto; a aplicação Strict está desativada.",
11496
+ "strictDryRun": "Pré-visualização do modo estrito",
11497
+ "errorNoDetail": "Teste falhou (sem detalhes)",
11498
+ "privCloseWithoutAck": "Fechado. A chave privada não será mostrada novamente; gere um novo se você não o salvou.",
11499
+ "loginNoProjects": "Sem projetos. Autorize um usuário Linux existente (root/testador) abaixo. Escrever /root/.ssh precisa de YSK_EXECUTE=1.",
11500
+ "loginLinuxHint": "Usado quando não há projeto. Exemplo: root ou testador.",
11501
+ "pkgStatus": "Package {{status}}",
11502
+ "pamStatus": "PAM {{status}}",
11503
+ "kbdStatus": "sshd keyboard-interactive {{status}}",
11504
+ "light": {
11505
+ "green": "ok",
11506
+ "yellow": "check",
11507
+ "red": "missing"
11508
+ }
10187
11509
  },
10188
11510
  "sessionsActive": "Sessões ativas",
10189
11511
  "sessionsOther": "Outros dispositivos",
@@ -10206,7 +11528,50 @@
10206
11528
  "revokeOthersDesc": "Isso encerrará {{count}} outras sessões. Seu navegador atual permanece conectado.",
10207
11529
  "sessionRevoked": "Sessão desconectada",
10208
11530
  "mySecurityHint": "",
10209
- "policyTotpHint": "Política do site: cada administrador deve habilitar seu próprio 2FA (QR individual)"
11531
+ "policyTotpHint": "Política do site: cada administrador deve habilitar seu próprio 2FA (QR individual)",
11532
+ "requireUser2fa": "Exigir 2FA para todos os utilizadores do painel",
11533
+ "generateFail2ban": "Gerar fragmentos fail2ban",
11534
+ "changePasswordTitle": "Alterar a palavra-passe de início de sessão",
11535
+ "currentPassword": "Palavra-passe atual",
11536
+ "newPassword": "Nova palavra-passe",
11537
+ "confirmNewPassword": "Confirmar nova palavra-passe",
11538
+ "passwordMismatch": "As novas palavras-passe não coincidem.",
11539
+ "changePassword": "Alterar palavra-passe",
11540
+ "passwordChanged": "Palavra-passe atualizada.",
11541
+ "strictNeedsEnrolled": "Pelo menos um administrador deve ter 2FA antes de ativar o Strict.",
11542
+ "policyTotpNeedSelf": "Ative primeiro o 2FA nesta conta; caso contrário o código de confirmação não pode ser preenchido.",
11543
+ "fail2banSnippetTitle": "Fragmento fail2ban",
11544
+ "fail2banSnippetEmpty": "Nenhum fragmento foi escrito.",
11545
+ "trustedDevicesTitle": "Dispositivos de confiança",
11546
+ "noTrustedDevices": "Não há dispositivos de confiança.",
11547
+ "strictConfirmTitle": "Ativar 2FA Strict?",
11548
+ "strictConfirmDesc": "Utilizadores sem 2FA serão recusados. Confirme que já tem TOTP ou Passkey a funcionar.",
11549
+ "revokeDevicesTitle": "Revogar dispositivos de confiança?",
11550
+ "revokeDevicesDesc": "Os browsers memorizados voltarão a pedir 2FA.",
11551
+ "approvalsHint": "As aprovações aparecem quando uma ferramenta de alto risco precisa de um segundo operador. Configure permissões em Utilizadores → Permissões.",
11552
+ "allowlistReadonly": "Catálogo de ferramentas do agente (só leitura). As capacidades configuram-se em Utilizadores → Permissões.",
11553
+ "colTool": "Ferramenta",
11554
+ "colAllowed": "Permitido",
11555
+ "colRisk": "Risco",
11556
+ "colApproval": "Aprovação",
11557
+ "risk": {
11558
+ "low": "Baixo",
11559
+ "medium": "Médio",
11560
+ "high": "Alto",
11561
+ "critical": "Crítico"
11562
+ },
11563
+ "totpStatusLoadFailed": "Não foi possível carregar o estado 2FA",
11564
+ "confirmDeleteApiKey": "Excluir esta chave de API?",
11565
+ "confirmDeleteApiKeyDesc": "“{{name}}” irá parar de autenticar. Isto não pode ser desfeito.",
11566
+ "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.",
11567
+ "sessionCli": "CLI",
11568
+ "sessionApi": "API",
11569
+ "statApiSessions": "Sessões de API",
11570
+ "revokeOtherTitle": "Sair de {{n}} outras sessões",
11571
+ "policyNeedSelf2fa": "Habilite 2FA nesta conta primeiro e depois confirme com um código TOTP",
11572
+ "revokeAllDevicesTitle": "Revogue todos os dispositivos lembrados – você e outros administradores devem verificar o 2FA novamente",
11573
+ "statSshValue": "{{keys}} keys · {{auth}} authorized",
11574
+ "statSshHint": "Outbound identities / authorized login keys"
10210
11575
  },
10211
11576
  "serviceExposure": {
10212
11577
  "title": "Acesso à rede",
@@ -10215,8 +11580,8 @@
10215
11580
  "manageDesc": "Controle como {{service}} pode ser acessado no firewall do host.",
10216
11581
  "mode": "Modo de acesso",
10217
11582
  "modePrivate": "Somente locais",
10218
- "modePublic": "Public",
10219
- "modeRestricted": "Restricted",
11583
+ "modePublic": "Público",
11584
+ "modeRestricted": "Restrito",
10220
11585
  "summaryPrivate": "Não aberto no firewall público.",
10221
11586
  "summaryPublic": "Aberto · {{ports}}",
10222
11587
  "summaryRestricted": "Restrito · {{count}} fonte(s)",
@@ -10224,9 +11589,9 @@
10224
11589
  "outOfSync": "Fora de sincronia",
10225
11590
  "firewallOff": "Firewall desativado",
10226
11591
  "ufwMissing": "UFW não instalado",
10227
- "ufwInactive": "inactive",
11592
+ "ufwInactive": "inativo",
10228
11593
  "firewallLink": "Firewall",
10229
- "portsLabel": "Ports",
11594
+ "portsLabel": "Portas",
10230
11595
  "allowFrom": "Fontes permitidas (IP/CIDR)",
10231
11596
  "allowCountries": "Países permitidos (ISO)",
10232
11597
  "hintPrivate": "O serviço ainda pode escutar no host local; nenhum UFW público permite regras.",
@@ -10237,7 +11602,19 @@
10237
11602
  "restrictedNeedSource": "Adicione pelo menos um IP/CIDR ou código de país para modo restrito.",
10238
11603
  "privateStartTitle": "Expor {{service}} na rede?",
10239
11604
  "confirmAndStart": "Confirme e comece",
10240
- "cloudSgNote": "Somente firewall de host — grupos de segurança em nuvem (AWS/GCP/Azure) não são alterados."
11605
+ "cloudSgNote": "Somente firewall de host — grupos de segurança em nuvem (AWS/GCP/Azure) não são alterados.",
11606
+ "modeUndecided": "Não definido",
11607
+ "modeLoading": "Carregando",
11608
+ "summaryUndecided": "Modo de acesso não confirmado (padrão do catálogo: {{suggested}}).",
11609
+ "summaryNotEnforced": "O firewall está desligado — o painel não está abrindo ou bloqueando essas portas.",
11610
+ "roleSmtp": "Envio SMTP",
11611
+ "roleImap": "Caixa de correio IMAP/POP3",
11612
+ "serviceNotInstalled": "Este serviço não está instalado, portanto as regras de firewall não se aplicam.",
11613
+ "openButStopped": "Portas abertas – serviço não está em execução",
11614
+ "openNoTenants": "Portos públicos sem inquilinos",
11615
+ "summaryFirewallOffOnly": "Host firewall is not enabled, so port rules are not enforced.",
11616
+ "modePublicLive": "Public (live bind)",
11617
+ "summaryPublicLive": "Listening on {{bind}} — reachable on all interfaces. Confirm access mode; this is not private."
10241
11618
  },
10242
11619
  "services": {
10243
11620
  "enabledBoot": "Na inicialização",
@@ -10245,8 +11622,27 @@
10245
11622
  "start": "Começar",
10246
11623
  "stop": "Parar",
10247
11624
  "restart": "Reiniciar",
10248
- "reload": "Recarregar"
10249
- },
11625
+ "reload": "Recarregar",
11626
+ "enable": "Ativar no arranque",
11627
+ "disable": "Desativar no arranque"
11628
+ },
11629
+ "lifecycleTitle": "Controlo do serviço {{label}}",
11630
+ "startedOk": "{{label}} iniciado",
11631
+ "stoppedOk": "{{label}} parado",
11632
+ "restartedOk": "{{label}} reiniciado",
11633
+ "reloadedOk": "{{label}} recarregado",
11634
+ "stopConfirmTitle": "Parar {{label}}?",
11635
+ "stopConfirmDesc": "{{label}} deixa de escutar. Pode iniciá-lo de novo nesta página.",
11636
+ "stopConfirmEdgeDesc": "Parar {{label}} tira os sítios e o proxy inverso do ar até voltar a iniciar.",
11637
+ "stopConfirmEdgeConsequence": "Enquanto {{label}} estiver parado, este anfitrião não serve HTTP/HTTPS.",
11638
+ "stopConfirmSshdTitle": "Parar sshd?",
11639
+ "stopConfirmSshdDesc": "Parar sshd fecha o SSH remoto. Confirme consola ou outro acesso.",
11640
+ "stopConfirmSshdToken": "parar sshd",
11641
+ "stopConfirmSshdConsequence": "Novas sessões SSH falham até iniciar o sshd na consola do anfitrião.",
11642
+ "stopConfirmPanelTitle": "Parar YSK Server?",
11643
+ "stopConfirmPanelDesc": "O painel e a API ficam offline até iniciar a unidade no anfitrião.",
11644
+ "stopConfirmPanelToken": "pare o servidor ysk",
11645
+ "stopConfirmPanelConsequence": "Esta sessão do browser desliga-se. Inicie a unidade por SSH ou consola.",
10250
11646
  "actionDone": "{{action}} concluído",
10251
11647
  "runningOf": "{{running}}/{{total}} em execução",
10252
11648
  "canMutate": "Mutável",
@@ -10277,7 +11673,46 @@
10277
11673
  "protectionDoneNote": "Sonda de proteção concluída",
10278
11674
  "probeDone": "Sondagem concluída",
10279
11675
  "runProtection": "Executar investigação de proteção",
10280
- "notProbedYet": "Ainda não foi investigado"
11676
+ "notProbedYet": "Ainda não foi investigado",
11677
+ "stopConfirmFail2banTitle": "Parar o fail2ban?",
11678
+ "stopConfirmFail2banDesc": "Interromper o fail2ban desativa os banimentos automáticos de IP. Sites e SSH continuam funcionando.",
11679
+ "stopConfirmFail2banConsequence": "Novos invasores não são banidos até que o fail2ban seja reiniciado.",
11680
+ "installOrOpen": "Instalar / abrir",
11681
+ "statusFilter": {
11682
+ "all": "Todos os estados",
11683
+ "running": "Correndo",
11684
+ "failed": "Fracassado",
11685
+ "missing": "Não instalado"
11686
+ },
11687
+ "stopNeedConfirm": "Requer confirmação",
11688
+ "stopNeedConfirmPhrase": "É necessário escrever a frase de confirmação",
11689
+ "enabledOk": "{{label}} ativado no arranque",
11690
+ "bootDisabledWarn": "{{label}} está a correr mas não arranca no boot. Ative para persistir após reinício.",
11691
+ "bootDisabledShort": "Não no arranque",
11692
+ "mariadbNotInstalled": "MariaDB não está instalado",
11693
+ "mariadbNotInstalledMysqlOk": "Not installed: MariaDB (MySQL is installed)",
11694
+ "restartConfirmPanelTitle": "Restart YSK Server?",
11695
+ "restartConfirmPanelDesc": "The panel and API will drop briefly while the unit restarts.",
11696
+ "unitNotFound": "Unit not installed",
11697
+ "unitNa": "Not applicable",
11698
+ "unitStatic": "static",
11699
+ "unitIndirect": "indirect",
11700
+ "needRunning": "{{label}} is not running",
11701
+ "bootNa": "Not applicable",
11702
+ "permLabel": "Permission",
11703
+ "permCanChange": "Can change the system (superuser)",
11704
+ "permBlocked": "Cannot change the system",
11705
+ "permHint": "System change {{exec}} · Superuser {{root}}",
11706
+ "clusterLegend": "Planned = saved in the panel, not applied on the host.",
11707
+ "active": {
11708
+ "active": "Running",
11709
+ "inactive": "Stopped",
11710
+ "not-found": "Not installed",
11711
+ "failed": "Failed",
11712
+ "tool": "Tool",
11713
+ "activating": "Starting"
11714
+ },
11715
+ "sshdBootOffWarn": "sshd is not enabled on boot. After reboot this host will have no SSH rescue path."
10281
11716
  },
10282
11717
  "software": {
10283
11718
  "title": "Programas",
@@ -10368,7 +11803,8 @@
10368
11803
  "pick": "Escolha a versão",
10369
11804
  "noTarget": "Sem meta de atualização",
10370
11805
  "needRuntimePage": "Instale esta versão na página de tempo de execução",
10371
- "noAptCandidate": "Nenhuma versão candidata adequada"
11806
+ "noAptCandidate": "Nenhuma versão candidata adequada",
11807
+ "sourceLabel": "Fonte"
10372
11808
  },
10373
11809
  "install": {
10374
11810
  "progress": "Instalando: {{list}}…",
@@ -10467,14 +11903,24 @@
10467
11903
  "generic": "Serviços relacionados podem parar",
10468
11904
  "purgeData": "Os caminhos de dados serão excluídos",
10469
11905
  "protectedSkipped": "Os componentes protegidos são ignorados",
10470
- "runtimeStack": "Todas as versões gerenciadas pelo painel deste ambiente de execução serão removidas"
11906
+ "runtimeStack": "Todas as versões gerenciadas pelo painel deste ambiente de execução serão removidas",
11907
+ "containers": "Os contentores em execução vão parar",
11908
+ "validators": "As pilhas de validador que usam Docker Compose vão parar"
10471
11909
  },
10472
11910
  "requestCancel": "Solicitar cancelamento",
10473
11911
  "cancelling": "Cancelando…",
10474
11912
  "dockCancelling": "Cancelando · {{title}}",
10475
11913
  "dockCancelled": "Cancelado · {{title}}",
10476
11914
  "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)"
11915
+ "cancelledToast": "Operação cancelada (o cliente interrompeu o streaming)",
11916
+ "kindApply": "Aplicar",
11917
+ "kindScan": "Digitalizar",
11918
+ "kindDeploy": "Implantar",
11919
+ "kindRuntime": "Tempo de execução",
11920
+ "jobDone": "Concluído · {{title}}",
11921
+ "jobFailed": "Falhou · {{title}}",
11922
+ "uninstallUfwWarn": "Remover o UFW deixa este anfitrião sem a firewall de portas gerida pelo painel.",
11923
+ "uninstallFail2banWarn": "Remover o fail2ban para as jails e liberta os bloqueios. Se o mantiver, adicione o IP de início a ignoreip."
10478
11924
  },
10479
11925
  "sqlEngineHealth": {
10480
11926
  "finding": {
@@ -10690,7 +12136,18 @@
10690
12136
  "requestDone": "Solicitação de certificado concluída",
10691
12137
  "requestFailed": "A solicitação de certificado não foi bem-sucedida",
10692
12138
  "applyFailed": "Falha na solicitação",
10693
- "deletedCert": "Excluído {{domain}}"
12139
+ "deletedCert": "Excluído {{domain}}",
12140
+ "uninstallCertbotWarn": "A remoção do certbot interrompe a renovação automática dos certificados Let's Encrypt existentes.",
12141
+ "renew": "Renovar",
12142
+ "renewFor": "Renovar Let’s Encrypt para {{domain}}",
12143
+ "domainRequired": "Introduza um domínio.",
12144
+ "domainInvalid": "O formato do domínio não é válido.",
12145
+ "domainKnownHint": "Escolha um domínio de projeto, DNS ou correio, ou escreva um.",
12146
+ "deleteNeedDomain": "Exclua este certificado – digite o nome de domínio para confirmar",
12147
+ "panelCertHint": "Panel HTTPS uses {{path}} (expires {{exp}}). It is not listed as a site certificate.",
12148
+ "openPanelTls": "Open panel HTTPS",
12149
+ "deleteDomain": "Delete {{domain}}",
12150
+ "uninstallCertbot": "Uninstall certbot (loses auto-renew)"
10694
12151
  },
10695
12152
  "stackWizard": {
10696
12153
  "purgeConfirm": "Confirmar a purga? Os caminhos de dados registrados (bancos de dados/correio) serão excluídos permanentemente.",
@@ -10705,39 +12162,62 @@
10705
12162
  "componentsTitle": "Componentes para instalar",
10706
12163
  "dryRun": "Visualização de simulação",
10707
12164
  "installNow": "Instale agora",
10708
- "uninstallHint": "Selecione pacotes para remover",
12165
+ "uninstallHint": "Selecione os pacotes a remover. Sem seleção não é possível remover. Os dados são conservados por omissão.",
10709
12166
  "dataPolicy": "Política de dados",
10710
12167
  "keepData": "Mantenha os dados",
10711
12168
  "purgeData": "Limpar dados",
10712
- "uninstallNow": "Desinstalar agora"
12169
+ "uninstallNow": "Desinstalar agora",
12170
+ "uninstallNeedSelect": "Selecione pelo menos um pacote. A seleção vazia não significa mais remover tudo.",
12171
+ "uninstallConfirmTitle": "Remover pacotes selecionados?",
12172
+ "uninstallConfirmDesc": "{{count}} pacote(s) serão removidos. Digite REMOVER para confirmar.",
12173
+ "countHint": "These counts are OS packages in the software plan — not the service-matrix units on the other tab.",
12174
+ "executeRoot": "System changes {{execute}} · administrator {{root}}",
12175
+ "manifestPlan": "Plan {{plan}} ({{bundles}})",
12176
+ "manifestHint": "Last chosen software plan and bundles"
10713
12177
  },
10714
12178
  "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.",
12179
+ "title": "Suporte",
12180
+ "sub": "Creator, donativos e YSK Limited produto gratuito, ajuda real",
12181
+ "creatorTitle": "Criador",
12182
+ "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.",
12183
+ "donateTitle": "Apoio / Donativo",
12184
+ "donateBody": "Se o YSK Server lhe poupa tempo, considere patrocinar o desenvolvimento. Cada contributo ajuda a manter o produto gratuito para todos.",
10721
12185
  "donateGithub": "Patrocinadores do GitHub",
10722
- "donateOther": "Outras maneiras de dar",
12186
+ "donateOther": "Outras formas de contribuir",
10723
12187
  "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",
12188
+ "yskIntro": "Precisa de ajuda prática para além do painel gratuito? A YSK Limited pode ajudar com:",
12189
+ "yskSvc1": "Instalação, endurecimento e operação contínua do servidor",
12190
+ "yskSvc2": "Desenho da stack de alojamento (web, correio, DNS, bases de dados)",
12191
+ "yskSvc3": "Migração, automatização e integração à medida",
10728
12192
  "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.",
12193
+ "yskNoPrice": "Não há preços aqui contacte-nos para uma conversa adaptada ao seu ambiente.",
10730
12194
  "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.",
12195
+ "helpTitle": "Tem um problema?",
12196
+ "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
12197
  "docsHint": "A documentação completa está no repositório em",
10734
12198
  "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"
12199
+ "cryptoTitle": "Cripto / identificadores Web3",
12200
+ "cryptoHint": "Envie apenas na rede correspondente. Confirme o endereço antes de enviar.",
12201
+ "cryptoNetwork": "Rede",
12202
+ "cryptoAddress": "Endereço",
12203
+ "copy": "Copiar",
12204
+ "copied": "Copiado",
12205
+ "docsLink": "Documentação",
12206
+ "diagTitle": "Resumo de diagnóstico",
12207
+ "diagBody": "Copie a versão, execute e hospede dados para colar em um e-mail. Este não é um pacote de log completo.",
12208
+ "diagCopy": "Copiar resumo de diagnóstico",
12209
+ "diagCopied": "Resumo de diagnóstico copiado",
12210
+ "copyTitle": "Copiar {{address}}",
12211
+ "diagCopyTitle": "Copiar versão, EXECUTE e dados do anfitrião",
12212
+ "diagPreview": "Pré-visualizar o que será copiado",
12213
+ "diagLoading": "Carregando diagnóstico…",
12214
+ "diagLoadFailed": "Não foi possível carregar o diagnóstico",
12215
+ "copiedAddr": "Copied {{addr}}",
12216
+ "diagStatus": "Status",
12217
+ "diagMode": "Mode",
12218
+ "diagProtection": "Protection",
12219
+ "diagHostname": "Hostname",
12220
+ "diagOs": "OS"
10741
12221
  },
10742
12222
  "system": {
10743
12223
  "exportLoadFailed": "Falha ao carregar dados de exportação",
@@ -10818,7 +12298,17 @@
10818
12298
  "leOk": "Vamos criptografar o certificado obtido para {{domain}}",
10819
12299
  "leFailed": "Falha na solicitação de certificado: {{detail}}",
10820
12300
  "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)"
12301
+ "openFirewall": "Se público: permitir porta do painel {{port}}/tcp (Firewall → porta aberta → Painel 9287)",
12302
+ "disableConfirmTitle": "Desativar painel HTTPS?",
12303
+ "disableConfirmDesc": "O painel servirá HTTP. WebAuthn/Passkey irá parar de funcionar até que o HTTPS seja ativado novamente.",
12304
+ "disablePasskeyWarn": "As chaves de acesso registradas precisam de HTTPS – elas falharão no HTTP.",
12305
+ "disableNeedConfirm": "Requer confirmação — escreva DISABLE-HTTPS",
12306
+ "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.",
12307
+ "bootstrapCert": "Este é o certificado de inicialização autoassinado – os navegadores avisarão. Emita um certificado confiável para o domínio do painel.",
12308
+ "cliNoSocket": "CLI não possui soquete HTTP ativo; servindoHttps é inferido dos soquetes de configuração e escuta (ss).",
12309
+ "listenHost": "Endereço de escuta",
12310
+ "currentHost": "Esta sessão",
12311
+ "replaceCert": "Substitua por um certificado confiável"
10822
12312
  },
10823
12313
  "timeNtp": "Tempo e NTP",
10824
12314
  "clockStatus": "Status do relógio do sistema",
@@ -10923,7 +12413,21 @@
10923
12413
  "exportPath": "Caminho de exportação",
10924
12414
  "mode": "Modo",
10925
12415
  "managedConf": "Configuração gerenciada",
10926
- "dryRunFlag": "Teste a seco"
12416
+ "dryRunFlag": "Teste a seco",
12417
+ "timezoneSearch": "Filtrar fusos horários…",
12418
+ "resyncNtp": "Sincronizar novamente o NTP",
12419
+ "storageSub": "Uso de disco",
12420
+ "syncReloadNeedConfirm": "Precisa de confirmação — escreve /etc/nginx/conf.d e recarrega o Nginx",
12421
+ "nginxLeftover": "Residual",
12422
+ "nginxUnused": "Não usado",
12423
+ "nginxLeftoverHint": "Conf residual (p.ex. public-files). Incluída na sincronização até agir.",
12424
+ "nginxUnusedHint": "Conf de origem / catch-all (000-default). Incluída na sincronização até agir.",
12425
+ "powerUnlock": "Desbloquear zona de perigo",
12426
+ "powerLock": "Bloquear zona de perigo",
12427
+ "noScheduledPower": "Nenhuma reinicialização ou desligamento está agendado",
12428
+ "timezoneNow": "Host time now: {{time}} ({{tz}})",
12429
+ "timezoneBrowserDiff": "This host uses {{host}}; your browser uses {{browser}}. Changing timezone here changes the host clock, not the browser.",
12430
+ "notExported": "Not exported yet"
10927
12431
  },
10928
12432
  "systemd": {
10929
12433
  "enabled": "Habilitado",
@@ -11017,7 +12521,9 @@
11017
12521
  "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
12522
  "policyInstallFull": "Instale e habilite: copie para /etc/systemd/system, daemon-reload, habilite --now. Precisa de root + EXECUTE.",
11019
12523
  "policyBlockedTitle": "Bloqueado sem privilégio",
11020
- "policyNotEqualTitle": "Estados não são equivalentes"
12524
+ "policyNotEqualTitle": "Estados não são equivalentes",
12525
+ "rawStateHint": "Raw unit state in tooltip",
12526
+ "bootHint": "Whether the unit starts at boot"
11021
12527
  },
11022
12528
  "tabs": {
11023
12529
  "scrollLeft": "Rolar as guias para a esquerda",
@@ -11057,7 +12563,15 @@
11057
12563
  "stepUpHint": "O login root requer aumento de 2FA quando sua conta tem TOTP ativado.",
11058
12564
  "stepUpTitle": "Confirme o shell raiz",
11059
12565
  "stepUpDesc": "Digite seu código autenticador ou um código de recuperação.",
11060
- "totpLabel": "TOTP/código de recuperação"
12566
+ "totpLabel": "TOTP/código de recuperação",
12567
+ "sessionStillOpen": "Um live shell ainda está conectado enquanto você lê esta página.",
12568
+ "rootConfirmTitle": "Abrir um shell de root?",
12569
+ "rootConfirmDesc": "Esta sessão é um PTY raiz irrestrito no host. Os comandos são auditados.",
12570
+ "rootConfirmBody": "Continue apenas se pretender executar comandos de host privilegiados.",
12571
+ "copyAll": "Copiar tudo",
12572
+ "copyAllNeedConn": "Conecte primeiro – o buffer fica vazio enquanto desconectado",
12573
+ "groupSystem": "System",
12574
+ "groupProject": "Project"
11061
12575
  },
11062
12576
  "uiInline": {
11063
12577
  "s27d9daa5": "tempo de execução {{v0}} {{v1}},",
@@ -11357,9 +12871,9 @@
11357
12871
  "applyPanelUpdate": "Aplicar atualização do painel",
11358
12872
  "recheck": "Verifique novamente",
11359
12873
  "aboutScope": "Escopo",
11360
- "aboutScopeV": "versão do plano de controle do servidor ysk · não atualização apt do sistema completo",
12874
+ "aboutScopeV": "painel ysk-server + serviços de catálogo + tempos de execução + pacotes apt restantes",
11361
12875
  "aboutChannel": "Canal",
11362
- "aboutChannelV": "npm → lançamento do GitHub → package.json; aplique via npm install -g ou git (YSK_SOURCE_ROOT)",
12876
+ "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
12877
  "aboutFail": "Falhas",
11364
12878
  "aboutFailV": "Os canais indisponíveis não são reportados como atualizados; aplicar necessidades EXECUTAR; git apply precisa reiniciar o serviço",
11365
12879
  "jobsTitle": "Trabalhos agendados",
@@ -11436,7 +12950,79 @@
11436
12950
  "scanNow": "Digitalize agora",
11437
12951
  "viewUpgradable": "Ver atualizável",
11438
12952
  "installElsewhere": "Para instalar pacotes (Nginx, PHP, bancos de dados…), abra a página de recursos correspondente – não este hub.",
11439
- "status": "Status"
12953
+ "status": "Status",
12954
+ "groupService": "Serviços",
12955
+ "groupRuntime": "Tempos de execução",
12956
+ "groupOs": "Pacotes de sistema",
12957
+ "notInstalled": "Não instalado",
12958
+ "goToPage": "Abrir página",
12959
+ "hubHint": "Catalogue software e tempos de execução neste host. Digitalize para atualizar.",
12960
+ "intervalDay": "diariamente",
12961
+ "intervalDays": "a cada {{n}} dias",
12962
+ "intervalHour": "a cada hora",
12963
+ "intervalHours": "a cada {{n}} horas",
12964
+ "intervalMinutes": "a cada {{n}} minutos",
12965
+ "intervalSeconds": "a cada {{n}} segundos",
12966
+ "availableHint": "Pacotes com um candidato mais recente do gerenciador de pacotes.",
12967
+ "servicesHint": "Serviços de catálogo neste host. Abra a página do serviço para instalar.",
12968
+ "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.",
12969
+ "needsReboot": "Reinicialização necessária",
12970
+ "kernelRebootWarn": "A instalação de um novo kernel geralmente precisa ser reinicializada antes de ser usado.",
12971
+ "neverRun": "ainda não executou",
12972
+ "scanOsvN": "Digitalizar + OSV (primeiro {{n}})",
12973
+ "rebootNeeded": "reinício",
12974
+ "kernelRebootHint": "Os pacotes do kernel precisam ser reinicializados após a aplicação",
12975
+ "needApprovalHint": "Abra Disponível e filtre os pacotes que precisam de aprovação",
12976
+ "applyNeedConfirm": "Abre uma caixa de diálogo de confirmação antes de aplicar",
12977
+ "probeFailed": "Falha na investigação",
12978
+ "notViaApt": "Não gerenciado pelo apt — nenhum candidato",
12979
+ "noCandidate": "Nenhuma versão candidata",
12980
+ "jobOpenGeo": "Página GeoIP",
12981
+ "job": {
12982
+ "protection_probe": {
12983
+ "name": "Sonda de proteção",
12984
+ "hint": "Sinais de defesa periódicos"
12985
+ },
12986
+ "updates_scan": {
12987
+ "name": "Verificação de atualizações",
12988
+ "hint": "Atualizar inventário de pacotes"
12989
+ },
12990
+ "daily_backup": {
12991
+ "name": "Backup diário",
12992
+ "hint": "Backup agendado de todos"
12993
+ },
12994
+ "db_temp_expire": {
12995
+ "name": "Expirar usuários temporários do banco de dados",
12996
+ "hint": "Eliminar usuários de banco de dados temporário expirados"
12997
+ },
12998
+ "defense_auto_ban": {
12999
+ "name": "Banimento automático de defesa",
13000
+ "hint": "Aplicar tick de banimento automático"
13001
+ },
13002
+ "defense_geoip_update": {
13003
+ "name": "Atualização GeoIP",
13004
+ "hint": "Baixe bancos de dados GeoIP"
13005
+ },
13006
+ "log_auto_vacuum": {
13007
+ "name": "Vácuo de toras",
13008
+ "hint": "retenção de diário"
13009
+ },
13010
+ "email_dnsbl": {
13011
+ "name": "E-mail DNSBL",
13012
+ "hint": "Verificação DNSBL de correio"
13013
+ },
13014
+ "validators_upgrade_scan": {
13015
+ "name": "Validators upgrade scan",
13016
+ "hint": "Check validator image / binary updates"
13017
+ }
13018
+ },
13019
+ "applyPanelAlreadyLatest": "Já é a versão mais recente do painel",
13020
+ "panelRestarting": "O painel está a reiniciar para carregar a nova versão…",
13021
+ "panelRestarted": "Painel de volta · {{version}}",
13022
+ "panelRestartWait": "Atualização aplicada. Se esta página não atualizar, recarregue após alguns segundos.",
13023
+ "cveNotChecked": "Not checked",
13024
+ "cveLabel": "CVE",
13025
+ "riskUnevaluated": "Not evaluated — run Scan + OSV"
11440
13026
  },
11441
13027
  "users": {
11442
13028
  "userCount": "{{count}} usuários",
@@ -11558,7 +13144,291 @@
11558
13144
  "securityClearTotpHint": "Requer intensificação",
11559
13145
  "securityClearConfirm": "Digite o nome de usuário para confirmar a limpeza 2FA",
11560
13146
  "securityClearOk": "Liberado 2FA para {{name}}",
11561
- "securitySelfNote": "Para configurar seu próprio 2FA, abra Segurança → Minha segurança."
13147
+ "securitySelfNote": "Para configurar seu próprio 2FA, abra Segurança → Minha segurança.",
13148
+ "cannotDeleteSelf": "Não pode eliminar a conta com sessão iniciada",
13149
+ "cannotModifySelf": "Não pode suspender nem despromover a conta com sessão iniciada",
13150
+ "cannotDeleteLastAdmin": "Não é possível eliminar o último administrador",
13151
+ "cannotDemoteLastAdmin": "Não é possível suspender nem despromover o último administrador",
13152
+ "lockSelfHint": "Esta é a conta com sessão iniciada. Eliminar, suspender e alterar a função estão bloqueados para evitar bloqueio.",
13153
+ "lockLastAdminHint": "Este é o último administrador. Eliminar, suspender e despromover estão bloqueados.",
13154
+ "demoteAdminTitle": "Despromover este administrador?",
13155
+ "demoteAdminDesc": "Este utilizador perderá o acesso completo de administrador. Confirme que resta outro administrador.",
13156
+ "searchPkgPh": "Nome do pacote",
13157
+ "quotaNonNeg": "Contagens e cotas não podem ser negativas.",
13158
+ "diskQuotaHint": "As predefinições são GiB; caixa personalizada é MiB.",
13159
+ "bandwidthHint": "0 significa ilimitado.",
13160
+ "impersonateHint": "Abre uma sessão como este usuário. Use o menu da conta para sair da representação.",
13161
+ "operatorHighRiskHint": "O operador de fábrica inclui escritas de alto risco. Estreitá-lo só afeta contas novas; alterar o predefinido afeta operadores existentes.",
13162
+ "cannotImpersonateSelf": "Você já está conectado como esta conta",
13163
+ "singleAdminNo2fa": "Este host tem um único administrador e o 2FA está desativado – habilite o 2FA e adicione um administrador de backup.",
13164
+ "enableAdmin2fa": "Enable admin 2FA",
13165
+ "addBackupAdmin": "Add a backup admin"
13166
+ },
13167
+ "validators": {
13168
+ "title": "Validadores (Beta)",
13169
+ "subtitle": "Instale e gira nós L1 neste anfitrião. Não detentor — as chaves ficam consigo.",
13170
+ "beta": "Beta",
13171
+ "tab": {
13172
+ "nodes": "Nós",
13173
+ "disk": "Disco",
13174
+ "about": "Acerca"
13175
+ },
13176
+ "empty": {
13177
+ "title": "Ainda não há nós validador",
13178
+ "desc": "Crie um nó de testnet em poucos cliques."
13179
+ },
13180
+ "refresh": "Atualizar",
13181
+ "disk": {
13182
+ "title": "Disco dos validadores",
13183
+ "root": "Diretório de dados",
13184
+ "free": "Livre",
13185
+ "used": "Usado",
13186
+ "none": "Ainda sem dados de instância",
13187
+ "warn": "A utilização do disco está alta (70%+)",
13188
+ "danger": "A utilização do disco é crítica (85%+)",
13189
+ "autoClear": "Limpar automaticamente a maior instância parada quando o disco é crítico (desligado por omissão)",
13190
+ "autoClearRisk": "Destructive: the largest stopped instance is deleted without a further prompt. Default is off. Check audit / logs after it fires.",
13191
+ "autoClearConfirmTitle": "Enable auto-clear?",
13192
+ "autoClearC1": "When disk is critical, the largest stopped instance is deleted without asking again."
13193
+ },
13194
+ "chain": {
13195
+ "eth": "Ethereum",
13196
+ "avax": "Avalanche",
13197
+ "near": "NEAR",
13198
+ "ada": "Cardano",
13199
+ "btc": "Bitcoin",
13200
+ "cosmos": "Cosmos Hub",
13201
+ "sui": "Sui",
13202
+ "aptos": "Aptos",
13203
+ "dot": "Polkadot",
13204
+ "sol": "Solana"
13205
+ },
13206
+ "network": {
13207
+ "hoodi": "Hoodi",
13208
+ "sepolia": "Sepolia",
13209
+ "mainnet": "Rede principal",
13210
+ "fuji": "Fuji",
13211
+ "testnet": "Rede de testes",
13212
+ "preview": "Visualização",
13213
+ "preprod": "Pré-produção",
13214
+ "westend": "Westend"
13215
+ },
13216
+ "networkKind": {
13217
+ "testnet": "Rede de testes",
13218
+ "mainnet": "Rede principal",
13219
+ "mixed": "Mainnet + testnet"
13220
+ },
13221
+ "profile": {
13222
+ "minimal": "Mínimo",
13223
+ "pruned": "Pruned",
13224
+ "validator-ready": "Pronto para validador",
13225
+ "rpc": "RPC"
13226
+ },
13227
+ "col": {
13228
+ "id": "ID",
13229
+ "chain": "Cadeia",
13230
+ "network": "Rede",
13231
+ "profile": "Perfil",
13232
+ "status": "Estado",
13233
+ "disk": "Disco"
13234
+ },
13235
+ "cli": {
13236
+ "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]"
13237
+ },
13238
+ "clients": {
13239
+ "el": "Cliente de execução",
13240
+ "cl": "Cliente de consenso"
13241
+ },
13242
+ "mithril": {
13243
+ "label": "Restaurar primeiro a partir de um instantâneo Mithril (recomendado em testnet)",
13244
+ "action": "Restaurar com Mithril"
13245
+ },
13246
+ "errors": {
13247
+ "notFound": "Instância de validador não encontrada",
13248
+ "invalidId": "Identificador de instância inválido",
13249
+ "diskLow": "Disco livre insuficiente para esta cadeia, rede e perfil",
13250
+ "diskUnknownMainnet": "Não é possível medir o disco livre; recusada a criação em rede principal",
13251
+ "needDocker": "É necessário Docker Compose e não foi encontrado",
13252
+ "composeFailed": "docker compose falhou",
13253
+ "needConfirm": "Limpar exige confirm=identificador da instância ou CLEAR",
13254
+ "mithrilAdaOnly": "A restauração Mithril só está disponível para Cardano",
13255
+ "needMithrilConfirm": "Mithril exige confirm=identificador da instância ou MITHRIL",
13256
+ "mithrilBlocked": "O docker run do Mithril foi bloqueado pela lista permitida",
13257
+ "mithrilKey": "Não foi possível carregar a chave de verificação genesis do Mithril",
13258
+ "mithrilFailed": "A transferência do instantâneo Mithril falhou",
13259
+ "pruneFailed": "A limpeza falhou",
13260
+ "switchNeedStop": "Pare o nó antes de mudar de rede",
13261
+ "switchNeedClear": "Mudar de rede apaga os dados da cadeia. Confirme com o identificador da instância ou CLEAR",
13262
+ "composeMissing": "Ficheiro Compose não encontrado",
13263
+ "composeNotManaged": "Recusa de escrever um ficheiro Compose que não é gerido pelo YSK",
13264
+ "badDataPath": "O caminho de dados deve ser um diretório absoluto fora dos caminhos do sistema",
13265
+ "portInUse": "Esse porto RPC já é usado por outra instância de validador",
13266
+ "snapshotUnsupported": "Não há origem de instantâneo permitida para esta cadeia",
13267
+ "snapshotLookup": "Não foi possível resolver o ponteiro oficial do instantâneo",
13268
+ "needSnapshotConfirm": "Restaurar instantâneo exige confirm=identificador da instância ou SNAPSHOT",
13269
+ "snapshotBlocked": "O docker run do instantâneo foi bloqueado pela lista permitida",
13270
+ "snapshotFailed": "A transferência ou extração do instantâneo falhou"
13271
+ },
13272
+ "notes": {
13273
+ "beta": "Esta funcionalidade é Beta. Alterações no anfitrião precisam de root e YSK_EXECUTE=1.",
13274
+ "noKeys": "O YSK Server nunca gera nem guarda chaves de staking.",
13275
+ "dockerSoon": "Install and start from this page wizard. Host changes need root and YSK_EXECUTE=1.",
13276
+ "dryCreate": "Especificação da instância e compose escritos (dry-run). Passe --execute e YSK_EXECUTE=1 para iniciar contentores.",
13277
+ "dryStart": "O arranque é dry-run. Passe --execute e YSK_EXECUTE=1.",
13278
+ "dryStop": "A paragem é dry-run. Passe --execute e YSK_EXECUTE=1.",
13279
+ "dryClear": "A limpeza é dry-run. Passe --execute e YSK_EXECUTE=1.",
13280
+ "created": "Nó criado e compose iniciado",
13281
+ "started": "Nó iniciado",
13282
+ "stopped": "Nó parado",
13283
+ "cleared": "Dados da cadeia limpos",
13284
+ "dryMithril": "A restauração Mithril é dry-run. Passe --execute e YSK_EXECUTE=1.",
13285
+ "mithril": "Instantâneo Mithril restaurado; nó reiniciado",
13286
+ "dryPrune": "A limpeza é dry-run. Passe --execute e YSK_EXECUTE=1.",
13287
+ "pruned": "Imagens não usadas do projeto limpas",
13288
+ "pruneProfile": "A poda nativa do cliente é o perfil pruned/minimal. Recrie para o alterar.",
13289
+ "sameNetwork": "Já está nessa rede",
13290
+ "drySwitch": "A mudança de rede é dry-run.",
13291
+ "switched": "Rede alterada e dados da cadeia limpos",
13292
+ "dryCompose": "Escreveria compose.yml",
13293
+ "composeWrote": "compose.yml escrito",
13294
+ "statsEmpty": "Não há contentores em execução para medir",
13295
+ "autoClearNone": "Não há instância parada para limpar automaticamente",
13296
+ "drySnapshot": "A restauração de instantâneo é dry-run. Passe --execute e YSK_EXECUTE=1.",
13297
+ "snapshotEthEl": "Arquivo EL ethPandaOps restaurado e CL redefinido para checkpoint sync",
13298
+ "snapshotEthCl": "Dados CL redefinidos para o checkpoint sync oficial",
13299
+ "snapshotNear": "Dados NEAR apagados; o compose vai reinicializar com genesis oficial e epoch sync",
13300
+ "nativePrune": "Comando de poda nativa do cliente executado",
13301
+ "dryDelete": "Delete is dry-run. Pass --execute and YSK_EXECUTE=1.",
13302
+ "deleted": "Node deleted"
13303
+ },
13304
+ "create": "Criar nó",
13305
+ "wizard": {
13306
+ "title": "Criar nó",
13307
+ "back": "Voltar",
13308
+ "next": "Seguinte",
13309
+ "install": "Instalar",
13310
+ "mainnetWarn": "A rede principal precisa de muito disco livre (ETH costuma ser 800 GiB+). Recomenda-se testnet.",
13311
+ "mainnetAck": "Compreendo o risco de disco e slashing. Continuar na rede principal.",
13312
+ "heavyWarn": "Esta cadeia é pesada (muito disco e IOPS altos). Solana na rede principal costuma precisar de 2 TiB+.",
13313
+ "memory": "Limite de memória (p. ex. 4g)",
13314
+ "cpus": "Limite de CPU (p. ex. 2.0)",
13315
+ "dataPath": "Caminho de dados (opcional)",
13316
+ "rpcPort": "Porto RPC (opcional)",
13317
+ "stepOf": "Step {{n}} / {{total}}",
13318
+ "stepChain": "Chain",
13319
+ "stepNetwork": "Network",
13320
+ "stepProfile": "Profile",
13321
+ "stepSummary": "Summary",
13322
+ "needDocker": "Docker Engine is not installed. Install it first — this button stays disabled.",
13323
+ "diskNeed": "This profile needs about {{need}} · free {{free}}",
13324
+ "diskShort": "Not enough free disk for this chain / network / profile",
13325
+ "limitNone": "No limit",
13326
+ "rpcDefault": "Default",
13327
+ "customPath": "Use a custom data path",
13328
+ "installConfirmTitle": "Install this node?",
13329
+ "installConfirmDesc": "{{chain}} · {{network}} · {{profile}}. About {{disk}} of disk. The image pull can take a long time.",
13330
+ "installC1": "Several gigabytes of images may be downloaded.",
13331
+ "installC2": "You can cancel the panel task; already-pulled images are not deleted automatically."
13332
+ },
13333
+ "actions": {
13334
+ "detail": "Detalhes",
13335
+ "start": "Iniciar",
13336
+ "stop": "Parar",
13337
+ "restart": "Reiniciar",
13338
+ "clear": "Limpar",
13339
+ "upgrade": "Atualizar",
13340
+ "clearConfirm": "Escreva o identificador da instância ou CLEAR",
13341
+ "prune": "Limpar imagens",
13342
+ "switchNetwork": "Mudar de rede",
13343
+ "removeUnit": "Também remover compose / o registo da instância",
13344
+ "restoreAfter": "Restaurar instantâneo após limpar",
13345
+ "delete": "Delete",
13346
+ "deleteTitle": "Delete {{id}}",
13347
+ "deleteDesc": "This removes the node from the panel.",
13348
+ "deleteC1": "Docker Compose is stopped and removed",
13349
+ "deleteC2": "Chain data on disk is deleted",
13350
+ "deleteC3": "The instance record is removed",
13351
+ "pruneTitle": "Prune unused images",
13352
+ "pruneDesc": "Type the instance id to prune unused Compose images for this node.",
13353
+ "pruneC1": "Unused images labelled for this Compose project are deleted.",
13354
+ "clearTitle": "Clear {{id}}",
13355
+ "clearC1": "Chain data on disk is deleted.",
13356
+ "clearC2": "The instance stays in the panel, stopped and empty.",
13357
+ "switchTitle": "Switch network",
13358
+ "switchC1": "The node is stopped and chain data is wiped before the new network is written."
13359
+ },
13360
+ "policy": {
13361
+ "label": "Política de atualização",
13362
+ "manual": "À mão",
13363
+ "notify": "Notificar",
13364
+ "auto-safe": "Automático (seguro)",
13365
+ "auto-all": "Automático (tudo)"
13366
+ },
13367
+ "logs": {
13368
+ "empty": "Ainda sem registos",
13369
+ "follow": "Seguir registos"
13370
+ },
13371
+ "compose": {
13372
+ "label": "Ficheiro Compose",
13373
+ "save": "Guardar compose"
13374
+ },
13375
+ "snapshot": {
13376
+ "action": "Restaurar instantâneo",
13377
+ "mithril": "O Cardano usa Mithril para restaurar instantâneos certificados.",
13378
+ "eth": "A rede principal Ethereum arranca com o checkpoint sync oficial do cliente de consenso. O EL continua com snap sync.",
13379
+ "ethEl": "Hoodi/Sepolia podem restaurar um arquivo EL ethPandaOps e depois fazer checkpoint-sync do CL.",
13380
+ "avax": "A Avalanche usa state-sync no perfil compose.",
13381
+ "near": "Os instantâneos tar gratuitos oficiais da NEAR foram retirados. Restaurar apaga dados e usa genesis oficial mais epoch sync.",
13382
+ "none": "Não há origem de instantâneo configurada para esta cadeia."
13383
+ },
13384
+ "stake": {
13385
+ "title": "Preparar staking (as chaves ficam consigo)",
13386
+ "offlineKeys": "Gere as chaves offline. O painel nunca as guarda.",
13387
+ "deposit": "Conclua o depósito / registo no launchpad oficial.",
13388
+ "withdrawal": "Defina você mesmo as credenciais de levantamento.",
13389
+ "monitor": "Vigie disco, pares e distintivos de atualização nesta página."
13390
+ },
13391
+ "alerts": {
13392
+ "diskTitle": "Disco do validador crítico",
13393
+ "diskBody": "O espaço livre no volume de dados do validador está criticamente baixo.",
13394
+ "upgradeTitle": "Atualização de validador disponível",
13395
+ "upgradeBody": "Um ou mais clientes de nó têm uma versão fixada mais recente.",
13396
+ "syncTitle": "O nó validador precisa de atenção",
13397
+ "syncBody": "Um nó está a sincronizar há mais de 6 horas ou reportou um erro.",
13398
+ "rollbackTitle": "Atualização de validador revertida",
13399
+ "rollbackBody": "A atualização de {{id}} falhou a verificação de saúde e foi revertida."
13400
+ },
13401
+ "upgrade": {
13402
+ "changelog": "Registo de alterações"
13403
+ },
13404
+ "readiness": {
13405
+ "dockerTitle": "Docker para nós validador",
13406
+ "dockerOk": "{{count}} instância(s) de validador; Docker está instalado",
13407
+ "dockerMissing": "Existem instâncias de validador mas o comando docker não foi encontrado"
13408
+ },
13409
+ "detail": {
13410
+ "status": "Status",
13411
+ "sync": "Sync",
13412
+ "peers": "Peers",
13413
+ "version": "Version",
13414
+ "access": "Access",
13415
+ "upgrade": "Updates",
13416
+ "upgradeHint": "How this node tracks client versions.",
13417
+ "network": "Network",
13418
+ "networkHint": "Switching network stops the node and clears chain data. Confirm under Clear data first.",
13419
+ "maintain": "Maintenance",
13420
+ "danger": "Clear data",
13421
+ "dangerHint": "Type the instance id or CLEAR. This deletes chain data on disk.",
13422
+ "compose": "Compose",
13423
+ "logs": "Logs"
13424
+ },
13425
+ "state": {
13426
+ "unknown": "Unknown",
13427
+ "stopped": "Stopped",
13428
+ "running": "Running",
13429
+ "syncing": "Syncing",
13430
+ "error": "Error"
13431
+ }
11562
13432
  },
11563
13433
  "vnc": {
11564
13434
  "pageDesc": "Servidor e cliente VNC",
@@ -11804,7 +13674,16 @@
11804
13674
  "stackMissingShort": "Não instalado",
11805
13675
  "editClientTitle": "Editar cliente remoto",
11806
13676
  "editClientDesc": "Atualizar caminho, hosts e senha armazenada opcional.",
11807
- "clientUpdated": "Perfil do cliente atualizado"
13677
+ "clientUpdated": "Perfil do cliente atualizado",
13678
+ "rememberNeedPassword": "Digite uma senha primeiro.",
13679
+ "settingsNeedStack": "Esses padrões se aplicam quando TigerVNC (e XFCE, se selecionado) estão instalados. Instale-os primeiro na guia Instalar.",
13680
+ "clientNeedNovnc": "Abrir no navegador precisa de noVNC. Instale-o na guia Instalar antes de adicionar controles remotos que você espera abrir aqui.",
13681
+ "needXfceFirst": "Install XFCE first",
13682
+ "needSessionRunning": "Session is not running — start it first",
13683
+ "deleteKeepUserWarn": "The Linux user will stay on the host as an orphan. You must clean it up later.",
13684
+ "bindRfbLine": "RFB {{bind}} :{{port}}",
13685
+ "bindNovncLine": "noVNC 127.0.0.1:{{port}}",
13686
+ "bindNovncHint": "noVNC listens on localhost. The desktop is reached through this panel, not the public internet, unless RFB bind is all interfaces."
11808
13687
  },
11809
13688
  "vpn": {
11810
13689
  "pageDesc": "Servidor e cliente VPN",
@@ -11812,7 +13691,7 @@
11812
13691
  "tab": {
11813
13692
  "wireguard": "WireGuard",
11814
13693
  "openvpn": "OpenVPN",
11815
- "outline": "Meias Sombrias",
13694
+ "outline": "Shadowsocks",
11816
13695
  "client": "Cliente local",
11817
13696
  "software": "Programas",
11818
13697
  "monitor": "Monitor",
@@ -11935,6 +13814,21 @@
11935
13814
  "lanCidrs": "Redes LAN",
11936
13815
  "customCidr": "CIDR",
11937
13816
  "addCidr": "Adicionar"
11938
- }
13817
+ },
13818
+ "engineNotInstalled": "Este motor VPN não está instalado no anfitrião.",
13819
+ "serverNotListening": "A unidade do servidor não está ativa. UDP/TCP {{port}} pode estar fechado.",
13820
+ "installEngineFirst": "Instale o mecanismo VPN primeiro",
13821
+ "portHint": {
13822
+ "51820": "Porta de escuta padrão do WireGuard",
13823
+ "51821": "Porta de escuta alternativa do WireGuard",
13824
+ "51822": "Segunda porta de escuta alternativa do WireGuard"
13825
+ },
13826
+ "needServerRunning": "{{engine}} is not running — apply the server first",
13827
+ "engineSummarySoftware": "{{installed}} installed · {{running}} running",
13828
+ "privateKeyOnce": "The client private key is shown only here. Download or copy it now — it cannot be recovered later.",
13829
+ "showPrivateKey": "Show private key",
13830
+ "hidePrivateKey": "Hide private key",
13831
+ "deletePeerTitle": "Delete peer {{name}}?",
13832
+ "deletePeerDesc": "Remove {{name}} ({{address}}). The client disconnects immediately and the config cannot be restored."
11939
13833
  }
11940
13834
  }