libre-webui 0.25.0 → 0.26.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 (510) hide show
  1. package/README.md +32 -22
  2. package/backend/dist/index.d.ts.map +1 -1
  3. package/backend/dist/index.js +26 -4
  4. package/backend/dist/index.js.map +1 -1
  5. package/backend/dist/middleware/auth.d.ts +7 -0
  6. package/backend/dist/middleware/auth.d.ts.map +1 -1
  7. package/backend/dist/middleware/auth.js +26 -0
  8. package/backend/dist/middleware/auth.js.map +1 -1
  9. package/backend/dist/middleware/index.d.ts +20 -0
  10. package/backend/dist/middleware/index.d.ts.map +1 -1
  11. package/backend/dist/middleware/index.js +105 -2
  12. package/backend/dist/middleware/index.js.map +1 -1
  13. package/backend/dist/models/personaModel.d.ts.map +1 -1
  14. package/backend/dist/models/personaModel.js +2 -0
  15. package/backend/dist/models/personaModel.js.map +1 -1
  16. package/backend/dist/observability/otel.d.ts +40 -0
  17. package/backend/dist/observability/otel.d.ts.map +1 -0
  18. package/backend/dist/observability/otel.js +337 -0
  19. package/backend/dist/observability/otel.js.map +1 -0
  20. package/backend/dist/observability/requestContext.d.ts +14 -0
  21. package/backend/dist/observability/requestContext.d.ts.map +1 -0
  22. package/backend/dist/observability/requestContext.js +21 -0
  23. package/backend/dist/observability/requestContext.js.map +1 -0
  24. package/backend/dist/persistence/chatGenerationTypes.d.ts +9 -0
  25. package/backend/dist/persistence/chatGenerationTypes.d.ts.map +1 -1
  26. package/backend/dist/persistence/extensionTypes.d.ts +13 -0
  27. package/backend/dist/persistence/extensionTypes.d.ts.map +1 -1
  28. package/backend/dist/persistence/extensionTypes.js.map +1 -1
  29. package/backend/dist/persistence/index.d.ts +1 -1
  30. package/backend/dist/persistence/index.d.ts.map +1 -1
  31. package/backend/dist/persistence/index.js.map +1 -1
  32. package/backend/dist/persistence/postgresAgentFoundationMigration.d.ts +9 -0
  33. package/backend/dist/persistence/postgresAgentFoundationMigration.d.ts.map +1 -0
  34. package/backend/dist/persistence/postgresAgentFoundationMigration.js +164 -0
  35. package/backend/dist/persistence/postgresAgentFoundationMigration.js.map +1 -0
  36. package/backend/dist/persistence/postgresExtensionRepositories.d.ts.map +1 -1
  37. package/backend/dist/persistence/postgresExtensionRepositories.js +46 -2
  38. package/backend/dist/persistence/postgresExtensionRepositories.js.map +1 -1
  39. package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.d.ts +10 -0
  40. package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.d.ts.map +1 -0
  41. package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.js +148 -0
  42. package/backend/dist/persistence/postgresMediaEnterpriseOpsMigration.js.map +1 -0
  43. package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
  44. package/backend/dist/persistence/postgresMigrationRegistry.js +10 -0
  45. package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
  46. package/backend/dist/persistence/postgresNotesV2Migration.d.ts +4 -0
  47. package/backend/dist/persistence/postgresNotesV2Migration.d.ts.map +1 -0
  48. package/backend/dist/persistence/postgresNotesV2Migration.js +57 -0
  49. package/backend/dist/persistence/postgresNotesV2Migration.js.map +1 -0
  50. package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -1
  51. package/backend/dist/persistence/postgresResourceRepositories.js +1646 -11
  52. package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
  53. package/backend/dist/persistence/postgresSkillFilesMigration.d.ts +9 -0
  54. package/backend/dist/persistence/postgresSkillFilesMigration.d.ts.map +1 -0
  55. package/backend/dist/persistence/postgresSkillFilesMigration.js +50 -0
  56. package/backend/dist/persistence/postgresSkillFilesMigration.js.map +1 -0
  57. package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts +10 -0
  58. package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts.map +1 -0
  59. package/backend/dist/persistence/postgresTeamCollaborationMigration.js +161 -0
  60. package/backend/dist/persistence/postgresTeamCollaborationMigration.js.map +1 -0
  61. package/backend/dist/persistence/resourceTypes.d.ts +541 -3
  62. package/backend/dist/persistence/resourceTypes.d.ts.map +1 -1
  63. package/backend/dist/persistence/resourceTypes.js.map +1 -1
  64. package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -1
  65. package/backend/dist/persistence/sqliteExtensionRepositories.js +26 -4
  66. package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -1
  67. package/backend/dist/persistence/sqliteMigrations.d.ts +9 -0
  68. package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
  69. package/backend/dist/persistence/sqliteMigrations.js +1196 -29
  70. package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
  71. package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -1
  72. package/backend/dist/persistence/sqliteResourceRepositories.js +1523 -134
  73. package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
  74. package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
  75. package/backend/dist/persistence/sqliteToPostgresMigration.js +257 -3
  76. package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
  77. package/backend/dist/platform/jobs/domainJobContracts.d.ts +8 -0
  78. package/backend/dist/platform/jobs/domainJobContracts.d.ts.map +1 -1
  79. package/backend/dist/platform/jobs/domainJobContracts.js +8 -0
  80. package/backend/dist/platform/jobs/domainJobContracts.js.map +1 -1
  81. package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -1
  82. package/backend/dist/platform/jobs/domainJobHandlers.js +310 -3
  83. package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
  84. package/backend/dist/platform/jobs/embeddedDurableJobWorker.d.ts.map +1 -1
  85. package/backend/dist/platform/jobs/embeddedDurableJobWorker.js +4 -2
  86. package/backend/dist/platform/jobs/embeddedDurableJobWorker.js.map +1 -1
  87. package/backend/dist/platform/jobs/postgresDurableJobWorker.d.ts.map +1 -1
  88. package/backend/dist/platform/jobs/postgresDurableJobWorker.js +4 -2
  89. package/backend/dist/platform/jobs/postgresDurableJobWorker.js.map +1 -1
  90. package/backend/dist/platform/storage/pgVectorStore.d.ts +2 -1
  91. package/backend/dist/platform/storage/pgVectorStore.d.ts.map +1 -1
  92. package/backend/dist/platform/storage/pgVectorStore.js +51 -0
  93. package/backend/dist/platform/storage/pgVectorStore.js.map +1 -1
  94. package/backend/dist/platform/storage/platformDomainRepositories.d.ts +8 -2
  95. package/backend/dist/platform/storage/platformDomainRepositories.d.ts.map +1 -1
  96. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.d.ts.map +1 -1
  97. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js +25 -4
  98. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js.map +1 -1
  99. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts +2 -1
  100. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts.map +1 -1
  101. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js +35 -0
  102. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js.map +1 -1
  103. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.d.ts.map +1 -1
  104. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js +26 -3
  105. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js.map +1 -1
  106. package/backend/dist/platform/storage/vectorStore.d.ts +14 -0
  107. package/backend/dist/platform/storage/vectorStore.d.ts.map +1 -1
  108. package/backend/dist/platform/storage/vectorStore.js.map +1 -1
  109. package/backend/dist/routes/access.d.ts.map +1 -1
  110. package/backend/dist/routes/access.js +84 -3
  111. package/backend/dist/routes/access.js.map +1 -1
  112. package/backend/dist/routes/calendar.d.ts.map +1 -1
  113. package/backend/dist/routes/calendar.js +125 -22
  114. package/backend/dist/routes/calendar.js.map +1 -1
  115. package/backend/dist/routes/channels.d.ts +3 -0
  116. package/backend/dist/routes/channels.d.ts.map +1 -0
  117. package/backend/dist/routes/channels.js +447 -0
  118. package/backend/dist/routes/channels.js.map +1 -0
  119. package/backend/dist/routes/chat.d.ts.map +1 -1
  120. package/backend/dist/routes/chat.js +195 -7
  121. package/backend/dist/routes/chat.js.map +1 -1
  122. package/backend/dist/routes/costs.d.ts +3 -0
  123. package/backend/dist/routes/costs.d.ts.map +1 -0
  124. package/backend/dist/routes/costs.js +191 -0
  125. package/backend/dist/routes/costs.js.map +1 -0
  126. package/backend/dist/routes/documents.d.ts.map +1 -1
  127. package/backend/dist/routes/documents.js +64 -21
  128. package/backend/dist/routes/documents.js.map +1 -1
  129. package/backend/dist/routes/evaluations.d.ts +3 -0
  130. package/backend/dist/routes/evaluations.d.ts.map +1 -0
  131. package/backend/dist/routes/evaluations.js +352 -0
  132. package/backend/dist/routes/evaluations.js.map +1 -0
  133. package/backend/dist/routes/imageGen.d.ts.map +1 -1
  134. package/backend/dist/routes/imageGen.js +2 -1
  135. package/backend/dist/routes/imageGen.js.map +1 -1
  136. package/backend/dist/routes/media.d.ts.map +1 -1
  137. package/backend/dist/routes/media.js +228 -7
  138. package/backend/dist/routes/media.js.map +1 -1
  139. package/backend/dist/routes/notes.d.ts.map +1 -1
  140. package/backend/dist/routes/notes.js +149 -36
  141. package/backend/dist/routes/notes.js.map +1 -1
  142. package/backend/dist/routes/notifications.d.ts +3 -0
  143. package/backend/dist/routes/notifications.d.ts.map +1 -0
  144. package/backend/dist/routes/notifications.js +213 -0
  145. package/backend/dist/routes/notifications.js.map +1 -0
  146. package/backend/dist/routes/openaiCompat.d.ts +3 -0
  147. package/backend/dist/routes/openaiCompat.d.ts.map +1 -0
  148. package/backend/dist/routes/openaiCompat.js +314 -0
  149. package/backend/dist/routes/openaiCompat.js.map +1 -0
  150. package/backend/dist/routes/personas.js +1 -1
  151. package/backend/dist/routes/personas.js.map +1 -1
  152. package/backend/dist/routes/prompts.d.ts +3 -0
  153. package/backend/dist/routes/prompts.d.ts.map +1 -0
  154. package/backend/dist/routes/prompts.js +173 -0
  155. package/backend/dist/routes/prompts.js.map +1 -0
  156. package/backend/dist/routes/search.d.ts.map +1 -1
  157. package/backend/dist/routes/search.js +29 -1
  158. package/backend/dist/routes/search.js.map +1 -1
  159. package/backend/dist/routes/skills.d.ts +3 -0
  160. package/backend/dist/routes/skills.d.ts.map +1 -0
  161. package/backend/dist/routes/skills.js +246 -0
  162. package/backend/dist/routes/skills.js.map +1 -0
  163. package/backend/dist/routes/stt.d.ts.map +1 -1
  164. package/backend/dist/routes/stt.js +2 -1
  165. package/backend/dist/routes/stt.js.map +1 -1
  166. package/backend/dist/routes/tools.d.ts +3 -0
  167. package/backend/dist/routes/tools.d.ts.map +1 -0
  168. package/backend/dist/routes/tools.js +359 -0
  169. package/backend/dist/routes/tools.js.map +1 -0
  170. package/backend/dist/routes/tts.d.ts.map +1 -1
  171. package/backend/dist/routes/tts.js +63 -8
  172. package/backend/dist/routes/tts.js.map +1 -1
  173. package/backend/dist/routes/voiceAccess.d.ts +3 -0
  174. package/backend/dist/routes/voiceAccess.d.ts.map +1 -0
  175. package/backend/dist/routes/voiceAccess.js +102 -0
  176. package/backend/dist/routes/voiceAccess.js.map +1 -0
  177. package/backend/dist/services/apiTokenService.d.ts +2 -2
  178. package/backend/dist/services/apiTokenService.d.ts.map +1 -1
  179. package/backend/dist/services/apiTokenService.js +7 -0
  180. package/backend/dist/services/apiTokenService.js.map +1 -1
  181. package/backend/dist/services/authorizationService.d.ts +8 -4
  182. package/backend/dist/services/authorizationService.d.ts.map +1 -1
  183. package/backend/dist/services/authorizationService.js +31 -1
  184. package/backend/dist/services/authorizationService.js.map +1 -1
  185. package/backend/dist/services/automationSchedulerService.d.ts.map +1 -1
  186. package/backend/dist/services/automationSchedulerService.js +33 -3
  187. package/backend/dist/services/automationSchedulerService.js.map +1 -1
  188. package/backend/dist/services/automationService.d.ts +4 -1
  189. package/backend/dist/services/automationService.d.ts.map +1 -1
  190. package/backend/dist/services/automationService.js +25 -2
  191. package/backend/dist/services/automationService.js.map +1 -1
  192. package/backend/dist/services/builtinToolsService.d.ts +20 -0
  193. package/backend/dist/services/builtinToolsService.d.ts.map +1 -0
  194. package/backend/dist/services/builtinToolsService.js +661 -0
  195. package/backend/dist/services/builtinToolsService.js.map +1 -0
  196. package/backend/dist/services/calendarService.d.ts +74 -0
  197. package/backend/dist/services/calendarService.d.ts.map +1 -0
  198. package/backend/dist/services/calendarService.js +339 -0
  199. package/backend/dist/services/calendarService.js.map +1 -0
  200. package/backend/dist/services/channelService.d.ts +195 -0
  201. package/backend/dist/services/channelService.d.ts.map +1 -0
  202. package/backend/dist/services/channelService.js +1057 -0
  203. package/backend/dist/services/channelService.js.map +1 -0
  204. package/backend/dist/services/chatRequestService.d.ts.map +1 -1
  205. package/backend/dist/services/chatRequestService.js +29 -1
  206. package/backend/dist/services/chatRequestService.js.map +1 -1
  207. package/backend/dist/services/chatService.d.ts +61 -1
  208. package/backend/dist/services/chatService.d.ts.map +1 -1
  209. package/backend/dist/services/chatService.js +218 -1
  210. package/backend/dist/services/chatService.js.map +1 -1
  211. package/backend/dist/services/chatToolRuntimeService.d.ts +55 -0
  212. package/backend/dist/services/chatToolRuntimeService.d.ts.map +1 -0
  213. package/backend/dist/services/chatToolRuntimeService.js +389 -0
  214. package/backend/dist/services/chatToolRuntimeService.js.map +1 -0
  215. package/backend/dist/services/costGovernanceService.d.ts +102 -0
  216. package/backend/dist/services/costGovernanceService.d.ts.map +1 -0
  217. package/backend/dist/services/costGovernanceService.js +463 -0
  218. package/backend/dist/services/costGovernanceService.js.map +1 -0
  219. package/backend/dist/services/dataArchiveService.d.ts +6 -0
  220. package/backend/dist/services/dataArchiveService.d.ts.map +1 -1
  221. package/backend/dist/services/dataArchiveService.js +23 -4
  222. package/backend/dist/services/dataArchiveService.js.map +1 -1
  223. package/backend/dist/services/documentService.d.ts +58 -1
  224. package/backend/dist/services/documentService.d.ts.map +1 -1
  225. package/backend/dist/services/documentService.js +289 -84
  226. package/backend/dist/services/documentService.js.map +1 -1
  227. package/backend/dist/services/durableChatGenerationService.d.ts +9 -0
  228. package/backend/dist/services/durableChatGenerationService.d.ts.map +1 -1
  229. package/backend/dist/services/durableChatGenerationService.js +152 -11
  230. package/backend/dist/services/durableChatGenerationService.js.map +1 -1
  231. package/backend/dist/services/evaluationService.d.ts +111 -0
  232. package/backend/dist/services/evaluationService.d.ts.map +1 -0
  233. package/backend/dist/services/evaluationService.js +403 -0
  234. package/backend/dist/services/evaluationService.js.map +1 -0
  235. package/backend/dist/services/galleryService.d.ts +6 -0
  236. package/backend/dist/services/galleryService.d.ts.map +1 -1
  237. package/backend/dist/services/galleryService.js +26 -0
  238. package/backend/dist/services/galleryService.js.map +1 -1
  239. package/backend/dist/services/mcpClientService.d.ts +29 -0
  240. package/backend/dist/services/mcpClientService.d.ts.map +1 -0
  241. package/backend/dist/services/mcpClientService.js +189 -0
  242. package/backend/dist/services/mcpClientService.js.map +1 -0
  243. package/backend/dist/services/noteService.d.ts +71 -0
  244. package/backend/dist/services/noteService.d.ts.map +1 -0
  245. package/backend/dist/services/noteService.js +397 -0
  246. package/backend/dist/services/noteService.js.map +1 -0
  247. package/backend/dist/services/notificationService.d.ts +55 -0
  248. package/backend/dist/services/notificationService.d.ts.map +1 -0
  249. package/backend/dist/services/notificationService.js +308 -0
  250. package/backend/dist/services/notificationService.js.map +1 -0
  251. package/backend/dist/services/openApiToolService.d.ts +38 -0
  252. package/backend/dist/services/openApiToolService.d.ts.map +1 -0
  253. package/backend/dist/services/openApiToolService.js +254 -0
  254. package/backend/dist/services/openApiToolService.js.map +1 -0
  255. package/backend/dist/services/personaService.d.ts +18 -2
  256. package/backend/dist/services/personaService.d.ts.map +1 -1
  257. package/backend/dist/services/personaService.js +113 -4
  258. package/backend/dist/services/personaService.js.map +1 -1
  259. package/backend/dist/services/pluginImageGenerationService.d.ts +19 -0
  260. package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
  261. package/backend/dist/services/pluginImageGenerationService.js +121 -0
  262. package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
  263. package/backend/dist/services/pluginService.d.ts +7 -0
  264. package/backend/dist/services/pluginService.d.ts.map +1 -1
  265. package/backend/dist/services/pluginService.js +8 -2
  266. package/backend/dist/services/pluginService.js.map +1 -1
  267. package/backend/dist/services/promptService.d.ts +74 -0
  268. package/backend/dist/services/promptService.d.ts.map +1 -0
  269. package/backend/dist/services/promptService.js +513 -0
  270. package/backend/dist/services/promptService.js.map +1 -0
  271. package/backend/dist/services/resourceGrantService.d.ts.map +1 -1
  272. package/backend/dist/services/resourceGrantService.js +62 -17
  273. package/backend/dist/services/resourceGrantService.js.map +1 -1
  274. package/backend/dist/services/searchService.d.ts +29 -0
  275. package/backend/dist/services/searchService.d.ts.map +1 -0
  276. package/backend/dist/services/searchService.js +0 -0
  277. package/backend/dist/services/searchService.js.map +1 -0
  278. package/backend/dist/services/securityAuditService.d.ts.map +1 -1
  279. package/backend/dist/services/securityAuditService.js +2 -1
  280. package/backend/dist/services/securityAuditService.js.map +1 -1
  281. package/backend/dist/services/sharedResourceAccess.d.ts +25 -0
  282. package/backend/dist/services/sharedResourceAccess.d.ts.map +1 -0
  283. package/backend/dist/services/sharedResourceAccess.js +59 -0
  284. package/backend/dist/services/sharedResourceAccess.js.map +1 -0
  285. package/backend/dist/services/skillService.d.ts +137 -0
  286. package/backend/dist/services/skillService.d.ts.map +1 -0
  287. package/backend/dist/services/skillService.js +852 -0
  288. package/backend/dist/services/skillService.js.map +1 -0
  289. package/backend/dist/services/toolAccessService.d.ts +9 -0
  290. package/backend/dist/services/toolAccessService.d.ts.map +1 -0
  291. package/backend/dist/services/toolAccessService.js +60 -0
  292. package/backend/dist/services/toolAccessService.js.map +1 -0
  293. package/backend/dist/services/toolApprovalService.d.ts +34 -0
  294. package/backend/dist/services/toolApprovalService.d.ts.map +1 -0
  295. package/backend/dist/services/toolApprovalService.js +188 -0
  296. package/backend/dist/services/toolApprovalService.js.map +1 -0
  297. package/backend/dist/services/toolGatewayService.d.ts +53 -0
  298. package/backend/dist/services/toolGatewayService.d.ts.map +1 -0
  299. package/backend/dist/services/toolGatewayService.js +249 -0
  300. package/backend/dist/services/toolGatewayService.js.map +1 -0
  301. package/backend/dist/services/toolServerService.d.ts +57 -0
  302. package/backend/dist/services/toolServerService.d.ts.map +1 -0
  303. package/backend/dist/services/toolServerService.js +521 -0
  304. package/backend/dist/services/toolServerService.js.map +1 -0
  305. package/backend/dist/services/voiceAccessService.d.ts +10 -0
  306. package/backend/dist/services/voiceAccessService.d.ts.map +1 -0
  307. package/backend/dist/services/voiceAccessService.js +74 -0
  308. package/backend/dist/services/voiceAccessService.js.map +1 -0
  309. package/backend/dist/services/voiceProfileService.d.ts +20 -0
  310. package/backend/dist/services/voiceProfileService.d.ts.map +1 -1
  311. package/backend/dist/services/voiceProfileService.js +60 -0
  312. package/backend/dist/services/voiceProfileService.js.map +1 -1
  313. package/backend/dist/storage.d.ts +28 -1
  314. package/backend/dist/storage.d.ts.map +1 -1
  315. package/backend/dist/storage.js +100 -1
  316. package/backend/dist/storage.js.map +1 -1
  317. package/backend/dist/storageMappers.d.ts +2 -2
  318. package/backend/dist/storageMappers.d.ts.map +1 -1
  319. package/backend/dist/storageMappers.js.map +1 -1
  320. package/backend/dist/types/index.d.ts +197 -2
  321. package/backend/dist/types/index.d.ts.map +1 -1
  322. package/backend/dist/types/index.js.map +1 -1
  323. package/backend/dist/types/tools.d.ts +137 -0
  324. package/backend/dist/types/tools.d.ts.map +1 -0
  325. package/backend/dist/types/tools.js +25 -0
  326. package/backend/dist/types/tools.js.map +1 -0
  327. package/backend/dist/utils/chatDocumentContext.d.ts +26 -1
  328. package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
  329. package/backend/dist/utils/chatDocumentContext.js +87 -18
  330. package/backend/dist/utils/chatDocumentContext.js.map +1 -1
  331. package/backend/dist/utils/documentExtraction.d.ts +69 -0
  332. package/backend/dist/utils/documentExtraction.d.ts.map +1 -0
  333. package/backend/dist/utils/documentExtraction.js +545 -0
  334. package/backend/dist/utils/documentExtraction.js.map +1 -0
  335. package/backend/dist/utils/hybridRetrieval.d.ts +34 -0
  336. package/backend/dist/utils/hybridRetrieval.d.ts.map +1 -0
  337. package/backend/dist/utils/hybridRetrieval.js +119 -0
  338. package/backend/dist/utils/hybridRetrieval.js.map +1 -0
  339. package/backend/dist/utils/icsCalendar.d.ts +27 -0
  340. package/backend/dist/utils/icsCalendar.d.ts.map +1 -0
  341. package/backend/dist/utils/icsCalendar.js +313 -0
  342. package/backend/dist/utils/icsCalendar.js.map +1 -0
  343. package/backend/dist/utils/imageEditUpload.d.ts +29 -0
  344. package/backend/dist/utils/imageEditUpload.d.ts.map +1 -0
  345. package/backend/dist/utils/imageEditUpload.js +82 -0
  346. package/backend/dist/utils/imageEditUpload.js.map +1 -0
  347. package/backend/dist/utils/logRedaction.d.ts +2 -0
  348. package/backend/dist/utils/logRedaction.d.ts.map +1 -0
  349. package/backend/dist/utils/logRedaction.js +66 -0
  350. package/backend/dist/utils/logRedaction.js.map +1 -0
  351. package/backend/dist/utils/logger.d.ts +3 -0
  352. package/backend/dist/utils/logger.d.ts.map +1 -1
  353. package/backend/dist/utils/logger.js +63 -20
  354. package/backend/dist/utils/logger.js.map +1 -1
  355. package/backend/dist/utils/pluginChatAdapter.d.ts +5 -1
  356. package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
  357. package/backend/dist/utils/pluginChatAdapter.js +83 -0
  358. package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
  359. package/backend/dist/utils/pluginDefinitionTrust.js +1 -1
  360. package/backend/dist/utils/resourceLimits.d.ts +61 -2
  361. package/backend/dist/utils/resourceLimits.d.ts.map +1 -1
  362. package/backend/dist/utils/resourceLimits.js +59 -0
  363. package/backend/dist/utils/resourceLimits.js.map +1 -1
  364. package/backend/dist/utils/toolEgress.d.ts +22 -0
  365. package/backend/dist/utils/toolEgress.d.ts.map +1 -0
  366. package/backend/dist/utils/toolEgress.js +157 -0
  367. package/backend/dist/utils/toolEgress.js.map +1 -0
  368. package/backend/dist/utils/websocketMessages.d.ts +6 -0
  369. package/backend/dist/utils/websocketMessages.d.ts.map +1 -1
  370. package/backend/dist/utils/websocketMessages.js +8 -0
  371. package/backend/dist/utils/websocketMessages.js.map +1 -1
  372. package/backend/dist/utils/zipArchive.d.ts +32 -0
  373. package/backend/dist/utils/zipArchive.d.ts.map +1 -0
  374. package/backend/dist/utils/zipArchive.js +171 -0
  375. package/backend/dist/utils/zipArchive.js.map +1 -0
  376. package/backend/dist/websocketServer.d.ts.map +1 -1
  377. package/backend/dist/websocketServer.js +142 -35
  378. package/backend/dist/websocketServer.js.map +1 -1
  379. package/backend/package.json +1 -1
  380. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  381. package/frontend/dist/assets/index-BPsH9FII.js +80 -0
  382. package/frontend/dist/assets/index-BtXF0Oxa.css +1 -0
  383. package/frontend/dist/index.html +18 -18
  384. package/frontend/dist/js/{ArtifactContainer-CpUi6ekF.js → ArtifactContainer-CIoFoMv8.js} +1 -1
  385. package/frontend/dist/js/{ArtifactDemoPage-BeNs3gHp.js → ArtifactDemoPage-D0JEIAbZ.js} +1 -1
  386. package/frontend/dist/js/{ArtifactSandboxFrame-qsj_Y3LV.js → ArtifactSandboxFrame-REazyIrx.js} +2 -2
  387. package/frontend/dist/js/ArtifactSlideOutPanel-A-i94ghF.js +1 -0
  388. package/frontend/dist/js/AutomationsPage-Dow_lbIf.js +1 -0
  389. package/frontend/dist/js/{Button-BPf_pOxH.js → Button-C0r3J9G_.js} +1 -1
  390. package/frontend/dist/js/CalendarPage-DLjasZOd.js +1 -0
  391. package/frontend/dist/js/ChannelsPage-C8hvTD7J.js +1 -0
  392. package/frontend/dist/js/ChatPage-BAgBHUES.js +16 -0
  393. package/frontend/dist/js/EvaluationsPage-Bm8FRoeX.js +2 -0
  394. package/frontend/dist/js/{FirstTimeSetup-Df0YJni3.js → FirstTimeSetup-BxJapNul.js} +1 -1
  395. package/frontend/dist/js/GalleryPage-DHz9DkK7.js +1 -0
  396. package/frontend/dist/js/HomePage-BqNy-FWX.js +1 -0
  397. package/frontend/dist/js/LibreClawPage-BDzDILjY.js +1 -0
  398. package/frontend/dist/js/{ModelManagerModals-DcLGYN3l.js → ModelManagerModals-DX9eT5r2.js} +1 -1
  399. package/frontend/dist/js/ModelSelector-ol8mK2ja.js +1 -0
  400. package/frontend/dist/js/NotesPage-DzHEx2O4.js +3 -0
  401. package/frontend/dist/js/{OptimizedSyntaxHighlighter-Dz7D1LPB.js → OptimizedSyntaxHighlighter-CZNPwN0i.js} +1 -1
  402. package/frontend/dist/js/PersonasPage-M_WKH2a9.js +13 -0
  403. package/frontend/dist/js/PluginUsagePage-Ctoka6JZ.js +1 -0
  404. package/frontend/dist/js/RichMessageContent-BqgafH4p.js +3 -0
  405. package/frontend/dist/js/SettingsModal-R9EDadAV.js +19 -0
  406. package/frontend/dist/js/{SettingsToggle-woG_WebF.js → SettingsToggle-BIVyfGjl.js} +1 -1
  407. package/frontend/dist/js/SystemPage-aOkrSuY7.js +1 -0
  408. package/frontend/dist/js/UserManagementPage-BOuaX3ay.js +1 -0
  409. package/frontend/dist/js/WorkPage-DxZISerQ.js +6 -0
  410. package/frontend/dist/js/api-6bSMtSNh.js +14 -0
  411. package/frontend/dist/js/{appStore-0JnCUlEq.js → appStore-CdObhQBb.js} +2 -2
  412. package/frontend/dist/js/ar-DT_VLBO3.js +2 -0
  413. package/frontend/dist/js/{authStore-DbMdvNgJ.js → authStore-DbqqrfZv.js} +3 -3
  414. package/frontend/dist/js/{babel-BsYoxD-7.js → babel-DSqqk5kt.js} +1 -1
  415. package/frontend/dist/js/bn-BrvEqhGA.js +2 -0
  416. package/frontend/dist/js/chatStore-DbZPJNsu.js +3 -0
  417. package/frontend/dist/js/{config-DSOYQ9a3.js → config-8KdgjtEx.js} +1 -1
  418. package/frontend/dist/js/cs-BthnM_YI.js +2 -0
  419. package/frontend/dist/js/da-DCth-6_j.js +2 -0
  420. package/frontend/dist/js/de-BBWt0gJ_.js +2 -0
  421. package/frontend/dist/js/es-DuslOPqM.js +2 -0
  422. package/frontend/dist/js/{estree-BcnBcOAx.js → estree-BU5-LV_1.js} +3 -3
  423. package/frontend/dist/js/evaluationsApi-CwZJsgeG.js +1 -0
  424. package/frontend/dist/js/fr-DZAeg46S.js +2 -0
  425. package/frontend/dist/js/hi-ijDSiY77.js +2 -0
  426. package/frontend/dist/js/{html-DkY55Jys.js → html-DeoAy2bo.js} +2 -2
  427. package/frontend/dist/js/id-BS6qS0oq.js +2 -0
  428. package/frontend/dist/js/is-CO2PMDte.js +2 -0
  429. package/frontend/dist/js/it-ChhxT4hs.js +2 -0
  430. package/frontend/dist/js/ja-cyeqUeJN.js +2 -0
  431. package/frontend/dist/js/ko-CfqHTLXj.js +2 -0
  432. package/frontend/dist/js/{markdown-IZSI9DXw.js → markdown-DOLsYkBY.js} +3 -3
  433. package/frontend/dist/js/markdown-core-BK7WVOb7.js +32 -0
  434. package/frontend/dist/js/{markdown-math-DK846gXU.js → markdown-math-e1ByS3KY.js} +5 -5
  435. package/frontend/dist/js/{messageCodeStyles-BFNR9Wv6.js → messageCodeStyles-DhVgizF-.js} +2 -2
  436. package/frontend/dist/js/ms-DZ5pACe1.js +2 -0
  437. package/frontend/dist/js/nl-BsRsnOVp.js +2 -0
  438. package/frontend/dist/js/pl-DXSTAW4M.js +2 -0
  439. package/frontend/dist/js/{postcss-BJ0okz7n.js → postcss-Bg15EcFE.js} +1 -1
  440. package/frontend/dist/js/pt-DmDx0JxB.js +2 -0
  441. package/frontend/dist/js/{react-vendor-C5yShNlM.js → react-vendor-BG_HPV6X.js} +1 -1
  442. package/frontend/dist/js/router-vendor-CbexJIsv.js +1 -0
  443. package/frontend/dist/js/ru-d2g8EWfY.js +2 -0
  444. package/frontend/dist/js/{standalone-Csw3jfJ_.js → standalone-BO5pzI8_.js} +3 -3
  445. package/frontend/dist/js/sv-CIhYUTVQ.js +2 -0
  446. package/frontend/dist/js/{syntax-highlight-3EEX6CGL.js → syntax-highlight-DcR9Vhb7.js} +3 -3
  447. package/frontend/dist/js/th-B3wSxanB.js +2 -0
  448. package/frontend/dist/js/tr-R4UGgPOY.js +2 -0
  449. package/frontend/dist/js/{typescript-CnF4UVx7.js → typescript-6GJ8APmn.js} +1 -1
  450. package/frontend/dist/js/ui-CV0LYmkM.js +2 -0
  451. package/frontend/dist/js/ui-vendor-CWjIBW-z.js +177 -0
  452. package/frontend/dist/js/uk-BzUF4Vkt.js +2 -0
  453. package/frontend/dist/js/{useTranslation-Bho4HCyg.js → useTranslation-5b5UhAc9.js} +1 -1
  454. package/frontend/dist/js/{utils-D9W1Lnkn.js → utils-BGrdX9ie.js} +1 -1
  455. package/frontend/dist/js/{utils-vendor-DWh39_3x.js → utils-vendor-9bQ62WeD.js} +1 -1
  456. package/frontend/dist/js/vi-CKc6Fg4h.js +2 -0
  457. package/frontend/dist/js/{workApi-C3uy9EDT.js → workApi-BruWTlHM.js} +3 -3
  458. package/frontend/dist/js/{yaml-DzT5hBSH.js → yaml-DUeWcOOH.js} +2 -2
  459. package/frontend/dist/js/zh-CXL-kDe8.js +2 -0
  460. package/package.json +2 -2
  461. package/plugins/openai.json +52 -9
  462. package/frontend/dist/assets/index-6o-Hc2wS.js +0 -41
  463. package/frontend/dist/assets/index-D-pM957b.css +0 -1
  464. package/frontend/dist/js/ArtifactSlideOutPanel-CSFRluWA.js +0 -1
  465. package/frontend/dist/js/AutomationsPage-KUeWoZNv.js +0 -1
  466. package/frontend/dist/js/CalendarPage-D9I972w8.js +0 -1
  467. package/frontend/dist/js/ChatPage-CmBx4oAL.js +0 -16
  468. package/frontend/dist/js/GalleryPage-bLCrdJN_.js +0 -1
  469. package/frontend/dist/js/HomePage-Uc6PEg-U.js +0 -1
  470. package/frontend/dist/js/LibreClawPage-CG63DHg1.js +0 -1
  471. package/frontend/dist/js/ModelSelector-yxJC64rM.js +0 -1
  472. package/frontend/dist/js/ModelsPage-1R_TxgmJ.js +0 -2
  473. package/frontend/dist/js/NotesPage-L65j5HoW.js +0 -1
  474. package/frontend/dist/js/PersonasPage-CKeBpHIH.js +0 -13
  475. package/frontend/dist/js/PluginUsagePage-BX1SKMbW.js +0 -1
  476. package/frontend/dist/js/RichMessageContent-DiySVYGB.js +0 -3
  477. package/frontend/dist/js/SettingsModal-68SG1uZ2.js +0 -1
  478. package/frontend/dist/js/SystemPage-CytpZiQV.js +0 -1
  479. package/frontend/dist/js/UserManagementPage-BzJBvZiS.js +0 -1
  480. package/frontend/dist/js/WorkPage-C8gr0QJe.js +0 -6
  481. package/frontend/dist/js/api-BDtqBtqw.js +0 -14
  482. package/frontend/dist/js/ar-CSpi37Gr.js +0 -2
  483. package/frontend/dist/js/bn-CyH1BeDD.js +0 -2
  484. package/frontend/dist/js/chatStore-CHQ2uINS.js +0 -3
  485. package/frontend/dist/js/cs-Cv2NfRK5.js +0 -2
  486. package/frontend/dist/js/da-D6D6IvPK.js +0 -2
  487. package/frontend/dist/js/de-BNoJJTrT.js +0 -2
  488. package/frontend/dist/js/es-kzo9C7q_.js +0 -2
  489. package/frontend/dist/js/fr-CjHYvJRp.js +0 -2
  490. package/frontend/dist/js/hi-BU98AdCQ.js +0 -2
  491. package/frontend/dist/js/id-CpdedejX.js +0 -2
  492. package/frontend/dist/js/is-Cp5dDWBH.js +0 -2
  493. package/frontend/dist/js/it-CuH_cK4U.js +0 -2
  494. package/frontend/dist/js/ja-BWXXXiHn.js +0 -2
  495. package/frontend/dist/js/ko-DQgv2M1t.js +0 -2
  496. package/frontend/dist/js/markdown-core-BmPPZiuD.js +0 -31
  497. package/frontend/dist/js/ms-DCcRoIcX.js +0 -2
  498. package/frontend/dist/js/nl-CbKR1_EU.js +0 -2
  499. package/frontend/dist/js/pl-CRyJZccn.js +0 -2
  500. package/frontend/dist/js/pt-BXYmHFGH.js +0 -2
  501. package/frontend/dist/js/router-vendor-DGFGM3EP.js +0 -1
  502. package/frontend/dist/js/ru-M9SyZG4b.js +0 -2
  503. package/frontend/dist/js/sv-DJ486LTU.js +0 -2
  504. package/frontend/dist/js/th-Ch7gKtZv.js +0 -2
  505. package/frontend/dist/js/tr-ClehWhSC.js +0 -2
  506. package/frontend/dist/js/ui-CC-K19wO.js +0 -2
  507. package/frontend/dist/js/ui-vendor-B1UgO3vd.js +0 -177
  508. package/frontend/dist/js/uk-BqAd5zHF.js +0 -2
  509. package/frontend/dist/js/vi-D9gjlDVB.js +0 -2
  510. package/frontend/dist/js/zh-DKTyHkiR.js +0 -2
@@ -1,2 +0,0 @@
1
- var e={common:{loading:`Ładowanie...`,save:`Zapisz`,saving:`Zapisywanie...`,cancel:`Anuluj`,delete:`Usuń`,edit:`Edytuj`,close:`Zamknij`,back:`Wstecz`,next:`Dalej`,confirm:`Potwierdź`,error:`Błąd`,success:`Sukces`,warning:`Ostrzeżenie`,or:`lub`,optional:`opcjonalne`,enabled:`Włączone`,disabled:`Wyłączone`,on:`Wł.`,off:`Wył.`,yes:`Tak`,no:`Nie`,search:`Szukaj`,noResults:`Brak wyników`,retry:`Ponów`,refresh:`Odśwież`,download:`Pobierz`,upload:`Wyślij`,export:`Eksportuj`,import:`Importuj`,reset:`Resetuj`,apply:`Zastosuj`,clear:`Wyczyść`,all:`Wszystkie`,none:`Żadne`,default:`Domyślne`,custom:`Własne`,remove:`Usuń`,home:`Strona główna`,more:`Więcej`},brand:{name:`Libre WebUI`,shortName:`Libre`},auth:{login:{title:`Witaj ponownie`,subtitle:`Zaloguj się na swoje konto, aby kontynuować`,username:`Nazwa użytkownika`,usernamePlaceholder:`Wprowadź nazwę użytkownika`,password:`Hasło`,passwordPlaceholder:`Wprowadź hasło`,signIn:`Zaloguj się`,signingIn:`Logowanie...`,noAccount:`Nie masz konta?`,signUpHere:`Zarejestruj się tutaj`,loginSuccess:`Logowanie pomyślne!`,loginFailed:`Logowanie nie powiodło się`,checkCredentials:`Logowanie nie powiodło się. Sprawdź swoje dane.`,approvalPending:`Twoje konto oczekuje na zatwierdzenie przez administratora.`,enterBoth:`Wprowadź nazwę użytkownika i hasło`,githubSuccess:`Logowanie przez GitHub pomyślne!`,githubFailed:`Uwierzytelnianie GitHub nie powiodło się`,githubVerifyFailed:`Nie udało się zweryfikować uwierzytelnienia GitHub`,verificationFailed:`Weryfikacja bezpieczeństwa nie powiodła się. Odśwież stronę i spróbuj ponownie.`},signup:{title:`Utwórz konto`,subtitle:`Zarejestruj nowe konto`,username:`Nazwa użytkownika`,usernamePlaceholder:`Wybierz nazwę użytkownika`,email:`Email`,emailPlaceholder:`twoj@email.com`,password:`Hasło`,passwordPlaceholder:`Wybierz hasło`,confirmPassword:`Potwierdź hasło`,confirmPasswordPlaceholder:`Potwierdź hasło`,createAccount:`Utwórz konto`,creatingAccount:`Tworzenie konta...`,hasAccount:`Masz już konto?`,signInHere:`Zaloguj się tutaj`,signupSuccess:`Konto utworzone pomyślnie!`,approvalPending:`Rejestracja przyjęta. Administrator musi zatwierdzić Twoje konto.`,awaitingApproval:`Oczekuje na zatwierdzenie`,awaitingApprovalDescription:`Twoje konto zostało utworzone, ale administrator musi je aktywować, zanim będziesz mógł się zalogować.`,backToSignIn:`Powrót do logowania`,signupFailed:`Rejestracja nie powiodła się`,tryAgain:`Rejestracja nie powiodła się. Spróbuj ponownie.`,usernameRequired:`Nazwa użytkownika i hasło są wymagane`,passwordMismatch:`Hasła nie pasują do siebie`,passwordTooShort:`Hasło musi mieć co najmniej 6 znaków`},logout:{button:`Wyloguj się`,success:`Wylogowano pomyślnie`},oauth:{continueWith:`Kontynuuj z {{provider}}`,connectingTo:`Łączenie z {{provider}}...`,github:`GitHub`,huggingFace:`Hugging Face`},checkingAuth:`Sprawdzanie uwierzytelniania...`,welcome:`Witaj`,noEmail:`Brak adresu e-mail`,role:`Rola`,id:`ID`,userId:`ID użytkownika`,signInDescription:`Zaloguj się kontem GitHub, aby kontynuować`,signInWithGitHub:`Zaloguj się przez GitHub`,jwtActive:`Uwierzytelnianie JWT aktywne`,jwtDescription:`Uwierzytelnianie JWT z GitHub OAuth`,github:`GitHub`,provider:`Dostawca`,tagline:`Twój stos AI powinien odpowiadać Tobie.`,selfHosted:`Samodzielnie hostowane · Apache 2.0`,highlights:{local:{title:`Najpierw lokalnie`,body:`Twoje rozmowy i pliki pozostają na maszynie, na której to uruchamiasz.`},providers:{title:`Dowolny dostawca`,body:`Modele lokalne przez Ollama oraz zdalni dostawcy, których dodasz.`},work:{title:`Odizolowana praca`,body:`Daj modelowi odizolowane środowisko z plikami, terminalem i podglądem.`}},oidc:{defaultProviderName:`Logowanie jednokrotne`}},setup:{welcome:{title:`Witaj w Libre WebUI`,subtitle:`Rozpocznijmy`,description:`Skonfiguruj Libre WebUI w kilku prostych krokach`,createAdmin:`Utwórz konto administratora`,features:{secure:{title:`Bezpieczny i prywatny`,description:`Twoje rozmowy pozostają na Twoim urządzeniu`},fast:{title:`Szybki i responsywny`,description:`Zoptymalizowany pod kątem szybkości i wydajności`},openSource:{title:`Otwarty kod źródłowy`,description:`Bezpłatne oprogramowanie open source`}}},admin:{title:`Utwórz konto administratora`,subtitle:`Konfiguracja administratora`,description:`Utwórz pierwsze konto administratora dla Twojej instancji Libre WebUI`,usernamePlaceholder:`Wprowadź nazwę administratora`,passwordPlaceholder:`Wprowadź hasło (min. 6 znaków)`,confirmPlaceholder:`Potwierdź hasło`,creating:`Tworzenie...`,createAdmin:`Utwórz administratora`,success:`Konto administratora utworzone pomyślnie!`,failed:`Nie udało się utworzyć konta administratora`,approvalUnexpected:`Nie udało się aktywować początkowego administratora. Spróbuj ponownie.`,fillAllFields:`Wypełnij wszystkie pola`,note:`To będzie główne konto administratora dla Twojej instancji Libre WebUI`},encryptionKey:{title:`Zapisz klucz szyfrowania`,subtitle:`Ważne: Zapisz ten klucz`,description:`Ten klucz szyfrowania chroni Twoje poufne dane. Przechowuj go bezpiecznie - będziesz go potrzebować, jeśli kiedykolwiek będziesz musiał przywrócić bazę danych.`,warning:`Ostrzeżenie`,warningText:`Jeśli stracisz ten klucz i będziesz musiał przywrócić bazę danych, Twoje zaszyfrowane dane (klucze API, preferencje) będą nie do odzyskania.`,label:`Twój klucz szyfrowania`,loading:`Ładowanie...`,copyToClipboard:`Kopiuj do schowka`,copied:`Klucz szyfrowania skopiowany!`,copyFailed:`Nie udało się skopiować klucza`,envNote:`Ten klucz jest również zapisany w pliku backend/.env jako ENCRYPTION_KEY`,acknowledgment:`Zapisałem klucz szyfrowania w bezpiecznym miejscu i rozumiem, że jego utrata może spowodować utratę danych.`,confirmRequired:`Potwierdź, że zapisałeś klucz szyfrowania`,continue:`Kontynuuj do Libre WebUI`}},chat:{greeting:{morning:`Dzień dobry`,afternoon:`Dzień dobry`,evening:`Dobry wieczór`,night:`Dobranoc`},followUp:`Kontynuacja`,welcome:{helpToday:`W czym mogę dziś pomóc?`,helpTonight:`W czym mogę dziś wieczorem pomóc?`,variety:{create:{title:`Co stworzymy?`,subtitle:`Zacznij od myśli, szkicu albo upartego problemu.`},explore:{title:`Od czego zaczniemy?`,subtitle:`Przynieś pytanie, które wciąż do ciebie wraca.`},imagine:{title:`Co sobie wyobrażasz?`,subtitle:`Możemy nadać temu kształt razem.`},focus:{title:`Co zasługuje na twoją uwagę?`,subtitle:`Ustalmy jasno kolejny krok.`},untangle:{title:`Co trzeba rozplątać?`,subtitle:`Najpierw pokaż mi nieuporządkowaną wersję.`},momentum:{title:`Możemy ruszać, kiedy zechcesz.`,subtitle:`Wróć do pomysłu, planu albo niedokończonego wątku.`},open:{title:`Co chodzi ci po głowie?`,subtitle:`Mała myśl albo ambitny projekt. Jedno i drugie pasuje.`},challenge:{title:`Co rozwiązujemy?`,subtitle:`Powiedz, co jeszcze nie działa.`},draft:{title:`Zacznijmy od dowolnego miejsca.`,subtitle:`Nie musi być dopracowane.`},possibility:{title:`Co może z tego powstać?`,subtitle:`Pokaż mi surowy materiał.`},unexpected:{title:`Stwórzmy coś nieoczekiwanego.`,subtitle:`Daj mi ograniczenie, nastrój albo zalążek pomysłu.`}}},input:{placeholder:`Wyślij wiadomość`,messagePlaceholder:`Wiadomość...`,attachImages:`Załącz obrazy`,attachments:`Załączniki i zaawansowane funkcje`,sendMessage:`Wyślij wiadomość`,stopGeneration:`Zatrzymaj generowanie`,menu:{uploadImages:`Prześlij obrazy`,attachDocument:`Załącz dokument`,attachWebpage:`Załącz stronę internetową`,structuredOutput:`Ustrukturyzowane wyjście`,attach:`Załącz`,documentAttached:`Dokument załączony`,webpageAttached:`Strona załączona`,attachFailed:`Nie udało się załączyć`,attachKnowledge:`Dołącz wiedzę`,noCollections:`Brak kolekcji — utwórz ją w Ustawienia → Dokumenty`},voiceInput:`Wprowadzanie głosowe`,voiceStop:`Przestań słuchać`,transcriptionSource:`Źródło rozpoznawania mowy`,browserSpeech:`Usługa rozpoznawania mowy przeglądarki`,providerTranscriptionDisclosure:`Nagraj i wyślij dźwięk do {{provider}} w celu transkrypcji`,webSearchOn:`Wyszukiwanie włączone — odpowiedzi używają bieżących wyników`,webSearchOff:`Szukaj w sieci dla tej wiadomości`,thinkingOn:`Myślenie włączone ({{level}})`,thinkingOff:`Pomyśl przed odpowiedzią`},session:{new:`Nowy czat`,work:`Praca`,chat:`Czat`,private:`Prywatny`,incognito:`Czat incognito`,privateMode:`Tryb prywatny`,privateDescription:`Ta rozmowa nie zostanie zapisana`,privateTooltip:`Rozpocznij prywatną rozmowę, która nie zostanie zapisana`,deleteConfirm:`Czy na pewno chcesz usunąć ten czat?`,generatingTitle:`Generowanie tytułu`,noChats:`Brak czatów`,createFirst:`Utwórz swój pierwszy czat powyżej`,chats:`Czaty`,renameChat:`Zmień nazwę czatu`,openNewTab:`Otwórz w nowej karcie`,pinChat:`Przypnij`,unpinChat:`Odepnij`,deleteChat:`Usuń czat`,archiveChat:`Archiwizuj czat`,groups:{pinned:`Przypięte`,today:`Dzisiaj`,yesterday:`Wczoraj`,previous7Days:`Ostatnie 7 dni`,previous30Days:`Ostatnie 30 dni`,older:`Starsze`},folder:{new:`Nowy folder`,namePlaceholder:`Nazwa folderu`,move:`Przenieś do folderu`,remove:`Usuń z folderu`,delete:`Usuń folder`,deleteConfirm:`Usunąć ten folder? Czaty w nim pozostaną.`}},persona:{applied:`Persona zastosowana`,label:`Persona`,loadFailed:`Nie udało się załadować szczegółów persony`,removeFailed:`Nie udało się usunąć persony`},model:{updated:`Model zaktualizowany`,noModels:`Brak dostępnych modeli`,noModelsDescription:`Brak dostępnych modeli. Upewnij się, że Ollama działa i modele są zainstalowane.`,pullCommand:`ollama pull llama3.2:3b`,noModelsTooltip:`Brak dostępnych modeli. Upewnij się, że Ollama działa i modele są zainstalowane.`,selectBeforePrivateChat:`Wybierz dostępny model przed rozpoczęciem prywatnego czatu`,selectBeforeSending:`Wybierz dostępny model przed wysłaniem`},footer:{disclaimer:`LLM może popełniać błędy - weryfikuj ważne informacje`,images:`{{count}} obraz`,images_plural:`{{count}} obrazów`,structuredOutput:`Strukturalne wyjście`},mediaUpload:{dropImagesHere:`Upuść obrazy tutaj lub`,supportedFormats:`Obsługiwane: JPG, PNG, GIF, WebP (maks. 10MB każdy)`,browse:`przeglądaj`},structuredOutput:{title:`Format odpowiedzi`,none:`Brak (język naturalny)`,noneDescription:`Domyślna odpowiedź w języku naturalnym`,json:`JSON`,jsonDescription:`Strukturalny format JSON`,list:`Lista`,listDescription:`Tablica elementów`,summary:`Podsumowanie`,summaryDescription:`Podsumowanie dokumentu z kluczowymi punktami`,analysis:`Analiza`,analysisDescription:`Strukturalna analiza z zaletami/wadami`,custom:`Własny schemat`,customDescription:`Zdefiniuj własny schemat JSON`,customSchema:`Własny schemat JSON`,schemaPreview:`Podgląd schematu`,applySchema:`Zastosuj schemat`,cancel:`Anuluj`,enabled:`Strukturalne wyjście włączone`},controls:{title:`Ustawienia czatu`,systemPrompt:`Prompt systemowy`,systemPromptPlaceholder:`Instrukcje obowiązujące tylko w tym czacie…`,advancedParams:`Parametry zaawansowane`,advancedParamsDescription:`Nadpisania dla tego czatu. Puste pola używają globalnych domyślnych.`,fromModel:`z modelu`,fromModelHint:`Ta wartość pochodzi z ustawień zalecanych przez sam model.`,contextCapped:`Kontekst ograniczony do {{context}} z {{trained}}, dla których model trenowano, aby nadal się ładował.`,saved:`Ustawienia zapisane`,saveFailed:`Nie udało się zapisać ustawień`,params:{temperature:`Temperatura`,topP:`Top P`,topK:`Top K`,minP:`Min P`,maxTokens:`Maks. tokenów`,repeatPenalty:`Kara za powtórzenia`,seed:`Ziarno`,contextLength:`Długość kontekstu`},thinking:`Myślenie`,thinkingDescription:`Jak długo model myśli przed odpowiedzią. Modele bez rozumowania to ignorują.`,compaction:`Kompaktowanie kontekstu`,compactionDescription:`Gdy serwer kompaktuje długie rozmowy, ten czat może zostać z tego wyłączony i zachować pełną historię.`,compactionDefault:`Domyślne ustawienie serwera`,compactionOff:`Wyłączone dla tego czatu`},message:{sources:`Źródła`},toasts:{chatCreated:`Utworzono nowy czat`,createFailed:`Nie udało się utworzyć sesji`,loadFailed:`Nie udało się załadować sesji`,chatDeleted:`Czat usunięty`,deleteFailed:`Nie udało się usunąć czatu`,deleteSessionFailed:`Nie udało się usunąć sesji`,historyCleared:`Wyczyszczono całą historię czatu`,historyClearFailed:`Nie udało się wyczyścić historii czatu`,titleUpdated:`Zaktualizowano tytuł czatu`,updateFailed:`Nie udało się zaktualizować sesji`,noValidSession:`Brak prawidłowej sesji czatu. Utwórz lub wybierz czat.`,sessionNotFound:`Sesja nie została znaleziona lub jest nieprawidłowa. Wybierz lub utwórz prawidłową sesję czatu.`,noModelProvider:`Brak dostępnego dostawcy modeli`,modelUnavailable:`Wybrany model "{{model}}" jest niedostępny u dostawcy {{provider}}. Ponownie aktywuj tego dostawcę lub wybierz inny model.`,modelSwitched:`Przełączono na {{model}} (poprzedni model nie jest już dostępny)`,modelsLoadFailed:`Nie udało się załadować modeli`,modelUpdated:`Zaktualizowano model bieżącego czatu`,modelUpdateFailed:`Nie udało się zaktualizować modelu sesji`},documents:{title:`Dokumenty w kontekście`},context:{title:`Okno kontekstu:`,full:`{{percent}}% zapełnione`,tokensUsed:`{{used}} / {{budget}} tokenów użytych`,tokensUsedNoBudget:`{{used}} tokenów użytych`,capped:`ograniczone z {{trained}}`}},sidebar:{navigation:{chat:`Czat`,models:`Modele`,personas:`Persony`,imagine:`Generuj`,agents:`Agenci`,work:`Praca`,settings:`Ustawienia`,usageAnalytics:`Użycie dostawców`,system:`System`,userManagement:`Zarządzanie użytkownikami`,signOut:`Wyloguj się`,exploreLabel:`Odkrywaj`,notes:`Notatki`,calendar:`Kalendarz`,automations:`Automatyzacje`},toggleSize:`Zmień rozmiar panelu bocznego`,expandSidebar:`Rozwiń panel boczny`},user:{menu:{changePicture:`Zmień zdjęcie`,settings:`Ustawienia`,usageAnalytics:`Użycie dostawców`,system:`System`,userManagement:`Zarządzanie użytkownikami`,logout:`Wyloguj się`,pinShortcut:`Przypnij do paska bocznego`,unpinShortcut:`Odepnij od paska bocznego`},avatar:{title:`Zmień zdjęcie profilowe`,updated:`Zdjęcie profilowe zaktualizowane`,updateFailed:`Nie udało się zaktualizować zdjęcia profilowego`,saving:`Zapisywanie...`,label:`Awatar`,uploadAvatarImage:`Prześlij zdjęcie awatara`,dragAndDrop:`Przeciągnij i upuść obraz lub kliknij, aby przeglądać`,chooseImage:`Wybierz obraz`,uploading:`Przesyłanie...`,enterImageUrl:`Lub wprowadź URL obrazu`,supportedFormats:`Obsługiwane: JPG, PNG, GIF, WebP (maks. 2 MB). Kwadratowe obrazy działają najlepiej.`,customAvatar:`Niestandardowy obraz awatara`,clickToChange:`Kliknij, aby zmienić lub usunąć`,removed:`Awatar usunięty`,uploaded:`Awatar przesłany pomyślnie`,invalidFile:`Proszę wybrać prawidłowy plik obrazu`,fileTooLarge:`Rozmiar obrazu awatara musi być mniejszy niż 2 MB`,readFailed:`Nie udało się odczytać pliku obrazu`,uploadFailed:`Nie udało się przesłać obrazu awatara`},profile:{noEmail:`Brak adresu email`}},settings:JSON.parse(`{"title":"Ustawienia","tabs":{"appearance":"Wygląd","model":"Model","systemMessage":"Wiadomość systemowa","plugins":"Wtyczki","search":"Wyszukiwanie","generation":"Generowanie","documents":"Dokumenty","tts":"Mowa","imageGen":"Obrazy","data":"Dane","shortcuts":"Skróty","about":"O programie","sessions":"Sesje","apiKeys":"Klucze API"},"appearance":{"title":"Wygląd","language":{"title":"Język","description":"Wybierz preferowany język"},"theme":{"title":"Motyw","light":"Jasny","dark":"Ciemny","amoled":"Czysta Czerń","system":"Systemowy"},"accent":{"title":"Kolor akcentu","custom":"Kolor niestandardowy","useColor":"Użyj {{color}} jako akcentu","behaviorTitle":"Paleta interfejsu","behaviorDescription":"Wybierz, czy akcent ma pozostać na elementach sterujących, czy dostosować cały jasny lub ciemny interfejs.","defaultStyle":"Domyślna","defaultStyleDescription":"Zachowaj neutralne powierzchnie jasnego i ciemnego motywu.","adaptedStyle":"Dostosuj do akcentu","adaptedStyleDescription":"Zabarw powierzchnie, obramowania i tekst kolorem akcentu."},"chatInterface":{"title":"Interfejs czatu","showUsername":"Pokaż nazwę użytkownika","showUsernameDescription":"Wyświetlaj nazwę użytkownika w wiadomościach czatu","followUpSuggestions":"Propozycje kontynuacji","followUpSuggestionsDescription":"Proponuj szybkie odpowiedzi po każdej odpowiedzi","hapticFeedback":"Wibracje haptyczne (Android)","hapticFeedbackDescription":"Używaj subtelnych wibracji przy ważnych działaniach mobilnych"},"background":{"title":"Obraz tła","enable":"Włącz obraz tła","enableDescription":"Pokaż własne tło z efektem rozmycia","blur":"Rozmycie","opacity":"Przezroczystość","upload":"Wyślij obraz tła","dragDrop":"Przeciągnij i upuść obraz lub kliknij, aby przeglądać","chooseImage":"Wybierz obraz"}},"saveSettings":"Zapisz ustawienia","model":{"title":"Ustawienia modelu","defaultModel":"Domyślny model","defaultModelDescription":"Ten model będzie używany domyślnie dla nowych rozmów","selectModel":"Wybierz model","specializedModels":"Modele specjalistyczne","visionModel":"Model wizyjny","selectVisionModel":"Użyj bieżącego modelu czatu","visionModelDescription":"Używany automatycznie, gdy wychodzący kontekst czatu zawiera obrazy. Wybierz model obsługujący wprowadzanie obrazów.","visionModelUpdateFailed":"Nie udało się zaktualizować modelu wizyjnego: {{error}}","visionModelNoProvider":"Ten model wizyjny nie ma tożsamości dostawcy. Wybierz dostępny model.","persona":"Persona","updateAll":"Zaktualizuj wszystkie modele","updateAllDescription":"Sprawdź aktualizacje i pobierz najnowsze wersje wszystkich zainstalowanych modeli","updateAllButton":"Zaktualizuj wszystkie","updating":"Aktualizowanie modeli...","currentModelInfo":"Informacje o bieżącym modelu","name":"Nazwa","size":"Rozmiar","family":"Rodzina","format":"Format","status":"Status","statusStarting":"Uruchamianie...","statusComplete":"Zakończono","statusError":"Błąd","bulkOperations":"Operacje masowe","autoTitle":{"title":"Automatyczne generowanie tytułów","enable":"Włącz automatyczne tytuły","enableDescription":"Automatycznie generuj tytuły dla nowych rozmów","taskModel":"Model zadań","selectTaskModel":"Wybierz model zadań","taskModelDescription":"Model używany do generowania tytułów rozmów"},"updatingModel":"Aktualizacja {{name}} ({{current}}/{{total}})","modelsProgress":"{{current}} z {{total}} modeli"},"systemMessage":{"title":"Wiadomość systemowa","description":"Ustaw własną wiadomość systemową, która będzie używana dla wszystkich nowych rozmów.","placeholder":"Wprowadź wiadomość systemową...","saved":"Wiadomość systemowa zapisana","saveFailed":"Nie udało się zapisać wiadomości systemowej"},"plugins":{"title":"Wtyczki","description":"Zarządzaj zainstalowanymi wtyczkami","providerConnections":"Połączenia dostawców","providerConnectionsDescription":"Łącz, konfiguruj i sprawdzaj dostawców modeli przez wtyczki.","providers":"Dostawcy","searchProviders":"Szukaj dostawców","noProvidersFound":"Żaden dostawca nie pasuje do wyszukiwania.","selectProvider":"Wybierz dostawcę","selectProviderDescription":"Wybierz dostawcę, aby sprawdzić jego połączenie i katalog modeli.","addNew":"Dodaj nową wtyczkę","upload":"Wyślij wtyczkę","addJson":"Dodaj JSON","uploading":"Wysyłanie...","jsonPlaceholder":"Wklej konfigurację JSON wtyczki...","install":"Zainstaluj wtyczkę","noPlugins":"Brak zainstalowanych wtyczek","noPluginsDescription":"Dodaj wtyczkę, aby rozszerzyć funkcjonalność","loading":"Ładowanie wtyczek...","installed":"Zainstalowane wtyczki","active":"Aktywne wtyczki","activeLabel":"Aktywna","inactive":"Nieaktywna","activate":"Aktywuj","deactivate":"Dezaktywuj","models":"modeli","apiKeySet":"Klucz API ustawiony","apiKeyConfiguration":"Konfiguracja klucza API","apiKeyDescription":"Przechowaj osobisty klucz API dla {{name}}.","apiKeyEnvAlternative":"Alternatywnie, ustaw","environmentVariable":"zmienną środowiskową","apiKeyConfigured":"Klucz API skonfigurowany","apiKeyPlaceholder":"Wprowadź klucz API...","saveApiKey":"Zapisz klucz API","showApiKey":"Pokaż klucz API","hideApiKey":"Ukryj klucz API","configure":"Konfiguruj","providerSettings":"Ustawienia dostawcy","status":"Status","defaultEndpoint":"Domyślny punkt końcowy","modelCatalog":"Katalog modeli","modelCatalogDescription":"Odkryte i skonfigurowane modele dla tego dostawcy oraz jego możliwości.","refreshModels":"Odśwież modele","noModelsConfigured":"Brak skonfigurowanych modeli dla tego dostawcy.","modelId":"ID modelu","capabilities":"Możliwości","modelCatalogUpdated":"Katalog modeli zaktualizowany: {{count}} modeli.","modelCatalogUnchanged":"Katalog modeli jest już aktualny.","modelCatalogNeedsApiKey":"Dodaj prawidłowy klucz API dla tego dostawcy, aby załadować jego listę modeli na żywo.","modelCatalogUnavailable":"Nie udało się załadować listy modeli dostawcy.","modelCatalogRefreshFailed":"Nie udało się odświeżyć katalogu modeli","capability":{"chat":"Czat","embedding":"Embedding","image":"Obraz","speech":"Mowa","transcription":"Transkrypcja"},"exportPlugin":"Eksportuj wtyczkę","deletePlugin":"Usuń wtyczkę","apiKey":{"title":"Klucz API","placeholder":"Wprowadź klucz API","save":"Zapisz klucz","remove":"Usuń klucz","configured":"Klucz API skonfigurowany","notConfigured":"Wymagany klucz API","saved":"Klucz API zapisany pomyślnie","removed":"Klucz API usunięty","saveFailed":"Nie udało się zapisać klucza API","removeFailed":"Nie udało się usunąć klucza API","enterKey":"Wprowadź klucz API"},"variables":"Variables"},"generation":{"title":"Opcje generowania","description":"Skonfiguruj sposób generowania odpowiedzi przez AI","scopeLabel":"Dotyczy","scopeAll":"Wszystkich modeli","scopeModel":"Tylko {{model}}","scopeAllHint":"Wartości używane przez każdy model, o ile nie ma własnych.","scopeModelHint":"Zapisywane tylko dla tego modelu i mają pierwszeństwo przed ogólnymi.","advancedSettings":"Zaawansowane ustawienia generowania","advancedSettingsDescription":"Próbkowanie, limity tokenów, kontekst, kary i sekwencje zatrzymania","coreParameters":"Podstawowe parametry","temperature":"Temperatura","temperatureDescription":"Kontroluje losowość. Niższe wartości są bardziej skupione, wyższe bardziej kreatywne.","topP":"Top P","topPDescription":"Kontroluje różnorodność przez próbkowanie jądrowe. Niższe wartości koncentrują się na prawdopodobnych tokenach.","topK":"Top K","topKDescription":"Ogranicza wybór tokenów do K najbardziej prawdopodobnych. Ustaw 0, aby wyłączyć.","minP":"Min P","minPDescription":"Minimalny próg prawdopodobieństwa dla wyboru tokenów.","generationControl":"Kontrola generowania","maxTokens":"Maks. tokenów","maxTokensDescription":"Maksymalna liczba tokenów do wygenerowania w odpowiedzi.","repeatPenalty":"Kara za powtórzenia","repeatPenaltyDescription":"Karze powtarzające się tokeny. Wyższe wartości zmniejszają powtórzenia.","contextLength":"Długość kontekstu","contextLengthDescription":"Maksymalny rozmiar okna kontekstowego dla rozmów.","seed":"Seed","optional":"opcjonalne","random":"Losowy","seedDescription":"Ustaw konkretny seed dla powtarzalnych wyników.","advancedOptions":"Zaawansowane opcje","presencePenalty":"Kara za obecność","presencePenaltyDescription":"Karze tokeny, które pojawiają się w kontekście.","frequencyPenalty":"Kara za częstotliwość","frequencyPenaltyDescription":"Karze często używane tokeny.","stopSequences":"Sekwencje stop","commaSeparated":"rozdzielone przecinkami","stopSequencesDescription":"Własne tokeny, które zatrzymają generowanie po napotkaniu.","resetDefaults":"Przywróć domyślne","saveOptions":"Zapisz opcje","embeddingSettings":"Ustawienia embeddingów","enableEmbeddings":"Włącz embeddingi dokumentów","thinking":"Myślenie","thinkingDescription":"Domyślny poziom myślenia w odpowiedziach. Każdy czat może go zmienić.","thinkingLevels":{"default":"Domyślne modelu","defaultWith":"Domyślne modelu ({{level}})","off":"Wyłączone","on":"Włączone","low":"Niski","medium":"Średni","high":"Wysoki"}},"documents":{"title":"Ustawienia dokumentów","embeddings":{"title":"Embeddingi","enable":"Włącz embeddingi dokumentów","model":"Model embeddingów","modelDescription":"Wybierz model do embeddingu dokumentów","chunkSize":"Rozmiar części","chunkSizeInTokens":"(w tokenach)","chunkSizeDescription":"Rozmiar fragmentów tekstu do embeddingu","chunkOverlap":"Nakładanie części","chunkOverlapInTokens":"(w tokenach)","chunkOverlapDescription":"Nakładanie między kolejnymi fragmentami","similarityThreshold":"Próg podobieństwa","similarityDescription":"Minimalny wynik podobieństwa do uwzględnienia wyników","status":"Status embeddingów","statusLabel":"Status","available":"Dostępny","unavailable":"Niedostępny","chunksWithEmbeddings":"Fragmenty z embeddingami","coverage":"Pokrycie","regenerate":"Regeneruj embeddingi","regenerating":"Regenerowanie..."},"collections":{"title":"Kolekcje wiedzy","description":"Grupuj dokumenty w kolekcje i dołączaj je do dowolnego czatu.","namePlaceholder":"Nazwa kolekcji","create":"Utwórz","none":"Brak kolekcji","deleteConfirm":"Usunąć tę kolekcję? Dokumenty w niej pozostaną.","createFailed":"Nie udało się utworzyć kolekcji","deleteFailed":"Nie udało się usunąć kolekcji","assignFailed":"Nie udało się przenieść dokumentu"},"library":{"title":"Przesłane dokumenty","description":"Dokumenty dostępne jako kontekst czatu. Dokument przesłany w czacie pozostaje w swojej rozmowie; dokument bez czatu i kolekcji dołącza do każdej rozmowy.","empty":"Nie przesłano jeszcze żadnych dokumentów.","chatScope":"Jeden czat","everyChatScope":"Wszystkie czaty","deleteConfirm":"Usunąć „{{name}}”? Zniknie ze wszystkich czatów.","deleteFailed":"Nie udało się usunąć dokumentu"}},"tts":{"title":"Tekst na mowę","description":"Skonfiguruj ustawienia syntezy mowy do odczytywania wiadomości","loadingProviders":"Ładowanie dostawców TTS...","noProviders":"Brak dostawców TTS","noProvidersDescription":"Skonfiguruj wtyczkę z obsługą TTS, aby włączyć syntezę mowy","enable":"Włącz TTS","enableDescription":"Zezwól na syntezę mowy dla wiadomości asystenta","autoPlay":"Automatyczne odtwarzanie odpowiedzi","autoPlayDescription":"Automatycznie odczytuj nowe wiadomości asystenta","streamSentences":"Naturalne odtwarzanie partiami","streamSentencesDescription":"Generuj z wyprzedzeniem kilka partii z podziałem uwzględniającym frazy i odtwarzaj je jako jedną płynną odpowiedź.","voiceConfiguration":"Konfiguracja głosu","model":"Model TTS","modelDescription":"Wybierz model do syntezy mowy","voice":"Głos","selectVoice":"Wybierz głos","voiceDescription":"Wybierz głos do syntezy mowy","providerDefaultVoice":"Ten model używa domyślnego głosu, chyba że podczas generowania mowy podasz nagranie referencyjne.","voiceCloningAvailable":"Klonowanie głosu jest dostępne","voiceCloningAvailableDescription":"Użyj funkcji Wyobraź sobie → Audio, aby utworzyć mowę z nagrania referencyjnego wykonanego za zgodą mówcy i jego dokładnej transkrypcji. Możesz zapisać odniesienie jako głos wielokrotnego użytku.","savedVoiceOption":"{{name}} (zapisany głos)","savedVoices":"Zapisane głosy","loadingSavedVoices":"Wczytywanie zapisanych głosów…","deleteSavedVoice":"Usuń zapisany głos {{name}}","deleteSavedVoiceConfirm":"Usunąć zapisany głos „{{name}}”? Jego nagranie referencyjne i transkrypcja zostaną usunięte.","savedVoiceDeleted":"Zapisany głos został usunięty","savedVoicePreferenceCleanupFailed":"Zapisany głos został usunięty, ale nie udało się zresetować ustawień mowy","savedVoiceDeleteFailed":"Nie udało się usunąć zapisanego głosu","speed":"Szybkość","speedSlow":"0.5x","speedNormal":"1.0x","speedFast":"2.0x","availableProviders":"Dostępni dostawcy","models":"modeli","test":"Test","testing":"Testowanie...","stop":"Stop"},"imageGen":{"title":"Generowanie obrazów","description":"Skonfiguruj ustawienia i dostawców generowania obrazów","loadingProviders":"Ładowanie dostawców generowania obrazów...","noProviders":"Brak dostawców generowania obrazów","noProvidersDescription":"Skonfiguruj wtyczkę z obsługą generowania obrazów","enable":"Włącz generowanie obrazów","enableDescription":"Zezwól na generowanie obrazów AI w rozmowach","configuration":"Konfiguracja","model":"Model","modelDescription":"Wybierz model do generowania obrazów","size":"Rozmiar","sizeDescription":"Rozdzielczość generowanych obrazów","quality":"Jakość","qualityDescription":"Poziom jakości generowanych obrazów","style":"Styl","styleDescription":"Preset stylu dla generowanych obrazów","availableProviders":"Dostępni dostawcy","models":"modeli"},"data":{"title":"Zarządzanie danymi","export":"Eksportuj dane","exportDescription":"Pobierz przenośne archiwum preferencji, folderów czatów, sesji i wiadomości, notatek, kolekcji wiedzy oraz wyodrębnionego tekstu dokumentów.","archiveScopeV3":"Obejmuje preferencje, czaty, foldery, notatki, kolekcje wiedzy i wyodrębniony tekst dokumentów. Nie obejmuje kont i sekretów, biometrycznie sklonowanych głosów, wygenerowanych multimediów, person i pamięci ani danych lub woluminów Work.","exportAll":"Eksportuj wszystkie dane","import":"Importuj dane","importDescription":"Importuj dane z poprzedniego eksportu.","importData":"Importuj dane","importing":"Importowanie...","clearSessions":"Wyczyść sesje","clearSessionsDescription":"Usuń wszystkie sesje czatu. Tej akcji nie można cofnąć.","clearAll":"Wyczyść wszystko","clearing":"Czyszczenie...","importOptions":"Opcje importu","importOptionsDescription":"Wybierz sposób obsługi istniejących danych","validatingArchive":"Sprawdzanie archiwum i obliczanie zmian…","archiveValidationFailed":"Sprawdzanie archiwum nie powiodło się","preflightReport":"Podgląd importu","preflightIncoming":"{{folders}} folderów · {{sessions}} czatów · {{messages}} wiadomości · {{notes}} notatek · {{collections}} kolekcji · {{documents}} dokumentów · {{chunks}} fragmentów","preflightRemappedIds":"{{count}} identyfikatorów zostanie ponownie przypisanych, aby chronić dane innego konta.","skipDuplicates":"Pomiń duplikaty","overwrite":"Nadpisz istniejące","importResults":"Wyniki importu","preferences":"Preferencje","imported":"Zaimportowano","failed":"Niepowodzenie","sessions":"Sesje","sessionFolders":"Foldery sesji","notes":"Notatki","knowledgeCollections":"Kolekcje wiedzy","importedLabel":"zaimportowano","overwrittenLabel":"nadpisano","skipped":"pominięto","toCreate":"do utworzenia","toOverwrite":"do nadpisania","toSkip":"do pominięcia","documents":"Dokumenty","warnings":"Ostrzeżenia","refreshAfterImportFailed":"Dane zostały zaimportowane, ale niektórych widoków nie udało się odświeżyć. Załaduj ponownie Libre WebUI, aby zobaczyć wszystkie zmiany.","errors":"Błędy","archivedChats":{"title":"Zarchiwizowane czaty","empty":"Brak zarchiwizowanych czatów","unarchive":"Przywróć"}},"about":{"title":"O programie","versionLabel":"Wersja","ollama":{"title":"Status Ollama","version":"Wersja","healthy":"Działa","unhealthy":"Nie działa"},"stats":{"models":"Modele","sessions":"Sesje"},"features":{"privacy":{"title":"Prywatność przede wszystkim","description":"Twoje dane pozostają na Twoim urządzeniu"},"openSource":{"title":"Otwarty kod źródłowy","description":"Bezpłatne oprogramowanie open source"},"localInference":{"title":"Lokalna inferencja","description":"Uruchamiaj modele AI lokalnie z Ollama"}},"openSourceBy":"Otwarty kod źródłowy od {{company}}","links":{"title":"Linki","github":"GitHub","githubDescription":"Zobacz kod źródłowy i współtwórz","website":"Strona internetowa","websiteDescription":"Odwiedź naszą stronę","documentation":"Dokumentacja","reportIssue":"Zgłoś problem","reportIssueDescription":"Raporty błędów i prośby o funkcje","documentationDescription":"Przewodniki, samouczki i dokumentacja API","forgejo":"Lustro Forgejo","forgejoDescription":"Samodzielnie hostowane repozytorium Forgejo","sponsor":"Wesprzyj","sponsorDescription":"Pomóż sfinansować projekt","star":"Gwiazdka na GitHubie","starDescription":"Gwiazdka pomaga innym odkryć projekt"},"version":"Wersja {{version}}","updates":{"checking":"Sprawdzanie aktualizacji…","upToDate":"Masz najnowszą wersję","updateAvailable":"Dostępna jest wersja {{version}}","ahead":"Wyprzedzasz najnowsze wydanie ({{version}})","checkFailed":"Nie udało się sprawdzić aktualizacji","viewChangelog":"Zobacz listę zmian"}},"groups":{"general":"Ogólne","chat":"Czat","media":"Mowa i obrazy","connections":"Połączenia"},"search":{"title":"Wyszukiwanie w sieci","description":"Szukaj w sieci przez własną instancję SearXNG. Po włączeniu czat oferuje przełącznik wyszukiwania, a zadania Work z dostępem do sieci mogą wyszukiwać.","enableLabel":"Włącz wyszukiwanie w sieci","enableDescription":"Udostępnij wyszukiwanie czatom i zadaniom Work. Wyszukiwania działają po stronie serwera na skonfigurowanej instancji.","urlLabel":"Adres SearXNG","urlDescription":"Bazowy URL instancji SearXNG osiągalny z serwera. Dołączony prywatny stack wdrożeniowy udostępnia http://searxng:8080.","maxResultsLabel":"Wyników na wyszukiwanie","maxResultsDescription":"Ile wyników zasila odpowiedź lub wywołanie narzędzia, 1-100.","maxResultsInvalid":"Liczba wyników musi być między 1 a 100.","safeSearchLabel":"Bezpieczne wyszukiwanie","safeSearchDescription":"Poproś wyszukiwarkę o filtrowanie treści dla dorosłych.","test":"Testuj połączenie","testing":"Testowanie…","testOk":"Wyszukiwanie działa — zwrócono {{results}} wyników","testFailed":"Test wyszukiwania nie powiódł się","save":"Zapisz","saved":"Zapisano ustawienia wyszukiwania","saveFailed":"Nie udało się zapisać ustawień wyszukiwania"},"compaction":{"title":"Kompaktowanie kontekstu","description":"Gdy rozmowa przekroczy próg tokenów, serwer streszcza jej starsze wiadomości i zachowuje dosłownie tylko te najnowsze. Dotyczy każdego użytkownika tego serwera.","thresholdLabel":"Próg tokenów","thresholdDescription":"Szacowana liczba tokenów kontekstu, powyżej której starsza historia jest streszczana, 500-1 000 000.","thresholdInvalid":"Próg tokenów musi mieścić się w zakresie od 500 do 1 000 000.","keepRecentLabel":"Zachowane ostatnie wiadomości","keepRecentDescription":"Ile ostatnich wiadomości zawsze pozostaje dosłownie, 2-200.","keepRecentInvalid":"Liczba zachowanych ostatnich wiadomości musi mieścić się w zakresie od 2 do 200.","modelLabel":"Model kompaktowania","modelDescription":"Model, który pisze streszczenia. Bez wyboru używany jest model danej sesji.","sessionModelOption":"Użyj modelu sesji","promptLabel":"Własny prompt streszczenia","promptPlaceholder":"Pozostaw puste, aby użyć wbudowanego promptu","promptDescription":"Zmienne szablonu {{previousSummaryVariable}} i {{messagesVariable}} są zastępowane poprzednim streszczeniem oraz streszczanymi wiadomościami.","saved":"Zapisano ustawienia kompaktowania","saveFailed":"Nie udało się zapisać ustawień kompaktowania","loadFailed":"Nie udało się wczytać ustawień kompaktowania"},"sessions":{"title":"Sesje","description":"Wszystkie miejsca, w których to konto jest zalogowane. Wylogowanie sesji działa natychmiast; ponowne logowanie przywraca dostęp.","signOutOthers":"Wyloguj pozostałe sesje","signingOutOthers":"Wylogowywanie…","signOut":"Wyloguj","signingOut":"Wylogowywanie…","revoked":"Sesja została wylogowana.","revokeFailed":"Nie udało się wylogować sesji.","othersRevoked":"Wylogowane pozostałe sesje: {{count}}","loadFailed":"Nie udało się załadować sesji.","empty":"Nie znaleziono sesji.","current":"Ta sesja","revokedBadge":"Wylogowana","unknownDevice":"Nieznane urządzenie","createdAt":"Zalogowano","lastSeenAt":"Ostatnia aktywność","expiresAt":"Wygasa"},"apiKeys":{"title":"Klucze API","description":"Tokeny o ograniczonych zakresach dla skryptów i integracji. Każdy klucz ma dostęp tylko do wybranych zakresów.","newKeyTitle":"Twój nowy klucz API","copy":"Kopiuj","copied":"Skopiowano do schowka.","copyFailed":"Nie udało się skopiować.","showOnceWarning":"Skopiuj go teraz, nie zostanie ponownie wyświetlony.","dismiss":"Gotowe","createTitle":"Utwórz klucz","nameLabel":"Nazwa","namePlaceholder":"np. potok CI","nameRequired":"Nadaj kluczowi nazwę.","expiryLabel":"Wygasa po dniach (opcjonalnie)","expiryPlaceholder":"Nigdy","expiryInvalid":"Termin wygaśnięcia musi być całkowitą liczbą dni.","scopesLabel":"Zakresy","scopesRequired":"Wybierz co najmniej jeden zakres.","create":"Utwórz klucz","creating":"Tworzenie…","created":"Utworzono klucz API.","createFailed":"Nie udało się utworzyć klucza API.","revoke":"Unieważnij","revoking":"Unieważnianie…","revoked":"Klucz API został unieważniony.","revokeFailed":"Nie udało się unieważnić klucza API.","revokedBadge":"Unieważniony","loadFailed":"Nie udało się załadować kluczy API.","empty":"Brak kluczy API.","createdAt":"Utworzono","lastUsedAt":"Ostatnio użyty","expiresAt":"Wygasa","neverExpires":"Nigdy"}}`),models:{title:`Modele`,subtitle:`Pobieraj, zarządzaj i monitoruj swoje modele Ollama`,installed:`Zainstalowane modele`,available:`Dostępne modele`,pull:`Pobierz model`,pulling:`Pobieranie...`,delete:`Usuń model`,deleting:`Usuwanie...`,size:`Rozmiar`,modified:`Zmodyfikowano`,family:`Rodzina`,parameters:`Parametry`,quantization:`Kwantyzacja`,noModels:`Brak zainstalowanych modeli`,pullFirst:`Pobierz model, aby rozpocząć`,noModelsFound:`Nie znaleziono modeli`},personas:{title:`Persony`,create:`Utwórz personę`,edit:`Edytuj personę`,delete:`Usuń personę`,name:`Nazwa`,description:`Opis`,systemPrompt:`Prompt systemowy`,model:`Model`,avatar:`Awatar`,background:`Tło`,noPersonas:`Brak utworzonych person`,createFirst:`Utwórz swoją pierwszą personę, aby dostosować doświadczenie czatu`},gallery:{title:`Galeria`,subtitle:`Twoja galeria obrazów wygenerowanych przez AI`,imageCount:`{{count}} obrazów`,generate:`Generuj obraz`,generateDescription:`Twórz obrazy za pomocą AI`,generating:`Generowanie...`,prompt:`Prompt`,promptPlaceholder:`Opisz obraz, który chcesz wygenerować...`,noImages:`Nie wygenerowano jeszcze żadnych obrazów`,download:`Pobierz`,delete:`Usuń`,regenerate:`Regeneruj`,model:`Model`,size:`Rozmiar`,quality:`Jakość`,created:`Utworzono`},errors:{generic:`Wystąpił błąd`,network:`Błąd sieci. Sprawdź połączenie.`,unauthorized:`Nie masz uprawnień do wykonania tej akcji.`,notFound:`Żądany zasób nie został znaleziony.`,serverError:`Błąd serwera. Spróbuj ponownie później.`,validation:`Sprawdź wprowadzone dane i spróbuj ponownie.`},keyboard:{title:`Skróty klawiaturowe`,toggleSidebar:`Przełącz panel boczny`,openSettings:`Otwórz ustawienia`,toggleDarkMode:`Przełącz tryb ciemny`,showShortcuts:`Pokaż skróty klawiaturowe`,closeModals:`Zamknij okna modalne`,groups:{navigation:`Nawigacja`,general:`Ogólne`,chat:`Czat`,workspace:`Przestrzeń robocza`},actions:{sendMessage:`Wyślij wiadomość`,newLine:`Nowa linia w wiadomości`,saveEdit:`Zapisz edytowaną wiadomość`,cancelEdit:`Anuluj edycję`,saveFile:`Zapisz plik`,formatCode:`Sformatuj kod`},description:`Wszystkie skróty klawiszowe dostępne w Libre WebUI.`,newChat:`Nowy czat`,newWork:`Nowa sesja Work`,openPalette:`Otwórz paletę poleceń`},modelManager:{title:`Modele`,loading:`Ładowanie modeli...`,systemStatus:{online:`Ollama online`,offline:`Ollama offline`,models:`model`,models_plural:`modeli`,running:`działa`,vram:`VRAM`},sections:{pull:`Pobierz nowy model`,library:`Przeglądaj bibliotekę`,huggingface:`HuggingFace Hub`,running:`Działające modele`,local:`Lokalne modele`,advanced:`Zaawansowane akcje`,catalog:`Katalog modeli`},catalog:{searchPlaceholder:`Szukaj modeli według nazwy lub dostawcy...`,noModels:`Nie ma jeszcze dostępnych modeli.`,empty:`Żaden model nie pasuje do wyszukiwania.`,providerOllama:`Ollama`,hidden:`Ukryty`,visibilityFailed:`Nie udało się zmienić widoczności modelu.`,filterAll:`Wszystkie modele`,filterLocal:`Lokalne`,filterProviders:`Dostawcy`,filterHidden:`Ukryte`,enableAll:`Włącz widoczne`,disableAll:`Wyłącz widoczne`,rename:`Edytuj nazwę i obraz`,setPicture:`Ustaw obraz`,clearPicture:`Usuń obraz`,pictureInvalid:`Wybierz plik obrazu.`,pictureTooLarge:`Obrazy muszą mieć mniej niż 192 KB.`,saving:`Zapisywanie…`,hide:`Ukryj przed użytkownikami`,show:`Pokaż użytkownikom`},pull:{placeholder:`Wprowadź nazwę modelu (np. llama3.2:3b, deepseek-r1:14b)`,button:`Pobierz`,cancel:`Anuluj`,popular:`Popularne modele:`,browseAll:`Przeglądaj wszystkie modele na ollama.com`,success:`Model {{name}} pobrany pomyślnie`,cancelled:`Pobieranie modelu anulowane`,failed:`Nie udało się pobrać modelu`,enterName:`Wprowadź nazwę modelu`,restricted:`Instalacja modeli w tej instancji jest ograniczona do administratorów.`},progress:{starting:`Inicjalizacja...`,pulling:`Pobieranie modelu...`,pullingLayer:`pobieranie`,verifying:`Weryfikacja integralności...`,verifyingDigest:`weryfikacja skrótu sha256`,writing:`Zapisywanie manifestu...`,cleaning:`Czyszczenie...`},library:{available:`dostępne`,search:`Szukaj modeli...`,noResults:`Nie znaleziono modeli pasujących do kryteriów`,installed:`Zainstalowano`,more:`+{{count}} więcej`,refresh:`Odśwież bibliotekę`},huggingface:{browseAll:`Przeglądaj wszystko na HuggingFace`,checkingGguf:`Wyszukiwanie plików GGUF...`,noGgufAvailable:`Brak plików GGUF do bezpośredniego pobrania do Ollama`,ggufFilesCount:`Pliki GGUF ({{count}}) - Pobierz bezpośrednio do Ollama`,noModelsFound:`Nie znaleziono modeli`,noResults:`Nie znaleziono modeli. Spróbuj dostosować wyszukiwanie lub filtry.`,browseAllLink:`Zobacz wszystko`,search:`Szukaj modeli HuggingFace...`,by:`przez`,gated:`Ograniczony dostęp`,viewOnHF:`Zobacz na HuggingFace`,sortDownloads:`Pobrania`,sortLikes:`Polubienia`,sortRecent:`Ostatnie`,taskTextGeneration:`Generowanie tekstu`,taskTextToSpeech:`Tekst na mowę`,taskTextToImage:`Tekst na obraz`,taskSpeechRecognition:`Rozpoznawanie mowy`,tasks:{textGen:`Generowanie tekstu`,tts:`Tekst na mowę`,image:`Tekst na obraz`,stt:`Rozpoznawanie mowy`},sort:{downloads:`Najpopularniejsze`,likes:`Najbardziej lubiane`,recent:`Ostatnio zaktualizowane`}},local:{noModels:`Brak zainstalowanych modeli`,pullToStart:`Pobierz model powyżej, aby rozpocząć`,installed:`zainstalowano`,running:`Działa`,info:`Info`,copy:`Kopiuj`,delete:`Usuń`,deleteConfirm:`Czy na pewno chcesz usunąć model "{{name}}"?`,deleteSuccess:`Model {{name}} usunięty pomyślnie`,deleteFailed:`Nie udało się usunąć modelu`},advanced:{createModel:`Utwórz model`,fromModelfile:`Z Modelfile`,copyModel:`Kopiuj model`,duplicateExisting:`Duplikuj istniejący`,testEmbeddings:`Testuj embeddingi`,generateVectors:`Generuj wektory`,healthCheck:`Sprawdzenie zdrowia`,testConnection:`Test połączenia`,healthy:`Ollama jest zdrowy!`},modals:{details:{title:`Szczegóły modelu`,info:`Informacje o modelu`,family:`Rodzina`,parameters:`Parametry`,quantization:`Kwantyzacja`,format:`Format`,systemPrompt:`Prompt systemowy`,template:`Szablon`,license:`Licencja`,modelfile:`Modelfile`,noDetails:`Brak dostępnych szczegółów`},copy:{title:`Kopiuj model`,source:`Model źródłowy`,selectModel:`Wybierz model...`,newName:`Nowa nazwa modelu`,placeholder:`np. moj-wlasny-model`,copying:`Kopiowanie...`,button:`Kopiuj model`,success:`Model skopiowany jako {{name}}`,failed:`Nie udało się skopiować modelu`,enterBoth:`Wprowadź nazwy modelu źródłowego i docelowego`},create:{title:`Utwórz własny model`,name:`Nazwa modelu`,namePlaceholder:`np. moj-asystent`,modelfile:`Modelfile`,modelfilePlaceholder:`FROM llama3.2
2
- SYSTEM Jesteś pomocnym asystentem.`,see:`Zobacz`,docs:`Dokumentacja Modelfile`,docsLink:`dla odniesienia do składni`,creating:`Tworzenie...`,button:`Utwórz model`,success:`Model {{name}} utworzony pomyślnie`,failed:`Nie udało się utworzyć modelu`,enterBoth:`Wprowadź nazwę modelu i zawartość Modelfile`},embeddings:{title:`Testuj embeddingi`,model:`Model embeddingów`,selectModel:`Wybierz model...`,recommended:`Zalecane: nomic-embed-text, mxbai-embed-large`,input:`Tekst wejściowy`,placeholder:`Wprowadź tekst do wygenerowania embeddingów...`,generating:`Generowanie...`,button:`Generuj embeddingi`,result:`Wynik ({{count}} wymiarów)`,success:`Wygenerowano {{count}}-wymiarowy wektor embeddingu`,failed:`Nie udało się wygenerować embeddingów`,enterBoth:`Wybierz model i wprowadź tekst`}}},personaManager:{title:`Persony`,subtitle:`Twórz i zarządzaj personami AI z unikalnymi osobowościami, pamięcią i zachowaniami`,loading:`Ładowanie person...`,createButton:`Utwórz personę`,importExport:`Import/Eksport`,stats:{title:`Twoje persony`,count:`{{count}} persona utworzona`,count_plural:`{{count}} person utworzonych`},empty:{title:`Brak person`,description:`Utwórz swoją pierwszą personę, aby rozpocząć spersonalizowane interakcje z AI`,button:`Utwórz pierwszą personę`},deleteConfirm:`Czy na pewno chcesz usunąć "{{name}}"?`,deleteSuccess:`Persona "{{name}}" usunięta pomyślnie`,downloadSuccess:`Persona "{{name}}" pobrana pomyślnie`,failed:`Nie udało się {{action}} persony`},personaForm:{title:{create:`Utwórz nową personę`,edit:`Edytuj personę`},subtitle:{create:`Utwórz nową personę AI z unikalną osobowością, systemem pamięci i adaptacyjnym uczeniem`,edit:`Dostosuj swoją personę AI z zaawansowaną pamięcią, adaptacyjnym uczeniem i inteligentnymi parametrami`},loading:`Ładowanie formularza...`,saved:`Zapisano`,tabs:{basic:`Podstawowe`,parameters:`Parametry`,memory:`Pamięć i uczenie`,advanced:`Zaawansowane`},basic:{name:`Nazwa`,namePlaceholder:`Wprowadź nazwę persony`,model:`Model`,selectModel:`Wybierz model`,description:`Opis`,descriptionPlaceholder:`Opisz swoją personę...`,systemPrompt:`Prompt systemowy`,systemPromptPlaceholder:`Wprowadź prompt systemowy definiujący zachowanie persony...`,systemPromptHint:`Prompt systemowy definiuje, jak Twoja persona będzie się zachowywać i odpowiadać.`},parameters:{temperature:`Temperatura`,temperatureHint:`Kontroluje kreatywność vs spójność`,topP:`Top-P`,topPHint:`Kontroluje różnorodność odpowiedzi`,topK:`Top-K`,topKHint:`Ogranicza słownik do top-k tokenów`,contextWindow:`Okno kontekstowe`,contextWindowHint:`Maksymalna długość historii rozmowy`,maxTokens:`Maks. tokenów`,maxTokensHint:`Maksymalna długość odpowiedzi`,repeatPenalty:`Kara za powtórzenia`,repeatPenaltyHint:`Zmniejsza powtarzające się odpowiedzi`},memory:{title:`System pamięci`,subtitle:`Persona zapamiętuje rozmowy z czasem`,enableHint:`Włącz system pamięci, aby Twoja persona zapamiętywała rozmowy i budowała kontekst z czasem.`,loading:`Ładowanie statusu pamięci...`,noData:`Brak danych pamięci`,memories:`Wspomnienia`,mbUsed:`MB użyte`,lastBackup:`Ostatnia kopia`,never:`Nigdy`,maxMemories:`Maksimum wspomnień`,maxMemoriesHint:`Ile wspomnień może przechowywać persona`,retention:`Retencja pamięci`,retentionHint:`Dni przechowywania wspomnień przed czyszczeniem`,autoCleanup:`Automatyczne czyszczenie starych wspomnień`,wipeAll:`Wyczyść wszystkie wspomnienia`,wipeCannot:`Tej akcji nie można cofnąć`,wipeButton:`Wyczyść`,wiping:`Czyszczenie...`,wipeConfirm:`Czy na pewno chcesz wyczyścić wszystkie wspomnienia? Tej akcji nie można cofnąć.`,wipeSuccess:`Wyczyszczono {{count}} wspomnień`},learning:{title:`Adaptacyjne uczenie`,subtitle:`Persona ewoluuje na podstawie interakcji`,enableHint:`Włącz adaptacyjne uczenie, aby persona ewoluowała i personalizowała odpowiedzi na podstawie Twoich interakcji.`,speed:`Szybkość uczenia`,slow:`Wolna`,slowDesc:`Stopniowe zmiany`,balanced:`Zrównoważona`,balancedDesc:`Umiarkowane tempo`,fast:`Szybka`,fastDesc:`Szybka adaptacja`,autoAdapt:`Automatyczna adaptacja do preferencji użytkownika`,whatLearns:`Czego uczy się persona:`,conversationTone:`Ton rozmowy`,responseStyle:`Styl odpowiedzi`,userPreferences:`Preferencje użytkownika`,topicInterests:`Zainteresowania tematyczne`},advanced:{embeddingModel:`Model embeddingów`,embeddingHint:`Wybierz model używany do kodowania pamięci i wyszukiwania semantycznego. Modele embeddingów są pokazane jako pierwsze, następnie inne dostępne modele.`,noModels:`Nie znaleziono modeli`,embeddingModels:`Modele embeddingów`,otherModels:`Inne modele`,installHint:`Zainstaluj model embeddingów:`,recommended:`Zalecane: nomic-embed-text, mxbai-embed-large, bge-m3, snowflake-arctic-embed`,aboutTitle:`O zaawansowanych ustawieniach`,aboutDescription:`Model embeddingów jest używany przez system pamięci do rozumienia znaczenia semantycznego i znajdowania odpowiednich wspomnień podczas rozmów. Wybierz model odpowiedni do Twojego przypadku użycia i dostępnych zasobów.`},actions:{cancel:`Anuluj`,save:`Zapisz`,saving:`Zapisywanie...`,saveClose:`Zapisz i zamknij`,create:`Utwórz`},success:{created:`Persona utworzona`,updated:`Persona zaktualizowana`},error:{saveFailed:`Nie udało się zapisać`}},personaCard:{enhanced:`Ulepszona`,systemPrompt:`Prompt systemowy`,memories:`wspomnień`,use:`Użyj`,editTooltip:`Edytuj personę`,downloadTooltip:`Pobierz personę`,backup:`Kopia zapasowa`,exportDNA:`Eksportuj DNA`,wipeMemories:`Wyczyść wspomnienia`,wipeConfirm:`Czy na pewno chcesz wyczyścić wszystkie wspomnienia tej persony? Tej akcji nie można cofnąć.`,wipeSuccess:`Wyczyszczono {{count}} wspomnień`,backupSuccess:`Kopia zapasowa persony pobrana pomyślnie`,dnaSuccess:`DNA persony wyeksportowane pomyślnie`,failed:`Nie udało się {{action}}`},userManager:{title:`Zarządzanie użytkownikami`,subtitle:`Zarządzaj kontami użytkowników i uprawnieniami`,pageDescription:`Zarządzaj kontami użytkowników, uprawnieniami i kontrolą dostępu dla swojej instancji Libre WebUI.`,loading:`Ładowanie użytkowników...`,createUser:`Utwórz użytkownika`,search:`Szukaj użytkowników...`,noUsers:`Nie znaleziono użytkowników`,noUsersMatching:`Nie znaleziono użytkowników pasujących do wyszukiwania`,columns:{user:`Użytkownik`,email:`Email`,role:`Rola`,created:`Utworzono`,actions:`Akcje`},roles:{admin:`Administrator`,user:`Użytkownik`},noEmail:`Brak emaila`,deleteConfirm:`Czy na pewno chcesz usunąć użytkownika "{{name}}"?`,deleteSuccess:`Użytkownik usunięty pomyślnie`,deleteFailed:`Nie udało się usunąć użytkownika`,cannotDeleteSelf:`Nie możesz usunąć własnego konta`,approval:{title:`Oczekujące zatwierdzenia`,description:`Przejrzyj nowe rejestracje przed wpuszczeniem ich do tej instancji.`,registered:`Zarejestrowany`,activate:`Aktywuj konto`,reject:`Odrzuć rejestrację`,approved:`{{name}} może się teraz zalogować.`,failed:`Nie udało się zatwierdzić konta.`,notification:`{{count}} rejestracja(-e) czeka(-ją) na Twoje zatwierdzenie.`,notificationBadge:`{{count}} oczekujących zatwierdzeń użytkowników`},form:{title:{create:`Utwórz użytkownika`,edit:`Edytuj użytkownika`},username:`Nazwa użytkownika`,usernamePlaceholder:`Wprowadź nazwę użytkownika`,email:`Email`,emailPlaceholder:`Wprowadź email (opcjonalnie)`,password:`Hasło`,passwordPlaceholder:`Wprowadź hasło`,passwordHint:`Pozostaw puste, aby zachować obecne hasło`,role:`Rola`,creating:`Tworzenie...`,updating:`Aktualizowanie...`,createButton:`Utwórz użytkownika`,updateButton:`Zaktualizuj użytkownika`,createSuccess:`Użytkownik utworzony pomyślnie`,updateSuccess:`Użytkownik zaktualizowany pomyślnie`,createFailed:`Nie udało się utworzyć użytkownika`,updateFailed:`Nie udało się zaktualizować użytkownika`},workAccess:{title:`Dostęp do Work`,description:`Zezwól wszystkim aktywnym użytkownikom na tworzenie i uruchamianie zadań Work w izolowanych piaskownicach. Administratorzy zawsze mają dostęp; przestrzenie robocze w folderach hosta pozostają tylko dla administratorów.`,saved:`Zaktualizowano dostęp do Work`,saveFailed:`Nie udało się zaktualizować dostępu do Work`},workPolicies:{title:`Polityki Work`,description:`Nazwane presety środowiska (obraz, limity, zatrzymanie przy bezczynności), pod którymi można tworzyć zadania. Puste pola dziedziczą globalne wartości.`,add:`Dodaj politykę`,name:`Nazwa`,image:`Obraz`,memory:`Pamięć`,cpu:`CPU`,pids:`Limit PID`,workspaceSize:`Rozmiar przestrzeni roboczej`,idleMinutes:`Zatrzymanie przy bezczynności (minuty)`,networkDefault:`Domyślna sieć`,networkInherit:`Dziedzicz domyślne`,networkOn:`Włączona`,networkOff:`Wyłączona`,save:`Zapisz`,cancel:`Anuluj`,edit:`Edytuj politykę`,delete:`Usuń politykę`,deleteConfirm:`Usunąć tę politykę? Zadania z niej korzystające wrócą do globalnych wartości.`,empty:`Brak polityk. Zadania używają globalnych ustawień środowiska.`,saved:`Polityka Work zapisana`,deleted:`Polityka Work usunięta`,failed:`Nie udało się zapisać polityki Work`,invalidNumber:`Limit PID i zatrzymanie przy bezczynności muszą być liczbami.`},modelAccess:{title:`Pobieranie modeli`,description:`Zezwól wszystkim aktywnym użytkownikom na pobieranie modeli z Ollamy i przeglądarki Hugging Face. Administratorzy zawsze mogą pobierać modele.`,saved:`Zaktualizowano dostęp do pobierania modeli`,saveFailed:`Nie udało się zaktualizować dostępu do pobierania modeli`},webSearchAccess:{title:`Wyszukiwanie w sieci`,description:`Zezwól wszystkim aktywnym użytkownikom na wyszukiwanie w sieci w czatach i zadaniach Work. Administratorzy zawsze mogą z niego korzystać. Silnik konfiguruje się w Ustawienia > Wyszukiwanie.`,saved:`Zaktualizowano dostęp do wyszukiwania w sieci`,saveFailed:`Nie udało się zaktualizować dostępu do wyszukiwania w sieci`},agentAccess:{title:`Agenci`,description:`Udostępnij administratorom sekcję Agenci (Libre Claw). CLI agentów działają na hoście jako użytkownik serwera, poza piaskownicą Work.`,saved:`Zaktualizowano dostęp do agentów`,saveFailed:`Nie udało się zaktualizować dostępu do agentów`,lockedByEnv:`Ustalone przez zmienną środowiskową AGENT_CLI_MODELS_ENABLED.`},groups:{title:`Grupy`,description:`Grupuj konta, aby zarządzać wspólnym dostępem, i sprawdzaj, co dane konto może faktycznie zrobić.`,newGroup:`Nowa grupa`,nameLabel:`Nazwa`,nameRequired:`Nadaj grupie nazwę.`,descriptionLabel:`Opis (opcjonalnie)`,create:`Utwórz grupę`,creating:`Tworzenie…`,created:`Utworzono grupę.`,createFailed:`Nie udało się utworzyć grupy.`,deleted:`Grupa została usunięta.`,deleteFailed:`Nie udało się usunąć grupy.`,deleteGroup:`Usuń grupę`,loadFailed:`Nie udało się załadować grup.`,empty:`Brak grup.`,memberCount:`Członkowie: {{count}}`,noMembers:`Brak członków.`,addedAt:`Dodano`,addMember:`Dodaj członka`,add:`Dodaj`,selectUser:`Wybierz użytkownika…`,memberAdded:`Członek został dodany.`,memberAddFailed:`Nie udało się dodać członka.`,removeMember:`Usuń członka`,memberRemoved:`Członek został usunięty.`,memberRemoveFailed:`Nie udało się usunąć członka.`,effectiveTitle:`Dostęp efektywny`,effectiveDescription:`Wybierz konto, aby zobaczyć jego łączny dostęp wynikający z roli, grup i uprawnień.`,accessLookupFailed:`Nie udało się załadować dostępu efektywnego.`,roleLabel:`Rola`,statusLabel:`Status`,memberOf:`Grupy`,featuresLabel:`Dostęp do funkcji`,grantsLabel:`Uprawnienia`,grantVia:`przez`},audit:{title:`Dziennik audytu bezpieczeństwa`,description:`Ostatnie logowania, kontrole uprawnień i zmiany administracyjne w tej instancji.`,actionFilter:`Akcja`,actionPlaceholder:`np. auth.login`,resultFilter:`Wynik`,resultSuccess:`Sukces`,resultDenied:`Odmowa`,resultFailure:`Błąd`,limitFilter:`Limit`,loadFailed:`Nie udało się załadować dziennika audytu.`,empty:`Brak zarejestrowanych zdarzeń audytu.`,actor:`Wykonawca`,target:`Cel`}},usageAnalytics:{eyebrow:`Administracja`,title:`Użycie dostawców`,description:`Śledź wychodzące wywołania API i zużycie modeli w włączonych wtyczkach w tej instancji.`,days:`{{count}} dni`,refresh:`Odśwież użycie`,loadFailed:`Nie udało się załadować użycia dostawców.`,metrics:{calls:`Wywołania`,tokens:`Tokeny`},cards:{calls:`Wywołania API`,callsDetail:`Na {{count}} aktywnym użytkowniku(ach)`,tokens:`Zgłoszone tokeny`,tokensDetail:`Użycie zgłoszone w {{count}} wywołaniu(aniach)`,success:`Wskaźnik sukcesu`,successDetail:`{{count}} nieudanych wywołań`,latency:`Średnie opóźnienie`,latencyDetail:`Czas dostawcy end-to-end`},activity:{title:`Zużycie w czasie`,callsDescription:`Codzienne żądania wychodzące do włączonych wtyczek`,tokensDescription:`Codzienne sumy tokenów zgłaszane przez dostawców`,chartLabel:`Codzienny wykres {{metric}} dostawcy`},models:{title:`Zużycie modeli`,description:`Modele generujące największy ruch w tym okresie.`,model:`Model`,success:`Sukces`,latency:`Opóźnienie`},providers:{title:`Ruch włączonych wtyczek`},capabilities:{title:`Rozkład możliwości`,characters:`{{count}} znaków`,bytes:`{{count}} bajtów`,images:`{{count}} obrazów`,jobs:`{{count}} zadań wideo`,inputs:`{{count}} wejść`,reportedTokens:`{{count}} zgłoszonych tokenów`},empty:{title:`Brak wywołań dostawcy`,description:`Wywołania pojawią się tutaj po obsłużeniu żądań czatu, Work, osadzania, obrazu, mowy, dźwięku lub wideo przez włączoną wtyczkę.`},privacyNote:`Zużycie jest mierzone na serwerze na granicy wtyczki wychodzącej. Libre WebUI przechowuje dostawcę, model, czas, status i zgłoszone liczniki — nigdy prompty, odpowiedzi, endpointy, dane uwierzytelniające ani treści błędów dostawcy. Sumy tokenów obejmują tylko wywołania, w których dostawca zwrócił metadane użycia.`,heatmap:{title:`Rok aktywności`,description:`Dzienne wywołania dostawców z ostatniego roku, pokolorowane według najczęściej używanego modelu danego dnia.`,calls:`wywołań`,noCalls:`Brak wywołań`,other:`Inne modele`,less:`Mniej`,more:`Więcej`,yearTotal:`{{formatted}} wywołań w ostatnim roku`}},systemPage:{eyebrow:`Administracja`,title:`System`,description:`Monitoruj maszynę i środowisko uruchomieniowe hostujące tę instancję Libre WebUI.`,updated:`Zaktualizowano {{date}}`,refresh:`Odśwież informacje o systemie`,loadFailed:`Nie udało się załadować informacji o systemie.`,cards:{uptime:`Czas działania hosta`,uptimeDetail:`Działa od {{date}}`,memory:`Użyta pamięć`,memoryDetail:`{{used}} z {{total}}`,freeSpace:`Wolne miejsce`,freeSpaceDetail:`{{label}} · {{total}} łącznie`,containers:`Uruchomione kontenery`,containersDetail:`{{total}} kontenerów znanych Docker`,dockerUnavailable:`Docker niedostępny`,unavailable:`Niedostępne`},host:{title:`Host i środowisko uruchomieniowe`,description:`System operacyjny, procesor i szczegóły procesu Libre WebUI.`,container:`Środowisko uruchomieniowe kontenera`,native:`Natywne środowisko uruchomieniowe`,hostname:`Nazwa hosta`,operatingSystem:`System operacyjny`,processor:`Procesor`,logicalCpus:`logiczne CPU`,loadAverage:`Średnie obciążenie · 1 / 5 / 15 min`,libreVersion:`Libre WebUI`,nodeVersion:`Node.js`,process:`Proces`,workingDirectory:`Katalog roboczy`},memory:{title:`Pamięć`,description:`Pamięć systemowa widoczna dla środowiska uruchomieniowego i użycie procesu aplikacji.`,usedOf:`{{used}} zajęte z {{total}}`,free:`{{value}} wolne`,processRss:`RSS procesu`,heapUsed:`Zajęta sterta V8`,heapTotal:`Całkowita sterta V8`,external:`Pamięć zewnętrzna`},storage:{title:`Pamięć masowa`,description:`Dostępne miejsce dla systemu plików środowiska uruchomieniowego i trwałych danych aplikacji.`,used:`{{value}} zajęte`,free:`{{value}} wolne`,empty:`Informacje o systemie plików są niedostępne w tym środowisku uruchomieniowym.`},docker:{title:`Docker`,description:`Status Docker Engine tylko do odczytu i skrócona lista kontenerów.`,connected:`Połączono`,unavailable:`Niedostępne`,unavailableDetail:`Diagnostyka Docker Engine jest niedostępna.`,socketStatus:`Lokalne gniazdo: {{status}}`,mounted:`zamontowane`,notMounted:`niezamontowane`,running:`Uruchomione`,stopped:`Zatrzymane`,paused:`Wstrzymane`,total:`Razem`,version:`Wersja`,host:`Host`,architecture:`Architektura`,cpus:`CPU`,memory:`Pamięć`,container:`Kontener`,image:`Obraz`,state:`Stan`,created:`Utworzony`,empty:`Docker jest połączony i obecnie nie ma żadnych kontenerów na liście.`},network:{title:`Sieć`,description:`Interfejsy, adresy i liczniki ruchu Linuksa widoczne w czasie działania.`,internal:`wewnętrzny`,empty:`Żadne interfejsy sieciowe nie są widoczne dla środowiska uruchomieniowego aplikacji.`},securityNote:`Ta strona jest dostępna tylko dla administratorów. Serwer zwraca tylko podsumowania operacyjne: nie udostępnia zmiennych środowiskowych, poświadczeń, etykiet Docker, punktów montowania, poleceń kontenera ani ładunków inspekcji. Gdy Libre WebUI działa w kontenerze, szczegóły CPU i pamięci na poziomie hosta pochodzą z Docker Engine, gdy jego lokalne gniazdo jest dostępne; inne wartości opisują środowisko uruchomieniowe aplikacji.`,work:{title:`Work`,description:`Piaskownice wszystkich użytkowników`,access:`Dostęp`,accessAdmins:`Tylko administratorzy`,accessAllUsers:`Wszyscy użytkownicy`,runtimeAvailable:`Dostępne`,runtimeUnavailable:`Niedostępne`,activeRuntimes:`Aktywne środowiska`,pendingCleanups:`Oczekujące porządki`,orphans:`Osierocone kontenery`,owner:`Właściciel`,task:`Zadanie`,state:`Stan`,preview:`Podgląd`,terminals:`Terminale`,updated:`Zaktualizowano`,stateRunning:`Działa`,stateStopped:`Zatrzymane`,stateStarting:`Uruchamianie`,stateUnknown:`Nieznany`,noTasks:`Brak zadań Work.`}},chatHistory:{label:`Historia rozmowy`,jumpToTurn:`Przejdź do wypowiedzi {{index}} z {{total}}`},chatMessage:{you:`Ty`,assistant:`Asystent`,system:`System`,conversationSummary:`Podsumowanie rozmowy`,restoreCompacted:`Przywróć podsumowane wiadomości`,restoreFailed:`Nie udało się przywrócić podsumowanych wiadomości`,copy:`Kopiuj`,copyMessage:`Kopiuj wiadomość`,copied:`Skopiowano!`,regenerate:`Regeneruj`,regenerateResponse:`Regeneruj odpowiedź`,edit:`Edytuj`,editSystemMessage:`Edytuj wiadomość systemową`,saveChanges:`Zapisz zmiany`,cancelEditing:`Anuluj edycję`,saveAndSubmit:`Zapisz i wyślij`,goodResponse:`Dobra odpowiedź`,badResponse:`Zła odpowiedź`,delete:`Usuń`,deleteConfirm:`Usunąć tę wiadomość?`,branch:`Gałąź`,speaking:`Mówienie...`,speakMessage:`Odczytaj wiadomość`,stopSpeaking:`Zatrzymaj mówienie`,showMore:`Pokaż więcej`,showLess:`Pokaż mniej`,thinking:`Myślenie`,thoughtFor:`Myślał przez {{duration}}`,hiddenLines:`Ukryte wiersze: {{count}}`,systemMessagePlaceholder:`Wprowadź wiadomość systemową...`,fullSizeImage:`Pełnowymiarowy obraz`,startConversation:`Rozpocznij rozmowę`,startConversationDescription:`Wyślij wiadomość, aby rozpocząć rozmowę z asystentem AI. Zadawaj pytania, uzyskaj pomoc z kodem lub prowadź naturalną rozmowę.`,scrollToBottom:`Przewiń na dół`,newMessages:`Nowe wiadomości`},imageGallery:{title:`Galeria obrazów`,noImages:`Brak obrazów`,noImagesHint:`Wygeneruj swój pierwszy obraz za pomocą panelu po prawej`,delete:`Usuń`,download:`Pobierz`,deleteConfirm:`Czy na pewno chcesz usunąć ten obraz?`,deleteSuccess:`Obraz usunięty`,deleteFailed:`Nie udało się usunąć obrazu`,downloadFailed:`Nie udało się pobrać obrazu`,loadMore:`Załaduj więcej ({{current}} z {{total}})`,loadFailed:`Nie udało się załadować galerii`},imageGeneration:{title:`Generuj obraz`,prompt:`Prompt`,promptPlaceholder:`Opisz obraz, który chcesz utworzyć...`,model:`Model`,selectModel:`Wybierz model`,noModels:`Brak dostępnych modeli generowania obrazów`,configurePlugin:`Skonfiguruj wtyczkę z obsługą generowania obrazów`,size:`Rozmiar`,quality:`Jakość`,style:`Styl`,generate:`Generuj`,generating:`Generowanie...`,success:`Obraz wygenerowany pomyślnie`,failed:`Nie udało się wygenerować obrazu`,enterPrompt:`Wprowadź prompt`,promptTooLong:`Prompt przekracza maksymalną długość {{max}} znaków`},mediaGeneration:{title:`Generuj multimedia`,description:`Twórz wideo, dźwięk, muzykę lub mowę za pomocą aktywowanego dostawcy multimediów.`,image:`Obraz`,video:`Wideo`,audio:`Audio`,sound:`Dźwięk`,speech:`Mowa`,model:`Model`,voice:`Głos lub identyfikator głosu`,cloneVoice:`Sklonuj głos referencyjny`,cloneVoiceDescription:`Wygeneruj tę mowę na podstawie nagrania referencyjnego zamiast gotowego głosu.`,referenceAudio:`Dźwięk referencyjny`,referenceTranscript:`Dokładny zapis nagrania referencyjnego`,referenceTranscriptPlaceholder:`Wpisz dokładnie to, co powiedziano w nagraniu referencyjnym…`,referenceAudioTooLarge:`Dźwięk referencyjny nie może być większy niż {{max}}.`,cloneConsent:`Klonuj głos wyłącznie za zgodą osoby mówiącej. Nagranie jest wysyłane do wybranego dostawcy na potrzeby tego generowania i nie jest zapisywane przez Libre WebUI.`,saveVoiceProfile:`Zapisz jako głos wielokrotnego użytku`,saveVoiceProfileDescription:`Bezpiecznie przechowuj to nagranie referencyjne i transkrypcję. Libre WebUI wysyła je do wybranego dostawcy z każdą partią mowy, która używa tego głosu.`,voiceProfileName:`Nazwa zapisanego głosu`,voiceProfileNamePlaceholder:`Na przykład Mój głos`,voiceStorageConsent:`Potwierdzam, że mam zgodę mówcy na sklonowanie i zapisanie tego głosu. Odniesienie pozostanie zapisane, dopóki go nie usunę.`,resolution:`Rozdzielczość`,aspectRatio:`Proporcje obrazu`,duration:`Czas trwania`,providerDefault:`Domyślne ustawienia dostawcy`,generateAudio:`Generuj dźwięk wraz z wideo, gdy jest obsługiwane`,prompt:`Prompt`,text:`Tekst do przeczytania`,videoPlaceholder:`Opisz scenę, ruch, kamerę i oświetlenie...`,audioPlaceholder:`Wpisz tekst, który ma zostać odczytany przez głos...`,soundPlaceholder:`Opisz dźwięk, muzykę, atmosferę lub odpowiedź głosową, której oczekujesz...`,generate:`Generuj`,generating:`Generowanie… to może zająć kilka minut`,success:`Multimedia wygenerowane i zapisane w Imagine`,successWithSavedVoice:`Multimedia zostały utworzone, a „{{name}}” jest teraz dostępny w ustawieniach mowy`,failed:`Nie udało się wygenerować multimediów`,loadFailed:`Nie udało się załadować dostawców multimediów`,noModels:`Brak dostępnych modeli {{kind}}. Najpierw aktywuj kompatybilnego dostawcę i zapisz jego poświadczenia.`},mediaGallery:{itemCount:`{{count}} elementów`,empty:`Brak wygenerowanych multimediów`,emptyHint:`Wygeneruj obraz, wideo lub klip głosowy, a pojawi się tutaj.`,filters:{all:`Wszystkie`,image:`Obrazy`,video:`Wideo`,audio:`Audio`}},errorBoundary:{title:`Coś poszło nie tak`,description:`Wystąpił nieoczekiwany błąd. Spróbuj odświeżyć stronę.`,tryAgain:`Odśwież stronę`,goHome:`Przejdź do strony głównej`,errorDetails:`Szczegóły błędu (programowanie)`},documents:{title:`Dokumenty`,upload:`Wyślij dokument`,uploading:`Wysyłanie...`,noDocuments:`Brak przesłanych dokumentów`,uploadHint:`Prześlij dokumenty do użycia w rozmowach`,delete:`Usuń`,deleteConfirm:`Czy na pewno chcesz usunąć ten dokument?`,deleteSuccess:`Dokument usunięty`,deleteFailed:`Nie udało się usunąć dokumentu`,uploadSuccess:`Dokument przesłany pomyślnie`,uploadFailed:`Nie udało się przesłać dokumentu`,types:`Obsługiwane: PDF, TXT, MD, DOCX`,unsupportedFileType:`Obsługiwane są tylko pliki PDF i TXT`,fileSizeTooLarge:`Rozmiar pliku musi być mniejszy niż 10MB`,uploadSuccessWithName:`Dokument "{{name}}" przesłany pomyślnie`,removeSuccess:`Dokument usunięty pomyślnie`,removeFailed:`Nie udało się usunąć dokumentu`,removeError:`Wystąpił błąd podczas usuwania dokumentu`,clickToUpload:`Kliknij, aby przesłać`,orDragAndDrop:`lub przeciągnij i upuść`,fileTypesAndSize:`Pliki PDF lub TXT do 10MB`,uploadedDocuments:`Przesłane dokumenty`,removeDocument:`Usuń dokument`},ttsButton:{speak:`Mów`,stop:`Stop`,speaking:`Mówienie...`,generateFailed:`Nie udało się wygenerować mowy`,playbackFailed:`Odtwarzanie audio nie powiodło się`,stopSpeaking:`Zatrzymaj mówienie`,preparingSpeech:`Przygotowywanie mowy...`,generatingSpeech:`Generowanie mowy...`,bufferingSpeech:`Buforowanie mowy...`,enableAudio:`Włącz dźwięk i czytaj na głos`,enableAudioShort:`Włącz dźwięk`,readAloud:`Czytaj na głos`},artifacts:{title:`Artefakty`,code:`Kod`,preview:`Podgląd`,copy:`Kopiuj kod`,copied:`Skopiowano!`,download:`Pobierz`,expand:`Rozwiń`,collapse:`Zwiń`,openInNewTab:`Otwórz w nowej karcie`,invalidSvg:`Nieprawidłowa zawartość SVG`,invalidJson:`Nieprawidłowa zawartość JSON`,previewMode:`Tryb podglądu`,codeMode:`Tryb kodu`,copyContent:`Kopiuj zawartość`,openInPanel:`Otwórz w panelu`,openInNewWindow:`Otwórz w nowym oknie`,created:`Utworzono`,closePanelEsc:`Zamknij panel (Esc)`,copyButton:`Kopiuj`,open:`Otwórz`,dragEdgeToResize:`Przeciągnij krawędź, aby zmienić rozmiar`,previewUnavailable:`Preview unavailable`,previewUnavailableDescription:`This artifact does not contain renderable preview content. Switch to code view to inspect the source.`,versionOf:`Wersja {{current}} z {{total}}`,previousVersion:`Poprzednia wersja`,nextVersion:`Następna wersja`},personaImportExport:{title:`Import i eksport person`,description:`Eksportuj swoje persony, aby je udostępnić lub importuj persony innych`,exportPersonas:`Eksportuj persony`,importPersonas:`Importuj persony`,noPersonasToExport:`Brak person do eksportu`,personasAvailable:`{{count}} persona dostępna`,personasAvailable_plural:`{{count}} person dostępnych`,exportAll:`Eksportuj wszystkie`,uploadJsonFile:`Prześlij plik JSON`,pasteJsonLabel:`Wklej dane JSON`,pasteJsonPlaceholder:`Wklej dane JSON persony tutaj...`,importing:`Importowanie...`,importButton:`Importuj personę(y)`,expectedFormat:`Oczekiwany format JSON:`,exportSuccess:`Persona "{{name}}" wyeksportowana pomyślnie`,exportFailed:`Nie udało się wyeksportować persony`,exportAllSuccess:`Wszystkie {{count}} persony wyeksportowane pomyślnie`,exportAllFailed:`Nie udało się wyeksportować person`,pasteJsonData:`Wklej dane JSON persony`,importMultipleSuccess:`Pomyślnie zaimportowano {{count}} person`,importMultipleFailed:`Nie udało się zaimportować {{count}} person`,importNoneFailed:`Nie udało się zaimportować żadnej persony`,importSuccess:`Persona zaimportowana pomyślnie`,importFailed:`Nie udało się zaimportować persony`},generationStats:{details:`Szczegóły`,promptTokens:`Tokeny promptu:`,generatedTokens:`Wygenerowane tokeny:`,totalTokens:`Łącznie tokenów:`,speed:`Szybkość:`,promptEval:`Ocena promptu:`,generation:`Generowanie:`,modelLoad:`Ładowanie modelu:`,totalTime:`Łączny czas:`,generatedAt:`Wygenerowano o:`},userMenu:{loggedOut:`Wylogowano pomyślnie`,pictureUpdated:`Zdjęcie profilowe zaktualizowane`,failedUpdateAvatar:`Nie udało się zaktualizować awatara`,failedUpdatePicture:`Nie udało się zaktualizować zdjęcia profilowego`,noEmail:`Brak adresu e-mail`,changePicture:`Zmień zdjęcie`,settings:`Ustawienia`,userManagement:`Zarządzanie użytkownikami`,signOut:`Wyloguj się`,changeProfilePicture:`Zmień zdjęcie profilowe`},pluginManager:{title:`Menedżer wtyczek`,upload:`Prześlij`,addJson:`Dodaj JSON`,browseHF:`Przeglądaj HF Hub`,confirmDelete:`Czy na pewno chcesz usunąć tę wtyczkę?`,uploading:`Przesyłanie wtyczki...`,pasteJson:`Wklej JSON wtyczki tutaj...`,installPlugin:`Zainstaluj wtyczkę`,loading:`Ładowanie wtyczek...`,noPlugins:`Brak zainstalowanych wtyczek`,noPluginsDescription:`Prześlij plik wtyczki lub dodaj wtyczkę z JSON, aby rozpocząć.`,active:`Aktywna`,id:`ID`,endpoint:`Endpoint`,activate:`Aktywuj`,deactivate:`Dezaktywuj`,activePlugin:`Aktywna wtyczka`,activePluginDescription:`Wszystkie żądania czatu będą kierowane przez tę wtyczkę`,variables:{title:`Zmienne`,save:`Zapisz`,saving:`Zapisywanie...`,saved:`Zmienne zapisane`,saveFailed:`Nie udało się zapisać zmiennych`,resetDefaults:`Przywróć domyślne`,reset:`Zmienne przywrócone`,resetFailed:`Nie udało się zresetować zmiennych`,sensitiveSet:`Wartość ustawiona (wprowadź nową, aby zmienić)`,showValue:`Pokaż wartość {{label}}`,hideValue:`Ukryj wartość {{label}}`,connection:`Połączenie`,advanced:`Parametry zaawansowane`,inherited:`Użyj domyślnych dostawcy`,inheritedValue:`Użyj domyślnych dostawcy ({{value}})`,enabled:`Włączone`,disabled:`Wyłączone`,required:`Wartość jest wymagana`,fullApiEndpoint:`Pełny URL punktu końcowego API`,endpointHelp:`Wprowadź pełny URL żądania, wraz ze ścieżką operacji (np. /v1/chat/completions), a nie tylko bazowy URL dostawcy.`,invalidUrl:`Wprowadź prawidłowy pełny URL punktu końcowego API, np. https://provider.example/v1/chat/completions`,insecureUrl:`Punkty końcowe API muszą używać HTTP lub HTTPS.`,httpWarning:`HTTP nie szyfruje poświadczeń ani ruchu. Używaj tylko w zaufanej sieci.`,invalidBaseUrl:`Bazowe URL nie mogą zawierać ciągu zapytania ani fragmentu.`,invalidApiPath:`Musi zaczynać się od / i nie zawierać URL, zapytania, fragmentu ani segmentu ..`,tooLong:`Wartość jest za długa`}},huggingface:{title:`Przeglądarka modeli HuggingFace`,subtitle:`Przeglądaj i wybieraj modele z Huba`,searchPlaceholder:`Szukaj modeli...`,filters:`Filtry`,task:`Zadanie`,sortBy:`Sortuj wg`,noModels:`Nie znaleziono modeli`,adjustSearch:`Spróbuj dostosować wyszukiwanie lub filtry`,gated:`Ograniczony`,selected:`Wybrano`,select:`Wybierz`,refresh:`Odśwież`,modelsFound:`znalezionych modeli`},demoMode:{title:`Tryb demo`,github:`GitHub`},libreClaw:{title:`Agenci`,subtitle:`Uruchomienia agenta lokalnego, zatwierdzenia, harmonogramy, pamięć, narzędzia i wykorzystanie.`,dashboard:`Panel`,connection:{disconnectedTitle:`Demon Libre Claw nie jest połączony`,disconnectedDescription:`Uruchom go lokalnie za pomocą <command>libre-claw start</command> lub ustaw <env>LIBRE_CLAW_BASE_URL</env> w środowisku zaplecza.`},status:{connected:`Połączono`,disconnected:`Rozłączony`,activeRuns:`{{count}} aktywny`,activeRuns_plural:`{{count}} aktywny`},states:{queued:`W kolejce`,running:`W toku`,blocked:`Zablokowany`,done:`Gotowe`,failed:`Nie udało się`,cancelled:`Anulowano`},startRun:{title:`Uruchom agenta`,placeholder:`Poproś Libre Claw o sprawdzenie repozytorium, naprawienie błędu, przeprowadzenie przeglądu, zaplanowanie raportu...`,chatRun:`Uruchomienie czatu`,goalMode:`Tryb celu`,providerOverride:`Zastąpienie dostawcy`,modelOverride:`Nadpisanie modelu`,run:`Uruchom`},modelRoute:{title:`Trasa modelowa`,providerPlaceholder:`dostawca`,modelPlaceholder:`modelka`,persistGlobal:`Zachowaj konfigurację globalną Libre Claw`,saveModel:`Zapisz model`,theme:`Motyw Libre Claw`,saveTheme:`Zapisz motyw`},runs:{title:`Uruchomienia`,empty:`Nie ma jeszcze uruchomień Libre Claw.`},timeline:{title:`Oś czasu uruchomienia`,empty:`Wybierz przebieg, aby sprawdzić jego zdarzenia.`,streaming:`Transmisja strumieniowa...`,assistantResponse:`Odpowiedź asystenta`,resultOk:`ok`,resultError:`błąd`,labels:{userMessage:`Wiadomość użytkownika`,toolCall:`Wezwanie narzędzia`,toolResult:`Wynik narzędzia`,approvalRequest:`Prośba o zatwierdzenie`,approvalResponse:`Odpowiedź zatwierdzająca`,runStarted:`Uruchomienie rozpoczęte`,runFinished:`Uruchomienie zakończone`,usage:`Użycie`,error:`Błąd`}},approvals:{needed:`Wymagana zgoda`,allowOnce:`Pozwól raz`,alwaysAllowTool:`Zawsze zezwalaj na narzędzie`,deny:`Odmów`,toolApprovalRequested:`Zażądano zatwierdzenia narzędzia`},automations:{title:`Automatyka`,namePlaceholder:`Imię`,schedulePlaceholder:`daily 09:00`,promptPlaceholder:`Podpowiedź automatyzacji`,create:`Utwórz`,empty:`Brak zaplanowanych automatyzacji Libre Claw.`,runNow:`Uruchom teraz`,pause:`Pauza`,resume:`Wznów`,routes:{report:`Raport`,telegram:`Telegram`},status:{active:`Aktywny`,paused:`Wstrzymano`}},usageFallback:{title:`Użycie i powrót`,usage:`Użycie`,fallbackRoute:`Trasa awaryjna`,noUsage:`Nie ma jeszcze żadnych zapisów użytkowania.`},metrics:{provider:`Dostawca`,model:`Modelka`,input:`Wejście`,output:`Wyjście`,cached:`Buforowane`,reasoning:`Rozumowanie`,cost:`Koszt`,tool:`Narzędzie`,resolution:`Rozdzielczość`,state:`Status`,stopReason:`Powód zatrzymania`,tokens:`{{formatted}} żeton`,tokens_plural:`{{formatted}} tokeny`},fallbacks:{tool:`narzędzie`,unknown:`nieznany`,resolved:`rozwiązany`,unknownError:`Nieznany błąd`},toasts:{loadStatusFailed:`Nie można wczytać statusu Libre Claw`,enterTask:`Wprowadź zadanie dla Libre Claw`,runStarted:`Uruchomienie Libre Claw rozpoczęte`,startRunFailed:`Nie można rozpocząć uruchomienia Libre Claw`,runCancelled:`Uruchomienie anulowane`,cancelRunFailed:`Nie można anulować uruchomienia`,approved:`Zatwierdzone`,denied:`Odmówiono`,resolvePermissionFailed:`Nie można rozwiązać problemu dotyczącego uprawnień`,providerModelRequired:`Dostawca i model są wymagane`,modelUpdated:`Zaktualizowano model Libre Claw`,updateModelFailed:`Nie można zaktualizować modelu`,themeUpdated:`Zaktualizowano motyw Libre Claw`,updateThemeFailed:`Nie udało się zaktualizować motywu`,automationRequired:`Wymagana jest nazwa automatyzacji, harmonogram i monit`,automationCreated:`Stworzono automatyzację`,createAutomationFailed:`Nie można utworzyć automatyzacji`,automationUpdated:`Automatyka zaktualizowana`,updateAutomationFailed:`Nie można zaktualizować automatyzacji`}},work:{title:`Praca`,subtitle:`Izolowane obszary robocze modeli`,tasks:{title:`Zadania robocze`,subtitle:`Trwałe lokalne obszary robocze`,new:`Nowe zadanie`,emptyTitle:`Brak zadań roboczych`,empty:`Twoje zadania robocze pojawią się tutaj po wysłaniu pierwszej wiadomości.`,untitled:`Zadanie bez nazwy`,actions:`Działania zadania`,delete:`Usuń zadanie`,deleteNamed:`Usuń „{{title}}”`,deleteConfirm:`Trwale usunąć „{{title}}” wraz z jego obszarem roboczym?`,close:`Zamknij zadania robocze`,open:`Otwórz zadania robocze`,rename:`Tytuł zadania`,loading:`Wczytywanie zadania…`,notFound:`To zadanie robocze jest niedostępne`,back:`Rozpocznij nowe zadanie`,status:`Stan: {{status}}`},landing:{title:`Rozpocznij nowe zadanie robocze`,description:`Zapewnij modelowi lokalnemu lub modelowi skonfigurowanego dostawcy trwały, izolowany obszar roboczy. Model może przeglądać pliki, uruchamiać narzędzia i kontynuować pracę od miejsca, w którym ją przerwano.`,isolated:`Izolowany`,isolatedBody:`Każde zadanie otrzymuje własny kontener i pliki.`,durable:`Trwały`,durableBody:`Wróć później do rozmowy i obszaru roboczego.`,controlled:`Kontrolowany`,controlledBody:`Środowisko uruchomieniowe i pliki zadania pozostają odizolowane od hosta.`},composer:{placeholder:`Opisz, co chcesz utworzyć lub zmienić…`,model:`Model roboczy`,noModels:`Brak modeli zgodnych z trybem „Praca”`,cancel:`Zatrzymaj`,send:`Uruchom`,hint:`Każde zadanie zachowuje własne pliki i historię. Sprawdź wyniki modelu przed ich użyciem.`,remoteTitle:`Zdalny dostawca`,remoteHint:`Rozmowa i wyniki narzędzi są wysyłane do skonfigurowanej usługi. Jedno autonomiczne uruchomienie może wielokrotnie wywołać usługę dostawcy i spowodować opłaty. Pliki obszaru roboczego pozostają lokalne, chyba że narzędzie zwróci ich zawartość.`,remoteDismiss:`Ukryj`,remoteDismissLabel:`Ukryj informację o zdalnym dostawcy`,remoteDismissFailed:`Nie udało się zapisać ustawienia zdalnego dostawcy.`,noModelSelected:`Nie wybrano modelu zgodnego z trybem „Praca”.`},conversation:{ready:`Obszar roboczy jest gotowy`,empty:`Kontynuuj zadanie poniżej. Ta rozmowa i jej pliki pozostają przypisane do tego obszaru roboczego.`,loadOlder:`Wczytaj starsze wiadomości`},status:{preparing:`Przygotowywanie izolowanego obszaru roboczego…`,running:`Praca w lokalnym obszarze roboczym…`},statusLabels:{idle:`Bezczynny`,thinking:`Myśli`,complete:`Ukończono`,needsInput:`Wymaga danych`,error:`Błąd`},live:{connecting:`Łączenie z aktualizacjami na żywo…`,reconnecting:`Ponowne łączenie z aktualizacjami na żywo…`,unavailable:`Aktualizacje na żywo są niedostępne`,newActivity:`Nowa aktywność`,skillsLoaded:`Umiejętności obszaru roboczego · {{count}}`},runtime:{unavailable:`Środowisko uruchomieniowe niedostępne`,ready:`Środowisko uruchomieniowe gotowe`,readyOllama:`Docker gotowy`,readyPlugin:`Docker i wtyczka gotowe`,readyHybrid:`Docker i modele gotowe`,reason:`Wymagany jest Docker oraz dostępny dostawca modelu Ollama lub wtyczki.`},workspace:{label:`Widoki obszaru roboczego`,files:`Pliki`,activity:`Aktywność`,preview:`Podgląd`,resize:`Zmień rozmiar rozmowy i obszaru roboczego`,resizeHint:`Przeciągnij, aby zmienić rozmiar. Użyj klawiszy strzałek do precyzyjnej regulacji. Kliknij dwukrotnie lub naciśnij Enter, aby zresetować.`,splitSize:`Rozmowa {{conversation}}%, obszar roboczy {{workspace}}%`,terminal:`Terminal`,git:`Git`},files:{discard:`Odrzucić niezapisane zmiany w pliku?`,leaveWithDraft:`Opuścić ten plik? Niezapisana zmiana pozostanie w przeglądarce jako wersja robocza.`,up:`Folder nadrzędny`,back:`Wróć do plików`,empty:`W tym folderze nie ma jeszcze plików.`,select:`Wybierz plik, aby go przejrzeć i edytować.`,editorLabel:`Edytor pliku: {{path}}`,format:`Formatuj`,formatted:`Kod został sformatowany.`,formatFailed:`Nie udało się sformatować tego pliku.`,formatShortcut:`Formatuj (Shift+Alt+F)`,formatTooLarge:`Formatowanie jest ograniczone do plików poniżej 100 000 znaków i 4 000 wierszy.`,formatUnsupported:`Formatowanie nie jest dostępne dla tego typu pliku.`,saveShortcut:`Zapisz (⌘/Ctrl+S)`,highlightPaused:`Wyróżnianie na żywo jest wstrzymane dla dużych plików, aby edycja pozostała płynna.`,plainTextLarge:`Zwykły tekst · duży plik`,changes:`Zmiany`,changesSince:`Co się zmieniło od ostatniej tury`,diffLabel:`Zmiany od ostatniej tury: {{path}}`,diffFolded:`{{count}} niezmienionych wierszy`},activity:{empty:`Tutaj pojawią się polecenia, operacje na plikach i wyniki narzędzi.`,toolActivity:`Aktywność narzędzi`,details:`Szczegóły`,kinds:{message:`Wiadomość`,toolCall:`Wywołanie narzędzia`,toolResult:`Wynik narzędzia`,error:`Błąd`}},preview:{command:`Opcjonalne polecenie startowe`,start:`Uruchom podgląd`,stop:`Zatrzymaj podgląd`,open:`Otwórz`,starting:`Uruchamianie podglądu…`,frameTitle:`Podgląd obszaru roboczego`,failed:`Nie udało się uruchomić podglądu. Sprawdź Aktywność i spróbuj użyć innego polecenia.`,empty:`Uruchom aplikację w tym obszarze roboczym, aby ją tutaj wyświetlić.`},mobile:{surface:`Widok zadania`,conversation:`Rozmowa`,workspace:`Obszar roboczy`},toasts:{runFailed:`Nie udało się uruchomić zadania roboczego.`,updateFailed:`Nie udało się zaktualizować tego zadania.`,renameFailed:`Nie udało się zmienić nazwy tego zadania.`,cancelled:`Uruchomienie zadania zostało zatrzymane.`,cancelFailed:`Nie udało się zatrzymać uruchomienia zadania.`,deleteFailed:`Nie udało się usunąć tego zadania roboczego.`,saveFailed:`Nie udało się zapisać tego pliku.`,saved:`Plik zapisany.`,previewFailed:`Nie udało się uruchomić podglądu.`,previewStopFailed:`Nie udało się zatrzymać podglądu.`},terminal:{connecting:`Otwieranie powłoki w piaskownicy…`,closed:`Sesja terminala zakończona.`,failed:`Nie udało się uruchomić sesji terminala.`,reconnect:`Połącz ponownie`,unavailable:`Terminal interaktywny nie jest dostępny w tym wdrożeniu.`,blockedByRun:`Model używa tego kontenera. Terminal otworzy się po zakończeniu tury.`,taskRunning:`Trwa tura modelu`},policy:{label:`Polityka środowiska`,default:`Domyślna (limity globalne)`},git:{actionFailed:`Akcja Git nie powiodła się.`,blockedByPreview:`Zatrzymaj podgląd przed zmianą stanu Gita.`,blockedByRun:`Akcje zapisu Gita odblokują się po zakończeniu tury modelu.`,branchCreated:`Utworzono {{name}}.`,branchSwitched:`Przełączono na {{name}}.`,clean:`Drzewo robocze jest czyste.`,commit:`Zatwierdź przygotowane zmiany`,commitMessage:`Komunikat commita`,committed:`Commit utworzony.`,detached:`odłączony HEAD`,diff:`Podgląd diffa`,diffFailed:`Nie udało się wczytać tego diffa.`,history:`Historia lokalna`,initialize:`Zainicjuj Git`,initializeDescription:`Utwórz lokalne repozytorium dla statusu, diffów, gałęzi i commitów. Żadne zdalne poświadczenia nie są podłączane.`,initialized:`Repozytorium Git zainicjowane.`,loadFailed:`Nie udało się wczytać statusu Gita.`,localOnly:`Tylko lokalny Git. Push, pull i pull requesty wymagają osobnego zaufanego brokera poświadczeń.`,newBranch:`Nowa lokalna gałąź`,noCommits:`Brak commitów.`,noDiff:`Brak diffa tekstowego. Nieśledzone pliki pojawią się po przygotowaniu.`,notInitialized:`Git nie jest zainicjowany`,selectChange:`Wybierz zmieniony plik, aby obejrzeć jego diff.`,selectPath:`Wybierz {{path}}`,stageAll:`Przygotuj wszystko`,stageSelected:`Przygotuj {{count}}`,staged:`Zmiany przygotowane.`,switchBranch:`Przełącz lokalną gałąź`,changes:`Zmiany`,createBranch:`Utwórz`,filterFiles:`Filtruj zmienione pliki`,noFilterMatches:`Żadne zmienione pliki nie pasują do tego filtra.`,allChanges:`Wszystkie zmiany`,diffTruncated:`Ten diff został skrócony.`,binaryFile:`Plik binarny, brak diffu tekstowego.`},hostWorkspace:{hint:`Zostaw puste dla izolowanej przestrzeni, albo wskaż zadaniu folder na tej maszynie.`,label:`Folder przestrzeni roboczej (opcjonalnie)`,warning:`Zadanie może bezpośrednio czytać i zapisywać ten folder. Zostaw puste dla izolowanej przestrzeni.`}},personaBackground:{label:`Obraz tła`,uploadBackgroundImage:`Prześlij obraz tła`,dragAndDrop:`Przeciągnij i upuść obraz lub kliknij, aby przeglądać`,chooseImage:`Wybierz obraz`,uploading:`Przesyłanie...`,enterImageUrl:`Lub wprowadź URL obrazu`,supportedFormats:`Obsługuje: JPG, PNG, GIF, WebP (maks. 5MB). Szerokie obrazy poziome działają najlepiej.`,customBackground:`Niestandardowy obraz tła`,clickToChange:`Kliknij, aby zmienić lub usunąć`,removed:`Tło usunięte`,uploaded:`Tło przesłane pomyślnie`,invalidFile:`Wybierz prawidłowy plik obrazu`,fileTooLarge:`Rozmiar obrazu tła musi być mniejszy niż 5MB`,readFailed:`Nie udało się odczytać pliku obrazu`,uploadFailed:`Nie udało się przesłać obrazu tła`},modelSelector:{searchInstalled:`Szukaj zainstalowanych modeli...`,searchOllama:`Szukaj w bibliotece Ollama...`,searchHuggingFace:`Szukaj w HuggingFace...`,selectModel:`Wybierz model`,personas:`Persony`,ollamaModels:`Modele Ollama`,pluginModels:`Modele wtyczek`,actions:`Akcje`,installed:`Zainstalowany`,use:`Użyj`,pull:`Pobierz`,pullRestricted:`Instalacja modeli w tej instancji jest ograniczona do administratorów.`,adminOnlyPull:`Tylko administratorzy`,legacyProvider:`dostawca niezapisany`,providerNotRecorded:`Dostawca niezapisany`,providerUnavailable:`dostawca niedostępny`,reselectProvider:`wybierz ponownie dostawcę, aby przypiąć ten model`,unavailable:`niedostępne`,unavailableSelections:`Niedostępne wybory`,agentModels:`Agenci`},whatsNew:{title:`Co nowego`,releaseNotes:`Informacje o wydaniu`,cta:`OK, zaczynamy`,starAsk:`Podoba Ci się Libre WebUI? Zostaw gwiazdkę na GitHubie`},notes:{title:`Notatki`,new:`Nowa notatka`,untitled:`Bez tytułu`,empty:`Brak notatek`,selectOrCreate:`Wybierz notatkę lub utwórz nową`,contentPlaceholder:`Pisz w Markdownie…`,saved:`Zapisano`,saveFailed:`Nie udało się zapisać notatki`,createFailed:`Nie udało się utworzyć notatki`,deleteConfirm:`Usunąć tę notatkę?`,deleteFailed:`Nie udało się usunąć notatki`},calendar:{title:`Kalendarz`,today:`Dziś`,month:`Miesiąc`,week:`Tydzień`,previous:`Poprzedni`,next:`Następny`,newEvent:`Nowe wydarzenie`,editEvent:`Edytuj wydarzenie`,eventTitle:`Tytuł`,titlePlaceholder:`Tytuł wydarzenia`,date:`Data`,start:`Początek`,end:`Koniec`,allDay:`Cały dzień`,repeat:`Powtarzaj`,repeatNone:`Nie powtarza się`,repeatDaily:`Codziennie`,repeatWeekly:`Co tydzień`,repeatMonthly:`Co miesiąc`,repeatYearly:`Co rok`,notes:`Notatki`,more:`+{{n}} więcej`,loadFailed:`Nie udało się załadować kalendarza`,saveFailed:`Nie udało się zapisać wydarzenia`,deleteFailed:`Nie udało się usunąć wydarzenia`},automations:{title:`Automatyzacje`,tab:{automations:`Automatyzacje`,runs:`Uruchomienia`},newAutomation:`Nowa automatyzacja`,editAutomation:`Edytuj automatyzację`,empty:`Brak automatyzacji. Utwórz jedną, aby uruchamiać zadanie według harmonogramu.`,loadFailed:`Nie udało się załadować automatyzacji`,saveFailed:`Nie udało się zapisać automatyzacji`,actionFailed:`Akcja nie powiodła się`,runQueued:`Uruchomienie rozpoczęte`,status:{active:`Aktywna`,paused:`Wstrzymana`},nextRun:`Następne uruchomienie {{when}}`,actions:`Akcje`,pause:`Wstrzymaj`,resume:`Wznów`,runNow:`Uruchom teraz`,openChat:`Otwórz czat`,noRuns:`Brak uruchomień`,deletedAutomation:`Usunięta automatyzacja`,runHistory:`Historia uruchomień (ostatnie 30 dni)`,succeeded:`udanych`,failed:`nieudanych`,form:{name:`Nazwa`,namePlaceholder:`Moja automatyzacja`,triggers:`Wyzwalacze`,addTrigger:`Dodaj wyzwalacz`,instructions:`Instrukcje`,instructionsPlaceholder:`Co ma być uruchamiane według tego harmonogramu?`,model:`Model`,modelAuto:`Auto`,notification:`Powiadomienie`,notifyApp:`Aplikacja`,notifyOff:`Wyłączone`,frequency:`Częstotliwość`,time:`Godzina`,minute:`Minuta`,fromHour:`Od`,toHour:`Do`,weekday:`Dzień tygodnia`,dayOfMonth:`Dzień`,month:`Miesiąc`},kind:{once:`Raz`,hourly:`Co godzinę`,daily:`Codziennie`,weekly:`Co tydzień`,monthly:`Co miesiąc`,yearly:`Co rok`},trigger:{once:`Raz, {{when}}`,hourly:`Co godzinę o :{{minute}}`,daily:`Codziennie o {{time}}`,weekly:`Co tydzień w {{day}} o {{time}}`,monthly:`Co miesiąc {{day}}. dnia o {{time}}`,yearly:`Co rok {{date}} o {{time}}`},finishedNotification:`Ukończono {{n}} uruchomień automatyzacji`,templatesTitle:`Szablony`,templates:{morningBrief:{name:`Poranny przegląd`,description:`Zacznij dzień od nagłówków i priorytetów.`},newsDigest:{name:`Przegląd wiadomości o AI`,description:`Istotne wydania modeli, badania i finansowanie.`},weeklyReview:{name:`Przegląd tygodnia`,description:`Zamknij tydzień: sukcesy, zaległości, kolejne priorytety.`},monthlyReport:{name:`Raport miesięczny`,description:`Szkic raportu stanu pierwszego dnia każdego miesiąca.`}}},home:{active:`aktywny`,continue:`Kontynuuj`,start:`Start`,explore:`Odkrywaj`},palette:{empty:`Brak wyników.`,placeholder:`Szukaj czatów, Work, akcji…`,toggleTheme:`Przełącz motyw`,actions:`Akcje`,chats:`Czaty`,search:`Szukaj`,settings:`Ustawienia`,work:`Praca`},tabs:{actions:`Akcje karty`,close:`Zamknij kartę`,closeAll:`Zamknij wszystkie karty`,closeOthers:`Zamknij pozostałe karty`,closeRight:`Zamknij karty po prawej`,home:`Strona główna`,label:`Otwarte karty`,new:`Nowa karta`,newWork:`Nowy Work`,chat:`Czat`,newChat:`Nowy czat`,work:`Praca`}};export{e as default};
@@ -1,2 +0,0 @@
1
- var e={common:{loading:`Carregando...`,save:`Salvar`,saving:`Salvando...`,cancel:`Cancelar`,delete:`Excluir`,edit:`Editar`,close:`Fechar`,back:`Voltar`,next:`Próximo`,confirm:`Confirmar`,error:`Erro`,success:`Sucesso`,warning:`Aviso`,or:`ou`,optional:`opcional`,enabled:`Ativado`,disabled:`Desativado`,on:`Ligado`,off:`Desligado`,yes:`Sim`,no:`Não`,search:`Pesquisar`,noResults:`Nenhum resultado encontrado`,retry:`Tentar novamente`,refresh:`Atualizar`,download:`Baixar`,upload:`Enviar`,export:`Exportar`,import:`Importar`,reset:`Redefinir`,apply:`Aplicar`,clear:`Limpar`,all:`Todos`,none:`Nenhum`,default:`Padrão`,custom:`Personalizado`,remove:`Remover`,home:`Início`,more:`Mais`},brand:{name:`Libre WebUI`,shortName:`Libre`},auth:{login:{title:`Bem-vindo de volta`,subtitle:`Entre na sua conta para continuar`,username:`Usuário`,usernamePlaceholder:`Digite seu nome de usuário`,password:`Senha`,passwordPlaceholder:`Digite sua senha`,signIn:`Entrar`,signingIn:`Entrando...`,noAccount:`Não tem uma conta?`,signUpHere:`Cadastre-se aqui`,loginSuccess:`Login realizado com sucesso!`,loginFailed:`Falha no login`,checkCredentials:`Falha no login. Por favor, verifique suas credenciais.`,approvalPending:`A sua conta está a aguardar aprovação do administrador.`,enterBoth:`Por favor, digite o usuário e a senha`,githubSuccess:`Login com GitHub realizado com sucesso!`,githubFailed:`Falha na autenticação do GitHub`,githubVerifyFailed:`Falha ao verificar autenticação do GitHub`,verificationFailed:`A verificação de segurança falhou. Atualize a página e tente novamente.`},signup:{title:`Criar conta`,subtitle:`Cadastre-se para criar sua nova conta`,username:`Usuário`,usernamePlaceholder:`Escolha um nome de usuário`,email:`E-mail`,emailPlaceholder:`seu@email.com`,password:`Senha`,passwordPlaceholder:`Escolha uma senha`,confirmPassword:`Confirmar senha`,confirmPasswordPlaceholder:`Confirme sua senha`,createAccount:`Criar conta`,creatingAccount:`Criando conta...`,hasAccount:`Já tem uma conta?`,signInHere:`Entre aqui`,signupSuccess:`Conta criada com sucesso!`,approvalPending:`Registo recebido. Um administrador tem de aprovar a sua conta.`,awaitingApproval:`A aguardar aprovação`,awaitingApprovalDescription:`A sua conta foi criada, mas um administrador tem de a ativar antes de poder iniciar sessão.`,backToSignIn:`Voltar ao início de sessão`,signupFailed:`Falha no cadastro`,tryAgain:`Falha no cadastro. Por favor, tente novamente.`,usernameRequired:`Usuário e senha são obrigatórios`,passwordMismatch:`As senhas não coincidem`,passwordTooShort:`A senha deve ter pelo menos 6 caracteres`},logout:{button:`Sair`,success:`Desconectado com sucesso`},oauth:{continueWith:`Continuar com {{provider}}`,connectingTo:`Conectando ao {{provider}}...`,github:`GitHub`,huggingFace:`Hugging Face`},checkingAuth:`Verificando autenticação...`,welcome:`Bem-vindo`,noEmail:`Sem e-mail fornecido`,role:`Função`,id:`ID`,userId:`ID do usuário`,signInDescription:`Entre com sua conta GitHub para continuar`,signInWithGitHub:`Entrar com GitHub`,jwtActive:`Autenticação JWT ativa`,jwtDescription:`Autenticação baseada em JWT com GitHub OAuth`,github:`GitHub`,provider:`Provedor`,tagline:`A sua stack de IA deve responder a si.`,selfHosted:`Auto-hospedado · Apache 2.0`,highlights:{local:{title:`Local primeiro`,body:`As suas conversas e ficheiros permanecem na máquina onde executa isto.`},providers:{title:`Qualquer fornecedor`,body:`Modelos locais através do Ollama, além dos fornecedores remotos que escolher adicionar.`},work:{title:`Trabalho Isolado`,body:`Dê a um modelo um espaço de trabalho isolado com ficheiros, um terminal e uma pré-visualização.`}},oidc:{defaultProviderName:`Login único`}},setup:{welcome:{title:`Bem-vindo ao Libre WebUI`,subtitle:`Vamos começar`,description:`Configure sua instância do Libre WebUI em poucos passos`,createAdmin:`Criar conta de administrador`,features:{secure:{title:`Seguro e Privado`,description:`Suas conversas ficam no seu dispositivo`},fast:{title:`Rápido e Responsivo`,description:`Otimizado para velocidade e desempenho`},openSource:{title:`Código Aberto`,description:`Software livre e de código aberto`}}},admin:{title:`Criar conta de administrador`,subtitle:`Configuração do Administrador`,description:`Crie a primeira conta de administrador para sua instância do Libre WebUI`,usernamePlaceholder:`Digite o nome de usuário do admin`,passwordPlaceholder:`Digite a senha (mín. 6 caracteres)`,confirmPlaceholder:`Confirme sua senha`,creating:`Criando...`,createAdmin:`Criar Admin`,success:`Conta de administrador criada com sucesso!`,failed:`Falha ao criar conta de administrador`,approvalUnexpected:`O administrador inicial não pôde ser ativado. Por favor, tente novamente.`,fillAllFields:`Por favor, preencha todos os campos`,note:`Esta será a conta de administrador principal da sua instância do Libre WebUI`},encryptionKey:{title:`Salve sua chave de criptografia`,subtitle:`Importante: Salve esta chave`,description:`Esta chave de criptografia protege seus dados sensíveis. Guarde-a com segurança - você precisará dela caso precise restaurar seu banco de dados.`,warning:`Aviso`,warningText:`Se você perder esta chave e precisar restaurar seu banco de dados, seus dados criptografados (chaves de API, preferências) serão irrecuperáveis.`,label:`Sua chave de criptografia`,loading:`Carregando...`,copyToClipboard:`Copiar para a área de transferência`,copied:`Chave de criptografia copiada!`,copyFailed:`Falha ao copiar a chave`,envNote:`Esta chave também está salva no arquivo backend/.env como ENCRYPTION_KEY`,acknowledgment:`Salvei minha chave de criptografia em um local seguro e entendo que perdê-la pode resultar em perda de dados.`,confirmRequired:`Por favor, confirme que você salvou a chave de criptografia`,continue:`Continuar para o Libre WebUI`}},chat:{greeting:{morning:`Bom dia`,afternoon:`Boa tarde`,evening:`Boa tarde`,night:`Boa noite`},followUp:`Seguimento`,welcome:{helpToday:`Como posso ajudar você hoje?`,helpTonight:`Como posso ajudar você esta noite?`,variety:{create:{title:`O que vamos criar?`,subtitle:`Comece com um pensamento, um rascunho ou um problema insistente.`},explore:{title:`Por onde começamos?`,subtitle:`Traga aquela pergunta que não sai da sua cabeça.`},imagine:{title:`O que você está imaginando?`,subtitle:`Podemos dar forma a isso juntos.`},focus:{title:`O que merece sua atenção?`,subtitle:`Vamos deixar claro o próximo passo.`},untangle:{title:`Onde está o nó?`,subtitle:`Comece pela versão bagunçada.`},momentum:{title:`Quando você estiver pronto.`,subtitle:`Retome uma ideia, um plano ou algo que ficou pela metade.`},open:{title:`O que está passando pela sua cabeça?`,subtitle:`Uma pequena ideia ou um projeto ambicioso. Os dois funcionam.`},challenge:{title:`O que vamos resolver?`,subtitle:`Conte o que ainda não está funcionando.`},draft:{title:`Vamos começar por algum lugar.`,subtitle:`Não precisa estar perfeito.`},possibility:{title:`No que isso poderia se transformar?`,subtitle:`Mostre o material bruto.`},unexpected:{title:`Vamos criar algo inesperado.`,subtitle:`Dê uma restrição, um clima ou uma ideia ainda pela metade.`}}},input:{placeholder:`Envie uma mensagem`,messagePlaceholder:`Mensagem...`,attachImages:`Anexar imagens`,attachments:`Anexos e recursos avançados`,sendMessage:`Enviar mensagem`,stopGeneration:`Parar geração`,menu:{uploadImages:`Carregar imagens`,attachDocument:`Anexar documento`,attachWebpage:`Anexar página web`,structuredOutput:`Saída estruturada`,attach:`Anexar`,documentAttached:`Documento anexado`,webpageAttached:`Página web anexada`,attachFailed:`Não foi possível anexar`,attachKnowledge:`Anexar conhecimento`,noCollections:`Ainda não há coleções — crie uma em Definições → Documentos`},voiceInput:`Entrada de voz`,voiceStop:`Parar de ouvir`,transcriptionSource:`Fonte de reconhecimento de voz`,browserSpeech:`Serviço de voz do navegador`,providerTranscriptionDisclosure:`Gravar e enviar áudio para {{provider}} para transcrição`,webSearchOn:`Pesquisa na web ativa — respostas usam resultados ao vivo`,webSearchOff:`Pesquisar na web para esta mensagem`,thinkingOn:`Raciocínio ativado ({{level}})`,thinkingOff:`Raciocinar antes de responder`},session:{new:`Nova conversa`,work:`Trabalho`,chat:`Chat`,private:`Privado`,incognito:`Chat Incógnito`,privateMode:`Modo Privado`,privateDescription:`Esta conversa não será salva`,privateTooltip:`Iniciar uma conversa privada que não será salva`,deleteConfirm:`Tem certeza de que deseja excluir esta conversa?`,generatingTitle:`Gerando título`,noChats:`Nenhuma conversa ainda`,createFirst:`Crie sua primeira conversa acima`,chats:`Conversas`,renameChat:`Renomear conversa`,openNewTab:`Abrir em nova aba`,pinChat:`Fixar`,unpinChat:`Desafixar`,deleteChat:`Excluir conversa`,archiveChat:`Arquivar conversa`,groups:{pinned:`Fixados`,today:`Hoje`,yesterday:`Ontem`,previous7Days:`Últimos 7 dias`,previous30Days:`Últimos 30 dias`,older:`Mais antigas`},folder:{new:`Nova pasta`,namePlaceholder:`Nome da pasta`,move:`Mover para a pasta`,remove:`Remover da pasta`,delete:`Eliminar pasta`,deleteConfirm:`Eliminar esta pasta? As conversas mantêm-se.`}},persona:{applied:`Persona aplicada`,label:`Persona`,loadFailed:`Falha ao carregar os detalhes da persona`,removeFailed:`Falha ao remover a persona`},model:{updated:`Modelo atualizado`,noModels:`Nenhum modelo disponível`,noModelsDescription:`Nenhum modelo disponível. Certifique-se de que o Ollama está em execução e tem modelos instalados.`,pullCommand:`ollama pull llama3.2:3b`,noModelsTooltip:`Nenhum modelo disponível. Verifique se o Ollama está em execução e se os modelos estão instalados.`,selectBeforePrivateChat:`Selecione um modelo disponível antes de iniciar o chat privado`,selectBeforeSending:`Selecione um modelo disponível antes de enviar`},footer:{disclaimer:`IAs podem cometer erros - verifique informações importantes`,images:`{{count}} imagem`,images_plural:`{{count}} imagens`,structuredOutput:`Saída estruturada`},mediaUpload:{dropImagesHere:`Solte as imagens aqui ou`,supportedFormats:`Formatos suportados: JPG, PNG, GIF, WebP (máx. 10MB cada)`,browse:`procure`},structuredOutput:{title:`Formato de Resposta`,none:`Nenhum (Linguagem Natural)`,noneDescription:`Resposta padrão em linguagem natural`,json:`JSON`,jsonDescription:`Formato JSON estruturado`,list:`Lista`,listDescription:`Array de itens`,summary:`Resumo`,summaryDescription:`Resumo do documento com pontos-chave`,analysis:`Análise`,analysisDescription:`Análise estruturada com prós e contras`,custom:`Esquema Personalizado`,customDescription:`Defina seu próprio esquema JSON`,customSchema:`Esquema JSON personalizado`,schemaPreview:`Pré-visualização do Esquema`,applySchema:`Aplicar Esquema`,cancel:`Cancelar`,enabled:`Saída estruturada ativada`},controls:{title:`Controlos do chat`,systemPrompt:`Prompt de sistema`,systemPromptPlaceholder:`Instruções que se aplicam apenas a este chat…`,advancedParams:`Parâmetros avançados`,advancedParamsDescription:`Substituições para este chat. Campos vazios usam os valores globais.`,fromModel:`do modelo`,fromModelHint:`Este valor vem das configurações recomendadas pelo próprio modelo.`,contextCapped:`Contexto limitado a {{context}} dos {{trained}} para os quais o modelo foi treinado, para que ainda carregue.`,saved:`Controlos guardados`,saveFailed:`Não foi possível guardar os controlos`,params:{temperature:`Temperatura`,topP:`Top P`,topK:`Top K`,minP:`Min P`,maxTokens:`Tokens máx.`,repeatPenalty:`Penalização de repetição`,seed:`Semente`,contextLength:`Comprimento do contexto`},thinking:`Raciocínio`,thinkingDescription:`Quanto o modelo raciocina antes de responder. Modelos sem raciocínio ignoram isto.`,compaction:`Compactação de contexto`,compactionDescription:`Quando o servidor compacta conversas longas, este chat pode ficar de fora e manter todo o seu histórico.`,compactionDefault:`Padrão do servidor`,compactionOff:`Desativada neste chat`},message:{sources:`Fontes`},toasts:{chatCreated:`Novo chat criado`,createFailed:`Falha ao criar a sessão`,loadFailed:`Falha ao carregar as sessões`,chatDeleted:`Chat excluído`,deleteFailed:`Falha ao excluir o chat`,deleteSessionFailed:`Falha ao excluir a sessão`,historyCleared:`Todo o histórico de chat foi limpo`,historyClearFailed:`Falha ao limpar o histórico de chat`,titleUpdated:`Título do chat atualizado`,updateFailed:`Falha ao atualizar a sessão`,noValidSession:`Nenhuma sessão de chat válida. Crie ou selecione um chat.`,sessionNotFound:`Sessão não encontrada ou inválida. Selecione ou crie uma sessão de chat válida.`,noModelProvider:`Nenhum provedor de modelos disponível`,modelUnavailable:`O modelo selecionado "{{model}}" não está disponível em {{provider}}. Reative esse provedor ou selecione outro modelo.`,modelSwitched:`Alterado para {{model}} (o modelo anterior não está mais disponível)`,modelsLoadFailed:`Falha ao carregar os modelos`,modelUpdated:`Modelo atualizado para o chat atual`,modelUpdateFailed:`Falha ao atualizar o modelo da sessão`},documents:{title:`Documentos no contexto`},context:{title:`Janela de contexto:`,full:`{{percent}}% cheia`,tokensUsed:`{{used}} / {{budget}} tokens usados`,tokensUsedNoBudget:`{{used}} tokens usados`,capped:`limitada a partir de {{trained}}`}},sidebar:{navigation:{chat:`Chat`,models:`Modelos`,personas:`Personas`,imagine:`Imaginar`,agents:`Agentes`,work:`Trabalho`,settings:`Configurações`,usageAnalytics:`Uso de Fornecedores`,system:`Sistema`,userManagement:`Gerenciamento de Usuários`,signOut:`Sair`,exploreLabel:`Explorar`,notes:`Notas`,calendar:`Calendário`,automations:`Automações`},toggleSize:`Alternar tamanho da barra lateral`,expandSidebar:`Expandir barra lateral`},user:{menu:{changePicture:`Alterar foto`,settings:`Configurações`,usageAnalytics:`Uso de Fornecedores`,system:`Sistema`,userManagement:`Gerenciamento de Usuários`,logout:`Sair`,pinShortcut:`Fixar na barra lateral`,unpinShortcut:`Desafixar da barra lateral`},avatar:{title:`Alterar foto de perfil`,updated:`Foto de perfil atualizada`,updateFailed:`Falha ao atualizar foto de perfil`,saving:`Salvando...`,label:`Avatar`,uploadAvatarImage:`Carregar imagem de avatar`,dragAndDrop:`Arraste e solte uma imagem ou clique para procurar`,chooseImage:`Escolher imagem`,uploading:`Carregando...`,enterImageUrl:`Ou insira URL da imagem`,supportedFormats:`Suporta: JPG, PNG, GIF, WebP (máx. 2 MB). Imagens quadradas funcionam melhor.`,customAvatar:`Imagem de avatar personalizada`,clickToChange:`Clique para alterar ou remover`,removed:`Avatar removido`,uploaded:`Avatar carregado com sucesso`,invalidFile:`Por favor, selecione um arquivo de imagem válido`,fileTooLarge:`O tamanho da imagem do avatar deve ser menor que 2 MB`,readFailed:`Falha ao ler o arquivo de imagem`,uploadFailed:`Falha ao carregar imagem do avatar`},profile:{noEmail:`E-mail não informado`}},settings:JSON.parse(`{"title":"Configurações","tabs":{"appearance":"Aparência","model":"Modelo","systemMessage":"Mensagem do Sistema","plugins":"Plugins","search":"Pesquisa","generation":"Geração","documents":"Documentos","tts":"Voz","imageGen":"Imagens","data":"Dados","shortcuts":"Atalhos","about":"Sobre","sessions":"Sessões","apiKeys":"Chaves de API"},"appearance":{"title":"Aparência","language":{"title":"Idioma","description":"Selecione seu idioma preferido"},"theme":{"title":"Tema","light":"Claro","dark":"Escuro","amoled":"Preto Puro","system":"Sistema"},"accent":{"title":"Cor de destaque","custom":"Cor personalizada","useColor":"Usar {{color}} como destaque","behaviorTitle":"Paleta da interface","behaviorDescription":"Escolha se a cor de destaque fica limitada aos controlos ou adapta toda a interface clara ou escura.","defaultStyle":"Predefinida","defaultStyleDescription":"Manter as superfícies neutras dos temas claro e escuro.","adaptedStyle":"Adaptar ao destaque","adaptedStyleDescription":"Tingir superfícies, contornos e texto com a cor de destaque."},"chatInterface":{"title":"Interface do Chat","showUsername":"Mostrar nome de usuário","showUsernameDescription":"Exibir nome de usuário nas mensagens do chat","followUpSuggestions":"Sugestões de seguimento","followUpSuggestionsDescription":"Sugerir respostas rápidas após cada resposta","hapticFeedback":"Feedback háptico (Android)","hapticFeedbackDescription":"Usar vibrações sutis em ações móveis importantes"},"background":{"title":"Imagem de Fundo","enable":"Ativar imagem de fundo","enableDescription":"Mostrar fundo personalizado com efeito de desfoque","blur":"Desfoque","opacity":"Opacidade","upload":"Enviar imagem de fundo","dragDrop":"Arraste e solte uma imagem ou clique para procurar","chooseImage":"Escolher Imagem"}},"saveSettings":"Salvar Configurações","model":{"title":"Configurações do Modelo","defaultModel":"Modelo Padrão","defaultModelDescription":"Este modelo será usado por padrão para novas conversas","selectModel":"Selecione um modelo","specializedModels":"Modelos Especializados","visionModel":"Modelo de Visão","selectVisionModel":"Usar o modelo de chat atual","visionModelDescription":"Usado automaticamente sempre que o contexto de chat enviado contém imagens. Escolha um modelo que suporte entrada de imagens.","visionModelUpdateFailed":"Falha ao atualizar o modelo de visão: {{error}}","visionModelNoProvider":"Este modelo de visão não tem identidade de provedor. Selecione um modelo disponível.","persona":"Persona","updateAll":"Atualizar Todos os Modelos","updateAllDescription":"Verificar atualizações e baixar as versões mais recentes de todos os modelos instalados","updateAllButton":"Atualizar Todos","updating":"Atualizando modelos...","currentModelInfo":"Informações do Modelo Atual","name":"Nome","size":"Tamanho","family":"Família","format":"Formato","status":"Status","statusStarting":"Iniciando...","statusComplete":"Completo","statusError":"Erro","bulkOperations":"Operações em Lote","autoTitle":{"title":"Geração Automática de Títulos","enable":"Ativar Título Automático","enableDescription":"Gerar automaticamente títulos para novas conversas","taskModel":"Modelo de Tarefas","selectTaskModel":"Selecione o modelo de tarefas","taskModelDescription":"Modelo usado para gerar títulos das conversas"},"updatingModel":"Atualizando {{name}} ({{current}}/{{total}})","modelsProgress":"{{current}} de {{total}} modelos"},"systemMessage":{"title":"Mensagem do Sistema","description":"Defina uma mensagem de sistema personalizada que será usada para todas as novas conversas.","placeholder":"Digite uma mensagem de sistema...","saved":"Mensagem do sistema salva","saveFailed":"Falha ao salvar mensagem do sistema"},"plugins":{"title":"Plugins","description":"Gerencie seus plugins instalados","providerConnections":"Ligações de fornecedores","providerConnectionsDescription":"Ligue, configure e inspecione fornecedores de modelos através de plugins.","providers":"Fornecedores","searchProviders":"Pesquisar fornecedores","noProvidersFound":"Nenhum fornecedor corresponde à sua pesquisa.","selectProvider":"Selecione um fornecedor","selectProviderDescription":"Escolha um fornecedor para inspecionar a sua ligação e catálogo de modelos.","addNew":"Adicionar Novo Plugin","upload":"Enviar Plugin","addJson":"Adicionar JSON","uploading":"Enviando...","jsonPlaceholder":"Cole a configuração JSON do plugin...","install":"Instalar Plugin","noPlugins":"Nenhum plugin instalado","noPluginsDescription":"Adicione um plugin para estender a funcionalidade","loading":"Carregando plugins...","installed":"Plugins Instalados","active":"Plugins Ativos","activeLabel":"Ativo","inactive":"Inativo","activate":"Ativar","deactivate":"Desativar","models":"modelos","apiKeySet":"Chave de API Definida","apiKeyConfiguration":"Configuração da Chave de API","apiKeyDescription":"Guarde uma chave API pessoal para {{name}}.","apiKeyEnvAlternative":"Alternativamente, defina a","environmentVariable":"variável de ambiente","apiKeyConfigured":"Chave de API configurada","apiKeyPlaceholder":"Digite sua chave de API...","saveApiKey":"Salvar Chave de API","showApiKey":"Mostrar chave API","hideApiKey":"Ocultar chave API","configure":"Configurar","providerSettings":"Definições do fornecedor","status":"Estado","defaultEndpoint":"Endpoint predefinido","modelCatalog":"Catálogo de modelos","modelCatalogDescription":"Modelos descobertos e configurados para este fornecedor e as suas capacidades.","refreshModels":"Atualizar modelos","noModelsConfigured":"Nenhum modelo configurado para este provedor.","modelId":"ID do modelo","capabilities":"Capacidades","modelCatalogUpdated":"Catálogo de modelos atualizado: {{count}} modelos.","modelCatalogUnchanged":"O catálogo de modelos já está atualizado.","modelCatalogNeedsApiKey":"Adicione uma chave de API válida para este provedor carregar a lista de modelos em tempo real.","modelCatalogUnavailable":"Não foi possível carregar a lista de modelos do provedor.","modelCatalogRefreshFailed":"Falha ao atualizar o catálogo de modelos","capability":{"chat":"Chat","embedding":"Embedding","image":"Imagem","speech":"Fala","transcription":"Transcrição"},"exportPlugin":"Exportar plugin","deletePlugin":"Excluir plugin","apiKey":{"title":"Chave de API","placeholder":"Digite a chave de API","save":"Salvar Chave","remove":"Remover Chave","configured":"Chave de API Configurada","notConfigured":"Chave de API Necessária","saved":"Chave de API salva com sucesso","removed":"Chave de API removida","saveFailed":"Falha ao salvar chave de API","removeFailed":"Falha ao remover chave de API","enterKey":"Por favor, digite uma chave de API"},"variables":"Variables"},"generation":{"title":"Opções de Geração","description":"Configure como a IA gera as respostas","scopeLabel":"Aplica-se a","scopeAll":"Todos os modelos","scopeModel":"Apenas {{model}}","scopeAllHint":"Os valores que cada modelo usa, a menos que tenha os seus.","scopeModelHint":"Salvo apenas para este modelo e prevalece sobre os valores gerais.","advancedSettings":"Configurações avançadas de geração","advancedSettingsDescription":"Amostragem, limites de tokens, contexto, penalidades e sequências de parada","coreParameters":"Parâmetros Principais","temperature":"Temperatura","temperatureDescription":"Controla a aleatoriedade. Valores baixos são mais focados, valores altos mais criativos.","topP":"Top P","topPDescription":"Controla a diversidade via amostragem de núcleo. Valores baixos focam em tokens prováveis.","topK":"Top K","topKDescription":"Limita a seleção de tokens aos K mais prováveis. Defina 0 para desativar.","minP":"Min P","minPDescription":"Limite mínimo de probabilidade para seleção de tokens.","generationControl":"Controle de Geração","maxTokens":"Máximo de Tokens","maxTokensDescription":"Número máximo de tokens a gerar na resposta.","repeatPenalty":"Penalidade de Repetição","repeatPenaltyDescription":"Penaliza tokens repetidos. Valores mais altos reduzem repetições.","contextLength":"Tamanho do Contexto","contextLengthDescription":"Tamanho máximo da janela de contexto para conversas.","seed":"Semente","optional":"opcional","random":"Aleatório","seedDescription":"Defina uma semente específica para resultados reproduzíveis.","advancedOptions":"Opções Avançadas","presencePenalty":"Penalidade de Presença","presencePenaltyDescription":"Penaliza tokens que aparecem no contexto.","frequencyPenalty":"Penalidade de Frequência","frequencyPenaltyDescription":"Penaliza tokens usados frequentemente.","stopSequences":"Sequências de Parada","commaSeparated":"separadas por vírgula","stopSequencesDescription":"Tokens personalizados que interromperão a geração quando encontrados.","resetDefaults":"Restaurar Padrões","saveOptions":"Salvar Opções","embeddingSettings":"Configurações de Embedding","enableEmbeddings":"Ativar Embeddings de Documentos","thinking":"Raciocínio","thinkingDescription":"Esforço de raciocínio padrão das respostas. Cada conversa pode alterá-lo.","thinkingLevels":{"default":"Padrão do modelo","defaultWith":"Padrão do modelo ({{level}})","off":"Desativado","on":"Ativado","low":"Baixo","medium":"Médio","high":"Alto"}},"documents":{"title":"Configurações de Documentos","embeddings":{"title":"Embeddings","enable":"Ativar embeddings de documentos","model":"Modelo de Embedding","modelDescription":"Selecione o modelo usado para embedding de documentos","chunkSize":"Tamanho do Chunk","chunkSizeInTokens":"(em tokens)","chunkSizeDescription":"Tamanho dos pedaços de texto para embedding","chunkOverlap":"Sobreposição de Chunks","chunkOverlapInTokens":"(em tokens)","chunkOverlapDescription":"Sobreposição entre chunks consecutivos","similarityThreshold":"Limite de Similaridade","similarityDescription":"Pontuação mínima de similaridade para incluir resultados","status":"Status do Embedding","statusLabel":"Status","available":"Disponível","unavailable":"Indisponível","chunksWithEmbeddings":"Chunks com embeddings","coverage":"Cobertura","regenerate":"Regenerar Embeddings","regenerating":"Regenerando..."},"collections":{"title":"Coleções de conhecimento","description":"Agrupe documentos em coleções e anexe-as a qualquer chat.","namePlaceholder":"Nome da coleção","create":"Criar","none":"Sem coleção","deleteConfirm":"Eliminar esta coleção? Os documentos mantêm-se.","createFailed":"Não foi possível criar a coleção","deleteFailed":"Não foi possível eliminar a coleção","assignFailed":"Não foi possível mover o documento"},"library":{"title":"Documentos carregados","description":"Documentos disponíveis como contexto do chat. Um documento carregado num chat fica só nessa conversa; um documento sem chat nem coleção junta-se a todas as conversas.","empty":"Ainda não há documentos carregados.","chatScope":"Um chat","everyChatScope":"Todos os chats","deleteConfirm":"Eliminar \\"{{name}}\\"? Desaparecerá de todos os chats.","deleteFailed":"Não foi possível eliminar o documento"}},"tts":{"title":"Texto para Fala","description":"Configure as configurações de texto para fala para ler mensagens em voz alta","loadingProviders":"Carregando provedores de TTS...","noProviders":"Nenhum Provedor de TTS","noProvidersDescription":"Configure um plugin com suporte a TTS para ativar texto para fala","enable":"Ativar TTS","enableDescription":"Permitir texto para fala nas mensagens do assistente","autoPlay":"Reprodução Automática de Respostas","autoPlayDescription":"Ler automaticamente novas mensagens do assistente em voz alta","streamSentences":"Reprodução natural em lotes","streamSentencesDescription":"Gere antecipadamente vários lotes adaptados às frases e reproduza-os como uma única resposta contínua.","voiceConfiguration":"Configuração de Voz","model":"Modelo TTS","modelDescription":"Selecione o modelo para geração de texto para fala","voice":"Voz","selectVoice":"Selecione uma voz","voiceDescription":"Escolha a voz para texto para fala","providerDefaultVoice":"Este modelo utiliza a voz predefinida, a menos que forneça uma gravação de referência ao gerar a fala.","voiceCloningAvailable":"Clonagem de voz disponível","voiceCloningAvailableDescription":"Utilize Imaginar → Áudio para criar fala a partir de uma gravação de referência consentida e da respetiva transcrição exata. Pode guardar a referência como uma voz reutilizável.","savedVoiceOption":"{{name}} (voz guardada)","savedVoices":"Vozes guardadas","loadingSavedVoices":"A carregar vozes guardadas…","deleteSavedVoice":"Eliminar a voz guardada {{name}}","deleteSavedVoiceConfirm":"Eliminar a voz guardada «{{name}}»? A gravação de referência e a transcrição serão removidas.","savedVoiceDeleted":"Voz guardada eliminada","savedVoicePreferenceCleanupFailed":"A voz guardada foi eliminada, mas não foi possível repor as definições de Fala","savedVoiceDeleteFailed":"Não foi possível eliminar a voz guardada","speed":"Velocidade","speedSlow":"0.5x","speedNormal":"1.0x","speedFast":"2.0x","availableProviders":"Provedores Disponíveis","models":"modelos","test":"Testar","testing":"Testando...","stop":"Parar"},"imageGen":{"title":"Geração de Imagens","description":"Configure as configurações e provedores de geração de imagens","loadingProviders":"Carregando provedores de geração de imagens...","noProviders":"Nenhum Provedor de Geração de Imagens","noProvidersDescription":"Configure um plugin com suporte a geração de imagens","enable":"Ativar Geração de Imagens","enableDescription":"Permitir geração de imagens por IA nas conversas","configuration":"Configuração","model":"Modelo","modelDescription":"Selecione o modelo para geração de imagens","size":"Tamanho","sizeDescription":"Resolução das imagens geradas","quality":"Qualidade","qualityDescription":"Nível de qualidade das imagens geradas","style":"Estilo","styleDescription":"Predefinição de estilo para imagens geradas","availableProviders":"Provedores Disponíveis","models":"modelos"},"data":{"title":"Gerenciamento de Dados","export":"Exportar Dados","exportDescription":"Baixe um arquivo portátil com preferências, pastas de conversas, sessões e mensagens, notas, coleções de conhecimento e texto extraído de documentos.","archiveScopeV3":"Inclui preferências, conversas, pastas, notas, coleções de conhecimento e texto extraído de documentos. Exclui contas e segredos, vozes clonadas biometricamente, mídia gerada, personas e memória, além de dados ou volumes do Work.","exportAll":"Exportar Todos os Dados","import":"Importar Dados","importDescription":"Importe dados de uma exportação anterior.","importData":"Importar Dados","importing":"Importando...","clearSessions":"Limpar Sessões","clearSessionsDescription":"Exclua todas as sessões de chat. Esta ação não pode ser desfeita.","clearAll":"Limpar Tudo","clearing":"Limpando...","importOptions":"Opções de Importação","importOptionsDescription":"Escolha como lidar com dados existentes","validatingArchive":"Validando o arquivo e calculando alterações…","archiveValidationFailed":"Falha na validação do arquivo","preflightReport":"Prévia da importação","preflightIncoming":"{{folders}} pastas · {{sessions}} conversas · {{messages}} mensagens · {{notes}} notas · {{collections}} coleções · {{documents}} documentos · {{chunks}} trechos","preflightRemappedIds":"{{count}} IDs serão remapeados para proteger os dados de outra conta.","skipDuplicates":"Ignorar duplicados","overwrite":"Sobrescrever existentes","importResults":"Resultados da Importação","preferences":"Preferências","imported":"Importado","failed":"Falhou","sessions":"Sessões","sessionFolders":"Pastas de sessões","notes":"Notas","knowledgeCollections":"Coleções de conhecimento","importedLabel":"importado","overwrittenLabel":"sobrescrito","skipped":"ignorado","toCreate":"a criar","toOverwrite":"a sobrescrever","toSkip":"a ignorar","documents":"Documentos","warnings":"Avisos","refreshAfterImportFailed":"Os dados foram importados, mas algumas telas não puderam ser atualizadas. Recarregue o Libre WebUI para ver todas as alterações.","errors":"Erros","archivedChats":{"title":"Conversas arquivadas","empty":"Nenhuma conversa arquivada","unarchive":"Desarquivar"}},"about":{"title":"Sobre","versionLabel":"Versão","ollama":{"title":"Status do Ollama","version":"Versão","healthy":"Saudável","unhealthy":"Com problemas"},"stats":{"models":"Modelos","sessions":"Sessões"},"features":{"privacy":{"title":"Privacidade em Primeiro Lugar","description":"Seus dados ficam no seu dispositivo"},"openSource":{"title":"Código Aberto","description":"Software livre e de código aberto"},"localInference":{"title":"Inferência Local","description":"Execute modelos de IA localmente com o Ollama"}},"openSourceBy":"Código aberto por {{company}}","links":{"title":"Links","github":"GitHub","githubDescription":"Veja o código-fonte e contribua","website":"Site","websiteDescription":"Visite nosso site","documentation":"Documentação","reportIssue":"Relatar Problemas","reportIssueDescription":"Reportar bugs e solicitar recursos","documentationDescription":"Guias, tutoriais e referência da API","forgejo":"Espelho Forgejo","forgejoDescription":"Repositório Forgejo auto-hospedado","sponsor":"Patrocinar","sponsorDescription":"Ajude a financiar o projeto","star":"Estrela no GitHub","starDescription":"Uma estrela ajuda outros a descobrir o projeto"},"version":"Versão {{version}}","updates":{"checking":"Verificando atualizações…","upToDate":"Você está na versão mais recente","updateAvailable":"A versão {{version}} está disponível","ahead":"À frente da última versão lançada ({{version}})","checkFailed":"Não foi possível verificar atualizações","viewChangelog":"Ver registro de alterações"}},"groups":{"general":"Geral","chat":"Chat","media":"Voz e imagens","connections":"Conexões"},"search":{"title":"Pesquisa na web","description":"Pesquise na web por meio de uma instância SearXNG auto-hospedada. Quando ativada, o chat oferece um botão de pesquisa e tarefas do Work com acesso à rede podem pesquisar.","enableLabel":"Ativar pesquisa na web","enableDescription":"Oferecer pesquisa na web para chats e tarefas do Work. As pesquisas rodam no servidor contra a instância configurada.","urlLabel":"URL do SearXNG","urlDescription":"URL base da instância SearXNG acessível pelo servidor. A pilha de deploy privado incluída fornece http://searxng:8080.","maxResultsLabel":"Resultados por pesquisa","maxResultsDescription":"Quantos resultados alimentam uma resposta ou chamada de ferramenta, 1-100.","maxResultsInvalid":"Resultados por pesquisa devem estar entre 1 e 100.","safeSearchLabel":"Pesquisa segura","safeSearchDescription":"Pedir ao mecanismo para filtrar resultados explícitos.","test":"Testar conexão","testing":"Testando…","testOk":"A pesquisa funciona — {{results}} resultados retornados","testFailed":"Falha no teste de pesquisa","save":"Salvar","saved":"Configurações de pesquisa salvas","saveFailed":"Não foi possível salvar as configurações de pesquisa"},"compaction":{"title":"Compactação de contexto","description":"Quando uma conversa ultrapassa o limite de tokens, o servidor resume as mensagens mais antigas e mantém na íntegra apenas as mais recentes. Aplica-se a todos os usuários deste servidor.","thresholdLabel":"Limite de tokens","thresholdDescription":"Tokens de contexto estimados acima dos quais o histórico mais antigo é resumido, 500-1.000.000.","thresholdInvalid":"O limite de tokens deve estar entre 500 e 1.000.000.","keepRecentLabel":"Mensagens recentes mantidas","keepRecentDescription":"Quantas das mensagens mais recentes permanecem sempre na íntegra, 2-200.","keepRecentInvalid":"As mensagens recentes mantidas devem estar entre 2 e 200.","modelLabel":"Modelo de compactação","modelDescription":"O modelo que escreve os resumos. O modelo da própria sessão é usado quando nenhum é escolhido.","sessionModelOption":"Usar o modelo da sessão","promptLabel":"Prompt de resumo personalizado","promptPlaceholder":"Deixe vazio para usar o prompt integrado","promptDescription":"As variáveis de modelo {{previousSummaryVariable}} e {{messagesVariable}} são substituídas pelo resumo anterior e pelas mensagens sendo resumidas.","saved":"Configurações de compactação salvas","saveFailed":"Não foi possível salvar as configurações de compactação","loadFailed":"Não foi possível carregar as configurações de compactação"},"sessions":{"title":"Sessões","description":"Todos os lugares em que esta conta está conectada. Encerrar uma sessão tem efeito imediato; entrar novamente restaura o acesso.","signOutOthers":"Encerrar outras sessões","signingOutOthers":"Encerrando…","signOut":"Encerrar sessão","signingOut":"Encerrando…","revoked":"Sessão encerrada.","revokeFailed":"Não foi possível encerrar a sessão.","othersRevoked":"Outras sessões encerradas: {{count}}","loadFailed":"Não foi possível carregar as sessões.","empty":"Nenhuma sessão encontrada.","current":"Esta sessão","revokedBadge":"Encerrada","unknownDevice":"Dispositivo desconhecido","createdAt":"Conectado em","lastSeenAt":"Última atividade","expiresAt":"Expira"},"apiKeys":{"title":"Chaves de API","description":"Tokens com escopos para scripts e integrações. Cada chave só tem acesso aos escopos que você escolher.","newKeyTitle":"Sua nova chave de API","copy":"Copiar","copied":"Copiado para a área de transferência.","copyFailed":"Falha ao copiar.","showOnceWarning":"Copie agora, pois ela não será exibida novamente.","dismiss":"Concluído","createTitle":"Criar uma chave","nameLabel":"Nome","namePlaceholder":"ex.: pipeline de CI","nameRequired":"Dê um nome à chave.","expiryLabel":"Expira em dias (opcional)","expiryPlaceholder":"Nunca","expiryInvalid":"A validade deve ser um número inteiro de dias.","scopesLabel":"Escopos","scopesRequired":"Selecione pelo menos um escopo.","create":"Criar chave","creating":"Criando…","created":"Chave de API criada.","createFailed":"Não foi possível criar a chave de API.","revoke":"Revogar","revoking":"Revogando…","revoked":"Chave de API revogada.","revokeFailed":"Não foi possível revogar a chave de API.","revokedBadge":"Revogada","loadFailed":"Não foi possível carregar as chaves de API.","empty":"Nenhuma chave de API ainda.","createdAt":"Criada","lastUsedAt":"Último uso","expiresAt":"Expira","neverExpires":"Nunca"}}`),models:{title:`Modelos`,subtitle:`Baixe, gerencie e monitore seus modelos do Ollama`,installed:`Modelos Instalados`,available:`Modelos Disponíveis`,pull:`Baixar Modelo`,pulling:`Baixando...`,delete:`Excluir Modelo`,deleting:`Excluindo...`,size:`Tamanho`,modified:`Modificado`,family:`Família`,parameters:`Parâmetros`,quantization:`Quantização`,noModels:`Nenhum modelo instalado`,pullFirst:`Baixe um modelo para começar`,noModelsFound:`Nenhum modelo encontrado`},personas:{title:`Personas`,create:`Criar Persona`,edit:`Editar Persona`,delete:`Excluir Persona`,name:`Nome`,description:`Descrição`,systemPrompt:`Prompt do Sistema`,model:`Modelo`,avatar:`Avatar`,background:`Plano de Fundo`,noPersonas:`Nenhuma persona criada`,createFirst:`Crie sua primeira persona para personalizar sua experiência de chat`},gallery:{title:`Galeria`,subtitle:`Sua galeria de imagens geradas por IA`,imageCount:`{{count}} imagens`,generate:`Gerar Imagem`,generateDescription:`Crie imagens com IA`,generating:`Gerando...`,prompt:`Prompt`,promptPlaceholder:`Descreva a imagem que você deseja gerar...`,noImages:`Nenhuma imagem gerada ainda`,download:`Baixar`,delete:`Excluir`,regenerate:`Regenerar`,model:`Modelo`,size:`Tamanho`,quality:`Qualidade`,created:`Criado`},errors:{generic:`Ocorreu um erro`,network:`Erro de rede. Por favor, verifique sua conexão.`,unauthorized:`Você não está autorizado a realizar esta ação.`,notFound:`O recurso solicitado não foi encontrado.`,serverError:`Erro do servidor. Por favor, tente novamente mais tarde.`,validation:`Por favor, verifique sua entrada e tente novamente.`},keyboard:{title:`Atalhos de Teclado`,toggleSidebar:`Alternar barra lateral`,openSettings:`Abrir configurações`,toggleDarkMode:`Alternar modo escuro`,showShortcuts:`Mostrar atalhos de teclado`,closeModals:`Fechar modais`,groups:{navigation:`Navegação`,general:`Geral`,chat:`Chat`,workspace:`Espaço de trabalho`},actions:{sendMessage:`Enviar mensagem`,newLine:`Nova linha na mensagem`,saveEdit:`Salvar a mensagem editada`,cancelEdit:`Cancelar a edição`,saveFile:`Salvar arquivo`,formatCode:`Formatar código`},description:`Todos os atalhos de teclado disponíveis no Libre WebUI.`,newChat:`Novo chat`,newWork:`Nova sessão do Work`,openPalette:`Abrir a paleta de comandos`},modelManager:{title:`Modelos`,loading:`Carregando modelos...`,systemStatus:{online:`Ollama Online`,offline:`Ollama Offline`,models:`modelo`,models_plural:`modelos`,running:`em execução`,vram:`VRAM`},sections:{pull:`Baixar Novo Modelo`,library:`Explorar Biblioteca`,huggingface:`HuggingFace Hub`,running:`Modelos em Execução`,local:`Modelos Locais`,advanced:`Ações Avançadas`,catalog:`Catálogo de Modelos`},catalog:{searchPlaceholder:`Pesquisar modelos por nome ou provedor...`,noModels:`Nenhum modelo disponível ainda.`,empty:`Nenhum modelo corresponde à sua pesquisa.`,providerOllama:`Ollama`,hidden:`Oculto`,visibilityFailed:`Não foi possível atualizar a visibilidade do modelo.`,filterAll:`Todos os modelos`,filterLocal:`Local`,filterProviders:`Fornecedores`,filterHidden:`Ocultos`,enableAll:`Ativar os apresentados`,disableAll:`Desativar os apresentados`,rename:`Editar nome e imagem`,setPicture:`Definir imagem`,clearPicture:`Remover imagem`,pictureInvalid:`Escolha um ficheiro de imagem.`,pictureTooLarge:`As imagens têm de ter menos de 192 KB.`,saving:`A guardar…`,hide:`Ocultar dos utilizadores`,show:`Mostrar aos utilizadores`},pull:{placeholder:`Digite o nome do modelo (ex.: llama3.2:3b, deepseek-r1:14b)`,button:`Baixar`,cancel:`Cancelar`,popular:`Modelos populares:`,browseAll:`Explorar todos os modelos em ollama.com`,success:`Modelo {{name}} baixado com sucesso`,cancelled:`Download do modelo cancelado`,failed:`Falha ao baixar modelo`,enterName:`Por favor, digite o nome do modelo`,restricted:`A instalação de modelos está restrita a administradores nesta instância.`},progress:{starting:`Inicializando...`,pulling:`Baixando modelo...`,pullingLayer:`baixando`,verifying:`Verificando integridade...`,verifyingDigest:`verificando digest sha256`,writing:`Escrevendo manifesto...`,cleaning:`Limpando...`},library:{available:`disponível`,search:`Pesquisar modelos...`,noResults:`Nenhum modelo encontrado com seus critérios`,installed:`Instalado`,more:`+{{count}} mais`,refresh:`Atualizar Biblioteca`},huggingface:{browseAll:`Ver tudo no HuggingFace`,checkingGguf:`Verificando arquivos GGUF...`,noGgufAvailable:`Nenhum arquivo GGUF disponível para pull direto do Ollama`,ggufFilesCount:`Arquivos GGUF ({{count}}) - Pull direto para Ollama`,noModelsFound:`Nenhum modelo encontrado`,noResults:`Nenhum modelo encontrado. Tente ajustar sua pesquisa ou filtros.`,browseAllLink:`Ver tudo`,search:`Pesquisar modelos HuggingFace...`,by:`por`,gated:`Acesso restrito`,viewOnHF:`Ver no HuggingFace`,sortDownloads:`Downloads`,sortLikes:`Curtidas`,sortRecent:`Recente`,taskTextGeneration:`Geração de texto`,taskTextToSpeech:`Texto para fala`,taskTextToImage:`Texto para imagem`,taskSpeechRecognition:`Reconhecimento de voz`,tasks:{textGen:`Geração de texto`,tts:`Texto para fala`,image:`Texto para imagem`,stt:`Reconhecimento de voz`},sort:{downloads:`Mais baixados`,likes:`Mais curtidos`,recent:`Atualizados recentemente`}},local:{noModels:`Nenhum modelo instalado ainda`,pullToStart:`Baixe um modelo acima para começar`,installed:`instalado`,running:`Em execução`,info:`Info`,copy:`Copiar`,delete:`Excluir`,deleteConfirm:`Tem certeza de que deseja excluir o modelo "{{name}}"?`,deleteSuccess:`Modelo {{name}} excluído com sucesso`,deleteFailed:`Falha ao excluir modelo`},advanced:{createModel:`Criar Modelo`,fromModelfile:`A partir de Modelfile`,copyModel:`Copiar Modelo`,duplicateExisting:`Duplicar existente`,testEmbeddings:`Testar Embeddings`,generateVectors:`Gerar vetores`,healthCheck:`Verificação de Saúde`,testConnection:`Testar conexão`,healthy:`O Ollama está saudável!`},modals:{details:{title:`Detalhes do Modelo`,info:`Informações do Modelo`,family:`Família`,parameters:`Parâmetros`,quantization:`Quantização`,format:`Formato`,systemPrompt:`Prompt do Sistema`,template:`Template`,license:`Licença`,modelfile:`Modelfile`,noDetails:`Nenhum detalhe disponível`},copy:{title:`Copiar Modelo`,source:`Modelo de Origem`,selectModel:`Selecione um modelo...`,newName:`Nome do Novo Modelo`,placeholder:`ex.: meu-modelo-personalizado`,copying:`Copiando...`,button:`Copiar Modelo`,success:`Modelo copiado para {{name}}`,failed:`Falha ao copiar modelo`,enterBoth:`Por favor, digite os nomes de origem e destino`},create:{title:`Criar Modelo Personalizado`,name:`Nome do Modelo`,namePlaceholder:`ex.: meu-assistente`,modelfile:`Modelfile`,modelfilePlaceholder:`FROM llama3.2
2
- SYSTEM Você é um assistente útil.`,see:`Veja`,docs:`Documentação do Modelfile`,docsLink:`para referência de sintaxe`,creating:`Criando...`,button:`Criar Modelo`,success:`Modelo {{name}} criado com sucesso`,failed:`Falha ao criar modelo`,enterBoth:`Por favor, digite o nome do modelo e o conteúdo do Modelfile`},embeddings:{title:`Testar Embeddings`,model:`Modelo de Embedding`,selectModel:`Selecione um modelo...`,recommended:`Recomendados: nomic-embed-text, mxbai-embed-large`,input:`Texto de Entrada`,placeholder:`Digite o texto para gerar embeddings...`,generating:`Gerando...`,button:`Gerar Embeddings`,result:`Resultado ({{count}} dimensões)`,success:`Vetor de embedding de {{count}} dimensões gerado`,failed:`Falha ao gerar embeddings`,enterBoth:`Por favor, selecione um modelo e digite o texto`}}},personaManager:{title:`Personas`,subtitle:`Crie e gerencie personas de IA com personalidades, memórias e comportamentos personalizados`,loading:`Carregando personas...`,createButton:`Criar Persona`,importExport:`Importar/Exportar`,stats:{title:`Suas Personas`,count:`{{count}} persona criada`,count_plural:`{{count}} personas criadas`},empty:{title:`Nenhuma persona ainda`,description:`Crie sua primeira persona para começar com interações de IA personalizadas`,button:`Criar Sua Primeira Persona`},deleteConfirm:`Tem certeza de que deseja excluir "{{name}}"?`,deleteSuccess:`Persona "{{name}}" excluída com sucesso`,downloadSuccess:`Persona "{{name}}" baixada com sucesso`,failed:`Falha ao {{action}} persona`},personaForm:{title:{create:`Criar Nova Persona`,edit:`Editar Persona`},subtitle:{create:`Crie uma nova persona de IA com personalidade, sistemas de memória e capacidades de aprendizado adaptativo personalizados`,edit:`Personalize sua persona de IA com memória avançada, aprendizado adaptativo e parâmetros inteligentes`},loading:`Carregando formulário...`,saved:`Salvo`,tabs:{basic:`Básico`,parameters:`Parâmetros`,memory:`Memória e Aprendizado`,advanced:`Avançado`},basic:{name:`Nome`,namePlaceholder:`Digite o nome da persona`,model:`Modelo`,selectModel:`Selecione um modelo`,description:`Descrição`,descriptionPlaceholder:`Descreva sua persona...`,systemPrompt:`Prompt do Sistema`,systemPromptPlaceholder:`Digite o prompt do sistema que define o comportamento da sua persona...`,systemPromptHint:`O prompt do sistema define como sua persona se comportará e responderá.`},parameters:{temperature:`Temperatura`,temperatureHint:`Controla criatividade vs consistência`,topP:`Top-P`,topPHint:`Controla a diversidade das respostas`,topK:`Top-K`,topKHint:`Limita o vocabulário aos top-k tokens`,contextWindow:`Janela de Contexto`,contextWindowHint:`Comprimento máximo do histórico de conversas`,maxTokens:`Máximo de Tokens`,maxTokensHint:`Comprimento máximo da resposta`,repeatPenalty:`Penalidade de Repetição`,repeatPenaltyHint:`Reduz respostas repetitivas`},memory:{title:`Sistema de Memória`,subtitle:`A persona lembra conversas ao longo do tempo`,enableHint:`Ative o sistema de memória para permitir que sua persona lembre conversas e construa contexto ao longo do tempo.`,loading:`Carregando status da memória...`,noData:`Nenhum dado de memória ainda`,memories:`Memórias`,mbUsed:`MB Usado`,lastBackup:`Último Backup`,never:`Nunca`,maxMemories:`Máximo de Memórias`,maxMemoriesHint:`Quantas memórias esta persona pode armazenar`,retention:`Retenção de Memória`,retentionHint:`Dias para manter memórias antes da limpeza`,autoCleanup:`Limpar memórias antigas automaticamente`,wipeAll:`Apagar Todas as Memórias`,wipeCannot:`Esta ação não pode ser desfeita`,wipeButton:`Apagar`,wiping:`Apagando...`,wipeConfirm:`Tem certeza de que deseja apagar todas as memórias? Esta ação não pode ser desfeita.`,wipeSuccess:`{{count}} memórias apagadas`},learning:{title:`Aprendizado Adaptativo`,subtitle:`A persona evolui com base nas interações`,enableHint:`Ative o aprendizado adaptativo para permitir que sua persona evolua e personalize respostas com base em suas interações.`,speed:`Velocidade de Aprendizado`,slow:`Lento`,slowDesc:`Mudanças graduais`,balanced:`Equilibrado`,balancedDesc:`Ritmo moderado`,fast:`Rápido`,fastDesc:`Adaptação rápida`,autoAdapt:`Adaptar automaticamente às preferências do usuário`,whatLearns:`O que a persona aprende:`,conversationTone:`Tom da conversa`,responseStyle:`Estilo de resposta`,userPreferences:`Preferências do usuário`,topicInterests:`Interesses por tópicos`},advanced:{embeddingModel:`Modelo de Embedding`,embeddingHint:`Selecione o modelo usado para codificação de memória e busca semântica. Modelos de embedding são mostrados primeiro, seguidos por outros modelos disponíveis.`,noModels:`Nenhum modelo encontrado`,embeddingModels:`Modelos de Embedding`,otherModels:`Outros Modelos`,installHint:`Instale um modelo de embedding:`,recommended:`Recomendados: nomic-embed-text, mxbai-embed-large, bge-m3, snowflake-arctic-embed`,aboutTitle:`Sobre Configurações Avançadas`,aboutDescription:`O modelo de embedding é usado pelo sistema de memória para entender o significado semântico e encontrar memórias relevantes durante as conversas. Escolha um modelo que corresponda ao seu caso de uso e recursos disponíveis.`},actions:{cancel:`Cancelar`,save:`Salvar`,saving:`Salvando...`,saveClose:`Salvar e Fechar`,create:`Criar`},success:{created:`Persona criada`,updated:`Persona atualizada`},error:{saveFailed:`Falha ao salvar`}},personaCard:{enhanced:`Aprimorada`,systemPrompt:`Prompt do Sistema`,memories:`memórias`,use:`Usar`,editTooltip:`Editar persona`,downloadTooltip:`Baixar persona`,backup:`Backup`,exportDNA:`Exportar DNA`,wipeMemories:`Apagar Memórias`,wipeConfirm:`Tem certeza de que deseja apagar todas as memórias desta persona? Esta ação não pode ser desfeita.`,wipeSuccess:`{{count}} memórias apagadas`,backupSuccess:`Backup da persona baixado com sucesso`,dnaSuccess:`DNA da persona exportado com sucesso`,failed:`Falha ao {{action}}`},userManager:{title:`Gerenciamento de Usuários`,subtitle:`Gerencie contas de usuários e permissões`,pageDescription:`Gerencie contas de usuário, permissões e controles de acesso para sua instância Libre WebUI.`,loading:`Carregando usuários...`,createUser:`Criar Usuário`,search:`Pesquisar usuários...`,noUsers:`Nenhum usuário encontrado`,noUsersMatching:`Nenhum usuário corresponde à sua pesquisa`,columns:{user:`Usuário`,email:`E-mail`,role:`Função`,created:`Criado`,actions:`Ações`},roles:{admin:`Admin`,user:`Usuário`},noEmail:`Sem e-mail`,deleteConfirm:`Tem certeza de que deseja excluir o usuário "{{name}}"?`,deleteSuccess:`Usuário excluído com sucesso`,deleteFailed:`Falha ao excluir usuário`,cannotDeleteSelf:`Você não pode excluir sua própria conta`,approval:{title:`Aprovações pendentes`,description:`Revise novos registros antes de permiti-los nesta instância.`,registered:`Registrado`,activate:`Ativar conta`,reject:`Rejeitar registro`,approved:`{{name}} já pode entrar.`,failed:`A conta não pôde ser aprovada.`,notification:`{{count}} registro(s) aguardando sua aprovação.`,notificationBadge:`{{count}} aprovações de usuário pendentes`},form:{title:{create:`Criar Usuário`,edit:`Editar Usuário`},username:`Usuário`,usernamePlaceholder:`Digite o nome de usuário`,email:`E-mail`,emailPlaceholder:`Digite o e-mail (opcional)`,password:`Senha`,passwordPlaceholder:`Digite a senha`,passwordHint:`Deixe em branco para manter a senha atual`,role:`Função`,creating:`Criando...`,updating:`Atualizando...`,createButton:`Criar Usuário`,updateButton:`Atualizar Usuário`,createSuccess:`Usuário criado com sucesso`,updateSuccess:`Usuário atualizado com sucesso`,createFailed:`Falha ao criar usuário`,updateFailed:`Falha ao atualizar usuário`},workAccess:{title:`Acesso ao Work`,description:`Permitir que todos os usuários ativos criem e executem tarefas do Work em sandboxes isoladas. Administradores sempre têm acesso; espaços de trabalho em pastas do host continuam restritos a administradores.`,saved:`Acesso ao Work atualizado`,saveFailed:`Não foi possível atualizar o acesso ao Work`},workPolicies:{title:`Políticas do Work`,description:`Predefinições de execução nomeadas (imagem, limites, parada por inatividade) sob as quais criar tarefas. Campos vazios herdam os padrões globais.`,add:`Adicionar política`,name:`Nome`,image:`Imagem`,memory:`Memória`,cpu:`CPUs`,pids:`Limite de PID`,workspaceSize:`Tamanho do espaço de trabalho`,idleMinutes:`Parada por inatividade (minutos)`,networkDefault:`Rede padrão`,networkInherit:`Herdar padrão`,networkOn:`Ativada`,networkOff:`Desativada`,save:`Salvar`,cancel:`Cancelar`,edit:`Editar política`,delete:`Excluir política`,deleteConfirm:`Excluir esta política? As tarefas que a usam voltam aos padrões globais.`,empty:`Nenhuma política ainda. As tarefas usam os padrões de execução globais.`,saved:`Política do Work salva`,deleted:`Política do Work excluída`,failed:`Não foi possível salvar a política do Work`,invalidNumber:`O limite de PID e a parada por inatividade devem ser números.`},modelAccess:{title:`Download de modelos`,description:`Permitir que todos os usuários ativos baixem modelos do Ollama e do navegador Hugging Face. Administradores sempre podem baixar modelos.`,saved:`Acesso ao download de modelos atualizado`,saveFailed:`Não foi possível atualizar o acesso ao download de modelos`},webSearchAccess:{title:`Pesquisa na web`,description:`Permitir que todos os usuários ativos usem a pesquisa na web em chats e tarefas do Work. Administradores sempre podem usá-la. O mecanismo é configurado em Configurações > Pesquisa.`,saved:`Acesso à pesquisa na web atualizado`,saveFailed:`Não foi possível atualizar o acesso à pesquisa na web`},agentAccess:{title:`Agentes`,description:`Oferecer a seção Agentes (Libre Claw) aos administradores. As CLIs de agentes são executadas no host como o usuário do servidor, fora do sandbox do Work.`,saved:`Acesso a agentes atualizado`,saveFailed:`Não foi possível atualizar o acesso a agentes`,lockedByEnv:`Fixado pela variável de ambiente AGENT_CLI_MODELS_ENABLED.`},groups:{title:`Grupos`,description:`Agrupe contas para gerenciar o acesso compartilhado e inspecione o que qualquer conta pode efetivamente fazer.`,newGroup:`Novo grupo`,nameLabel:`Nome`,nameRequired:`Dê um nome ao grupo.`,descriptionLabel:`Descrição (opcional)`,create:`Criar grupo`,creating:`Criando…`,created:`Grupo criado.`,createFailed:`Não foi possível criar o grupo.`,deleted:`Grupo excluído.`,deleteFailed:`Não foi possível excluir o grupo.`,deleteGroup:`Excluir grupo`,loadFailed:`Não foi possível carregar os grupos.`,empty:`Nenhum grupo ainda.`,memberCount:`Membros: {{count}}`,noMembers:`Nenhum membro ainda.`,addedAt:`Adicionado`,addMember:`Adicionar membro`,add:`Adicionar`,selectUser:`Selecione um usuário…`,memberAdded:`Membro adicionado.`,memberAddFailed:`Não foi possível adicionar o membro.`,removeMember:`Remover membro`,memberRemoved:`Membro removido.`,memberRemoveFailed:`Não foi possível remover o membro.`,effectiveTitle:`Acesso efetivo`,effectiveDescription:`Escolha uma conta para ver o acesso final que ela tem entre função, grupos e concessões.`,accessLookupFailed:`Não foi possível carregar o acesso efetivo.`,roleLabel:`Função`,statusLabel:`Status`,memberOf:`Grupos`,featuresLabel:`Acesso a recursos`,grantsLabel:`Concessões`,grantVia:`via`},audit:{title:`Registro de auditoria de segurança`,description:`Logins recentes, verificações de permissão e alterações administrativas nesta instância.`,actionFilter:`Ação`,actionPlaceholder:`ex.: auth.login`,resultFilter:`Resultado`,resultSuccess:`Sucesso`,resultDenied:`Negado`,resultFailure:`Falha`,limitFilter:`Limite`,loadFailed:`Não foi possível carregar o registro de auditoria.`,empty:`Nenhum evento de auditoria registrado ainda.`,actor:`Autor`,target:`Alvo`}},usageAnalytics:{eyebrow:`Administração`,title:`Uso do provedor`,description:`Acompanhe as chamadas de API de saída e o consumo de modelos nos plugins habilitados nesta instância.`,days:`{{count}} dias`,refresh:`Atualizar uso`,loadFailed:`O uso do provedor não pôde ser carregado.`,metrics:{calls:`Chamadas`,tokens:`Tokens`},cards:{calls:`Chamadas de API`,callsDetail:`Entre {{count}} usuário(s) ativo(s)`,tokens:`Tokens relatados`,tokensDetail:`Uso relatado em {{count}} chamada(s)`,success:`Taxa de sucesso`,successDetail:`{{count}} chamada(s) com falha`,latency:`Latência média`,latencyDetail:`Tempo total do provedor`},activity:{title:`Consumo ao longo do tempo`,callsDescription:`Solicitações diárias de saída para plugins ativados`,tokensDescription:`Totais diários de tokens reportados pelos provedores`,chartLabel:`Gráfico diário de {{metric}} do provedor`},models:{title:`Consumo por modelo`,description:`Os modelos com maior tráfego neste período.`,model:`Modelo`,success:`Sucesso`,latency:`Latência`},providers:{title:`Tráfego de plugins ativados`},capabilities:{title:`Mix de capacidades`,characters:`{{count}} caracteres`,bytes:`{{count}} bytes`,images:`{{count}} imagens`,jobs:`{{count}} trabalhos de vídeo`,inputs:`{{count}} entradas`,reportedTokens:`{{count}} tokens reportados`},empty:{title:`Nenhuma chamada de provedor ainda`,description:`As chamadas aparecerão aqui após um plugin ativado processar solicitações de chat, trabalho, incorporação, imagem, fala, som ou vídeo.`},privacyNote:`O uso é medido no servidor no limite do plugin de saída. O Libre WebUI armazena provedor, modelo, tempo, status e contadores reportados — nunca prompts, respostas, endpoints, credenciais ou corpos de erro do provedor. Os totais de tokens incluem apenas chamadas em que o provedor retornou metadados de uso.`,heatmap:{title:`Um ano de atividade`,description:`Chamadas diárias a provedores no último ano, coloridas pelo modelo mais usado de cada dia.`,calls:`chamadas`,noCalls:`Sem chamadas`,other:`Outros modelos`,less:`Menos`,more:`Mais`,yearTotal:`{{formatted}} chamadas no último ano`}},systemPage:{eyebrow:`Administração`,title:`Sistema`,description:`Monitore a máquina e o tempo de execução que hospedam esta instância do Libre WebUI.`,updated:`Atualizado em {{date}}`,refresh:`Atualizar informações do sistema`,loadFailed:`Não foi possível carregar as informações do sistema.`,cards:{uptime:`Tempo de atividade do host`,uptimeDetail:`Em execução desde {{date}}`,memory:`Memória usada`,memoryDetail:`{{used}} de {{total}}`,freeSpace:`Espaço livre`,freeSpaceDetail:`{{label}} · {{total}} total`,containers:`Contêineres em execução`,containersDetail:`{{total}} contêiner(es) conhecidos pelo Docker`,dockerUnavailable:`Docker indisponível`,unavailable:`Indisponível`},host:{title:`Host e tempo de execução`,description:`Detalhes do sistema operacional, processador e processo do Libre WebUI.`,container:`Tempo de execução do contêiner`,native:`Runtime nativo`,hostname:`Nome do host`,operatingSystem:`Sistema operacional`,processor:`Processador`,logicalCpus:`CPUs lógicos`,loadAverage:`Carga média · 1 / 5 / 15 min`,libreVersion:`Libre WebUI`,nodeVersion:`Node.js`,process:`Processo`,workingDirectory:`Diretório de trabalho`},memory:{title:`Memória`,description:`Memória do sistema visível ao runtime e uso do processo da aplicação.`,usedOf:`{{used}} usados de {{total}}`,free:`{{value}} livres`,processRss:`RSS do processo`,heapUsed:`Heap V8 usado`,heapTotal:`Heap V8 total`,external:`Memória externa`},storage:{title:`Armazenamento`,description:`Espaço disponível para o sistema de arquivos do runtime e dados persistentes da aplicação.`,used:`{{value}} usados`,free:`{{value}} livres`,empty:`As informações do sistema de arquivos estão indisponíveis neste runtime.`},docker:{title:`Docker`,description:`Status somente leitura do Docker Engine e uma lista reduzida de contêineres.`,connected:`Conectado`,unavailable:`Indisponível`,unavailableDetail:`Os diagnósticos do Docker Engine estão indisponíveis.`,socketStatus:`Socket local: {{status}}`,mounted:`montado`,notMounted:`não montado`,running:`Em execução`,stopped:`Parado`,paused:`Pausado`,total:`Total`,version:`Versão`,host:`Host`,architecture:`Arquitetura`,cpus:`CPUs`,memory:`Memória`,container:`Container`,image:`Imagem`,state:`Estado`,created:`Criado`,empty:`Docker está conectado e nenhum container está listado no momento.`},network:{title:`Rede`,description:`Interfaces, endereços e contadores de tráfego Linux visíveis em tempo de execução.`,internal:`interno`,empty:`Nenhuma interface de rede está visível ao runtime da aplicação.`},securityNote:`Esta página é restrita a administradores. O servidor retorna apenas resumos operacionais: não expõe variáveis de ambiente, credenciais, rótulos do Docker, montagens, comandos de container ou payloads de inspeção. Quando o Libre WebUI é executado em um container, os detalhes de CPU e memória em nível de host vêm do Docker Engine quando seu socket local está disponível; outros valores descrevem o runtime da aplicação.`,work:{title:`Work`,description:`Sandboxes de todos os usuários`,access:`Acesso`,accessAdmins:`Somente administradores`,accessAllUsers:`Todos os usuários`,runtimeAvailable:`Disponível`,runtimeUnavailable:`Indisponível`,activeRuntimes:`Runtimes ativos`,pendingCleanups:`Limpezas pendentes`,orphans:`Contêineres órfãos`,owner:`Proprietário`,task:`Tarefa`,state:`Estado`,preview:`Pré-visualização`,terminals:`Terminais`,updated:`Atualizado`,stateRunning:`Em execução`,stateStopped:`Parado`,stateStarting:`Iniciando`,stateUnknown:`Desconhecido`,noTasks:`Ainda não há tarefas do Work.`}},chatHistory:{label:`Histórico da conversa`,jumpToTurn:`Ir para a interação {{index}} de {{total}}`},chatMessage:{you:`Você`,assistant:`Assistente`,system:`Sistema`,conversationSummary:`Resumo da conversa`,restoreCompacted:`Restaurar as mensagens resumidas`,restoreFailed:`Não foi possível restaurar as mensagens resumidas`,copy:`Copiar`,copyMessage:`Copiar mensagem`,copied:`Copiado!`,regenerate:`Regenerar`,regenerateResponse:`Regenerar resposta`,edit:`Editar`,editSystemMessage:`Editar mensagem do sistema`,saveChanges:`Salvar alterações`,cancelEditing:`Cancelar edição`,saveAndSubmit:`Guardar e enviar`,goodResponse:`Boa resposta`,badResponse:`Má resposta`,delete:`Excluir`,deleteConfirm:`Excluir esta mensagem?`,branch:`Ramificar`,speaking:`Falando...`,speakMessage:`Falar mensagem`,stopSpeaking:`Parar de falar`,showMore:`Mostrar mais`,showLess:`Mostrar menos`,thinking:`Pensando`,thoughtFor:`Pensou durante {{duration}}`,hiddenLines:`{{count}} linhas ocultas`,systemMessagePlaceholder:`Digite sua mensagem do sistema...`,fullSizeImage:`Imagem em tamanho real`,startConversation:`Inicie uma conversa`,startConversationDescription:`Envie uma mensagem para começar a conversar com seu assistente de IA. Faça perguntas, obtenha ajuda com código ou tenha uma conversa natural.`,scrollToBottom:`Rolar para o final`,newMessages:`Novas mensagens`},imageGallery:{title:`Galeria de Imagens`,noImages:`Nenhuma imagem ainda`,noImagesHint:`Gere sua primeira imagem usando o painel à direita`,delete:`Excluir`,download:`Baixar`,deleteConfirm:`Tem certeza de que deseja excluir esta imagem?`,deleteSuccess:`Imagem excluída`,deleteFailed:`Falha ao excluir imagem`,downloadFailed:`Falha ao baixar imagem`,loadMore:`Carregar Mais ({{current}} de {{total}})`,loadFailed:`Falha ao carregar galeria`},imageGeneration:{title:`Gerar Imagem`,prompt:`Prompt`,promptPlaceholder:`Descreva a imagem que você deseja criar...`,model:`Modelo`,selectModel:`Selecionar modelo`,noModels:`Nenhum modelo de geração de imagens disponível`,configurePlugin:`Configure um plugin com suporte a geração de imagens`,size:`Tamanho`,quality:`Qualidade`,style:`Estilo`,generate:`Gerar`,generating:`Gerando...`,success:`Imagem gerada com sucesso`,failed:`Falha ao gerar imagem`,enterPrompt:`Por favor, digite um prompt`,promptTooLong:`O prompt excede o comprimento máximo de {{max}} caracteres`},mediaGeneration:{title:`Gerar mídia`,description:`Crie vídeo, som, música ou fala com um provedor de mídia ativado.`,image:`Imagem`,video:`Vídeo`,audio:`Áudio`,sound:`Som`,speech:`Fala`,model:`Modelo`,voice:`Voz ou ID da voz`,cloneVoice:`Clonar uma voz de referência`,cloneVoiceDescription:`Gere esta fala com base numa gravação de referência em vez de uma voz predefinida.`,referenceAudio:`Áudio de referência`,referenceTranscript:`Transcrição exata da referência`,referenceTranscriptPlaceholder:`Introduza exatamente o que é dito na gravação de referência…`,referenceAudioTooLarge:`O áudio de referência deve ter {{max}} ou menos.`,cloneConsent:`Clone uma voz apenas quando tiver a autorização da pessoa que fala. A gravação é enviada ao fornecedor selecionado para esta geração e não é guardada pelo Libre WebUI.`,saveVoiceProfile:`Guardar como voz reutilizável`,saveVoiceProfileDescription:`Guarde esta gravação de referência e a transcrição em segurança. O Libre WebUI envia-as ao fornecedor selecionado para cada lote de Fala que usa esta voz.`,voiceProfileName:`Nome da voz guardada`,voiceProfileNamePlaceholder:`Por exemplo, A minha voz`,voiceStorageConsent:`Confirmo que tenho autorização da pessoa que fala para clonar e guardar esta voz. A referência permanecerá guardada até eu a eliminar.`,resolution:`Resolução`,aspectRatio:`Proporção`,duration:`Duração`,providerDefault:`Padrão do provedor`,generateAudio:`Gerar áudio com o vídeo quando suportado`,prompt:`Prompt`,text:`Texto para falar`,videoPlaceholder:`Descreva a cena, movimento, câmera e iluminação...`,audioPlaceholder:`Digite o texto que você quer que a voz fale...`,soundPlaceholder:`Descreva o som, música, atmosfera ou resposta falada que você deseja...`,generate:`Gerar`,generating:`Gerando… isso pode levar vários minutos`,success:`Mídia gerada e salva no Imagine`,successWithSavedVoice:`Conteúdo multimédia gerado e «{{name}}» está agora disponível nas definições de Fala`,failed:`Falha ao gerar mídia`,loadFailed:`Falha ao carregar provedores de mídia`,noModels:`Nenhum modelo {{kind}} está disponível. Ative um provedor compatível e salve sua credencial primeiro.`},mediaGallery:{itemCount:`{{count}} itens`,empty:`Nenhuma mídia gerada ainda`,emptyHint:`Gere uma imagem, vídeo ou clipe de voz e ele aparecerá aqui.`,filters:{all:`Todos`,image:`Imagens`,video:`Vídeos`,audio:`Áudio`}},errorBoundary:{title:`Algo deu errado`,description:`Encontramos um erro inesperado. Por favor, tente atualizar a página.`,tryAgain:`Atualizar Página`,goHome:`Ir para Início`,errorDetails:`Detalhes do Erro (Desenvolvimento)`},documents:{title:`Documentos`,upload:`Enviar Documento`,uploading:`Enviando...`,noDocuments:`Nenhum documento enviado`,uploadHint:`Envie documentos para usar em suas conversas`,delete:`Excluir`,deleteConfirm:`Tem certeza de que deseja excluir este documento?`,deleteSuccess:`Documento excluído`,deleteFailed:`Falha ao excluir documento`,uploadSuccess:`Documento enviado com sucesso`,uploadFailed:`Falha ao enviar documento`,types:`Suportados: PDF, TXT, MD, DOCX`,unsupportedFileType:`Apenas arquivos PDF e TXT são suportados`,fileSizeTooLarge:`O tamanho do arquivo deve ser menor que 10MB`,uploadSuccessWithName:`Documento "{{name}}" enviado com sucesso`,removeSuccess:`Documento removido com sucesso`,removeFailed:`Falha ao remover documento`,removeError:`Ocorreu um erro ao remover o documento`,clickToUpload:`Clique para enviar`,orDragAndDrop:`ou arraste e solte`,fileTypesAndSize:`Arquivos PDF ou TXT até 10MB`,uploadedDocuments:`Documentos Enviados`,removeDocument:`Remover documento`},ttsButton:{speak:`Falar`,stop:`Parar`,speaking:`Falando...`,generateFailed:`Falha ao gerar fala`,playbackFailed:`Falha na reprodução do áudio`,stopSpeaking:`Parar de falar`,preparingSpeech:`Preparando fala...`,generatingSpeech:`Gerando fala...`,bufferingSpeech:`Carregando fala...`,enableAudio:`Ativar áudio e ler em voz alta`,enableAudioShort:`Ativar áudio`,readAloud:`Ler em voz alta`},artifacts:{title:`Artefatos`,code:`Código`,preview:`Pré-visualização`,copy:`Copiar código`,copied:`Copiado!`,download:`Baixar`,expand:`Expandir`,collapse:`Recolher`,openInNewTab:`Abrir em nova aba`,invalidSvg:`Conteúdo SVG inválido`,invalidJson:`Conteúdo JSON inválido`,previewMode:`Modo de pré-visualização`,codeMode:`Modo de código`,copyContent:`Copiar conteúdo`,openInPanel:`Abrir no painel`,openInNewWindow:`Abrir em nova janela`,created:`Criado`,closePanelEsc:`Fechar painel (Esc)`,copyButton:`Copiar`,open:`Abrir`,dragEdgeToResize:`Arraste a borda para redimensionar`,previewUnavailable:`Preview unavailable`,previewUnavailableDescription:`This artifact does not contain renderable preview content. Switch to code view to inspect the source.`,versionOf:`Versão {{current}} de {{total}}`,previousVersion:`Versão anterior`,nextVersion:`Versão seguinte`},personaImportExport:{title:`Importar e Exportar Personas`,description:`Exporte suas personas para compartilhá-las ou importe personas de outros`,exportPersonas:`Exportar Personas`,importPersonas:`Importar Personas`,noPersonasToExport:`Nenhuma persona para exportar`,personasAvailable:`{{count}} persona disponível`,personasAvailable_plural:`{{count}} personas disponíveis`,exportAll:`Exportar Todas`,uploadJsonFile:`Enviar Arquivo JSON`,pasteJsonLabel:`Colar Dados JSON`,pasteJsonPlaceholder:`Cole os dados JSON da persona aqui...`,importing:`Importando...`,importButton:`Importar Persona(s)`,expectedFormat:`Formato JSON Esperado:`,exportSuccess:`Persona "{{name}}" exportada com sucesso`,exportFailed:`Falha ao exportar persona`,exportAllSuccess:`Todas as {{count}} personas exportadas com sucesso`,exportAllFailed:`Falha ao exportar personas`,pasteJsonData:`Por favor, cole os dados JSON da persona`,importMultipleSuccess:`{{count}} personas importadas com sucesso`,importMultipleFailed:`Falha ao importar {{count}} personas`,importNoneFailed:`Falha ao importar qualquer persona`,importSuccess:`Persona importada com sucesso`,importFailed:`Falha ao importar persona`},generationStats:{details:`Detalhes`,promptTokens:`Tokens do prompt:`,generatedTokens:`Tokens gerados:`,totalTokens:`Tokens totais:`,speed:`Velocidade:`,promptEval:`Avaliação do prompt:`,generation:`Geração:`,modelLoad:`Carregamento do modelo:`,totalTime:`Tempo total:`,generatedAt:`Gerado às:`},userMenu:{loggedOut:`Desconectado com sucesso`,pictureUpdated:`Foto de perfil atualizada`,failedUpdateAvatar:`Falha ao atualizar avatar`,failedUpdatePicture:`Falha ao atualizar foto de perfil`,noEmail:`Sem e-mail fornecido`,changePicture:`Alterar foto`,settings:`Configurações`,userManagement:`Gerenciamento de usuários`,signOut:`Sair`,changeProfilePicture:`Alterar foto de perfil`},pluginManager:{title:`Gerenciador de plugins`,upload:`Enviar`,addJson:`Adicionar JSON`,browseHF:`Explorar HF Hub`,confirmDelete:`Tem certeza que deseja excluir este plugin?`,uploading:`Enviando plugin...`,pasteJson:`Cole o JSON do plugin aqui...`,installPlugin:`Instalar plugin`,loading:`Carregando plugins...`,noPlugins:`Nenhum plugin instalado`,noPluginsDescription:`Envie um arquivo de plugin ou adicione um plugin a partir de JSON para começar.`,active:`Ativo`,id:`ID`,endpoint:`Endpoint`,activate:`Ativar`,deactivate:`Desativar`,activePlugin:`Plugin ativo`,activePluginDescription:`Todas as solicitações de chat serão roteadas por este plugin`,variables:{title:`Variáveis`,save:`Salvar`,saving:`Salvando...`,saved:`Variáveis salvas`,saveFailed:`Falha ao salvar variáveis`,resetDefaults:`Restaurar padrões`,reset:`Variáveis restauradas`,resetFailed:`Falha ao redefinir variáveis`,sensitiveSet:`Valor definido (insira novo valor para alterar)`,showValue:`Mostrar valor de {{label}}`,hideValue:`Ocultar valor de {{label}}`,connection:`Conexão`,advanced:`Parâmetros avançados`,inherited:`Usar padrão do provedor`,inheritedValue:`Usar padrão do provedor ({{value}})`,enabled:`Ativado`,disabled:`Desativado`,required:`Um valor é obrigatório`,fullApiEndpoint:`URL completa do endpoint da API`,endpointHelp:`Insira a URL completa da solicitação, incluindo seu caminho de operação (por exemplo, /v1/chat/completions), não apenas a URL base do provedor.`,invalidUrl:`Insira uma URL completa e válida do endpoint da API, por exemplo https://provider.example/v1/chat/completions`,insecureUrl:`Os endpoints da API devem usar HTTP ou HTTPS.`,httpWarning:`O HTTP não criptografa credenciais ou tráfego. Use-o apenas em uma rede confiável.`,invalidBaseUrl:`As URLs base não podem conter uma string de consulta ou fragmento.`,invalidApiPath:`Deve começar com / e não conter URL, consulta, fragmento ou segmento ..`,tooLong:`O valor é muito longo`}},huggingface:{title:`Navegador de modelos HuggingFace`,subtitle:`Navegue e selecione modelos do Hub`,searchPlaceholder:`Pesquisar modelos...`,filters:`Filtros`,task:`Tarefa`,sortBy:`Ordenar por`,noModels:`Nenhum modelo encontrado`,adjustSearch:`Tente ajustar sua pesquisa ou filtros`,gated:`Restrito`,selected:`Selecionado`,select:`Selecionar`,refresh:`Atualizar`,modelsFound:`modelos encontrados`},demoMode:{title:`Modo demo`,github:`GitHub`},libreClaw:{title:`Agentes`,subtitle:`Execuções, aprovações, programações, memória, ferramentas e uso do agente local.`,dashboard:`Painel`,connection:{disconnectedTitle:`O daemon do Libre Claw não está conectado`,disconnectedDescription:`Inicie localmente com <command>libre-claw start</command> ou defina <env>LIBRE_CLAW_BASE_URL</env> no ambiente de back-end.`},status:{connected:`Conectado`,disconnected:`Desconectado`,activeRuns:`{{count}} ativo`,activeRuns_plural:`{{count}} ativo`},states:{queued:`Na fila`,running:`Em execução`,blocked:`Bloqueado`,done:`Concluído`,failed:`Falha`,cancelled:`Cancelado`},startRun:{title:`Iniciar execução do agente`,placeholder:`Peça ao Libre Claw para inspecionar um repositório, corrigir um bug, executar uma revisão, agendar um relatório...`,chatRun:`Execução de bate-papo`,goalMode:`Modo meta`,providerOverride:`Substituição do provedor`,modelOverride:`Substituição de modelo`,run:`Executar`},modelRoute:{title:`Rota modelo`,providerPlaceholder:`provedor`,modelPlaceholder:`modelo`,persistGlobal:`Persistir na configuração global Libre Claw`,saveModel:`Salvar modelo`,theme:`Tema do Libre Claw`,saveTheme:`Salvar tema`},runs:{title:`Execuções`,empty:`Ainda não há execuções do Libre Claw.`},timeline:{title:`Linha do tempo da execução`,empty:`Selecione uma execução para inspecionar seus eventos.`,streaming:`Transmissão...`,assistantResponse:`Resposta do assistente`,resultOk:`ok`,resultError:`erro`,labels:{userMessage:`Mensagem do usuário`,toolCall:`Chamada de ferramenta`,toolResult:`Resultado da ferramenta`,approvalRequest:`Solicitação de aprovação`,approvalResponse:`Resposta de aprovação`,runStarted:`Execução iniciada`,runFinished:`Execução finalizada`,usage:`Uso`,error:`Erro`}},approvals:{needed:`Aprovação necessária`,allowOnce:`Permitir uma vez`,alwaysAllowTool:`Sempre permitir a ferramenta`,deny:`Recusar`,toolApprovalRequested:`Aprovação da ferramenta solicitada`},automations:{title:`Automações`,namePlaceholder:`Nome`,schedulePlaceholder:`daily 09:00`,promptPlaceholder:`Solicitação de automação`,create:`Criar`,empty:`Nenhuma automação Libre Claw programada.`,runNow:`Executar agora`,pause:`Pausa`,resume:`Retomar`,routes:{report:`Relatório`,telegram:`Telegram`},status:{active:`Ativo`,paused:`Pausado`}},usageFallback:{title:`Uso e substituto`,usage:`Uso`,fallbackRoute:`Rota substituta`,noUsage:`Ainda não há registros de uso.`},metrics:{provider:`Provedor`,model:`Modelo`,input:`Entrada`,output:`Saída`,cached:`Em cache`,reasoning:`Raciocínio`,cost:`Custo`,tool:`Ferramenta`,resolution:`Resolução`,state:`Estado`,stopReason:`Motivo da parada`,tokens:`{{formatted}} ficha`,tokens_plural:`{{formatted}} fichas`},fallbacks:{tool:`ferramenta`,unknown:`desconhecido`,resolved:`resolvido`,unknownError:`Erro desconhecido`},toasts:{loadStatusFailed:`Não foi possível carregar o status Libre Claw`,enterTask:`Insira uma tarefa para Libre Claw`,runStarted:`Execução do Libre Claw iniciada`,startRunFailed:`Não foi possível iniciar a execução do Libre Claw`,runCancelled:`Execução cancelada`,cancelRunFailed:`Não foi possível cancelar a execução`,approved:`Aprovado`,denied:`Negado`,resolvePermissionFailed:`Não foi possível resolver a permissão`,providerModelRequired:`Provedor e modelo são obrigatórios`,modelUpdated:`Modelo do Libre Claw atualizado`,updateModelFailed:`Não foi possível atualizar o modelo`,themeUpdated:`Tema do Libre Claw atualizado`,updateThemeFailed:`Não foi possível atualizar o tema`,automationRequired:`O nome da automação, a programação e o prompt são obrigatórios`,automationCreated:`Automação criada`,createAutomationFailed:`Não foi possível criar a automação`,automationUpdated:`Automação atualizada`,updateAutomationFailed:`Não foi possível atualizar a automação`}},work:{title:`Trabalho`,subtitle:`Espaços de trabalho isolados para modelos`,tasks:{title:`Tarefas de trabalho`,subtitle:`Espaços de trabalho locais persistentes`,new:`Nova tarefa`,emptyTitle:`Nenhuma tarefa de trabalho ainda`,empty:`Suas tarefas de trabalho aparecerão aqui depois que você enviar a primeira mensagem.`,untitled:`Tarefa sem título`,actions:`Ações da tarefa`,delete:`Excluir tarefa`,deleteNamed:`Excluir {{title}}`,deleteConfirm:`Excluir “{{title}}” e seu espaço de trabalho permanentemente?`,close:`Fechar tarefas de trabalho`,open:`Abrir tarefas de trabalho`,rename:`Título da tarefa`,loading:`Carregando tarefa…`,notFound:`Esta tarefa de trabalho não está disponível`,back:`Iniciar uma nova tarefa`,status:`Status: {{status}}`},landing:{title:`Iniciar uma nova tarefa de trabalho`,description:`Dê a um modelo local ou de um provedor configurado um espaço de trabalho isolado e persistente. Ele pode inspecionar arquivos, executar ferramentas e continuar de onde parou quando você voltar.`,isolated:`Isolado`,isolatedBody:`Cada tarefa tem seu próprio contêiner e arquivos.`,durable:`Persistente`,durableBody:`Volte mais tarde à conversa e ao espaço de trabalho.`,controlled:`Controlado`,controlledBody:`O ambiente de execução e os arquivos da tarefa permanecem isolados do host.`},composer:{placeholder:`Descreva o que você quer criar ou alterar…`,model:`Modelo de trabalho`,noModels:`Nenhum modelo compatível com o modo Trabalho`,cancel:`Parar`,send:`Executar`,hint:`Cada tarefa mantém seus próprios arquivos e histórico. Revise a saída do modelo antes de usá-la.`,remoteTitle:`Provedor remoto`,remoteHint:`A conversa e a saída das ferramentas são enviadas ao serviço configurado. Uma execução autônoma pode fazer várias chamadas ao provedor e gerar cobranças. Os arquivos do espaço de trabalho permanecem locais, a menos que uma ferramenta retorne seu conteúdo.`,remoteDismiss:`Ocultar`,remoteDismissLabel:`Ocultar aviso do provedor remoto`,remoteDismissFailed:`Não foi possível salvar a preferência do provedor remoto.`,noModelSelected:`Nenhum modelo compatível com o modo Trabalho está selecionado.`},conversation:{ready:`Espaço de trabalho pronto`,empty:`Continue a tarefa abaixo. Esta conversa e seus arquivos permanecem vinculados a este espaço de trabalho.`,loadOlder:`Carregar mensagens anteriores`},status:{preparing:`Preparando o espaço de trabalho isolado…`,running:`Trabalhando no espaço de trabalho local…`},statusLabels:{idle:`Inativo`,thinking:`Pensando`,complete:`Concluído`,needsInput:`Entrada necessária`,error:`Erro`},live:{connecting:`Conectando às atualizações ao vivo…`,reconnecting:`Reconectando às atualizações ao vivo…`,unavailable:`Atualizações ao vivo indisponíveis`,newActivity:`Nova atividade`,skillsLoaded:`Habilidades do espaço de trabalho · {{count}}`},runtime:{unavailable:`Ambiente de execução indisponível`,ready:`Ambiente de execução pronto`,readyOllama:`Docker pronto`,readyPlugin:`Docker + plugin prontos`,readyHybrid:`Docker + modelos prontos`,reason:`São necessários o Docker e um provedor de modelos disponível via Ollama ou um plugin.`},workspace:{label:`Visualizações do espaço de trabalho`,files:`Arquivos`,activity:`Atividade`,preview:`Pré-visualização`,resize:`Redimensionar a conversa e o espaço de trabalho`,resizeHint:`Arraste para redimensionar. Use as teclas de seta para um controle preciso. Clique duas vezes ou pressione Enter para restaurar.`,splitSize:`Conversa {{conversation}}%, espaço de trabalho {{workspace}}%`,terminal:`Terminal`,git:`Git`},files:{discard:`Descartar alterações não salvas no arquivo?`,leaveWithDraft:`Sair deste arquivo? Sua edição não salva permanecerá como rascunho no navegador.`,up:`Pasta superior`,back:`Voltar aos arquivos`,empty:`Ainda não há arquivos nesta pasta.`,select:`Selecione um arquivo para inspecioná-lo e editá-lo.`,editorLabel:`Editor de arquivos: {{path}}`,format:`Formatar`,formatted:`Código formatado.`,formatFailed:`Não foi possível formatar este arquivo.`,formatShortcut:`Formatar (Shift+Alt+F)`,formatTooLarge:`A formatação é limitada a arquivos com menos de 100.000 caracteres e 4.000 linhas.`,formatUnsupported:`A formatação não está disponível para este tipo de arquivo.`,saveShortcut:`Salvar (⌘/Ctrl+S)`,highlightPaused:`O realce em tempo real está pausado para arquivos grandes, mantendo a edição responsiva.`,plainTextLarge:`Texto sem formatação · arquivo grande`,changes:`Alterações`,changesSince:`O que mudou desde o último turno`,diffLabel:`Alterações desde o último turno: {{path}}`,diffFolded:`{{count}} linhas inalteradas`},activity:{empty:`Comandos, operações de arquivo e resultados de ferramentas aparecerão aqui.`,toolActivity:`Atividade de ferramentas`,details:`Detalhes`,kinds:{message:`Mensagem`,toolCall:`Chamada de ferramenta`,toolResult:`Resultado da ferramenta`,error:`Erro`}},preview:{command:`Comando de início opcional`,start:`Iniciar pré-visualização`,stop:`Parar pré-visualização`,open:`Abrir`,starting:`Iniciando pré-visualização…`,frameTitle:`Pré-visualização do espaço de trabalho`,failed:`Não foi possível iniciar a pré-visualização. Verifique Atividade e tente outro comando.`,empty:`Inicie o aplicativo neste espaço de trabalho para inspecioná-lo aqui.`},mobile:{surface:`Visualização da tarefa`,conversation:`Conversa`,workspace:`Espaço de trabalho`},toasts:{runFailed:`Não foi possível iniciar a tarefa de trabalho.`,updateFailed:`Não foi possível atualizar esta tarefa.`,renameFailed:`Não foi possível renomear esta tarefa.`,cancelled:`Execução da tarefa de trabalho interrompida.`,cancelFailed:`Não foi possível interromper a execução da tarefa de trabalho.`,deleteFailed:`Não foi possível excluir esta tarefa de trabalho.`,saveFailed:`Não foi possível salvar este arquivo.`,saved:`Arquivo salvo.`,previewFailed:`Não foi possível iniciar a pré-visualização.`,previewStopFailed:`Não foi possível parar a pré-visualização.`},terminal:{connecting:`Abrindo um shell na sandbox…`,closed:`Sessão de terminal encerrada.`,failed:`Não foi possível iniciar a sessão de terminal.`,reconnect:`Reconectar`,unavailable:`O terminal interativo não está disponível nesta implantação.`,blockedByRun:`O modelo está usando este contêiner. O terminal abre ao fim do turno.`,taskRunning:`Turno do modelo em andamento`},policy:{label:`Política de execução`,default:`Padrão (limites globais)`},git:{actionFailed:`A ação do Git falhou.`,blockedByPreview:`Pare a pré-visualização antes de alterar o estado do Git.`,blockedByRun:`As ações de escrita do Git desbloqueiam quando o turno do modelo termina.`,branchCreated:`{{name}} criado.`,branchSwitched:`Alternado para {{name}}.`,clean:`A árvore de trabalho está limpa.`,commit:`Fazer commit das mudanças preparadas`,commitMessage:`Mensagem do commit`,committed:`Commit criado.`,detached:`HEAD desanexado`,diff:`Pré-visualização do diff`,diffFailed:`Não foi possível carregar este diff.`,history:`Histórico local`,initialize:`Inicializar Git`,initializeDescription:`Crie um repositório local para status, diffs, branches e commits. Nenhuma credencial remota é conectada.`,initialized:`Repositório Git inicializado.`,loadFailed:`Não foi possível carregar o status do Git.`,localOnly:`Apenas Git local. Push, pull e pull requests exigem um intermediário de credenciais confiável separado.`,newBranch:`Nova branch local`,noCommits:`Ainda sem commits.`,noDiff:`Ainda não há diff textual. Arquivos não rastreados aparecem após preparar.`,notInitialized:`Git não está inicializado`,selectChange:`Selecione um arquivo alterado para inspecionar o diff.`,selectPath:`Selecionar {{path}}`,stageAll:`Preparar tudo`,stageSelected:`Preparar {{count}}`,staged:`Mudanças preparadas.`,switchBranch:`Trocar branch local`,changes:`Alterações`,createBranch:`Criar`,filterFiles:`Filtrar arquivos alterados`,noFilterMatches:`Nenhum arquivo alterado corresponde a este filtro.`,allChanges:`Todas as alterações`,diffTruncated:`Este diff está truncado.`,binaryFile:`Arquivo binário, sem diff de texto.`},hostWorkspace:{hint:`Deixe em branco para um espaço isolado, ou aponte a tarefa para uma pasta desta máquina.`,label:`Pasta do espaço de trabalho (opcional)`,warning:`A tarefa pode ler e escrever esta pasta diretamente. Deixe em branco para um espaço isolado.`}},personaBackground:{label:`Imagem de fundo`,uploadBackgroundImage:`Enviar imagem de fundo`,dragAndDrop:`Arraste e solte uma imagem ou clique para navegar`,chooseImage:`Escolher imagem`,uploading:`Enviando...`,enterImageUrl:`Ou insira a URL da imagem`,supportedFormats:`Suporta: JPG, PNG, GIF, WebP (máx 5MB). Imagens paisagem largas funcionam melhor.`,customBackground:`Imagem de fundo personalizada`,clickToChange:`Clique para alterar ou remover`,removed:`Fundo removido`,uploaded:`Fundo enviado com sucesso`,invalidFile:`Por favor selecione um arquivo de imagem válido`,fileTooLarge:`O tamanho da imagem de fundo deve ser menor que 5MB`,readFailed:`Falha ao ler o arquivo de imagem`,uploadFailed:`Falha ao enviar a imagem de fundo`},modelSelector:{searchInstalled:`Pesquisar modelos instalados...`,searchOllama:`Pesquisar na biblioteca Ollama...`,searchHuggingFace:`Pesquisar no HuggingFace...`,selectModel:`Selecionar modelo`,personas:`Personas`,ollamaModels:`Modelos Ollama`,pluginModels:`Modelos de plugins`,actions:`Ações`,installed:`Instalado`,use:`Usar`,pull:`Baixar`,pullRestricted:`A instalação de modelos está restrita a administradores nesta instância.`,adminOnlyPull:`Apenas administradores`,legacyProvider:`provedor não registrado`,providerNotRecorded:`Provedor não registrado`,providerUnavailable:`provedor indisponível`,reselectProvider:`selecione novamente um provedor para fixar este modelo`,unavailable:`indisponível`,unavailableSelections:`Seleções indisponíveis`,agentModels:`Agentes`},whatsNew:{title:`Novidades`,releaseNotes:`Notas de lançamento`,cta:`Certo, vamos lá`,starAsk:`Gostando do Libre WebUI? Deixe uma estrela no GitHub`},notes:{title:`Notas`,new:`Nova nota`,untitled:`Sem título`,empty:`Ainda não há notas`,selectOrCreate:`Selecione uma nota ou crie uma nova`,contentPlaceholder:`Escreva em Markdown…`,saved:`Guardado`,saveFailed:`Não foi possível guardar a nota`,createFailed:`Não foi possível criar uma nota`,deleteConfirm:`Eliminar esta nota?`,deleteFailed:`Não foi possível eliminar a nota`},calendar:{title:`Calendário`,today:`Hoje`,month:`Mês`,week:`Semana`,previous:`Anterior`,next:`Próximo`,newEvent:`Novo evento`,editEvent:`Editar evento`,eventTitle:`Título`,titlePlaceholder:`Título do evento`,date:`Data`,start:`Início`,end:`Fim`,allDay:`Dia inteiro`,repeat:`Repetir`,repeatNone:`Não se repete`,repeatDaily:`Diariamente`,repeatWeekly:`Semanalmente`,repeatMonthly:`Mensalmente`,repeatYearly:`Anualmente`,notes:`Notas`,more:`+{{n}} mais`,loadFailed:`Não foi possível carregar o calendário`,saveFailed:`Não foi possível salvar o evento`,deleteFailed:`Não foi possível excluir o evento`},automations:{title:`Automações`,tab:{automations:`Automações`,runs:`Execuções`},newAutomation:`Nova automação`,editAutomation:`Editar automação`,empty:`Ainda não há automações. Crie uma para executar uma tarefa conforme um agendamento.`,loadFailed:`Não foi possível carregar as automações`,saveFailed:`Não foi possível salvar a automação`,actionFailed:`A ação falhou`,runQueued:`Execução iniciada`,status:{active:`Ativa`,paused:`Pausada`},nextRun:`Próxima execução {{when}}`,actions:`Ações`,pause:`Pausar`,resume:`Retomar`,runNow:`Executar agora`,openChat:`Abrir chat`,noRuns:`Ainda não há execuções`,deletedAutomation:`Automação excluída`,runHistory:`Histórico de execuções (últimos 30 dias)`,succeeded:`bem-sucedidas`,failed:`falharam`,form:{name:`Nome`,namePlaceholder:`Minha automação`,triggers:`Gatilhos`,addTrigger:`Adicionar gatilho`,instructions:`Instruções`,instructionsPlaceholder:`O que deve ser executado neste agendamento?`,model:`Modelo`,modelAuto:`Auto`,notification:`Notificação`,notifyApp:`Aplicativo`,notifyOff:`Desativada`,frequency:`Frequência`,time:`Hora`,minute:`Minuto`,fromHour:`De`,toHour:`Até`,weekday:`Dia da semana`,dayOfMonth:`Dia`,month:`Mês`},kind:{once:`Uma vez`,hourly:`A cada hora`,daily:`Diária`,weekly:`Semanal`,monthly:`Mensal`,yearly:`Anual`},trigger:{once:`Uma vez em {{when}}`,hourly:`A cada hora no minuto :{{minute}}`,daily:`Diariamente às {{time}}`,weekly:`Semanalmente na {{day}} às {{time}}`,monthly:`Mensalmente no dia {{day}} às {{time}}`,yearly:`Anualmente em {{date}} às {{time}}`},finishedNotification:`{{n}} execuções de automação concluídas`,templatesTitle:`Modelos`,templates:{morningBrief:{name:`Resumo matinal`,description:`Comece o dia com manchetes e prioridades.`},newsDigest:{name:`Resumo de notícias de IA`,description:`Lançamentos de modelos, pesquisa e financiamento relevantes.`},weeklyReview:{name:`Revisão semanal`,description:`Feche a semana: conquistas, pendências, próximas prioridades.`},monthlyReport:{name:`Relatório mensal`,description:`Um esboço de relatório de status no primeiro dia de cada mês.`}}},home:{active:`ativo`,continue:`Continuar`,start:`Começar`,explore:`Explorar`},palette:{empty:`Sem correspondências.`,placeholder:`Pesquisar chats, Work, ações…`,toggleTheme:`Alternar tema`,actions:`Ações`,chats:`Conversas`,search:`Pesquisar`,settings:`Configurações`,work:`Trabalho`},tabs:{actions:`Ações da aba`,close:`Fechar aba`,closeAll:`Fechar todas as abas`,closeOthers:`Fechar outras abas`,closeRight:`Fechar abas à direita`,home:`Início`,label:`Abas abertas`,new:`Nova aba`,newWork:`Novo Work`,chat:`Chat`,newChat:`Nova conversa`,work:`Trabalho`}};export{e as default};