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
@@ -0,0 +1,2 @@
1
+ var e={common:{loading:`Wird geladen...`,save:`Speichern`,saving:`Wird gespeichert...`,cancel:`Abbrechen`,delete:`Löschen`,edit:`Bearbeiten`,close:`Schließen`,back:`Zurück`,next:`Weiter`,confirm:`Bestätigen`,error:`Fehler`,success:`Erfolg`,warning:`Warnung`,or:`oder`,optional:`optional`,enabled:`Aktiviert`,disabled:`Deaktiviert`,on:`An`,off:`Aus`,yes:`Ja`,no:`Nein`,search:`Suchen`,noResults:`Keine Ergebnisse gefunden`,retry:`Erneut versuchen`,refresh:`Aktualisieren`,download:`Herunterladen`,upload:`Hochladen`,export:`Exportieren`,import:`Importieren`,reset:`Zurücksetzen`,apply:`Anwenden`,clear:`Löschen`,all:`Alle`,none:`Keine`,default:`Standard`,custom:`Benutzerdefiniert`,remove:`Entfernen`,home:`Start`,more:`Mehr`},brand:{name:`Libre WebUI`,shortName:`Libre`},auth:{login:{title:`Willkommen zurück`,subtitle:`Melden Sie sich bei Ihrem Konto an, um fortzufahren`,username:`Benutzername`,usernamePlaceholder:`Geben Sie Ihren Benutzernamen ein`,password:`Passwort`,passwordPlaceholder:`Geben Sie Ihr Passwort ein`,signIn:`Anmelden`,signingIn:`Anmeldung läuft...`,noAccount:`Sie haben noch kein Konto?`,signUpHere:`Hier registrieren`,loginSuccess:`Anmeldung erfolgreich!`,loginFailed:`Anmeldung fehlgeschlagen`,checkCredentials:`Anmeldung fehlgeschlagen. Bitte überprüfen Sie Ihre Zugangsdaten.`,approvalPending:`Ihr Konto wartet auf die Genehmigung durch den Administrator.`,enterBoth:`Bitte geben Sie Benutzername und Passwort ein`,githubSuccess:`GitHub-Anmeldung erfolgreich!`,githubFailed:`GitHub-Authentifizierung fehlgeschlagen`,githubVerifyFailed:`Überprüfung der GitHub-Authentifizierung fehlgeschlagen`,verificationFailed:`Sicherheitsprüfung fehlgeschlagen. Seite neu laden und erneut versuchen.`},signup:{title:`Konto erstellen`,subtitle:`Registrieren Sie sich für ein neues Konto`,username:`Benutzername`,usernamePlaceholder:`Wählen Sie einen Benutzernamen`,email:`E-Mail`,emailPlaceholder:`ihre@email.de`,password:`Passwort`,passwordPlaceholder:`Wählen Sie ein Passwort`,confirmPassword:`Passwort bestätigen`,confirmPasswordPlaceholder:`Bestätigen Sie Ihr Passwort`,createAccount:`Konto erstellen`,creatingAccount:`Konto wird erstellt...`,hasAccount:`Sie haben bereits ein Konto?`,signInHere:`Hier anmelden`,signupSuccess:`Konto erfolgreich erstellt!`,approvalPending:`Registrierung empfangen. Ein Administrator muss Ihr Konto genehmigen.`,awaitingApproval:`Wartet auf Genehmigung`,awaitingApprovalDescription:`Ihr Konto wurde erstellt, aber ein Administrator muss es aktivieren, bevor Sie sich anmelden können.`,backToSignIn:`Zurück zur Anmeldung`,signupFailed:`Registrierung fehlgeschlagen`,tryAgain:`Registrierung fehlgeschlagen. Bitte versuchen Sie es erneut.`,usernameRequired:`Benutzername und Passwort sind erforderlich`,passwordMismatch:`Passwörter stimmen nicht überein`,passwordTooShort:`Das Passwort muss mindestens 6 Zeichen lang sein`},logout:{button:`Abmelden`,success:`Erfolgreich abgemeldet`},oauth:{continueWith:`Weiter mit {{provider}}`,connectingTo:`Verbindung zu {{provider}}...`,github:`GitHub`,huggingFace:`Hugging Face`},checkingAuth:`Authentifizierung wird überprüft...`,welcome:`Willkommen`,noEmail:`Keine E-Mail angegeben`,role:`Rolle`,id:`ID`,userId:`Benutzer-ID`,signInDescription:`Melden Sie sich mit Ihrem GitHub-Konto an, um fortzufahren`,signInWithGitHub:`Mit GitHub anmelden`,jwtActive:`JWT-Authentifizierung aktiv`,jwtDescription:`JWT-basierte Authentifizierung mit GitHub OAuth`,github:`GitHub`,provider:`Anbieter`,tagline:`Ihr AI-Stack sollte Ihnen antworten.`,selfHosted:`Selbst gehostet · Apache 2.0`,highlights:{local:{title:`Lokal zuerst`,body:`Ihre Konversationen und Dateien bleiben auf dem Rechner, auf dem Sie dies ausführen.`},providers:{title:`Jeder Anbieter`,body:`Lokale Modelle über Ollama, plus die Remote-Anbieter, die Sie hinzufügen möchten.`},work:{title:`Isolierte Arbeit`,body:`Geben Sie einem Modell eine Sandbox-Arbeitsumgebung mit Dateien, einem Terminal und einer Vorschau.`}},oidc:{defaultProviderName:`Single Sign-On`}},setup:{welcome:{title:`Willkommen bei Libre WebUI`,subtitle:`Legen wir los`,description:`Richten Sie Ihre Libre WebUI-Instanz in nur wenigen Schritten ein`,createAdmin:`Admin-Konto erstellen`,features:{secure:{title:`Sicher & Privat`,description:`Ihre Gespräche bleiben auf Ihrem Gerät`},fast:{title:`Schnell & Reaktionsschnell`,description:`Optimiert für Geschwindigkeit und Leistung`},openSource:{title:`Open Source`,description:`Freie und quelloffene Software`}}},admin:{title:`Admin-Konto erstellen`,subtitle:`Administrator-Einrichtung`,description:`Erstellen Sie das erste Admin-Konto für Ihre Libre WebUI-Instanz`,usernamePlaceholder:`Admin-Benutzernamen eingeben`,passwordPlaceholder:`Passwort eingeben (mind. 6 Zeichen)`,confirmPlaceholder:`Passwort bestätigen`,creating:`Wird erstellt...`,createAdmin:`Admin erstellen`,success:`Admin-Konto erfolgreich erstellt!`,failed:`Admin-Konto konnte nicht erstellt werden`,approvalUnexpected:`Der anfängliche Administrator konnte nicht aktiviert werden. Bitte versuchen Sie es erneut.`,fillAllFields:`Bitte füllen Sie alle Felder aus`,note:`Dies wird das Hauptadministratorkonto für Ihre Libre WebUI-Instanz`},encryptionKey:{title:`Speichern Sie Ihren Verschlüsselungsschlüssel`,subtitle:`Wichtig: Speichern Sie diesen Schlüssel`,description:`Dieser Verschlüsselungsschlüssel schützt Ihre sensiblen Daten. Bewahren Sie ihn sicher auf – Sie benötigen ihn, falls Sie Ihre Datenbank wiederherstellen müssen.`,warning:`Warnung`,warningText:`Wenn Sie diesen Schlüssel verlieren und Ihre Datenbank wiederherstellen müssen, sind Ihre verschlüsselten Daten (API-Schlüssel, Einstellungen) unwiederbringlich verloren.`,label:`Ihr Verschlüsselungsschlüssel`,loading:`Wird geladen...`,copyToClipboard:`In die Zwischenablage kopieren`,copied:`Verschlüsselungsschlüssel in die Zwischenablage kopiert!`,copyFailed:`Schlüssel konnte nicht kopiert werden`,envNote:`Dieser Schlüssel wird auch in Ihrer backend/.env-Datei als ENCRYPTION_KEY gespeichert`,acknowledgment:`Ich habe meinen Verschlüsselungsschlüssel an einem sicheren Ort gespeichert und verstehe, dass sein Verlust zu Datenverlust führen kann.`,confirmRequired:`Bitte bestätigen Sie, dass Sie den Verschlüsselungsschlüssel gespeichert haben`,continue:`Weiter zu Libre WebUI`}},chat:{greeting:{morning:`Guten Morgen`,afternoon:`Guten Tag`,evening:`Guten Abend`,night:`Gute Nacht`},followUp:`Weiterführend`,welcome:{helpToday:`Wie kann ich Ihnen heute helfen?`,helpTonight:`Wie kann ich Ihnen heute Abend helfen?`,variety:{create:{title:`Was wollen wir erschaffen?`,subtitle:`Beginnen Sie mit einem Gedanken, einer Skizze oder einem hartnäckigen Problem.`},explore:{title:`Wo fangen wir an?`,subtitle:`Bringen Sie die Frage mit, die Sie immer wieder beschäftigt.`},imagine:{title:`Was stellen Sie sich vor?`,subtitle:`Gemeinsam können wir der Idee Form geben.`},focus:{title:`Was verdient Ihre Aufmerksamkeit?`,subtitle:`Machen wir den nächsten Schritt klar.`},untangle:{title:`Wo ist der Knoten?`,subtitle:`Geben Sie mir zuerst die ungeschönte Version.`},momentum:{title:`Bereit, wenn Sie es sind.`,subtitle:`Greifen wir eine Idee, einen Plan oder einen offenen Gedanken wieder auf.`},open:{title:`Was beschäftigt Sie?`,subtitle:`Ob kleiner Gedanke oder großes Projekt: Beides passt.`},challenge:{title:`Was lösen wir?`,subtitle:`Sagen Sie mir, was noch nicht funktioniert.`},draft:{title:`Fangen wir irgendwo an.`,subtitle:`Es muss noch nicht perfekt sein.`},possibility:{title:`Was könnte daraus werden?`,subtitle:`Zeigen Sie mir das Rohmaterial.`},unexpected:{title:`Erschaffen wir etwas Unerwartetes.`,subtitle:`Geben Sie mir eine Vorgabe, eine Stimmung oder eine halbfertige Idee.`}}},input:{placeholder:`Nachricht senden`,messagePlaceholder:`Nachricht...`,attachImages:`Bilder anhängen`,attachments:`Anhänge und erweiterte Funktionen`,sendMessage:`Nachricht senden`,stopGeneration:`Generierung stoppen`,menu:{uploadImages:`Bilder hochladen`,attachDocument:`Dokument anhängen`,attachWebpage:`Webseite anhängen`,structuredOutput:`Strukturierte Ausgabe`,attach:`Anhängen`,documentAttached:`Dokument angehängt`,webpageAttached:`Webseite angehängt`,attachFailed:`Anhängen fehlgeschlagen`,attachKnowledge:`Wissen anhängen`,noCollections:`Noch keine Sammlungen — erstelle eine unter Einstellungen → Dokumente`},voiceInput:`Spracheingabe`,voiceStop:`Zuhören beenden`,transcriptionSource:`Quelle der Spracherkennung`,browserSpeech:`Spracherkennungsdienst des Browsers`,providerTranscriptionDisclosure:`Audio aufnehmen und zur Transkription an {{provider}} senden`,webSearchOn:`Websuche aktiv — Antworten nutzen Live-Ergebnisse`,webSearchOff:`Für diese Nachricht im Web suchen`,toolsOn:`Werkzeuge aktiv — das Modell darf freigegebene Werkzeuge aufrufen`,toolsOff:`Das Modell für diese Nachricht Werkzeuge aufrufen lassen`,thinkingOn:`Nachdenken aktiv ({{level}})`,thinkingOff:`Vor dem Antworten nachdenken`},session:{new:`Neuer Chat`,work:`Arbeit`,chat:`Chat`,private:`Privat`,incognito:`Inkognito-Chat`,privateMode:`Privater Modus`,privateDescription:`Dieses Gespräch wird nicht gespeichert`,privateTooltip:`Starten Sie ein privates Gespräch, das nicht gespeichert wird`,deleteConfirm:`Sind Sie sicher, dass Sie diesen Chat löschen möchten?`,generatingTitle:`Titel wird generiert`,noChats:`Noch keine Chats`,createFirst:`Erstellen Sie oben Ihren ersten Chat`,chats:`Chats`,renameChat:`Chat umbenennen`,openNewTab:`In neuem Tab öffnen`,pinChat:`Anheften`,unpinChat:`Lösen`,deleteChat:`Chat löschen`,archiveChat:`Chat archivieren`,groups:{pinned:`Angeheftet`,today:`Heute`,yesterday:`Gestern`,previous7Days:`Letzte 7 Tage`,previous30Days:`Letzte 30 Tage`,older:`Älter`},folder:{new:`Neuer Ordner`,namePlaceholder:`Ordnername`,move:`In Ordner verschieben`,remove:`Aus Ordner entfernen`,delete:`Ordner löschen`,deleteConfirm:`Diesen Ordner löschen? Die Chats darin bleiben erhalten.`},shareChat:`Chat teilen…`},persona:{applied:`Persona angewendet`,label:`Persona`,loadFailed:`Persona-Details konnten nicht geladen werden`,removeFailed:`Persona konnte nicht entfernt werden`},model:{updated:`Modell aktualisiert`,noModels:`Keine Modelle verfügbar`,noModelsDescription:`Keine Modelle verfügbar. Stellen Sie sicher, dass Ollama läuft und Modelle installiert sind.`,pullCommand:`ollama pull llama3.2:3b`,noModelsTooltip:`Keine Modelle verfügbar. Bitte stellen Sie sicher, dass Ollama läuft und Modelle installiert sind.`,selectBeforePrivateChat:`Wählen Sie ein verfügbares Modell aus, bevor Sie einen privaten Chat starten`,selectBeforeSending:`Wählen Sie ein verfügbares Modell aus, bevor Sie senden`},footer:{disclaimer:`KI kann Fehler machen – überprüfen Sie wichtige Informationen`,images:`{{count}} Bild`,images_plural:`{{count}} Bilder`,structuredOutput:`Strukturierte Ausgabe`},mediaUpload:{dropImagesHere:`Bilder hier ablegen oder`,supportedFormats:`Unterstützt: JPG, PNG, GIF, WebP (max. 10 MB pro Bild)`,browse:`durchsuchen`},structuredOutput:{title:`Antwortformat`,none:`Keine (natürliche Sprache)`,noneDescription:`Standard natürlichsprachige Antwort`,json:`JSON`,jsonDescription:`Strukturiertes JSON-Format`,list:`Liste`,listDescription:`Array von Elementen`,summary:`Zusammenfassung`,summaryDescription:`Dokumentzusammenfassung mit Kernpunkten`,analysis:`Analyse`,analysisDescription:`Strukturierte Analyse mit Vor-/Nachteilen`,custom:`Benutzerdefiniertes Schema`,customDescription:`Definieren Sie Ihr eigenes JSON-Schema`,customSchema:`Benutzerdefiniertes JSON-Schema`,schemaPreview:`Schema-Vorschau`,applySchema:`Schema anwenden`,cancel:`Abbrechen`,enabled:`Strukturierte Ausgabe aktiviert`},controls:{title:`Chat-Steuerung`,systemPrompt:`Systemprompt`,systemPromptPlaceholder:`Anweisungen nur für diesen Chat…`,advancedParams:`Erweiterte Parameter`,advancedParamsDescription:`Überschreibungen für diesen Chat. Leere Felder nutzen die globalen Standardwerte.`,fromModel:`vom Modell`,fromModelHint:`Dieser Wert stammt aus den empfohlenen Einstellungen des Modells.`,contextCapped:`Kontext auf {{context}} von {{trained}} begrenzt, für die das Modell trainiert wurde, damit es noch lädt.`,saved:`Chat-Steuerung gespeichert`,saveFailed:`Chat-Steuerung konnte nicht gespeichert werden`,params:{temperature:`Temperatur`,topP:`Top P`,topK:`Top K`,minP:`Min P`,maxTokens:`Max. Tokens`,repeatPenalty:`Wiederholungsstrafe`,seed:`Seed`,contextLength:`Kontextlänge`},thinking:`Nachdenken`,thinkingDescription:`Wie ausführlich das Modell vor der Antwort nachdenkt. Modelle ohne Reasoning ignorieren dies.`,compaction:`Kontextverdichtung`,compactionDescription:`Wenn der Server lange Gespräche verdichtet, kann dieser Chat sich ausnehmen und seinen vollen Verlauf behalten.`,compactionDefault:`Serverstandard`,compactionOff:`Für diesen Chat aus`},message:{sources:`Quellen`},toasts:{chatCreated:`Neuer Chat erstellt`,createFailed:`Sitzung konnte nicht erstellt werden`,loadFailed:`Sitzungen konnten nicht geladen werden`,chatDeleted:`Chat gelöscht`,deleteFailed:`Chat konnte nicht gelöscht werden`,deleteSessionFailed:`Sitzung konnte nicht gelöscht werden`,historyCleared:`Gesamter Chatverlauf gelöscht`,historyClearFailed:`Chatverlauf konnte nicht gelöscht werden`,titleUpdated:`Chattitel aktualisiert`,updateFailed:`Sitzung konnte nicht aktualisiert werden`,noValidSession:`Keine gültige Chat-Sitzung. Bitte erstellen oder wählen Sie einen Chat.`,sessionNotFound:`Sitzung nicht gefunden oder ungültig. Bitte wählen oder erstellen Sie eine gültige Chat-Sitzung.`,noModelProvider:`Kein Modellanbieter verfügbar`,modelUnavailable:`Das ausgewählte Modell "{{model}}" ist von {{provider}} nicht verfügbar. Aktivieren Sie den Anbieter erneut oder wählen Sie ein anderes Modell.`,modelSwitched:`Gewechselt zu {{model}} (vorheriges Modell nicht mehr verfügbar)`,modelsLoadFailed:`Modelle konnten nicht geladen werden`,modelUpdated:`Modell für den aktuellen Chat aktualisiert`,modelUpdateFailed:`Sitzungsmodell konnte nicht aktualisiert werden`},documents:{title:`Dokumente im Kontext`},context:{title:`Kontextfenster:`,full:`{{percent}}% belegt`,tokensUsed:`{{used}} / {{budget}} Tokens belegt`,tokensUsedNoBudget:`{{used}} Tokens belegt`,capped:`begrenzt von {{trained}}`},queue:{title:`In Warteschlange ({{total}})`,moveUp:`Nach oben`,moveDown:`Nach unten`,updateFailed:`Der wartende Prompt konnte nicht aktualisiert werden`,enqueueFailed:`Der Prompt konnte nicht eingereiht werden`},compare:{title:`Modelle vergleichen`,hint:`Mit bis zu {{max}} zusätzlichen Modellen antworten`},fork:{action:`Ab hier abzweigen`,created:`Chat abgezweigt`,failed:`Der Chat konnte nicht abgezweigt werden`,origin:`Abgezweigt von {{title}}`,originUnknown:`einem anderen Chat`},sharedReadOnly:`Geteilt von {{owner}} — nur ansehen`},sidebar:{navigation:{chat:`Chat`,models:`Modelle`,personas:`Personas`,imagine:`Generieren`,agents:`Agenten`,work:`Arbeit`,settings:`Einstellungen`,usageAnalytics:`Anbieter-Nutzung`,system:`System`,userManagement:`Benutzerverwaltung`,signOut:`Abmelden`,exploreLabel:`Entdecken`,notes:`Notizen`,calendar:`Kalender`,automations:`Automationen`,prompts:`Prompts`,skills:`Skills`,tools:`Werkzeuge`,channels:`Kanäle`},toggleSize:`Seitenleistengröße umschalten`,expandSidebar:`Seitenleiste erweitern`},user:{menu:{changePicture:`Bild ändern`,settings:`Einstellungen`,usageAnalytics:`Anbieter-Nutzung`,system:`System`,userManagement:`Benutzerverwaltung`,logout:`Abmelden`,pinShortcut:`An Seitenleiste anheften`,unpinShortcut:`Von Seitenleiste lösen`,evaluations:`Evaluationen`},avatar:{title:`Profilbild ändern`,updated:`Profilbild aktualisiert`,updateFailed:`Profilbild konnte nicht aktualisiert werden`,saving:`Wird gespeichert...`,label:`Avatar`,uploadAvatarImage:`Avatar-Bild hochladen`,dragAndDrop:`Bild hierher ziehen oder zum Durchsuchen klicken`,chooseImage:`Bild auswählen`,uploading:`Wird hochgeladen...`,enterImageUrl:`Oder Bild-URL eingeben`,supportedFormats:`Unterstützt: JPG, PNG, GIF, WebP (max. 2 MB). Quadratische Bilder funktionieren am besten.`,customAvatar:`Benutzerdefiniertes Avatar-Bild`,clickToChange:`Zum Ändern oder Entfernen klicken`,removed:`Avatar entfernt`,uploaded:`Avatar erfolgreich hochgeladen`,invalidFile:`Bitte wählen Sie eine gültige Bilddatei aus`,fileTooLarge:`Die Avatar-Bildgröße muss kleiner als 2 MB sein`,readFailed:`Bilddatei konnte nicht gelesen werden`,uploadFailed:`Avatar-Bild konnte nicht hochgeladen werden`},profile:{noEmail:`Keine E-Mail angegeben`}},settings:JSON.parse(`{"title":"Einstellungen","tabs":{"appearance":"Darstellung","model":"Modell","systemMessage":"Systemnachricht","plugins":"Plugins","search":"Suche","generation":"Generierung","documents":"Dokumente","tts":"Sprache","imageGen":"Bilder","data":"Daten","shortcuts":"Tastenkürzel","about":"Über","sessions":"Sitzungen","apiKeys":"API-Schlüssel"},"appearance":{"title":"Darstellung","language":{"title":"Sprache","description":"Wählen Sie Ihre bevorzugte Sprache"},"theme":{"title":"Design","light":"Hell","dark":"Dunkel","amoled":"Reines Schwarz","system":"System"},"accent":{"title":"Akzentfarbe","custom":"Benutzerdefinierte Farbe","useColor":"{{color}} als Akzent verwenden","behaviorTitle":"Oberflächenpalette","behaviorDescription":"Wähle, ob die Akzentfarbe nur Bedienelemente hervorhebt oder die gesamte helle bzw. dunkle Oberfläche anpasst.","defaultStyle":"Standard","defaultStyleDescription":"Neutrale Flächen im hellen und dunklen Design beibehalten.","adaptedStyle":"An Akzent anpassen","adaptedStyleDescription":"Flächen, Rahmen und Text mit der Akzentfarbe einfärben."},"chatInterface":{"title":"Chat-Oberfläche","showUsername":"Benutzername anzeigen","showUsernameDescription":"Benutzernamen in Chat-Nachrichten anzeigen","followUpSuggestions":"Folgevorschläge","followUpSuggestionsDescription":"Nach jeder Antwort schnelle Rückfragen vorschlagen","hapticFeedback":"Haptisches Feedback (Android)","hapticFeedbackDescription":"Dezente Vibrationen für wichtige mobile Aktionen verwenden"},"background":{"title":"Hintergrundbild","enable":"Hintergrundbild aktivieren","enableDescription":"Benutzerdefiniertes Hintergrundbild mit Unschärfe-Effekt anzeigen","blur":"Unschärfe","opacity":"Deckkraft","upload":"Hintergrundbild hochladen","dragDrop":"Bild hierher ziehen oder klicken zum Durchsuchen","chooseImage":"Bild auswählen"}},"saveSettings":"Einstellungen speichern","model":{"title":"Modelleinstellungen","defaultModel":"Standardmodell","defaultModelDescription":"Dieses Modell wird standardmäßig für neue Gespräche verwendet","selectModel":"Modell auswählen","specializedModels":"Spezialisierte Modelle","visionModel":"Vision-Modell","selectVisionModel":"Aktuelles Chat-Modell verwenden","visionModelDescription":"Wird automatisch verwendet, sobald der ausgehende Chat-Kontext Bilder enthält. Wählen Sie ein Modell, das Bildeingaben unterstützt.","visionModelUpdateFailed":"Vision-Modell konnte nicht aktualisiert werden: {{error}}","visionModelNoProvider":"Dieses Vision-Modell hat keine Anbieter-Identität. Wählen Sie ein verfügbares Modell aus.","persona":"Persona","updateAll":"Alle Modelle aktualisieren","updateAllDescription":"Nach Updates suchen und neueste Versionen aller installierten Modelle herunterladen","updateAllButton":"Alle aktualisieren","updating":"Modelle werden aktualisiert...","currentModelInfo":"Aktuelle Modell-Info","name":"Name","size":"Größe","family":"Familie","format":"Format","status":"Status","statusStarting":"Wird gestartet...","statusComplete":"Abgeschlossen","statusError":"Fehler","bulkOperations":"Massenoperationen","autoTitle":{"title":"Automatische Titelgenerierung","enable":"Auto-Titel aktivieren","enableDescription":"Automatisch Titel für neue Gespräche generieren","taskModel":"Aufgabenmodell","selectTaskModel":"Aufgabenmodell auswählen","taskModelDescription":"Modell für die Generierung von Gesprächstiteln"},"updatingModel":"{{name}} wird aktualisiert ({{current}}/{{total}})","modelsProgress":"{{current}} von {{total}} Modellen"},"systemMessage":{"title":"Systemnachricht","description":"Legen Sie eine benutzerdefinierte Systemnachricht fest, die für alle neuen Gespräche verwendet wird.","placeholder":"Systemnachricht eingeben...","saved":"Systemnachricht gespeichert","saveFailed":"Systemnachricht konnte nicht gespeichert werden"},"plugins":{"title":"Plugins","description":"Verwalten Sie Ihre installierten Plugins","providerConnections":"Anbieter-Verbindungen","providerConnectionsDescription":"Verbinden, konfigurieren und inspizieren Sie Modellanbieter über Plugins.","providers":"Anbieter","searchProviders":"Anbieter suchen","noProvidersFound":"Keine Anbieter entsprechen Ihrer Suche.","selectProvider":"Anbieter auswählen","selectProviderDescription":"Wählen Sie einen Anbieter, um seine Verbindung und seinen Modellkatalog zu inspizieren.","addNew":"Neues Plugin hinzufügen","upload":"Plugin hochladen","addJson":"JSON hinzufügen","uploading":"Wird hochgeladen...","jsonPlaceholder":"Plugin-JSON-Konfiguration einfügen...","install":"Plugin installieren","noPlugins":"Keine Plugins installiert","noPluginsDescription":"Fügen Sie ein Plugin hinzu, um die Funktionalität zu erweitern","loading":"Plugins werden geladen...","installed":"Installierte Plugins","active":"Aktive Plugins","activeLabel":"Aktiv","inactive":"Inaktiv","activate":"Aktivieren","deactivate":"Deaktivieren","models":"Modelle","apiKeySet":"API-Schlüssel gesetzt","apiKeyConfiguration":"API-Schlüssel-Konfiguration","apiKeyDescription":"Persönlichen API-Schlüssel für {{name}} speichern.","apiKeyEnvAlternative":"Alternativ können Sie die","environmentVariable":"Umgebungsvariable","apiKeyConfigured":"API-Schlüssel konfiguriert","apiKeyPlaceholder":"API-Schlüssel eingeben...","saveApiKey":"API-Schlüssel speichern","showApiKey":"API-Schlüssel anzeigen","hideApiKey":"API-Schlüssel verbergen","configure":"Konfigurieren","providerSettings":"Anbieter-Einstellungen","status":"Status","defaultEndpoint":"Standard-Endpunkt","modelCatalog":"Modellkatalog","modelCatalogDescription":"Ermittelte und konfigurierte Modelle für diesen Anbieter und seine Fähigkeiten.","refreshModels":"Modelle aktualisieren","noModelsConfigured":"Für diesen Anbieter sind keine Modelle konfiguriert.","modelId":"Modell-ID","capabilities":"Fähigkeiten","modelCatalogUpdated":"Modellkatalog aktualisiert: {{count}} Modelle.","modelCatalogUnchanged":"Modellkatalog ist bereits auf dem neuesten Stand.","modelCatalogNeedsApiKey":"Fügen Sie einen gültigen API-Schlüssel für diesen Anbieter hinzu, um seine Live-Modellliste zu laden.","modelCatalogUnavailable":"Modellliste des Anbieters konnte nicht geladen werden.","modelCatalogRefreshFailed":"Aktualisierung des Modellkatalogs fehlgeschlagen","capability":{"chat":"Chat","embedding":"Embedding","image":"Bild","speech":"Sprache","transcription":"Transkription"},"exportPlugin":"Plugin exportieren","deletePlugin":"Plugin löschen","apiKey":{"title":"API-Schlüssel","placeholder":"API-Schlüssel eingeben","save":"Schlüssel speichern","remove":"Schlüssel entfernen","configured":"API-Schlüssel konfiguriert","notConfigured":"API-Schlüssel erforderlich","saved":"API-Schlüssel erfolgreich gespeichert","removed":"API-Schlüssel entfernt","saveFailed":"API-Schlüssel konnte nicht gespeichert werden","removeFailed":"API-Schlüssel konnte nicht entfernt werden","enterKey":"Bitte geben Sie einen API-Schlüssel ein"},"variables":"Variables"},"generation":{"title":"Generierungsoptionen","description":"Konfigurieren Sie, wie die KI Antworten generiert","scopeLabel":"Gilt für","scopeAll":"Alle Modelle","scopeModel":"Nur {{model}}","scopeAllHint":"Die Werte, die jedes Modell verwendet, sofern es keine eigenen hat.","scopeModelHint":"Wird nur für dieses Modell gespeichert und hat Vorrang vor den allgemeinen Werten.","advancedSettings":"Erweiterte Generierungseinstellungen","advancedSettingsDescription":"Sampling, Token-Limits, Kontext, Strafen und Stopp-Sequenzen","coreParameters":"Kernparameter","temperature":"Temperatur","temperatureDescription":"Steuert die Zufälligkeit. Niedrigere Werte sind fokussierter, höhere kreativer.","topP":"Top P","topPDescription":"Steuert die Vielfalt durch Nucleus-Sampling. Niedrigere Werte fokussieren auf wahrscheinliche Token.","topK":"Top K","topKDescription":"Begrenzt die Token-Auswahl auf die K wahrscheinlichsten. Auf 0 setzen zum Deaktivieren.","minP":"Min P","minPDescription":"Minimale Wahrscheinlichkeitsschwelle für die Token-Auswahl.","generationControl":"Generierungssteuerung","maxTokens":"Max. Token","maxTokensDescription":"Maximale Anzahl der zu generierenden Token in der Antwort.","repeatPenalty":"Wiederholungsstrafe","repeatPenaltyDescription":"Bestraft wiederholte Token. Höhere Werte reduzieren Wiederholungen.","contextLength":"Kontextlänge","contextLengthDescription":"Maximale Kontextfenstergröße für Gespräche.","seed":"Seed","optional":"optional","random":"Zufällig","seedDescription":"Legen Sie einen bestimmten Seed für reproduzierbare Ausgaben fest.","advancedOptions":"Erweiterte Optionen","presencePenalty":"Anwesenheitsstrafe","presencePenaltyDescription":"Bestraft Token, die im Kontext erscheinen.","frequencyPenalty":"Häufigkeitsstrafe","frequencyPenaltyDescription":"Bestraft häufig verwendete Token.","stopSequences":"Stoppsequenzen","commaSeparated":"kommagetrennt","stopSequencesDescription":"Benutzerdefinierte Token, die die Generierung stoppen, wenn sie auftreten.","resetDefaults":"Auf Standardwerte zurücksetzen","saveOptions":"Optionen speichern","embeddingSettings":"Embedding-Einstellungen","enableEmbeddings":"Dokument-Embeddings aktivieren","thinking":"Nachdenken","thinkingDescription":"Standardmäßiger Denkaufwand für Antworten. Jeder Chat kann ihn überschreiben.","thinkingLevels":{"default":"Modellvorgabe","defaultWith":"Modellvorgabe ({{level}})","off":"Aus","on":"An","low":"Niedrig","medium":"Mittel","high":"Hoch"}},"documents":{"title":"Dokumenteinstellungen","embeddings":{"title":"Embeddings","enable":"Dokument-Embeddings aktivieren","model":"Embedding-Modell","modelDescription":"Wählen Sie das Modell für Dokument-Embeddings","chunkSize":"Chunk-Größe","chunkSizeInTokens":"(in Token)","chunkSizeDescription":"Größe der Textabschnitte für Embeddings","chunkOverlap":"Chunk-Überlappung","chunkOverlapInTokens":"(in Token)","chunkOverlapDescription":"Überlappung zwischen aufeinanderfolgenden Chunks","similarityThreshold":"Ähnlichkeitsschwelle","similarityDescription":"Minimaler Ähnlichkeitswert für Ergebnisse","status":"Embedding-Status","statusLabel":"Status","available":"Verfügbar","unavailable":"Nicht verfügbar","chunksWithEmbeddings":"Chunks mit Embeddings","coverage":"Abdeckung","regenerate":"Embeddings neu generieren","regenerating":"Wird neu generiert..."},"collections":{"title":"Wissenssammlungen","description":"Gruppiere Dokumente in Sammlungen und hänge sie an beliebige Chats an.","namePlaceholder":"Name der Sammlung","create":"Erstellen","none":"Keine Sammlung","deleteConfirm":"Diese Sammlung löschen? Die Dokumente darin bleiben erhalten.","createFailed":"Sammlung konnte nicht erstellt werden","deleteFailed":"Sammlung konnte nicht gelöscht werden","assignFailed":"Dokument konnte nicht verschoben werden","share":"Sammlung teilen","shared":"geteilt"},"library":{"title":"Hochgeladene Dokumente","description":"Dokumente, die als Chat-Kontext verfügbar sind. Ein im Chat hochgeladenes Dokument bleibt in seiner Unterhaltung; ein Dokument ohne Chat und Sammlung fließt in jede Unterhaltung ein.","empty":"Noch keine Dokumente hochgeladen.","chatScope":"Ein Chat","everyChatScope":"Alle Chats","deleteConfirm":"„{{name}}“ löschen? Es verschwindet aus allen Chats.","deleteFailed":"Dokument konnte nicht gelöscht werden"}},"tts":{"title":"Text-zu-Sprache","description":"Konfigurieren Sie Text-zu-Sprache-Einstellungen für das Vorlesen von Nachrichten","loadingProviders":"TTS-Anbieter werden geladen...","noProviders":"Keine TTS-Anbieter","noProvidersDescription":"Konfigurieren Sie ein Plugin mit TTS-Unterstützung, um Text-zu-Sprache zu aktivieren","enable":"TTS aktivieren","enableDescription":"Text-zu-Sprache für Assistenten-Nachrichten erlauben","autoPlay":"Automatische Wiedergabe","autoPlayDescription":"Neue Assistenten-Nachrichten automatisch vorlesen","streamSentences":"Natürliche Stapelwiedergabe","streamSentencesDescription":"Mehrere phrasengerecht aufgeteilte Abschnitte im Voraus erzeugen und als eine zusammenhängende Antwort abspielen.","voiceConfiguration":"Sprachkonfiguration","model":"TTS-Modell","modelDescription":"Wählen Sie das Modell für die Text-zu-Sprache-Generierung","voice":"Stimme","selectVoice":"Stimme auswählen","voiceDescription":"Wählen Sie die Stimme für Text-zu-Sprache","providerDefaultVoice":"Dieses Modell verwendet seine Standardstimme, sofern du bei der Spracherzeugung keine Referenzaufnahme bereitstellst.","voiceCloningAvailable":"Stimmklonen verfügbar","voiceCloningAvailableDescription":"Erstelle unter Vorstellen → Audio Sprache aus einer mit Einwilligung aufgenommenen Referenz und ihrem exakten Transkript. Du kannst die Referenz optional als wiederverwendbare Stimme speichern.","savedVoiceOption":"{{name}} (gespeicherte Stimme)","savedVoices":"Gespeicherte Stimmen","loadingSavedVoices":"Gespeicherte Stimmen werden geladen…","deleteSavedVoice":"Gespeicherte Stimme {{name}} löschen","deleteSavedVoiceConfirm":"Gespeicherte Stimme „{{name}}“ löschen? Ihre Referenzaufnahme und ihr Transkript werden entfernt.","savedVoiceDeleted":"Gespeicherte Stimme gelöscht","savedVoicePreferenceCleanupFailed":"Gespeicherte Stimme gelöscht, aber die Spracheinstellungen konnten nicht zurückgesetzt werden","savedVoiceDeleteFailed":"Gespeicherte Stimme konnte nicht gelöscht werden","speed":"Geschwindigkeit","speedSlow":"0,5x","speedNormal":"1,0x","speedFast":"2,0x","availableProviders":"Verfügbare Anbieter","models":"Modelle","test":"Testen","testing":"Wird getestet...","stop":"Stopp","consentRevoked":"Einwilligung widerrufen","consentExpired":"Einwilligung abgelaufen","transferCount":"{{total}}× an den Anbieter gesendet","consentExpires":"Einwilligung bis {{date}}","revokeSavedVoice":"Einwilligung für {{name}} widerrufen","revokeSavedVoiceConfirm":"Einwilligung für „{{name}}“ widerrufen? Die gespeicherte Stimme kann nicht mehr verwendet werden, der Einwilligungsnachweis bleibt erhalten.","savedVoiceRevoked":"Einwilligung widerrufen","savedVoiceRevokeFailed":"Einwilligung konnte nicht widerrufen werden"},"imageGen":{"title":"Bildgenerierung","description":"Konfigurieren Sie Einstellungen und Anbieter für die Bildgenerierung","loadingProviders":"Bildgenerierungs-Anbieter werden geladen...","noProviders":"Keine Bildgenerierungs-Anbieter","noProvidersDescription":"Konfigurieren Sie ein Plugin mit Bildgenerierungs-Unterstützung","enable":"Bildgenerierung aktivieren","enableDescription":"KI-Bildgenerierung in Gesprächen erlauben","configuration":"Konfiguration","model":"Modell","modelDescription":"Wählen Sie das Modell für die Bildgenerierung","size":"Größe","sizeDescription":"Auflösung der generierten Bilder","quality":"Qualität","qualityDescription":"Qualitätsstufe der generierten Bilder","style":"Stil","styleDescription":"Stilvorlage für generierte Bilder","availableProviders":"Verfügbare Anbieter","models":"Modelle"},"data":{"title":"Datenverwaltung","export":"Daten exportieren","exportDescription":"Laden Sie ein portables Archiv mit Einstellungen, Chat-Ordnern, Sitzungen und Nachrichten, Notizen, Wissenssammlungen und extrahiertem Dokumenttext herunter.","archiveScopeV3":"Enthält Einstellungen, Chats, Ordner, Notizen, Wissenssammlungen und extrahierten Dokumenttext. Ausgeschlossen sind Konten und Geheimnisse, biometrisch geklonte Stimmen, generierte Medien, Personas und Erinnerungen sowie Work-Daten oder -Volumes.","exportAll":"Alle Daten exportieren","import":"Daten importieren","importDescription":"Importieren Sie Daten aus einem früheren Export.","importData":"Daten importieren","importing":"Wird importiert...","clearSessions":"Sitzungen löschen","clearSessionsDescription":"Alle Chat-Sitzungen löschen. Diese Aktion kann nicht rückgängig gemacht werden.","clearAll":"Alle löschen","clearing":"Wird gelöscht...","importOptions":"Import-Optionen","importOptionsDescription":"Wählen Sie, wie vorhandene Daten behandelt werden sollen","validatingArchive":"Archiv wird geprüft und Änderungen werden berechnet…","archiveValidationFailed":"Archivprüfung fehlgeschlagen","preflightReport":"Importvorschau","preflightIncoming":"{{folders}} Ordner · {{sessions}} Chats · {{messages}} Nachrichten · {{notes}} Notizen · {{collections}} Sammlungen · {{documents}} Dokumente · {{chunks}} Abschnitte","preflightRemappedIds":"{{count}} IDs werden zum Schutz der Daten eines anderen Kontos neu zugeordnet.","skipDuplicates":"Duplikate überspringen","overwrite":"Vorhandene überschreiben","importResults":"Import-Ergebnisse","preferences":"Einstellungen","imported":"Importiert","failed":"Fehlgeschlagen","sessions":"Sitzungen","sessionFolders":"Sitzungsordner","notes":"Notizen","knowledgeCollections":"Wissenssammlungen","importedLabel":"importiert","overwrittenLabel":"überschrieben","skipped":"übersprungen","toCreate":"zu erstellen","toOverwrite":"zu überschreiben","toSkip":"zu überspringen","documents":"Dokumente","warnings":"Warnungen","refreshAfterImportFailed":"Die Daten wurden importiert, aber einige Ansichten konnten nicht aktualisiert werden. Laden Sie Libre WebUI neu, um alle Änderungen zu sehen.","errors":"Fehler","archivedChats":{"title":"Archivierte Chats","empty":"Keine archivierten Chats","unarchive":"Wiederherstellen"}},"about":{"title":"Über","versionLabel":"Version","ollama":{"title":"Ollama-Status","version":"Version","healthy":"Funktionsfähig","unhealthy":"Nicht funktionsfähig"},"stats":{"models":"Modelle","sessions":"Sitzungen"},"features":{"privacy":{"title":"Privatsphäre zuerst","description":"Ihre Daten bleiben auf Ihrem Gerät"},"openSource":{"title":"Open Source","description":"Freie und quelloffene Software"},"localInference":{"title":"Lokale Inferenz","description":"KI-Modelle lokal mit Ollama ausführen"}},"openSourceBy":"Open Source von {{company}}","links":{"title":"Links","github":"GitHub","githubDescription":"Quellcode ansehen und beitragen","website":"Website","websiteDescription":"Besuchen Sie unsere Website","documentation":"Dokumentation","reportIssue":"Probleme melden","reportIssueDescription":"Fehlerberichte & Funktionsanfragen","documentationDescription":"Anleitungen, Tutorials und API-Referenz","forgejo":"Forgejo-Spiegel","forgejoDescription":"Selbst gehostetes Forgejo-Repository","sponsor":"Sponsor","sponsorDescription":"Das Projekt finanziell unterstützen","star":"Stern auf GitHub","starDescription":"Ein Stern hilft anderen, das Projekt zu entdecken"},"version":"Version {{version}}","updates":{"checking":"Suche nach Updates…","upToDate":"Sie verwenden die neueste Version","updateAvailable":"Version {{version}} ist verfügbar","ahead":"Dem neuesten Release voraus ({{version}})","checkFailed":"Updates konnten nicht geprüft werden","viewChangelog":"Änderungsprotokoll anzeigen"}},"groups":{"general":"Allgemein","chat":"Chat","media":"Sprache & Bilder","connections":"Verbindungen"},"search":{"title":"Websuche","description":"Im Web über eine selbst gehostete SearXNG-Instanz suchen. Wenn aktiviert, bietet der Chat einen Suchschalter, und Work-Aufgaben mit Netzwerkzugriff können suchen.","enableLabel":"Websuche aktivieren","enableDescription":"Websuche für Chats und Work-Aufgaben anbieten. Suchen laufen serverseitig gegen die konfigurierte Instanz.","urlLabel":"SearXNG-URL","urlDescription":"Basis-URL der SearXNG-Instanz, erreichbar vom Server. Der mitgelieferte private Deploy-Stack stellt http://searxng:8080 bereit.","maxResultsLabel":"Ergebnisse pro Suche","maxResultsDescription":"Wie viele Ergebnisse in eine Antwort oder einen Tool-Aufruf einfließen, 1-100.","maxResultsInvalid":"Ergebnisse pro Suche müssen zwischen 1 und 100 liegen.","safeSearchLabel":"SafeSearch","safeSearchDescription":"Die Suchmaschine bitten, explizite Ergebnisse zu filtern.","test":"Verbindung testen","testing":"Wird getestet…","testOk":"Suche funktioniert — {{results}} Ergebnisse erhalten","testFailed":"Suchtest fehlgeschlagen","save":"Speichern","saved":"Sucheinstellungen gespeichert","saveFailed":"Sucheinstellungen konnten nicht gespeichert werden"},"compaction":{"title":"Kontextverdichtung","description":"Wenn eine Unterhaltung den Token-Schwellwert überschreitet, fasst der Server ihre älteren Nachrichten zusammen und behält nur die neuesten wörtlich. Gilt für alle Benutzer auf diesem Server.","thresholdLabel":"Token-Schwellwert","thresholdDescription":"Geschätzte Kontext-Tokens, ab denen ältere Verläufe zusammengefasst werden, 500-1.000.000.","thresholdInvalid":"Der Token-Schwellwert muss zwischen 500 und 1.000.000 liegen.","keepRecentLabel":"Behaltene aktuelle Nachrichten","keepRecentDescription":"Wie viele der neuesten Nachrichten immer wörtlich erhalten bleiben, 2-200.","keepRecentInvalid":"Die Anzahl behaltener aktueller Nachrichten muss zwischen 2 und 200 liegen.","modelLabel":"Modell für die Verdichtung","modelDescription":"Das Modell, das die Zusammenfassungen schreibt. Ohne Auswahl wird das Modell der jeweiligen Sitzung verwendet.","sessionModelOption":"Modell der Sitzung verwenden","promptLabel":"Eigener Zusammenfassungs-Prompt","promptPlaceholder":"Leer lassen, um den integrierten Prompt zu verwenden","promptDescription":"Die Vorlagenvariablen {{previousSummaryVariable}} und {{messagesVariable}} werden durch die vorherige Zusammenfassung und die zusammenzufassenden Nachrichten ersetzt.","saved":"Einstellungen zur Verdichtung gespeichert","saveFailed":"Die Einstellungen zur Verdichtung konnten nicht gespeichert werden","loadFailed":"Die Einstellungen zur Verdichtung konnten nicht geladen werden"},"sessions":{"title":"Sitzungen","description":"Überall, wo dieses Konto angemeldet ist. Das Abmelden einer Sitzung wirkt sofort; eine erneute Anmeldung stellt den Zugriff wieder her.","signOutOthers":"Andere Sitzungen abmelden","signingOutOthers":"Wird abgemeldet…","signOut":"Abmelden","signingOut":"Wird abgemeldet…","revoked":"Sitzung abgemeldet.","revokeFailed":"Die Sitzung konnte nicht abgemeldet werden.","othersRevoked":"Andere Sitzungen abgemeldet: {{count}}","loadFailed":"Die Sitzungen konnten nicht geladen werden.","empty":"Keine Sitzungen gefunden.","current":"Diese Sitzung","revokedBadge":"Abgemeldet","unknownDevice":"Unbekanntes Gerät","createdAt":"Angemeldet","lastSeenAt":"Zuletzt aktiv","expiresAt":"Läuft ab"},"apiKeys":{"title":"API-Schlüssel","description":"Zugriffsbeschränkte Tokens für Skripte und Integrationen. Jeder Schlüssel hat nur Zugriff auf die von Ihnen ausgewählten Scopes.","newKeyTitle":"Ihr neuer API-Schlüssel","copy":"Kopieren","copied":"In die Zwischenablage kopiert.","copyFailed":"Kopieren fehlgeschlagen.","showOnceWarning":"Kopieren Sie ihn jetzt – er wird nicht erneut angezeigt.","dismiss":"Fertig","createTitle":"Schlüssel erstellen","nameLabel":"Name","namePlaceholder":"z. B. CI-Pipeline","nameRequired":"Geben Sie dem Schlüssel einen Namen.","expiryLabel":"Läuft ab in Tagen (optional)","expiryPlaceholder":"Nie","expiryInvalid":"Der Ablauf muss eine ganze Anzahl von Tagen sein.","scopesLabel":"Scopes","scopesRequired":"Wählen Sie mindestens einen Scope aus.","create":"Schlüssel erstellen","creating":"Wird erstellt…","created":"API-Schlüssel erstellt.","createFailed":"Der API-Schlüssel konnte nicht erstellt werden.","revoke":"Widerrufen","revoking":"Wird widerrufen…","revoked":"API-Schlüssel widerrufen.","revokeFailed":"Der API-Schlüssel konnte nicht widerrufen werden.","revokedBadge":"Widerrufen","loadFailed":"Die API-Schlüssel konnten nicht geladen werden.","empty":"Noch keine API-Schlüssel.","createdAt":"Erstellt","lastUsedAt":"Zuletzt verwendet","expiresAt":"Läuft ab","neverExpires":"Nie"}}`),models:{title:`Modelle`,subtitle:`Ollama-Modelle herunterladen, verwalten und überwachen`,installed:`Installierte Modelle`,available:`Verfügbare Modelle`,pull:`Modell herunterladen`,pulling:`Wird heruntergeladen...`,delete:`Modell löschen`,deleting:`Wird gelöscht...`,size:`Größe`,modified:`Geändert`,family:`Familie`,parameters:`Parameter`,quantization:`Quantisierung`,noModels:`Keine Modelle installiert`,pullFirst:`Laden Sie ein Modell herunter, um zu beginnen`,noModelsFound:`Keine Modelle gefunden`},personas:{title:`Personas`,create:`Persona erstellen`,edit:`Persona bearbeiten`,delete:`Persona löschen`,name:`Name`,description:`Beschreibung`,systemPrompt:`System-Prompt`,model:`Modell`,avatar:`Avatar`,background:`Hintergrund`,noPersonas:`Keine Personas erstellt`,createFirst:`Erstellen Sie Ihre erste Persona, um Ihr Chat-Erlebnis anzupassen`},gallery:{title:`Galerie`,subtitle:`Ihre KI-generierte Bildergalerie`,imageCount:`{{count}} Bilder`,generate:`Bild generieren`,generateDescription:`Bilder mit KI erstellen`,generating:`Wird generiert...`,prompt:`Prompt`,promptPlaceholder:`Beschreiben Sie das Bild, das Sie generieren möchten...`,noImages:`Noch keine Bilder generiert`,download:`Herunterladen`,delete:`Löschen`,regenerate:`Neu generieren`,model:`Modell`,size:`Größe`,quality:`Qualität`,created:`Erstellt`},errors:{generic:`Ein Fehler ist aufgetreten`,network:`Netzwerkfehler. Bitte überprüfen Sie Ihre Verbindung.`,unauthorized:`Sie sind nicht berechtigt, diese Aktion auszuführen.`,notFound:`Die angeforderte Ressource wurde nicht gefunden.`,serverError:`Serverfehler. Bitte versuchen Sie es später erneut.`,validation:`Bitte überprüfen Sie Ihre Eingabe und versuchen Sie es erneut.`},keyboard:{title:`Tastenkombinationen`,toggleSidebar:`Seitenleiste umschalten`,openSettings:`Einstellungen öffnen`,toggleDarkMode:`Dunkelmodus umschalten`,showShortcuts:`Tastenkombinationen anzeigen`,closeModals:`Dialoge schließen`,groups:{navigation:`Navigation`,general:`Allgemein`,chat:`Chat`,workspace:`Arbeitsbereich`},actions:{sendMessage:`Nachricht senden`,newLine:`Neue Zeile in Nachricht`,saveEdit:`Bearbeitete Nachricht speichern`,cancelEdit:`Bearbeitung abbrechen`,saveFile:`Datei speichern`,formatCode:`Code formatieren`},description:`Alle Tastenkombinationen in Libre WebUI.`,newChat:`Neuer Chat`,newWork:`Neue Work-Sitzung`,openPalette:`Befehlspalette öffnen`},modelManager:{title:`Modelle`,loading:`Modelle werden geladen...`,systemStatus:{online:`Ollama Online`,offline:`Ollama Offline`,models:`Modell`,models_plural:`Modelle`,running:`läuft`,vram:`VRAM`},sections:{pull:`Neues Modell herunterladen`,library:`Bibliothek durchsuchen`,huggingface:`HuggingFace Hub`,running:`Laufende Modelle`,local:`Lokale Modelle`,advanced:`Erweiterte Aktionen`,catalog:`Modellkatalog`},catalog:{searchPlaceholder:`Modelle nach Name oder Anbieter suchen...`,noModels:`Es sind noch keine Modelle verfügbar.`,empty:`Keine Modelle passen zu Ihrer Suche.`,providerOllama:`Ollama`,hidden:`Ausgeblendet`,visibilityFailed:`Die Sichtbarkeit des Modells konnte nicht geändert werden.`,filterAll:`Alle Modelle`,filterLocal:`Lokal`,filterProviders:`Anbieter`,filterHidden:`Ausgeblendet`,enableAll:`Angezeigte aktivieren`,disableAll:`Angezeigte deaktivieren`,rename:`Name und Bild bearbeiten`,setPicture:`Bild festlegen`,clearPicture:`Bild entfernen`,pictureInvalid:`Wählen Sie eine Bilddatei.`,pictureTooLarge:`Bilder müssen kleiner als 192 KB sein.`,saving:`Wird gespeichert…`,hide:`Vor Benutzern ausblenden`,show:`Benutzern anzeigen`},pull:{placeholder:`Modellname eingeben (z.B. llama3.2:3b, deepseek-r1:14b)`,button:`Herunterladen`,cancel:`Abbrechen`,popular:`Beliebte Modelle:`,browseAll:`Alle Modelle auf ollama.com durchsuchen`,success:`Modell {{name}} erfolgreich heruntergeladen`,cancelled:`Modell-Download abgebrochen`,failed:`Modell konnte nicht heruntergeladen werden`,enterName:`Bitte geben Sie einen Modellnamen ein`,restricted:`Die Modellinstallation ist in dieser Instanz auf Administratoren beschränkt.`},progress:{starting:`Wird initialisiert...`,pulling:`Modell wird heruntergeladen...`,pullingLayer:`Herunterladen`,verifying:`Integrität wird überprüft...`,verifyingDigest:`sha256-Digest wird überprüft`,writing:`Manifest wird geschrieben...`,cleaning:`Wird aufgeräumt...`},library:{available:`verfügbar`,search:`Modelle suchen...`,noResults:`Keine Modelle gefunden, die Ihren Kriterien entsprechen`,installed:`Installiert`,more:`+{{count}} weitere`,refresh:`Bibliothek aktualisieren`},huggingface:{browseAll:`Alle auf HuggingFace durchsuchen`,checkingGguf:`Suche nach GGUF-Dateien...`,noGgufAvailable:`Keine GGUF-Dateien für direkten Ollama-Pull verfügbar`,ggufFilesCount:`GGUF-Dateien ({{count}}) - Direkt zu Ollama pullen`,noModelsFound:`Keine Modelle gefunden`,noResults:`Keine Modelle gefunden. Versuchen Sie, Ihre Suche oder Filter anzupassen.`,browseAllLink:`Alle durchsuchen`,search:`HuggingFace-Modelle suchen...`,by:`von`,gated:`Zugriffsbeschränkt`,viewOnHF:`Auf HuggingFace ansehen`,sortDownloads:`Downloads`,sortLikes:`Likes`,sortRecent:`Aktuell`,taskTextGeneration:`Textgenerierung`,taskTextToSpeech:`Text-zu-Sprache`,taskTextToImage:`Text-zu-Bild`,taskSpeechRecognition:`Spracherkennung`,tasks:{textGen:`Textgenerierung`,tts:`Text-zu-Sprache`,image:`Text-zu-Bild`,stt:`Spracherkennung`},sort:{downloads:`Meiste Downloads`,likes:`Beliebteste`,recent:`Kürzlich aktualisiert`}},local:{noModels:`Noch keine Modelle installiert`,pullToStart:`Laden Sie oben ein Modell herunter, um zu beginnen`,installed:`installiert`,running:`Läuft`,info:`Info`,copy:`Kopieren`,delete:`Löschen`,deleteConfirm:`Sind Sie sicher, dass Sie das Modell "{{name}}" löschen möchten?`,deleteSuccess:`Modell {{name}} erfolgreich gelöscht`,deleteFailed:`Modell konnte nicht gelöscht werden`},advanced:{createModel:`Modell erstellen`,fromModelfile:`Aus Modelfile`,copyModel:`Modell kopieren`,duplicateExisting:`Vorhandenes duplizieren`,testEmbeddings:`Embeddings testen`,generateVectors:`Vektoren generieren`,healthCheck:`Gesundheitscheck`,testConnection:`Verbindung testen`,healthy:`Ollama ist funktionsfähig!`},modals:{details:{title:`Modelldetails`,info:`Modell-Informationen`,family:`Familie`,parameters:`Parameter`,quantization:`Quantisierung`,format:`Format`,systemPrompt:`System-Prompt`,template:`Vorlage`,license:`Lizenz`,modelfile:`Modelfile`,noDetails:`Keine Details verfügbar`},copy:{title:`Modell kopieren`,source:`Quellmodell`,selectModel:`Modell auswählen...`,newName:`Neuer Modellname`,placeholder:`z.B. mein-benutzerdefiniertes-modell`,copying:`Wird kopiert...`,button:`Modell kopieren`,success:`Modell nach {{name}} kopiert`,failed:`Modell konnte nicht kopiert werden`,enterBoth:`Bitte geben Sie sowohl Quell- als auch Zielnamen ein`},create:{title:`Benutzerdefiniertes Modell erstellen`,name:`Modellname`,namePlaceholder:`z.B. mein-assistent`,modelfile:`Modelfile`,modelfilePlaceholder:`FROM llama3.2
2
+ SYSTEM Du bist ein hilfreicher Assistent.`,see:`Siehe`,docs:`Modelfile-Dokumentation`,docsLink:`zur Syntax-Referenz`,creating:`Wird erstellt...`,button:`Modell erstellen`,success:`Modell {{name}} erfolgreich erstellt`,failed:`Modell konnte nicht erstellt werden`,enterBoth:`Bitte geben Sie Modellname und Modelfile-Inhalt ein`},embeddings:{title:`Embeddings testen`,model:`Embedding-Modell`,selectModel:`Modell auswählen...`,recommended:`Empfohlen: nomic-embed-text, mxbai-embed-large`,input:`Eingabetext`,placeholder:`Text eingeben, für den Embeddings generiert werden sollen...`,generating:`Wird generiert...`,button:`Embeddings generieren`,result:`Ergebnis ({{count}} Dimensionen)`,success:`{{count}}-dimensionaler Embedding-Vektor generiert`,failed:`Embeddings konnten nicht generiert werden`,enterBoth:`Bitte wählen Sie ein Modell und geben Sie Text ein`}}},personaManager:{title:`Personas`,subtitle:`Erstellen und verwalten Sie KI-Personas mit benutzerdefinierten Persönlichkeiten, Erinnerungen und Verhaltensweisen`,loading:`Personas werden geladen...`,createButton:`Persona erstellen`,importExport:`Import/Export`,stats:{title:`Ihre Personas`,count:`{{count}} Persona erstellt`,count_plural:`{{count}} Personas erstellt`},empty:{title:`Noch keine Personas`,description:`Erstellen Sie Ihre erste Persona für personalisierte KI-Interaktionen`,button:`Erste Persona erstellen`},deleteConfirm:`Sind Sie sicher, dass Sie "{{name}}" löschen möchten?`,deleteSuccess:`Persona "{{name}}" erfolgreich gelöscht`,downloadSuccess:`Persona "{{name}}" erfolgreich heruntergeladen`,failed:`Persona konnte nicht {{action}} werden`},personaForm:{title:{create:`Neue Persona erstellen`,edit:`Persona bearbeiten`},subtitle:{create:`Erstellen Sie eine neue KI-Persona mit benutzerdefinierter Persönlichkeit, Erinnerungssystemen und adaptiven Lernfähigkeiten`,edit:`Passen Sie Ihre KI-Persona mit fortgeschrittenen Erinnerungen, adaptivem Lernen und intelligenten Parametern an`},loading:`Formular wird geladen...`,saved:`Gespeichert`,tabs:{basic:`Grundlegend`,parameters:`Parameter`,memory:`Erinnerung & Lernen`,advanced:`Erweitert`,bindings:`Bindungen`},basic:{name:`Name`,namePlaceholder:`Persona-Namen eingeben`,model:`Modell`,selectModel:`Modell auswählen`,description:`Beschreibung`,descriptionPlaceholder:`Beschreiben Sie Ihre Persona...`,systemPrompt:`System-Prompt`,systemPromptPlaceholder:`Geben Sie den System-Prompt ein, der das Verhalten Ihrer Persona definiert...`,systemPromptHint:`Der System-Prompt definiert, wie sich Ihre Persona verhält und antwortet.`},parameters:{temperature:`Temperatur`,temperatureHint:`Steuert Kreativität vs. Konsistenz`,topP:`Top-P`,topPHint:`Steuert die Antwortvielfalt`,topK:`Top-K`,topKHint:`Begrenzt Vokabular auf Top-K Token`,contextWindow:`Kontextfenster`,contextWindowHint:`Maximale Gesprächsverlaufslänge`,maxTokens:`Max. Token`,maxTokensHint:`Maximale Antwortlänge`,repeatPenalty:`Wiederholungsstrafe`,repeatPenaltyHint:`Reduziert sich wiederholende Antworten`},memory:{title:`Erinnerungssystem`,subtitle:`Persona erinnert sich an Gespräche über Zeit`,enableHint:`Aktivieren Sie das Erinnerungssystem, damit sich Ihre Persona an Gespräche erinnern und im Laufe der Zeit Kontext aufbauen kann.`,loading:`Erinnerungsstatus wird geladen...`,noData:`Noch keine Erinnerungsdaten`,memories:`Erinnerungen`,mbUsed:`MB verwendet`,lastBackup:`Letzte Sicherung`,never:`Nie`,maxMemories:`Maximale Erinnerungen`,maxMemoriesHint:`Wie viele Erinnerungen diese Persona speichern kann`,retention:`Erinnerungs-Aufbewahrung`,retentionHint:`Tage, um Erinnerungen vor der Bereinigung zu behalten`,autoCleanup:`Alte Erinnerungen automatisch bereinigen`,wipeAll:`Alle Erinnerungen löschen`,wipeCannot:`Dies kann nicht rückgängig gemacht werden`,wipeButton:`Löschen`,wiping:`Wird gelöscht...`,wipeConfirm:`Sind Sie sicher, dass Sie alle Erinnerungen löschen möchten? Dies kann nicht rückgängig gemacht werden.`,wipeSuccess:`{{count}} Erinnerungen gelöscht`},learning:{title:`Adaptives Lernen`,subtitle:`Persona entwickelt sich basierend auf Interaktionen`,enableHint:`Aktivieren Sie adaptives Lernen, damit sich Ihre Persona weiterentwickelt und Antworten basierend auf Ihren Interaktionen personalisiert.`,speed:`Lerngeschwindigkeit`,slow:`Langsam`,slowDesc:`Schrittweise Änderungen`,balanced:`Ausgewogen`,balancedDesc:`Moderates Tempo`,fast:`Schnell`,fastDesc:`Schnelle Anpassung`,autoAdapt:`Automatisch an Benutzerpräferenzen anpassen`,whatLearns:`Was die Persona lernt:`,conversationTone:`Gesprächston`,responseStyle:`Antwortstil`,userPreferences:`Benutzerpräferenzen`,topicInterests:`Themeninteressen`},advanced:{embeddingModel:`Embedding-Modell`,embeddingHint:`Wählen Sie das Modell für Erinnerungskodierung und semantische Suche. Embedding-Modelle werden zuerst angezeigt, gefolgt von anderen verfügbaren Modellen.`,noModels:`Keine Modelle gefunden`,embeddingModels:`Embedding-Modelle`,otherModels:`Andere Modelle`,installHint:`Installieren Sie ein Embedding-Modell:`,recommended:`Empfohlen: nomic-embed-text, mxbai-embed-large, bge-m3, snowflake-arctic-embed`,aboutTitle:`Über erweiterte Einstellungen`,aboutDescription:`Das Embedding-Modell wird vom Erinnerungssystem verwendet, um semantische Bedeutung zu verstehen und relevante Erinnerungen während Gesprächen zu finden. Wählen Sie ein Modell, das zu Ihrem Anwendungsfall und Ihren verfügbaren Ressourcen passt.`},actions:{cancel:`Abbrechen`,save:`Speichern`,saving:`Wird gespeichert...`,saveClose:`Speichern & Schließen`,create:`Erstellen`},success:{created:`Persona erstellt`,updated:`Persona aktualisiert`},error:{saveFailed:`Speichern fehlgeschlagen`},bindings:{toolServers:`Werkzeugserver`,toolServersHint:`Server, die diese Persona aufrufen darf. Leer bedeutet: jeder Server, den die Person ohnehin erreicht.`,noToolServers:`Dir stehen keine Werkzeugserver zur Verfügung.`,builtinTools:`Eingebaute Werkzeuge`,builtinToolsHint:`Werkzeuge, die der Server selbst bereitstellt. Leer bedeutet: alle stehen zur Verfügung.`,noBuiltinTools:`Es sind keine eingebauten Werkzeuge verfügbar.`,builtin:{web_search:`Websuche`,search_documents:`Dokumente durchsuchen`,load_skill:`Skill laden`},skills:`Skills`,skillsHint:`Skills, die das Modell laden darf, solange diese Persona aktiv ist.`,noSkills:`Du hast noch keine Skills angelegt.`,collections:`Wissenssammlungen`,collectionsHint:`Dokumentsammlungen, die diese Persona durchsuchen kann.`,noCollections:`Du hast noch keine Sammlungen angelegt.`,prompt:`Prompt`,promptHint:`Ein Prompt, mit dem jeder neue Chat mit dieser Persona startet.`,noPrompt:`Kein Prompt`,version:`Bindungs-Revision {{version}}`}},personaCard:{enhanced:`Erweitert`,systemPrompt:`System-Prompt`,memories:`Erinnerungen`,use:`Verwenden`,editTooltip:`Persona bearbeiten`,downloadTooltip:`Persona herunterladen`,backup:`Sicherung`,exportDNA:`DNA exportieren`,wipeMemories:`Erinnerungen löschen`,wipeConfirm:`Sind Sie sicher, dass Sie alle Erinnerungen für diese Persona löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.`,wipeSuccess:`{{count}} Erinnerungen gelöscht`,backupSuccess:`Persona-Sicherung erfolgreich heruntergeladen`,dnaSuccess:`Persona-DNA erfolgreich exportiert`,failed:`{{action}} fehlgeschlagen`,shareTooltip:`Diese Persona teilen`},userManager:{title:`Benutzerverwaltung`,subtitle:`Benutzerkonten und Berechtigungen verwalten`,pageDescription:`Verwalten Sie Benutzerkonten, Berechtigungen und Zugriffskontrollen für Ihre Libre WebUI-Instanz.`,loading:`Benutzer werden geladen...`,createUser:`Benutzer erstellen`,search:`Benutzer suchen...`,noUsers:`Keine Benutzer gefunden`,noUsersMatching:`Keine Benutzer, die Ihrer Suche entsprechen`,columns:{user:`Benutzer`,email:`E-Mail`,role:`Rolle`,created:`Erstellt`,actions:`Aktionen`},roles:{admin:`Admin`,user:`Benutzer`},noEmail:`Keine E-Mail`,deleteConfirm:`Sind Sie sicher, dass Sie den Benutzer "{{name}}" löschen möchten?`,deleteSuccess:`Benutzer erfolgreich gelöscht`,deleteFailed:`Benutzer konnte nicht gelöscht werden`,cannotDeleteSelf:`Sie können Ihr eigenes Konto nicht löschen`,approval:{title:`Ausstehende Genehmigungen`,description:`Überprüfen Sie neue Registrierungen, bevor Sie sie in diese Instanz lassen.`,registered:`Registriert`,activate:`Konto aktivieren`,reject:`Registrierung ablehnen`,approved:`{{name}} kann sich jetzt anmelden.`,failed:`Das Konto konnte nicht genehmigt werden.`,notification:`{{count}} Registrierung(en) warten auf Ihre Genehmigung.`,notificationBadge:`{{count}} ausstehende Benutzergenehmigungen`},form:{title:{create:`Benutzer erstellen`,edit:`Benutzer bearbeiten`},username:`Benutzername`,usernamePlaceholder:`Benutzernamen eingeben`,email:`E-Mail`,emailPlaceholder:`E-Mail eingeben (optional)`,password:`Passwort`,passwordPlaceholder:`Passwort eingeben`,passwordHint:`Leer lassen, um aktuelles Passwort zu behalten`,role:`Rolle`,creating:`Wird erstellt...`,updating:`Wird aktualisiert...`,createButton:`Benutzer erstellen`,updateButton:`Benutzer aktualisieren`,createSuccess:`Benutzer erfolgreich erstellt`,updateSuccess:`Benutzer erfolgreich aktualisiert`,createFailed:`Benutzer konnte nicht erstellt werden`,updateFailed:`Benutzer konnte nicht aktualisiert werden`},workAccess:{title:`Work-Zugriff`,description:`Allen aktiven Benutzern erlauben, Work-Aufgaben in isolierten Sandboxes zu erstellen und auszuführen. Administratoren haben immer Zugriff; Host-Ordner-Arbeitsbereiche bleiben Administratoren vorbehalten.`,saved:`Work-Zugriff aktualisiert`,saveFailed:`Work-Zugriff konnte nicht aktualisiert werden`},workPolicies:{title:`Work-Richtlinien`,description:`Benannte Laufzeit-Voreinstellungen (Image, Limits, Leerlauf-Stopp), unter denen Aufgaben erstellt werden können. Leere Felder erben die globalen Standards.`,add:`Richtlinie hinzufügen`,name:`Name`,image:`Image`,memory:`Speicher`,cpu:`CPUs`,pids:`PID-Limit`,workspaceSize:`Arbeitsbereichsgröße`,idleMinutes:`Leerlauf-Stopp (Minuten)`,networkDefault:`Netzwerkstandard`,networkInherit:`Standard erben`,networkOn:`Aktiviert`,networkOff:`Deaktiviert`,save:`Speichern`,cancel:`Abbrechen`,edit:`Richtlinie bearbeiten`,delete:`Richtlinie löschen`,deleteConfirm:`Diese Richtlinie löschen? Aufgaben, die sie verwenden, fallen auf die globalen Standards zurück.`,empty:`Noch keine Richtlinien. Aufgaben verwenden die globalen Laufzeitstandards.`,saved:`Work-Richtlinie gespeichert`,deleted:`Work-Richtlinie gelöscht`,failed:`Work-Richtlinie konnte nicht gespeichert werden`,invalidNumber:`PID-Limit und Leerlauf-Stopp müssen Zahlen sein.`},modelAccess:{title:`Modell-Downloads`,description:`Allen aktiven Benutzern erlauben, Modelle über Ollama und den Hugging-Face-Browser zu laden. Administratoren können Modelle immer herunterladen.`,saved:`Modell-Download-Zugriff aktualisiert`,saveFailed:`Modell-Download-Zugriff konnte nicht aktualisiert werden`},webSearchAccess:{title:`Websuche`,description:`Allen aktiven Benutzern die Websuche in Chats und Work-Aufgaben erlauben. Administratoren können sie immer nutzen. Die Engine wird unter Einstellungen > Suche konfiguriert.`,saved:`Websuche-Zugriff aktualisiert`,saveFailed:`Websuche-Zugriff konnte nicht aktualisiert werden`},agentAccess:{title:`Agenten`,description:`Den Bereich Agenten (Libre Claw) für Administratoren anbieten. Agenten-CLIs laufen auf dem Host als Server-Benutzer, außerhalb der Work-Sandbox.`,saved:`Agenten-Zugriff aktualisiert`,saveFailed:`Agenten-Zugriff konnte nicht aktualisiert werden`,lockedByEnv:`Durch die Umgebungsvariable AGENT_CLI_MODELS_ENABLED festgelegt.`},groups:{title:`Gruppen`,description:`Fassen Sie Konten in Gruppen zusammen, um gemeinsamen Zugriff zu verwalten, und prüfen Sie, was ein Konto effektiv tun kann.`,newGroup:`Neue Gruppe`,nameLabel:`Name`,nameRequired:`Geben Sie der Gruppe einen Namen.`,descriptionLabel:`Beschreibung (optional)`,create:`Gruppe erstellen`,creating:`Wird erstellt…`,created:`Gruppe erstellt.`,createFailed:`Die Gruppe konnte nicht erstellt werden.`,deleted:`Gruppe gelöscht.`,deleteFailed:`Die Gruppe konnte nicht gelöscht werden.`,deleteGroup:`Gruppe löschen`,loadFailed:`Die Gruppen konnten nicht geladen werden.`,empty:`Noch keine Gruppen.`,memberCount:`Mitglieder: {{count}}`,noMembers:`Noch keine Mitglieder.`,addedAt:`Hinzugefügt`,addMember:`Mitglied hinzufügen`,add:`Hinzufügen`,selectUser:`Benutzer auswählen…`,memberAdded:`Mitglied hinzugefügt.`,memberAddFailed:`Das Mitglied konnte nicht hinzugefügt werden.`,removeMember:`Mitglied entfernen`,memberRemoved:`Mitglied entfernt.`,memberRemoveFailed:`Das Mitglied konnte nicht entfernt werden.`,effectiveTitle:`Effektiver Zugriff`,effectiveDescription:`Wählen Sie ein Konto, um den Zugriff zu sehen, der sich aus Rolle, Gruppen und Freigaben ergibt.`,accessLookupFailed:`Der effektive Zugriff konnte nicht geladen werden.`,roleLabel:`Rolle`,statusLabel:`Status`,memberOf:`Gruppen`,featuresLabel:`Funktionszugriff`,grantsLabel:`Freigaben`,grantVia:`über`},audit:{title:`Sicherheits-Auditprotokoll`,description:`Aktuelle Anmeldungen, Berechtigungsprüfungen und administrative Änderungen auf dieser Instanz.`,actionFilter:`Aktion`,actionPlaceholder:`z. B. auth.login`,resultFilter:`Ergebnis`,resultSuccess:`Erfolgreich`,resultDenied:`Verweigert`,resultFailure:`Fehlgeschlagen`,limitFilter:`Limit`,loadFailed:`Das Auditprotokoll konnte nicht geladen werden.`,empty:`Noch keine Audit-Ereignisse aufgezeichnet.`,actor:`Akteur`,target:`Ziel`},tools:{title:`Werkzeugzugriff`,description:`Allen erlauben, Werkzeugserver aufzurufen. Ist das aus, dürfen es nur Administratoren.`,saved:`Werkzeugzugriff aktualisiert`,saveFailed:`Der Werkzeugzugriff konnte nicht aktualisiert werden.`,lockedByEnv:`Durch eine Umgebungsvariable auf diesem Server gesperrt.`},voice:{title:`Sprachzugriff`,description:`Legt fest, wer Sprachfunktionen nutzen darf. Administratoren haben immer Zugriff.`,lockedByEnv:`Durch eine Umgebungsvariable festgelegt`,saved:`Sprachzugriff aktualisiert`,saveFailed:`Sprachzugriff konnte nicht aktualisiert werden`,features:{stt:`Sprache zu Text`,tts:`Text zu Sprache`,voiceMode:`Sprachmodus`,voiceCloning:`Stimmklonen`}}},usageAnalytics:{eyebrow:`Verwaltung`,title:`Anbieter-Nutzung`,description:`Verfolgen Sie ausgehende API-Aufrufe und Modellverbrauch über die aktivierten Plugins auf dieser Instanz.`,days:`{{count}} Tage`,refresh:`Nutzung aktualisieren`,loadFailed:`Anbieter-Nutzung konnte nicht geladen werden.`,metrics:{calls:`Aufrufe`,tokens:`Token`},cards:{calls:`API-Aufrufe`,callsDetail:`Über {{count}} aktive Benutzer`,tokens:`Gemeldete Token`,tokensDetail:`Nutzung gemeldet bei {{count}} Aufruf(en)`,success:`Erfolgsquote`,successDetail:`{{count}} fehlgeschlagene Aufrufe`,latency:`Durchschnittliche Latenz`,latencyDetail:`Ende-zu-Ende-Anbieterzeit`},activity:{title:`Verbrauch im Zeitverlauf`,callsDescription:`Tägliche ausgehende Anfragen an aktivierte Plugins`,tokensDescription:`Tägliche von Anbietern gemeldete Token-Gesamtsummen`,chartLabel:`Tägliches Anbieter-{{metric}}-Diagramm`},models:{title:`Modellverbrauch`,description:`Die Modelle mit dem meisten Datenverkehr in diesem Zeitraum.`,model:`Modell`,success:`Erfolg`,latency:`Latenz`},providers:{title:`Aktivierter Plugin-Datenverkehr`},capabilities:{title:`Fähigkeitsmix`,characters:`{{count}} Zeichen`,bytes:`{{count}} Bytes`,images:`{{count}} Bilder`,jobs:`{{count}} Video-Jobs`,inputs:`{{count}} Eingaben`,reportedTokens:`{{count}} gemeldete Token`},empty:{title:`Noch keine Anbieter-Aufrufe`,description:`Aufrufe erscheinen hier, nachdem ein aktiviertes Plugin Chat-, Work-, Embedding-, Bild-, Sprach-, Sound- oder Video-Anfragen verarbeitet hat.`},privacyNote:`Die Nutzung wird auf dem Server an der Plugin-Ausgangsgrenze gemessen. Libre WebUI speichert Anbieter, Modell, Timing, Status und gemeldete Zähler – niemals Prompts, Antworten, Endpunkte, Anmeldeinformationen oder Anbieter-Fehlermeldungen. Token-Gesamtsummen umfassen nur Aufrufe, bei denen der Anbieter Nutzungsmetadaten zurückgegeben hat.`,heatmap:{title:`Ein Jahr Aktivität`,description:`Tägliche Anbieteraufrufe des letzten Jahres, eingefärbt nach dem meistgenutzten Modell des Tages.`,calls:`Aufrufe`,noCalls:`Keine Aufrufe`,other:`Weitere Modelle`,less:`Weniger`,more:`Mehr`,yearTotal:`{{formatted}} Aufrufe im letzten Jahr`}},systemPage:{eyebrow:`Verwaltung`,title:`System`,description:`Überwachen Sie die Maschine und Laufzeit, die diese Libre WebUI-Instanz hostet.`,updated:`Aktualisiert am {{date}}`,refresh:`Systeminformationen aktualisieren`,loadFailed:`Systeminformationen konnten nicht geladen werden.`,cards:{uptime:`Host-Laufzeit`,uptimeDetail:`Läuft seit {{date}}`,memory:`Verwendeter Speicher`,memoryDetail:`{{used}} von {{total}}`,freeSpace:`Freier Speicherplatz`,freeSpaceDetail:`{{label}} · {{total}} gesamt`,containers:`Laufende Container`,containersDetail:`{{total}} Docker-bekannte Container`,dockerUnavailable:`Docker nicht verfügbar`,unavailable:`Nicht verfügbar`},host:{title:`Host & Laufzeit`,description:`Betriebssystem, Prozessor und Libre WebUI-Prozessdetails.`,container:`Container-Laufzeit`,native:`Native Laufzeit`,hostname:`Hostname`,operatingSystem:`Betriebssystem`,processor:`Prozessor`,logicalCpus:`logische CPUs`,loadAverage:`Durchschnittliche Last · 1 / 5 / 15 Min`,libreVersion:`Libre WebUI`,nodeVersion:`Node.js`,process:`Prozess`,workingDirectory:`Arbeitsverzeichnis`},memory:{title:`Speicher`,description:`Laufzeit-sichtbarer Systemspeicher und Anwendungsprozessnutzung.`,usedOf:`{{used}} von {{total}} verwendet`,free:`{{value}} frei`,processRss:`Prozess-RSS`,heapUsed:`V8-Heap verwendet`,heapTotal:`V8-Heap gesamt`,external:`Externer Speicher`},storage:{title:`Speicherplatz`,description:`Verfügbarer Speicherplatz für das Laufzeit-Dateisystem und persistente Anwendungsdaten.`,used:`{{value}} verwendet`,free:`{{value}} frei`,empty:`Dateisysteminformationen sind in dieser Laufzeit nicht verfügbar.`},docker:{title:`Docker`,description:`Schreibgeschützter Docker Engine-Status und eine reduzierte Liste von Containern.`,connected:`Verbunden`,unavailable:`Nicht verfügbar`,unavailableDetail:`Docker Engine-Diagnosen sind nicht verfügbar.`,socketStatus:`Lokaler Socket: {{status}}`,mounted:`eingebunden`,notMounted:`nicht eingebunden`,running:`Laufend`,stopped:`Gestoppt`,paused:`Pausiert`,total:`Gesamt`,version:`Version`,host:`Host`,architecture:`Architektur`,cpus:`CPUs`,memory:`Speicher`,container:`Container`,image:`Image`,state:`Status`,created:`Erstellt`,empty:`Docker ist verbunden und es sind derzeit keine Container aufgelistet.`},network:{title:`Netzwerk`,description:`Laufzeit-sichtbare Schnittstellen, Adressen und Linux-Verkehrszähler.`,internal:`intern`,empty:`Für die Anwendungs-Laufzeit sind keine Netzwerkschnittstellen sichtbar.`},securityNote:`Diese Seite ist auf Administratoren beschränkt. Der Server gibt nur betriebliche Zusammenfassungen zurück: Er legt keine Umgebungsvariablen, Anmeldeinformationen, Docker-Labels, Einbindungen, Container-Befehle oder Inspektions-Payloads offen. Wenn Libre WebUI in einem Container läuft, stammen Host-Ebene-CPU- und Speicherdetails vom Docker Engine, wenn sein lokaler Socket verfügbar ist; andere Werte beschreiben die Anwendungs-Laufzeit.`,work:{title:`Work`,description:`Sandboxes über alle Benutzer hinweg`,access:`Zugriff`,accessAdmins:`Nur Administratoren`,accessAllUsers:`Alle Benutzer`,runtimeAvailable:`Verfügbar`,runtimeUnavailable:`Nicht verfügbar`,activeRuntimes:`Aktive Laufzeitumgebungen`,pendingCleanups:`Ausstehende Bereinigungen`,orphans:`Verwaiste Container`,owner:`Besitzer`,task:`Aufgabe`,state:`Zustand`,preview:`Vorschau`,terminals:`Terminals`,updated:`Aktualisiert`,stateRunning:`Läuft`,stateStopped:`Gestoppt`,stateStarting:`Startet`,stateUnknown:`Unbekannt`,noTasks:`Noch keine Work-Aufgaben.`}},chatHistory:{label:`Gesprächsverlauf`,jumpToTurn:`Zu Abschnitt {{index}} von {{total}} springen`},chatMessage:{you:`Sie`,assistant:`Assistent`,system:`System`,conversationSummary:`Zusammenfassung des Gesprächs`,restoreCompacted:`Zusammengefasste Nachrichten wiederherstellen`,restoreFailed:`Die zusammengefassten Nachrichten konnten nicht wiederhergestellt werden`,copy:`Kopieren`,copyMessage:`Nachricht kopieren`,copied:`Kopiert!`,regenerate:`Neu generieren`,regenerateResponse:`Antwort neu generieren`,edit:`Bearbeiten`,editSystemMessage:`Systemnachricht bearbeiten`,saveChanges:`Änderungen speichern`,cancelEditing:`Bearbeitung abbrechen`,saveAndSubmit:`Speichern & senden`,goodResponse:`Gute Antwort`,badResponse:`Schlechte Antwort`,delete:`Löschen`,deleteConfirm:`Diese Nachricht löschen?`,branch:`Verzweigung`,speaking:`Spricht...`,speakMessage:`Nachricht vorlesen`,stopSpeaking:`Vorlesen stoppen`,showMore:`Mehr anzeigen`,showLess:`Weniger anzeigen`,thinking:`Denkt`,thoughtFor:`Hat {{duration}} nachgedacht`,hiddenLines:`{{count}} ausgeblendete Zeilen`,systemMessagePlaceholder:`Geben Sie Ihre Systemnachricht ein...`,fullSizeImage:`Bild in voller Größe`,startConversation:`Gespräch starten`,startConversationDescription:`Senden Sie eine Nachricht, um mit Ihrem KI-Assistenten zu chatten. Stellen Sie Fragen, lassen Sie sich bei Code helfen oder führen Sie ein natürliches Gespräch.`,scrollToBottom:`Nach unten scrollen`,newMessages:`Neue Nachrichten`,feedbackTags:{accuracy:`Genauigkeit`,style:`Stil`,incomplete:`Unvollständig`,harmful:`Schädlich`,formatting:`Formatierung`},feedbackComment:`Kommentar hinzufügen…`},imageGallery:{title:`Bildergalerie`,noImages:`Noch keine Bilder`,noImagesHint:`Generieren Sie Ihr erstes Bild über das Panel auf der rechten Seite`,delete:`Löschen`,download:`Herunterladen`,deleteConfirm:`Sind Sie sicher, dass Sie dieses Bild löschen möchten?`,deleteSuccess:`Bild gelöscht`,deleteFailed:`Bild konnte nicht gelöscht werden`,downloadFailed:`Bild konnte nicht heruntergeladen werden`,loadMore:`Mehr laden ({{current}} von {{total}})`,loadFailed:`Galerie konnte nicht geladen werden`},imageGeneration:{title:`Bild generieren`,prompt:`Prompt`,promptPlaceholder:`Beschreiben Sie das Bild, das Sie erstellen möchten...`,model:`Modell`,selectModel:`Modell auswählen`,noModels:`Keine Bildgenerierungsmodelle verfügbar`,configurePlugin:`Konfigurieren Sie ein Plugin mit Bildgenerierungs-Unterstützung`,size:`Größe`,quality:`Qualität`,style:`Stil`,generate:`Generieren`,generating:`Wird generiert...`,success:`Bild erfolgreich generiert`,failed:`Bild konnte nicht generiert werden`,enterPrompt:`Bitte geben Sie einen Prompt ein`,promptTooLong:`Prompt überschreitet die maximale Länge von {{max}} Zeichen`},mediaGeneration:{title:`Medien generieren`,description:`Erstellen Sie Video, Sound, Musik oder Sprache mit einem aktivierten Medienanbieter.`,image:`Bild`,video:`Video`,audio:`Audio`,sound:`Sound`,speech:`Sprache`,model:`Modell`,voice:`Stimme oder Stimmen-ID`,cloneVoice:`Eine Referenzstimme klonen`,cloneVoiceDescription:`Diese Sprache anhand einer Referenzaufnahme statt einer voreingestellten Stimme erzeugen.`,referenceAudio:`Referenz-Audio`,referenceTranscript:`Exaktes Referenztranskript`,referenceTranscriptPlaceholder:`Gib genau ein, was in der Referenzaufnahme gesprochen wird…`,referenceAudioTooLarge:`Das Referenz-Audio darf höchstens {{max}} groß sein.`,cloneConsent:`Klone eine Stimme nur mit Erlaubnis der sprechenden Person. Die Aufnahme wird für diese Erzeugung an den ausgewählten Anbieter gesendet und von Libre WebUI nicht gespeichert.`,saveVoiceProfile:`Als wiederverwendbare Stimme speichern`,saveVoiceProfileDescription:`Speichere diese Referenzaufnahme und das Transkript sicher. Libre WebUI sendet beides für jeden Sprachabschnitt, der diese Stimme nutzt, an den ausgewählten Anbieter.`,voiceProfileName:`Name der gespeicherten Stimme`,voiceProfileNamePlaceholder:`Zum Beispiel Meine Stimme`,voiceStorageConsent:`Ich bestätige, dass ich die Erlaubnis der sprechenden Person habe, diese Stimme zu klonen und zu speichern. Die Referenz bleibt gespeichert, bis ich sie lösche.`,resolution:`Auflösung`,aspectRatio:`Seitenverhältnis`,duration:`Dauer`,providerDefault:`Anbieter-Standard`,generateAudio:`Audio mit dem Video generieren, wenn unterstützt`,prompt:`Prompt`,text:`Zu sprechender Text`,videoPlaceholder:`Beschreiben Sie die Szene, Bewegung, Kamera und Beleuchtung...`,audioPlaceholder:`Geben Sie den Text ein, den die Stimme sprechen soll...`,soundPlaceholder:`Beschreiben Sie den Sound, die Musik, die Atmosphäre oder die gesprochene Antwort, die Sie möchten...`,generate:`Generieren`,generating:`Generieren… dies kann mehrere Minuten dauern`,success:`Medien generiert und in Imagine gespeichert`,successWithSavedVoice:`Medium erstellt und „{{name}}“ ist jetzt in den Spracheinstellungen verfügbar`,failed:`Mediengenerierung fehlgeschlagen`,loadFailed:`Medienanbieter konnten nicht geladen werden`,noModels:`Es sind keine {{kind}}-Modelle verfügbar. Aktivieren Sie einen kompatiblen Anbieter und speichern Sie zuerst dessen Anmeldedaten.`,consentTtl:{label:`Dauer der Einwilligung`,never:`Bis ich sie widerrufe`,days30:`30 Tage`,days90:`90 Tage`,days365:`Ein Jahr`}},mediaGallery:{itemCount:`{{count}} Elemente`,empty:`Noch keine generierten Medien`,emptyHint:`Generieren Sie ein Bild, ein Video oder einen Sprachclip und es wird hier erscheinen.`,filters:{all:`Alle`,image:`Bilder`,video:`Videos`,audio:`Audio`}},errorBoundary:{title:`Etwas ist schiefgelaufen`,description:`Ein unerwarteter Fehler ist aufgetreten. Bitte versuchen Sie, die Seite neu zu laden.`,tryAgain:`Seite neu laden`,goHome:`Zur Startseite`,errorDetails:`Fehlerdetails (Entwicklung)`},documents:{title:`Dokumente`,upload:`Dokument hochladen`,uploading:`Wird hochgeladen...`,noDocuments:`Keine Dokumente hochgeladen`,uploadHint:`Laden Sie Dokumente hoch, um sie in Ihren Gesprächen zu verwenden`,delete:`Löschen`,deleteConfirm:`Sind Sie sicher, dass Sie dieses Dokument löschen möchten?`,deleteSuccess:`Dokument gelöscht`,deleteFailed:`Dokument konnte nicht gelöscht werden`,uploadSuccess:`Dokument erfolgreich hochgeladen`,uploadFailed:`Dokument konnte nicht hochgeladen werden`,types:`Unterstützt: PDF, TXT, MD, DOCX`,unsupportedFileType:`Dieser Dateityp wird nicht unterstützt`,fileSizeTooLarge:`Dateigröße muss unter 10 MB liegen`,uploadSuccessWithName:`Dokument "{{name}}" erfolgreich hochgeladen`,removeSuccess:`Dokument erfolgreich entfernt`,removeFailed:`Dokument konnte nicht entfernt werden`,removeError:`Beim Entfernen des Dokuments ist ein Fehler aufgetreten`,clickToUpload:`Klicken zum Hochladen`,orDragAndDrop:`oder per Drag & Drop`,fileTypesAndSize:`PDF-, Office-, Markdown-, HTML-, Code- und CSV-Dateien bis 10 MB`,uploadedDocuments:`Hochgeladene Dokumente`,removeDocument:`Dokument entfernen`,fullContextToggle:`Vollständige Dokumente senden`,fullContextEstimate:`≈ {{tokens}} Tokens`,fullContextTooLarge:`Die angehängten Dokumente überschreiten das Volltext-Kontextlimit, daher wurde Retrieval verwendet`,fullDocument:`Vollständiges Dokument`},ttsButton:{speak:`Sprechen`,stop:`Stopp`,speaking:`Spricht...`,generateFailed:`Sprache konnte nicht generiert werden`,playbackFailed:`Audiowiedergabe fehlgeschlagen`,stopSpeaking:`Vorlesen stoppen`,preparingSpeech:`Sprache wird vorbereitet...`,generatingSpeech:`Sprache wird generiert...`,bufferingSpeech:`Sprache wird gepuffert...`,enableAudio:`Audio aktivieren und vorlesen`,enableAudioShort:`Audio aktivieren`,readAloud:`Vorlesen`},artifacts:{title:`Artefakte`,code:`Code`,preview:`Vorschau`,copy:`Code kopieren`,copied:`Kopiert!`,download:`Herunterladen`,expand:`Erweitern`,collapse:`Einklappen`,openInNewTab:`In neuem Tab öffnen`,invalidSvg:`Ungültiger SVG-Inhalt`,invalidJson:`Ungültiger JSON-Inhalt`,previewMode:`Vorschaumodus`,codeMode:`Code-Modus`,copyContent:`Inhalt kopieren`,openInPanel:`Im Panel öffnen`,openInNewWindow:`In neuem Fenster öffnen`,created:`Erstellt`,closePanelEsc:`Panel schließen (Esc)`,copyButton:`Kopieren`,open:`Öffnen`,dragEdgeToResize:`Kante ziehen zum Anpassen`,previewUnavailable:`Preview unavailable`,previewUnavailableDescription:`This artifact does not contain renderable preview content. Switch to code view to inspect the source.`,versionOf:`Version {{current}} von {{total}}`,previousVersion:`Vorherige Version`,nextVersion:`Nächste Version`},personaImportExport:{title:`Personas importieren & exportieren`,description:`Exportieren Sie Ihre Personas, um sie zu teilen, oder importieren Sie Personas von anderen`,exportPersonas:`Personas exportieren`,importPersonas:`Personas importieren`,noPersonasToExport:`Keine Personas zum Exportieren`,personasAvailable:`{{count}} Persona verfügbar`,personasAvailable_plural:`{{count}} Personas verfügbar`,exportAll:`Alle exportieren`,uploadJsonFile:`JSON-Datei hochladen`,pasteJsonLabel:`JSON-Daten einfügen`,pasteJsonPlaceholder:`Persona-JSON-Daten hier einfügen...`,importing:`Wird importiert...`,importButton:`Persona(s) importieren`,expectedFormat:`Erwartetes JSON-Format:`,exportSuccess:`Persona "{{name}}" erfolgreich exportiert`,exportFailed:`Persona konnte nicht exportiert werden`,exportAllSuccess:`Alle {{count}} Personas erfolgreich exportiert`,exportAllFailed:`Personas konnten nicht exportiert werden`,pasteJsonData:`Bitte fügen Sie die Persona-JSON-Daten ein`,importMultipleSuccess:`{{count}} Personas erfolgreich importiert`,importMultipleFailed:`{{count}} Personas konnten nicht importiert werden`,importNoneFailed:`Keine Personas konnten importiert werden`,importSuccess:`Persona erfolgreich importiert`,importFailed:`Persona konnte nicht importiert werden`},generationStats:{details:`Details`,promptTokens:`Prompt-Tokens:`,generatedTokens:`Generierte Tokens:`,totalTokens:`Tokens gesamt:`,speed:`Geschwindigkeit:`,promptEval:`Prompt-Auswertung:`,generation:`Generierung:`,modelLoad:`Modellladen:`,totalTime:`Gesamtzeit:`,generatedAt:`Generiert um:`},userMenu:{loggedOut:`Erfolgreich abgemeldet`,pictureUpdated:`Profilbild aktualisiert`,failedUpdateAvatar:`Avatar-Aktualisierung fehlgeschlagen`,failedUpdatePicture:`Profilbild-Aktualisierung fehlgeschlagen`,noEmail:`Keine E-Mail angegeben`,changePicture:`Bild ändern`,settings:`Einstellungen`,userManagement:`Benutzerverwaltung`,signOut:`Abmelden`,changeProfilePicture:`Profilbild ändern`},pluginManager:{title:`Plugin-Manager`,upload:`Hochladen`,addJson:`JSON hinzufügen`,browseHF:`HF Hub durchsuchen`,confirmDelete:`Möchten Sie dieses Plugin wirklich löschen?`,uploading:`Plugin wird hochgeladen...`,pasteJson:`Plugin-JSON hier einfügen...`,installPlugin:`Plugin installieren`,loading:`Plugins werden geladen...`,noPlugins:`Keine Plugins installiert`,noPluginsDescription:`Laden Sie eine Plugin-Datei hoch oder fügen Sie ein Plugin aus JSON hinzu.`,active:`Aktiv`,id:`ID`,endpoint:`Endpunkt`,activate:`Aktivieren`,deactivate:`Deaktivieren`,activePlugin:`Aktives Plugin`,activePluginDescription:`Alle Chat-Anfragen werden über dieses Plugin geleitet`,variables:{title:`Variablen`,save:`Speichern`,saving:`Speichern...`,saved:`Variablen gespeichert`,saveFailed:`Variablen konnten nicht gespeichert werden`,resetDefaults:`Auf Standard zurücksetzen`,reset:`Variablen zurückgesetzt`,resetFailed:`Zurücksetzen der Variablen fehlgeschlagen`,sensitiveSet:`Wert ist gesetzt (neuen Wert eingeben zum Ändern)`,showValue:`{{label}}-Wert anzeigen`,hideValue:`{{label}}-Wert verbergen`,connection:`Verbindung`,advanced:`Erweiterte Parameter`,inherited:`Anbieter-Standard verwenden`,inheritedValue:`Anbieter-Standard verwenden ({{value}})`,enabled:`Aktiviert`,disabled:`Deaktiviert`,required:`Ein Wert ist erforderlich`,fullApiEndpoint:`Vollständige API-Endpunkt-URL`,endpointHelp:`Geben Sie die vollständige Anfrage-URL ein, einschließlich ihres Vorgangspfads (z. B. /v1/chat/completions), nicht nur die Basis-URL des Anbieters.`,invalidUrl:`Geben Sie eine gültige vollständige API-Endpunkt-URL ein, z. B. https://provider.example/v1/chat/completions`,insecureUrl:`API-Endpunkte müssen HTTP oder HTTPS verwenden.`,httpWarning:`HTTP verschlüsselt weder Anmeldedaten noch Datenverkehr. Verwenden Sie es nur in einem vertrauenswürdigen Netzwerk.`,invalidBaseUrl:`Basis-URLs dürfen keine Abfragezeichenfolge oder Fragment enthalten.`,invalidApiPath:`Muss mit / beginnen und keine URL, Abfrage, Fragment oder ..-Segment enthalten`,tooLong:`Wert ist zu lang`}},huggingface:{title:`HuggingFace Modell-Browser`,subtitle:`Modelle aus dem Hub durchsuchen und auswählen`,searchPlaceholder:`Modelle suchen...`,filters:`Filter`,task:`Aufgabe`,sortBy:`Sortieren nach`,noModels:`Keine Modelle gefunden`,adjustSearch:`Versuchen Sie, Ihre Suche oder Filter anzupassen`,gated:`Eingeschränkt`,selected:`Ausgewählt`,select:`Auswählen`,refresh:`Aktualisieren`,modelsFound:`Modelle gefunden`},demoMode:{title:`Demomodus`,github:`GitHub`},libreClaw:{title:`Agenten`,subtitle:`Lokale Agentenausführungen, Genehmigungen, Zeitpläne, Speicher, Tools und Nutzung.`,dashboard:`Dashboard`,connection:{disconnectedTitle:`Libre Claw-Daemon ist nicht verbunden`,disconnectedDescription:`Starten Sie es lokal mit <command>libre-claw start</command> oder stellen Sie <env>LIBRE_CLAW_BASE_URL</env> in der Backend-Umgebung ein.`},status:{connected:`Verbunden`,disconnected:`Nicht verbunden`,activeRuns:`{{count}} aktiv`,activeRuns_plural:`{{count}} aktiv`},states:{queued:`In der Warteschlange`,running:`Wird ausgeführt`,blocked:`Blockiert`,done:`Fertig`,failed:`Fehlgeschlagen`,cancelled:`Abgesagt`},startRun:{title:`Agent-Ausführung starten`,placeholder:`Bitten Sie Libre Claw, ein Repo zu inspizieren, einen Fehler zu beheben, eine Überprüfung durchzuführen, einen Bericht zu planen ...`,chatRun:`Chatlauf`,goalMode:`Zielmodus`,providerOverride:`Anbieterüberschreibung`,modelOverride:`Modellüberschreibung`,run:`Starten`},modelRoute:{title:`Modellroute`,providerPlaceholder:`Anbieter`,modelPlaceholder:`Modell`,persistGlobal:`Bei Libre Claw globale Konfiguration beibehalten`,saveModel:`Modell speichern`,theme:`Libre Claw-Design`,saveTheme:`Thema speichern`},runs:{title:`Ausführungen`,empty:`Noch keine Libre Claw-Ausführungen.`},timeline:{title:`Ausführungsverlauf`,empty:`Wählen Sie einen Lauf aus, um seine Ereignisse zu überprüfen.`,streaming:`Streaming...`,assistantResponse:`Antwort des Assistenten`,resultOk:`ok`,resultError:`Fehler`,labels:{userMessage:`Benutzernachricht`,toolCall:`Werkzeugaufruf`,toolResult:`Werkzeugergebnis`,approvalRequest:`Genehmigungsanfrage`,approvalResponse:`Genehmigungsantwort`,runStarted:`Ausführung gestartet`,runFinished:`Ausführung beendet`,usage:`Nutzung`,error:`Fehler`}},approvals:{needed:`Genehmigung erforderlich`,allowOnce:`Einmal zulassen`,alwaysAllowTool:`Werkzeug immer zulassen`,deny:`Ablehnen`,toolApprovalRequested:`Werkzeugfreigabe beantragt`},automations:{title:`Automatisierungen`,namePlaceholder:`Name`,schedulePlaceholder:`daily 09:00`,promptPlaceholder:`Automatisierungsaufforderung`,create:`Erstellen`,empty:`Keine geplanten Libre Claw-Automatisierungen.`,runNow:`Jetzt ausführen`,pause:`Pause`,resume:`Fortsetzen`,routes:{report:`Bericht`,telegram:`Telegram`},status:{active:`Aktiv`,paused:`Angehalten`}},usageFallback:{title:`Nutzung und Fallback`,usage:`Nutzung`,fallbackRoute:`Fallback-Route`,noUsage:`Noch keine Nutzungsaufzeichnungen.`},metrics:{provider:`Anbieter`,model:`Modell`,input:`Eingabe`,output:`Ausgabe`,cached:`Zwischengespeichert`,reasoning:`Begründung`,cost:`Kosten`,tool:`Werkzeug`,resolution:`Auflösung`,state:`Status`,stopReason:`Stoppgrund`,tokens:`{{formatted}} Token`,tokens_plural:`{{formatted}} Token`},fallbacks:{tool:`Werkzeug`,unknown:`unbekannt`,resolved:`gelöst`,unknownError:`Unbekannter Fehler`},toasts:{loadStatusFailed:`Libre Claw-Status konnte nicht geladen werden`,enterTask:`Geben Sie eine Aufgabe für Libre Claw ein`,runStarted:`Libre Claw-Ausführung gestartet`,startRunFailed:`Libre Claw-Ausführung konnte nicht gestartet werden`,runCancelled:`Ausführung abgebrochen`,cancelRunFailed:`Ausführung konnte nicht abgebrochen werden`,approved:`Genehmigt`,denied:`Abgelehnt`,resolvePermissionFailed:`Die Berechtigung konnte nicht aufgelöst werden`,providerModelRequired:`Anbieter und Modell sind erforderlich`,modelUpdated:`Libre Claw-Modell aktualisiert`,updateModelFailed:`Modell konnte nicht aktualisiert werden`,themeUpdated:`Libre Claw-Design aktualisiert`,updateThemeFailed:`Design konnte nicht aktualisiert werden`,automationRequired:`Automatisierungsname, Zeitplan und Eingabeaufforderung sind erforderlich`,automationCreated:`Automatisierung erstellt`,createAutomationFailed:`Die Automatisierung konnte nicht erstellt werden`,automationUpdated:`Automatisierung aktualisiert`,updateAutomationFailed:`Die Automatisierung konnte nicht aktualisiert werden`}},work:{title:`Arbeit`,subtitle:`Isolierte Modell-Arbeitsbereiche`,tasks:{title:`Arbeitsaufgaben`,subtitle:`Dauerhafte lokale Arbeitsbereiche`,new:`Neue Aufgabe`,emptyTitle:`Noch keine Arbeitsaufgaben`,empty:`Ihre Arbeitsaufgaben werden hier angezeigt, nachdem Sie die erste Nachricht gesendet haben.`,untitled:`Unbenannte Aufgabe`,actions:`Aufgabenaktionen`,delete:`Aufgabe löschen`,deleteNamed:`„{{title}}“ löschen`,deleteConfirm:`„{{title}}“ und den zugehörigen Arbeitsbereich dauerhaft löschen?`,close:`Arbeitsaufgaben schließen`,open:`Arbeitsaufgaben öffnen`,rename:`Aufgabentitel`,loading:`Aufgabe wird geladen…`,notFound:`Diese Arbeitsaufgabe ist nicht verfügbar`,back:`Neue Aufgabe starten`,status:`Status: {{status}}`},landing:{title:`Neue Arbeitsaufgabe starten`,description:`Stellen Sie einem lokalen oder konfigurierten Anbietermodell einen dauerhaften, isolierten Arbeitsbereich bereit. Es kann Dateien prüfen, Werkzeuge ausführen und bei Ihrer Rückkehr dort fortfahren, wo es aufgehört hat.`,isolated:`Isoliert`,isolatedBody:`Jede Aufgabe erhält einen eigenen Container und eigene Dateien.`,durable:`Dauerhaft`,durableBody:`Kehren Sie später zur Unterhaltung und zum Arbeitsbereich zurück.`,controlled:`Kontrolliert`,controlledBody:`Die Laufzeit und die Aufgabendateien bleiben vom Host isoliert.`},composer:{placeholder:`Beschreiben Sie, was Sie erstellen oder ändern möchten…`,model:`Arbeitsmodell`,noModels:`Keine mit Arbeit kompatiblen Modelle`,cancel:`Stoppen`,send:`Ausführen`,hint:`Jede Aufgabe behält ihre eigenen Dateien und ihren Verlauf. Prüfen Sie die Modellausgabe, bevor Sie sie verwenden.`,remoteTitle:`Remote-Anbieter`,remoteHint:`Unterhaltung und Werkzeugausgaben werden an den konfigurierten Dienst gesendet. Eine autonome Ausführung kann den Anbieter mehrfach aufrufen und Kosten verursachen. Arbeitsbereichsdateien bleiben lokal, sofern ein Werkzeug ihre Inhalte nicht zurückgibt.`,remoteDismiss:`Ausblenden`,remoteDismissLabel:`Hinweis zum Remote-Anbieter ausblenden`,remoteDismissFailed:`Die Einstellung für den Remote-Anbieter konnte nicht gespeichert werden.`,noModelSelected:`Es ist kein mit Arbeit kompatibles Modell ausgewählt.`},conversation:{ready:`Arbeitsbereich bereit`,empty:`Setzen Sie die Aufgabe unten fort. Diese Unterhaltung und ihre Dateien bleiben mit diesem Arbeitsbereich verknüpft.`,loadOlder:`Ältere Nachrichten laden`},status:{preparing:`Isolierter Arbeitsbereich wird vorbereitet…`,running:`Arbeit im lokalen Arbeitsbereich…`},statusLabels:{idle:`Inaktiv`,thinking:`Denkt nach`,complete:`Abgeschlossen`,needsInput:`Eingabe erforderlich`,error:`Fehler`},live:{connecting:`Verbindung zu Live-Updates wird hergestellt…`,reconnecting:`Verbindung zu Live-Updates wird wiederhergestellt…`,unavailable:`Live-Updates nicht verfügbar`,newActivity:`Neue Aktivität`,skillsLoaded:`Arbeitsbereichsfähigkeiten · {{count}}`},runtime:{unavailable:`Laufzeit nicht verfügbar`,ready:`Laufzeitumgebung bereit`,readyOllama:`Docker bereit`,readyPlugin:`Docker + Plugin bereit`,readyHybrid:`Docker + Modelle bereit`,reason:`Docker sowie ein verfügbarer Modellanbieter über Ollama oder ein Plugin sind erforderlich.`},workspace:{label:`Arbeitsbereichsansichten`,files:`Dateien`,activity:`Aktivität`,preview:`Vorschau`,resize:`Größe von Unterhaltung und Arbeitsbereich ändern`,resizeHint:`Ziehen Sie zum Ändern der Größe. Verwenden Sie die Pfeiltasten zur präzisen Steuerung. Doppelklicken Sie oder drücken Sie die Eingabetaste zum Zurücksetzen.`,splitSize:`Unterhaltung {{conversation}} %, Arbeitsbereich {{workspace}} %`,terminal:`Terminal`,git:`Git`},files:{discard:`Ungespeicherte Dateiänderungen verwerfen?`,leaveWithDraft:`Diese Datei verlassen? Ihre ungespeicherte Änderung bleibt als Browserentwurf erhalten.`,up:`Übergeordneter Ordner`,back:`Zurück zu den Dateien`,empty:`Dieser Ordner enthält noch keine Dateien.`,select:`Wählen Sie eine Datei aus, um sie zu prüfen und zu bearbeiten.`,editorLabel:`Datei-Editor: {{path}}`,format:`Formatieren`,formatted:`Code formatiert.`,formatFailed:`Diese Datei konnte nicht formatiert werden.`,formatShortcut:`Formatieren (Shift+Alt+F)`,formatTooLarge:`Die Formatierung ist auf Dateien mit weniger als 100.000 Zeichen und 4.000 Zeilen beschränkt.`,formatUnsupported:`Für diesen Dateityp ist keine Formatierung verfügbar.`,saveShortcut:`Speichern (⌘/Strg+S)`,highlightPaused:`Die Live-Syntaxhervorhebung ist bei großen Dateien pausiert, damit die Bearbeitung flüssig bleibt.`,plainTextLarge:`Klartext · große Datei`,changes:`Änderungen`,changesSince:`Was sich seit dem letzten Zug geändert hat`,diffLabel:`Änderungen seit dem letzten Zug: {{path}}`,diffFolded:`{{count}} unveränderte Zeilen`},activity:{empty:`Befehle, Dateioperationen und Werkzeugergebnisse werden hier angezeigt.`,toolActivity:`Werkzeugaktivität`,details:`Details`,kinds:{message:`Nachricht`,toolCall:`Werkzeugaufruf`,toolResult:`Werkzeugergebnis`,error:`Fehler`}},preview:{command:`Optionaler Startbefehl`,start:`Vorschau starten`,stop:`Vorschau stoppen`,open:`Öffnen`,starting:`Vorschau wird gestartet…`,frameTitle:`Arbeitsbereichsvorschau`,failed:`Die Vorschau konnte nicht gestartet werden. Prüfen Sie „Aktivität“ und versuchen Sie es mit einem anderen Befehl.`,empty:`Starten Sie die App in diesem Arbeitsbereich, um sie hier zu prüfen.`},mobile:{surface:`Aufgabenansicht`,conversation:`Unterhaltung`,workspace:`Arbeitsbereich`},toasts:{runFailed:`Die Arbeitsaufgabe konnte nicht gestartet werden.`,updateFailed:`Diese Aufgabe konnte nicht aktualisiert werden.`,renameFailed:`Diese Aufgabe konnte nicht umbenannt werden.`,cancelled:`Arbeitsausführung gestoppt.`,cancelFailed:`Die Arbeitsausführung konnte nicht gestoppt werden.`,deleteFailed:`Diese Arbeitsaufgabe konnte nicht gelöscht werden.`,saveFailed:`Diese Datei konnte nicht gespeichert werden.`,saved:`Datei gespeichert.`,previewFailed:`Die Vorschau konnte nicht gestartet werden.`,previewStopFailed:`Die Vorschau konnte nicht gestoppt werden.`},terminal:{connecting:`Shell in der Sandbox wird geöffnet…`,closed:`Terminalsitzung beendet.`,failed:`Die Terminalsitzung konnte nicht gestartet werden.`,reconnect:`Erneut verbinden`,unavailable:`Das interaktive Terminal ist in dieser Installation nicht verfügbar.`,blockedByRun:`Das Modell nutzt diesen Container. Das Terminal öffnet nach dem Zug.`,taskRunning:`Modellzug läuft`},policy:{label:`Laufzeitrichtlinie`,default:`Standard (globale Limits)`},git:{actionFailed:`Git-Aktion fehlgeschlagen.`,blockedByPreview:`Vorschau stoppen, bevor der Git-Zustand geändert wird.`,blockedByRun:`Git-Schreibaktionen werden nach dem Modellzug freigegeben.`,branchCreated:`{{name}} erstellt.`,branchSwitched:`Zu {{name}} gewechselt.`,clean:`Arbeitsverzeichnis ist sauber.`,commit:`Vorgemerkte Änderungen committen`,commitMessage:`Commit-Nachricht`,committed:`Commit erstellt.`,detached:`losgelöster HEAD`,diff:`Diff-Vorschau`,diffFailed:`Dieser Diff konnte nicht geladen werden.`,history:`Lokale Historie`,initialize:`Git initialisieren`,initializeDescription:`Ein lokales Repository für Status, Diffs, Branches und Commits anlegen. Keine Remote-Zugangsdaten werden verbunden.`,initialized:`Git-Repository initialisiert.`,loadFailed:`Git-Status konnte nicht geladen werden.`,localOnly:`Nur lokales Git. Push, Pull und Pull Requests erfordern einen separaten vertrauenswürdigen Zugangsdaten-Broker.`,newBranch:`Neuer lokaler Branch`,noCommits:`Noch keine Commits.`,noDiff:`Noch kein Text-Diff verfügbar. Unversionierte Dateien erscheinen nach dem Vormerken.`,notInitialized:`Git ist nicht initialisiert`,selectChange:`Geänderte Datei auswählen, um ihren Diff zu prüfen.`,selectPath:`{{path}} auswählen`,stageAll:`Alle vormerken`,stageSelected:`{{count}} vormerken`,staged:`Änderungen vorgemerkt.`,switchBranch:`Lokalen Branch wechseln`,changes:`Änderungen`,createBranch:`Erstellen`,filterFiles:`Geänderte Dateien filtern`,noFilterMatches:`Keine geänderten Dateien entsprechen diesem Filter.`,allChanges:`Alle Änderungen`,diffTruncated:`Dieser Diff ist gekürzt.`,binaryFile:`Binärdatei, kein Text-Diff.`},hostWorkspace:{hint:`Leer lassen für einen isolierten Arbeitsbereich, oder die Aufgabe auf einen Ordner dieses Rechners richten.`,label:`Arbeitsbereich-Ordner (optional)`,warning:`Die Aufgabe kann diesen Ordner direkt lesen und schreiben. Leer lassen für einen isolierten Arbeitsbereich.`}},personaBackground:{label:`Hintergrundbild`,uploadBackgroundImage:`Hintergrundbild hochladen`,dragAndDrop:`Bild hierher ziehen oder klicken zum Durchsuchen`,chooseImage:`Bild auswählen`,uploading:`Wird hochgeladen...`,enterImageUrl:`Oder Bild-URL eingeben`,supportedFormats:`Unterstützt: JPG, PNG, GIF, WebP (max 5MB). Breite Querformatbilder funktionieren am besten.`,customBackground:`Benutzerdefiniertes Hintergrundbild`,clickToChange:`Klicken zum Ändern oder Entfernen`,removed:`Hintergrund entfernt`,uploaded:`Hintergrund erfolgreich hochgeladen`,invalidFile:`Bitte wählen Sie eine gültige Bilddatei`,fileTooLarge:`Die Hintergrundbildgröße muss weniger als 5MB betragen`,readFailed:`Bilddatei konnte nicht gelesen werden`,uploadFailed:`Hintergrundbild konnte nicht hochgeladen werden`},modelSelector:{searchInstalled:`Installierte Modelle durchsuchen...`,searchOllama:`Ollama-Bibliothek durchsuchen...`,searchHuggingFace:`HuggingFace durchsuchen...`,selectModel:`Modell auswählen`,personas:`Personas`,ollamaModels:`Ollama-Modelle`,pluginModels:`Plugin-Modelle`,actions:`Aktionen`,installed:`Installiert`,use:`Verwenden`,pull:`Herunterladen`,pullRestricted:`Die Modellinstallation ist in dieser Instanz auf Administratoren beschränkt.`,adminOnlyPull:`Nur Admins`,legacyProvider:`Anbieter nicht erfasst`,providerNotRecorded:`Anbieter nicht erfasst`,providerUnavailable:`Anbieter nicht verfügbar`,reselectProvider:`Anbieter neu auswählen, um dieses Modell zu fixieren`,unavailable:`nicht verfügbar`,unavailableSelections:`Nicht verfügbare Auswahlen`,agentModels:`Agenten`},whatsNew:{title:`Was ist neu`,releaseNotes:`Versionshinweise`,cta:`Okay, los geht’s`,starAsk:`Gefällt Ihnen Libre WebUI? Hinterlassen Sie einen Stern auf GitHub`},notes:{title:`Notizen`,new:`Neue Notiz`,untitled:`Ohne Titel`,empty:`Noch keine Notizen`,selectOrCreate:`Wähle eine Notiz oder erstelle eine neue`,contentPlaceholder:`In Markdown schreiben…`,saved:`Gespeichert`,saveFailed:`Notiz konnte nicht gespeichert werden`,createFailed:`Notiz konnte nicht erstellt werden`,deleteConfirm:`Diese Notiz löschen?`,deleteFailed:`Notiz konnte nicht gelöscht werden`,tools:`Notizwerkzeuge`,revisions:`Verlauf`,attachments:`Anhänge`,share:`Teilen`,assist:`KI-Bearbeitung`,noRevisions:`Noch keine früheren Versionen`,restore:`Wiederherstellen`,revisionRestored:`Version wiederhergestellt`,revisionRestoreFailed:`Diese Version konnte nicht wiederhergestellt werden`,addAttachment:`Anhang hinzufügen`,noAttachments:`Noch keine Anhänge`,attachmentAdded:`Anhang hinzugefügt`,attachmentFailed:`Anhang konnte nicht hinzugefügt werden`,attachmentDownloadFailed:`Anhang konnte nicht heruntergeladen werden`,shareUsernamePlaceholder:`Benutzername`,permissionRead:`Darf ansehen`,permissionWrite:`Darf bearbeiten`,shareAction:`Teilen`,notShared:`Noch mit niemandem geteilt`,revokeShare:`Zugriff entziehen`,shareHint:`Geteilte Notizen erscheinen in der Notizliste der anderen Person. Der Zugriff kann jederzeit entzogen werden.`,shareUserNotFound:`Kein Benutzer mit diesem Namen`,shareAdded:`Mit {{username}} geteilt`,shareFailed:`Die Notiz konnte nicht geteilt werden`,assistPlaceholder:`Beschreibe die Änderung, z. B. die Zusammenfassung straffen oder die Grammatik korrigieren`,assistGenerate:`Änderung vorschlagen`,assistNoModel:`Wähle zuerst ein Modell im Chat`,assistNoChanges:`Das Modell hat keine Änderungen vorgeschlagen`,assistApply:`Übernehmen`,assistDiscard:`Verwerfen`,assistApplied:`Änderung übernommen`,assistRevisionHint:`Beim Übernehmen bleibt die vorherige Version im Verlauf erhalten, sodass jede KI-Änderung rückgängig gemacht werden kann.`,assistFailed:`Die Änderung konnte nicht erzeugt werden`,pin:`Notiz anheften`,unpin:`Notiz lösen`,pinned:`Angeheftet`,export:`Als Markdown herunterladen`,sharedWithYou:`Mit dir geteilt`},calendar:{title:`Kalender`,today:`Heute`,month:`Monat`,week:`Woche`,previous:`Zurück`,next:`Weiter`,newEvent:`Neuer Termin`,editEvent:`Termin bearbeiten`,eventTitle:`Titel`,titlePlaceholder:`Titel des Termins`,date:`Datum`,start:`Beginn`,end:`Ende`,allDay:`Ganztägig`,repeat:`Wiederholen`,repeatNone:`Keine Wiederholung`,repeatDaily:`Täglich`,repeatWeekly:`Wöchentlich`,repeatMonthly:`Monatlich`,repeatYearly:`Jährlich`,notes:`Notizen`,more:`+{{n}} weitere`,loadFailed:`Kalender konnte nicht geladen werden`,saveFailed:`Termin konnte nicht gespeichert werden`,deleteFailed:`Termin konnte nicht gelöscht werden`,day:`Tag`,calendarLabel:`Kalender`,personalCalendar:`Persönlich`,reminderLabel:`Erinnerung`,reminderNone:`Keine Erinnerung`,reminderMinutes:`{{minutes}} Minuten vorher`,reminderHour:`1 Stunde vorher`,reminderDay:`1 Tag vorher`,sharedReadOnly:`Dieser Termin ist nur zum Ansehen mit dir geteilt.`,sharedBadge:`geteilt`,shareCalendar:`Kalender teilen`,newCalendarPlaceholder:`Neuer Kalender…`,calendarSaveFailed:`Der Kalender konnte nicht gespeichert werden`,exportFailed:`Der Kalender konnte nicht exportiert werden`,importFailed:`Die Datei konnte nicht importiert werden`,importResult:`{{total}} Termine importiert`,importIcs:`Importieren`,exportIcs:`Exportieren`},automations:{title:`Automationen`,tab:{automations:`Automationen`,runs:`Läufe`},newAutomation:`Neue Automation`,editAutomation:`Automation bearbeiten`,empty:`Noch keine Automationen. Erstelle eine, um eine Aufgabe nach Zeitplan auszuführen.`,loadFailed:`Automationen konnten nicht geladen werden`,saveFailed:`Automation konnte nicht gespeichert werden`,actionFailed:`Die Aktion ist fehlgeschlagen`,runQueued:`Lauf gestartet`,status:{active:`Aktiv`,paused:`Pausiert`},nextRun:`Nächster Lauf {{when}}`,actions:`Aktionen`,pause:`Pausieren`,resume:`Fortsetzen`,runNow:`Jetzt ausführen`,openChat:`Chat öffnen`,noRuns:`Noch keine Läufe`,deletedAutomation:`Gelöschte Automation`,runHistory:`Laufverlauf (letzte 30 Tage)`,succeeded:`erfolgreich`,failed:`fehlgeschlagen`,form:{name:`Name`,namePlaceholder:`Meine Automation`,triggers:`Auslöser`,addTrigger:`Auslöser hinzufügen`,instructions:`Anweisungen`,instructionsPlaceholder:`Was soll nach diesem Zeitplan ausgeführt werden?`,model:`Modell`,modelAuto:`Auto`,notification:`Benachrichtigung`,notifyApp:`App`,notifyOff:`Aus`,frequency:`Häufigkeit`,time:`Uhrzeit`,minute:`Minute`,fromHour:`Von`,toHour:`Bis`,weekday:`Wochentag`,dayOfMonth:`Tag`,month:`Monat`},kind:{once:`Einmalig`,hourly:`Stündlich`,daily:`Täglich`,weekly:`Wöchentlich`,monthly:`Monatlich`,yearly:`Jährlich`},trigger:{once:`Einmalig am {{when}}`,hourly:`Stündlich um :{{minute}}`,daily:`Täglich um {{time}}`,weekly:`Wöchentlich am {{day}} um {{time}}`,monthly:`Monatlich am {{day}}. um {{time}}`,yearly:`Jährlich am {{date}} um {{time}}`},finishedNotification:`{{n}} Automationslauf/-läufe abgeschlossen`,templatesTitle:`Vorlagen`,templates:{morningBrief:{name:`Morgenbriefing`,description:`Starte den Tag mit Schlagzeilen und Prioritäten.`},newsDigest:{name:`KI-Nachrichtenüberblick`,description:`Relevante Modellveröffentlichungen, Forschung und Finanzierung.`},weeklyReview:{name:`Wochenrückblick`,description:`Die Woche abschließen: Erfolge, offene Punkte, nächste Prioritäten.`},monthlyReport:{name:`Monatsbericht`,description:`Eine Statusbericht-Gliederung am Ersten jedes Monats.`}}},home:{active:`aktiv`,continue:`Fortsetzen`,start:`Starten`,explore:`Entdecken`},palette:{empty:`Keine Treffer.`,placeholder:`Chats, Work, Aktionen durchsuchen…`,toggleTheme:`Design umschalten`,actions:`Aktionen`,chats:`Chats`,search:`Suchen`,settings:`Einstellungen`,work:`Arbeit`,messages:`Nachrichten`,notes:`Notizen`,documents:`Dokumente`},tabs:{actions:`Tab-Aktionen`,close:`Tab schließen`,closeAll:`Alle Tabs schließen`,closeOthers:`Andere Tabs schließen`,closeRight:`Tabs rechts schließen`,home:`Start`,label:`Offene Tabs`,new:`Neuer Tab`,newWork:`Neues Work`,chat:`Chat`,newChat:`Neuer Chat`,work:`Arbeit`},tools:{arguments:`Argumente`,result:`Ergebnis`,callStatus:{awaiting_approval:`Wartet auf Genehmigung`,running:`Läuft`,succeeded:`Fertig`,failed:`Fehlgeschlagen`,denied:`Abgelehnt`,cancelled:`Abgebrochen`},approval:{title:`Werkzeug braucht eine Genehmigung`,description:`Das Modell möchte {{tool}} auf {{server}} ausführen. Dieser Aufruf kann Daten außerhalb dieses Chats verändern.`,builtinSource:`dieser Server`,allowOnce:`Einmal zulassen`,allowSession:`Für diesen Chat zulassen`,allowAlways:`Immer zulassen`,deny:`Ablehnen`}},promptsPage:{title:`Prompts`,description:`Wiederverwendbare Prompt-Vorlagen mit typisierten Variablen. Tippe / im Chat-Eingabefeld, um eine einzufügen.`,newPrompt:`Neuer Prompt`,editPrompt:`Prompt bearbeiten`,empty:`Noch keine Prompts`,emptyHint:`Ein Prompt ist eine gespeicherte Nachrichtenvorlage. Sobald du einen angelegt hast, fügt /slug im Chat-Eingabefeld ihn ein und fragt nach den Variablen, die er deklariert.`,loadFailed:`Deine Prompts konnten nicht geladen werden.`,saved:`Prompt gespeichert`,saveFailed:`Der Prompt konnte nicht gespeichert werden.`,deleted:`Prompt gelöscht`,deleteFailed:`Der Prompt konnte nicht gelöscht werden.`,deleteTitle:`Prompt löschen`,deleteConfirm:`"{{title}}" löschen? Damit verschwindet auch der Versionsverlauf.`,exportFailed:`Der Prompt konnte nicht exportiert werden.`,imported:`Prompt importiert`,importFailed:`Diese Datei konnte nicht importiert werden.`,historyFailed:`Der Versionsverlauf konnte nicht geladen werden.`,rolledBack:`Prompt zurückgesetzt`,rollbackFailed:`Der Prompt konnte nicht zurückgesetzt werden.`,versionLabel:`v{{version}}`,updated:`Aktualisiert {{when}}`,form:{slug:`Slug`,slugPlaceholder:`weekly-report`,slugHint:`Wird als /slug im Eingabefeld verwendet.`,slugInvalid:`Nur Kleinbuchstaben, Ziffern und Bindestriche.`,title:`Titel`,titlePlaceholder:`Wochenbericht`,description:`Beschreibung`,descriptionPlaceholder:`Wofür dieser Prompt gedacht ist`,content:`Inhalt`,contentPlaceholder:`Schreibe den Prompt. Setze alles, was später ausgefüllt werden soll, in doppelte geschweifte Klammern.`,contentHint:`Ein Platzhalter ist ein Name in doppelten geschweiften Klammern. Deklariere ihn unten, um ihm eine Bezeichnung oder einen Standardwert zu geben.`,tags:`Tags`,tagsPlaceholder:`recherche, schreiben`,variables:`Variablen`,variablesHint:`Optional. Deklariere hier einen Platzhalter, um ihm eine Bezeichnung, einen Standardwert oder eine Auswahl zu geben.`,variableName:`Name`,variableType:`Typ`,variableLabel:`Bezeichnung`,variableDefault:`Standard`,variableRequired:`Erforderlich`,variableOptions:`Optionen`,variableOptionsPlaceholder:`Auswahl, durch Komma getrennt`,addVariable:`Variable hinzufügen`,removeVariable:`Variable entfernen`},variableTypes:{text:`Text`,number:`Zahl`,select:`Auswahl`,boolean:`Ja oder nein`},history:{open:`Versionsverlauf`,title:`Verlauf von {{title}}`,subtitle:`Beim Zurücksetzen wird die gewählte Revision als neue Version gespeichert. Nichts wird überschrieben.`,empty:`Noch keine früheren Versionen.`,current:`Aktuell`,rollback:`Zurücksetzen`,rollingBack:`Wird zurückgesetzt...`},templatesTitle:`Mit einer Vorlage starten`,templates:{reviewPr:{name:`Pull-Request-Review`,description:`Strukturiertes Code-Review mit einstellbarer Strenge.`},summarize:{name:`Für ein Publikum zusammenfassen`,description:`Stichpunkt-Zusammenfassung, auf die Leserschaft zugeschnitten.`},translate:{name:`Übersetzen`,description:`Übersetzung, die Ton und Formatierung erhält.`},explainCode:{name:`Code erklären`,description:`Durchgang plus Grenzfälle und Risiken.`}}},skillsPage:{title:`Skills`,description:`Benannte Anweisungssätze, die das Modell bei Bedarf während der Arbeit laden kann.`,newSkill:`Neuer Skill`,editSkill:`Skill bearbeiten`,empty:`Noch keine Skills`,emptyHint:`Ein Skill ist ein Satz Anweisungen, den das Modell nur lädt, wenn es ihn braucht. Erwähne $slug in einer Nachricht oder lass das Modell über das Werkzeug load_skill danach greifen.`,loadFailed:`Deine Skills konnten nicht geladen werden.`,saved:`Skill gespeichert`,saveFailed:`Der Skill konnte nicht gespeichert werden.`,toggleFailed:`Der Skill konnte nicht geändert werden.`,deleted:`Skill gelöscht`,deleteFailed:`Der Skill konnte nicht gelöscht werden.`,deleteTitle:`Skill löschen`,deleteConfirm:`"{{name}}" löschen? Damit verschwindet auch der Versionsverlauf.`,exportFailed:`Der Skill konnte nicht exportiert werden.`,imported:`Skill importiert`,importFailed:`Diese Datei konnte nicht importiert werden.`,historyFailed:`Der Versionsverlauf konnte nicht geladen werden.`,rolledBack:`Skill zurückgesetzt`,rollbackFailed:`Der Skill konnte nicht zurückgesetzt werden.`,versionLabel:`v{{version}}`,updated:`Aktualisiert {{when}}`,form:{slug:`Slug`,slugPlaceholder:`code-review`,slugHint:`Wird als $slug verwendet, wenn du den Skill erwähnst.`,slugInvalid:`Nur Kleinbuchstaben, Ziffern und Bindestriche.`,name:`Name`,namePlaceholder:`Code-Review`,description:`Beschreibung`,descriptionPlaceholder:`Wann dieser Skill zu verwenden ist`,descriptionHint:`Das ist das Manifest, das das Modell sieht. Schreibe es so, dass das Modell ohne Laden erkennt, wann der Skill passt.`,instructions:`Anweisungen`,instructionsPlaceholder:`Markdown-Anweisungen, die das Modell liest, sobald es diesen Skill lädt.`,instructionsHint:`Wird nur beim Einsatz des Skills geladen, Länge kostet hier also bis dahin nichts.`,enabled:`Aktiviert`,enabledHint:`Deaktivierte Skills bleiben gespeichert, werden dem Modell aber nie angeboten.`},history:{open:`Versionsverlauf`,title:`Verlauf von {{name}}`},templatesTitle:`Mit einer Vorlage starten`,templates:{citeSources:{name:`Quellen angeben`,description:`Nummerierte Belege mit URLs, keine unbelegten Aussagen.`},releaseNotes:{name:`Stil für Release Notes`,description:`Gruppierte, nutzerorientierte Einträge ohne interne IDs.`},meetingNotes:{name:`Format für Besprechungsnotizen`,description:`Entscheidungen, Aufgaben und offene Fragen aus einem Transkript.`}},importUrl:{button:`Von URL`,title:`Skill von einer URL importieren`,hint:`Füge einen skills.sh- oder GitHub-Link ein, owner/repo/skill oder einen direkten Link zu einer SKILL.md-Datei.`,placeholder:`https://skills.sh/owner/repo/skill oder owner/repo/skill`,overwrite:`Meinen Skill überschreiben, wenn der Slug bereits existiert`},files:{title:`Mitgelieferte Dateien`,hint:`Referenzdokumente und Skripte, die das Modell bei Bedarf mit read_skill_file liest.`,add:`Datei hinzufügen`,empty:`Noch keine mitgelieferten Dateien.`,pathPlaceholder:`docs/reference.md`,contentPlaceholder:`Dateiinhalt…`,loadFailed:`Datei konnte nicht geladen werden`,saveFailed:`Datei konnte nicht gespeichert werden`,deleteFailed:`Datei konnte nicht gelöscht werden`},folderImport:{button:`Aus Ordner`,missingSkillMd:`Der Ordner benötigt eine SKILL.md-Datei`,done:`Skill mit {{count}} mitgelieferten Dateien importiert`}},toolsPage:{title:`Werkzeuge`,description:`Werkzeugserver, die das Modell aufrufen kann, und die Genehmigungen, die du ihnen erteilt hast.`,approvalNotice:`Werkzeuge, die Daten außerhalb des Chats verändern, fragen immer nach einer Genehmigung, außer du hast dem Werkzeug eine dauerhafte oder chatweite Genehmigung erteilt.`,registerServer:`Server registrieren`,registerHint:`Libre WebUI liest den Server einmal aus und fixiert die Werkzeuge, die er anbietet. Aktualisiere den Server später, um Änderungen zu übernehmen.`,editServer:`Server bearbeiten`,empty:`Keine Werkzeugserver`,emptyHintAdmin:`Registriere einen OpenAPI- oder MCP-Server, damit das Modell etwas aufrufen kann.`,emptyHintUser:`Ein Administrator hat noch keine Werkzeugserver mit dir geteilt.`,loadFailed:`Die Werkzeugserver konnten nicht geladen werden.`,saved:`Werkzeugserver gespeichert`,saveFailed:`Der Werkzeugserver konnte nicht gespeichert werden.`,deleted:`Werkzeugserver gelöscht`,deleteFailed:`Der Werkzeugserver konnte nicht gelöscht werden.`,deleteTitle:`Werkzeugserver löschen`,deleteConfirm:`"{{name}}" löschen? Alle verlieren den Zugriff auf seine Werkzeuge.`,refresh:`Werkzeuge aktualisieren`,refreshed:`Werkzeuge erneut vom Server gelesen`,refreshFailed:`Der Server konnte nicht gelesen werden.`,toolsLoadFailed:`Die fixierten Werkzeuge konnten nicht geladen werden.`,overrideFailed:`Das Werkzeug konnte nicht geändert werden.`,pinnedTools:`Fixierte Werkzeuge`,noPinnedTools:`Dieser Server hat keine Werkzeuge angeboten.`,sideEffect:`Nebenwirkung`,sideEffectOverride:`Nebenwirkung`,specRevision:`Revision {{revision}}`,credential:`Persönliche Zugangsdaten`,credentialHint:`Verschlüsselt gespeichert und nur für deine eigenen Aufrufe an diesen Server verwendet.`,credentialPlaceholder:`Token einfügen`,credentialSet:`Zugangsdaten hinterlegt`,credentialMissing:`Zugangsdaten erforderlich`,credentialSaved:`Zugangsdaten gespeichert`,credentialSaveFailed:`Die Zugangsdaten konnten nicht gespeichert werden.`,credentialRemove:`Entfernen`,credentialRemoved:`Zugangsdaten entfernt`,credentialRemoveFailed:`Die Zugangsdaten konnten nicht entfernt werden.`,builtinSource:`Dieser Server`,kinds:{openapi:`OpenAPI`,mcp:`MCP`},authModes:{none:`Keine Authentifizierung`,bearer:`Bearer-Token`,header:`Eigener Header`},accessModes:{"admins-only":`Nur Administratoren`,"all-users":`Alle`,granted:`Nur Personen mit Freigabe`},form:{name:`Name`,namePlaceholder:`Wetter-API`,kind:`Art`,description:`Beschreibung`,descriptionPlaceholder:`Was dieser Server tut`,baseUrl:`Basis-URL`,specUrl:`Spezifikations-URL`,specUrlHint:`Optional. Leer bedeutet: die Basis-URL wird verwendet.`,authMode:`Authentifizierung`,authHeader:`Header-Name`,accessMode:`Wer es nutzen darf`,timeoutMs:`Zeitlimit (ms)`,maxResponseBytes:`Max. Antwort (Bytes)`,serverDefault:`Server-Standard`,enabled:`Aktiviert`,enabledHint:`Deaktivierte Server bleiben registriert, werden dem Modell aber nie angeboten.`},approvals:{title:`Dauerhafte Genehmigungen`,description:`Werkzeuge, die ohne erneutes Nachfragen laufen dürfen. Widerrufe eine, und beim nächsten Mal wird wieder gefragt.`,empty:`Keine dauerhaften Genehmigungen.`,revoke:`Widerrufen`,revoked:`Genehmigung widerrufen`,revokeFailed:`Die Genehmigung konnte nicht widerrufen werden.`,scope:{once:`Einmal`,session:`Dieser Chat`,always:`Immer`}},templatesTitle:`Mit einer Vorlage starten`,templates:{petstore:{name:`Petstore-Demo`,description:`Eine öffentliche Demo-API für einen sicheren ersten Ende-zu-Ende-Test.`},internalOpenApi:{name:`Interne API`,description:`Ein Ausgangspunkt für deinen eigenen OpenAPI-Dienst.`},mcpServer:{name:`MCP-Server`,description:`Ein Ausgangspunkt für einen MCP-Server über Streamable HTTP.`}}},composer:{promptMenu:{label:`Prompt-Bibliothek`,empty:`Noch keine Prompts — lege einen unter Einstellungen → Prompts an oder tippe einen Slug.`},skillMenu:{label:`Skills`,empty:`Noch keine Skills — lege einen unter Einstellungen → Skills an.`},variables:{title:`{{title}} ausfüllen`,insert:`Einfügen`,cancel:`Abbrechen`,required:`{{name}} ist erforderlich`},toolsMenu:{enable:`Tools für diese Nachricht verwenden`,builtin:`Integrierte Tools`,servers:`Tool-Server`,hint:`Aufrufe mit Nebenwirkungen fragen weiterhin vor der Ausführung nach Freigabe.`}},share:{title:`„{{name}}“ teilen`,subtitle:`Personen oder Gruppen Zugriff geben. Nur du verwaltest die Freigaben.`,kindUser:`Benutzer`,kindGroup:`Gruppe`,usernamePlaceholder:`Genauer Benutzername`,groupPlaceholder:`Genauer Gruppenname`,permissionRead:`Darf ansehen`,permissionWrite:`Darf bearbeiten`,action:`Teilen`,empty:`Noch mit niemandem geteilt.`,hint:`Gib den genauen Benutzer- oder Gruppennamen ein. Empfänger sehen es im eigenen Arbeitsbereich; ein Widerruf entzieht den Zugriff sofort.`,revoke:`Zugriff widerrufen`,added:`Mit {{name}} geteilt`,failed:`Teilen fehlgeschlagen`,userNotFound:`Kein Benutzer mit diesem Namen`,groupNotFound:`Keine Gruppe mit diesem Namen`},channels:{title:`Kanäle`,browsePublic:`Öffentliche Kanäle durchsuchen`,newDm:`Neue Direktnachricht`,newChannel:`Neuer Kanal`,empty:`Noch keine Kanäle. Erstelle einen oder durchsuche öffentliche Kanäle.`,selectPrompt:`Wähle einen Kanal, um loszulegen`,pins:`Angeheftet`,members:`Mitglieder`,settings:`Kanaleinstellungen`,sendFailed:`Die Nachricht konnte nicht gesendet werden`,uploadFailed:`Die Datei konnte nicht hochgeladen werden`,memberAdded:`Mitglied hinzugefügt`,memberAddFailed:`Dieser Benutzer konnte nicht hinzugefügt werden`,attach:`Datei anhängen`,askModel:`Mit dieser Nachricht ein Modell fragen`,noModel:`Kein Modell`,composerPlaceholder:`Nachricht schreiben…`,thread:`Thread`,replyPlaceholder:`Antworten…`,invitePlaceholder:`Benutzername zum Einladen`,roleOwner:`Inhaber`,removeMember:`Aus dem Kanal entfernen`,leave:`Kanal verlassen`,noPins:`Noch nichts angeheftet.`,noMessages:`Noch keine Nachrichten — sag hallo.`,create:`Erstellen`,createFailed:`Der Kanal konnte nicht erstellt werden`,nameLabel:`Name`,typeLabel:`Typ`,typePublic:`Öffentlich — jeder kann beitreten`,typePrivate:`Privat — nur auf Einladung`,descriptionLabel:`Beschreibung`,openDm:`Unterhaltung öffnen`,dmFailed:`Die Unterhaltung konnte nicht geöffnet werden`,dmHint:`Direktnachrichten bleiben privat zwischen euch beiden.`,dmPlaceholder:`Genauer Benutzername`,noPublic:`Keine öffentlichen Kanäle vorhanden.`,joined:`Beigetreten`,join:`Beitreten`,save:`Speichern`,delete:`Kanal löschen`,modelAuthor:`Modell`,unknownAuthor:`Jemand`,edited:`bearbeitet`,deletedMessage:`Diese Nachricht wurde gelöscht`,modelThinking:`Das Modell denkt nach…`,react:`Reaktion hinzufügen`,reply:`Im Thread antworten`,pin:`Nachricht anheften`,unpin:`Nachricht lösen`,edit:`Nachricht bearbeiten`,deleteMessage:`Nachricht löschen`,replyCount:`{{total}} Antworten`},notifications:{title:`Benachrichtigungen`,empty:`Du bist auf dem Laufenden.`,markAllRead:`Alle als gelesen markieren`,markRead:`Als gelesen markieren`},voiceMode:{title:`Sprachmodus`,open:`Sprachmodus starten`,close:`Sprachmodus schließen`,starting:`Wird gestartet…`,listening:`Ich höre zu…`,muted:`Mikrofon stummgeschaltet`,transcribing:`Wird transkribiert…`,generating:`Denkt nach…`,speaking:`Spricht…`,mute:`Mikrofon stummschalten`,unmute:`Stummschaltung aufheben`,finishTurn:`Fertig gesprochen`,skipReply:`Antwort überspringen`,microphoneFailed:`Mikrofon nicht verfügbar`,transcriptionFailed:`Transkription fehlgeschlagen`,replyTimeout:`Die Antwort hat zu lange gedauert`,unsupported:`Der Sprachmodus ist nicht verfügbar`,unsupportedHint:`Der Sprachmodus benötigt ein Mikrofon und entweder einen Sprache-zu-Text-Anbieter oder die Spracherkennung des Browsers.`},imageEdit:{title:`Bild bearbeiten`,prompt:`Änderung beschreiben`,promptPlaceholder:`Zum Beispiel: den Himmel durch einen Sonnenuntergang ersetzen`,model:`Modell`,apply:`Bearbeitung anwenden`,maskHint:`Übermale die Bereiche, die neu gezeichnet werden sollen; unberührt lassen, um das ganze Bild zu bearbeiten.`,brushSize:`Pinselgröße`,clearMask:`Maske löschen`,referenceImages:`Referenzbilder (bis zu {{total}})`,noModels:`Kein konfiguriertes Modell unterstützt Bildbearbeitung.`,saved:`Bearbeitetes Bild in der Galerie gespeichert`,failed:`Bildbearbeitung fehlgeschlagen`,loadFailed:`Quellbild konnte nicht geladen werden`},costs:{title:`Kosten und Budgets`,description:`Tarifpreise auf das Nutzungsjournal angewandt; Budgets beobachten oder begrenzen die Ausgaben.`,loadFailed:`Kostendaten konnten nicht geladen werden`,saveFailed:`Speichern fehlgeschlagen`,exportFailed:`Export fehlgeschlagen`,exportCsv:`CSV exportieren`,totalSpend:`Gesamtausgaben`,meteredEvents:`Bepreiste Ereignisse`,unmeteredEvents:`Unbepreiste Ereignisse`,topModel:`Top-Modell`,budgets:`Budgets`,noBudgets:`Noch keine Budgets.`,budgetName:`Budgetname`,principalId:`Benutzer- oder Gruppen-ID`,addBudget:`Budget hinzufügen`,deleteBudget:`Budget löschen`,budgetSaved:`Budget gespeichert`,scope:{instance:`Gesamte Instanz`,user:`Benutzer`,group:`Gruppe`},period:{daily:`Täglich`,weekly:`Wöchentlich`,monthly:`Monatlich`},mode:{observe:`Beobachten`,soft:`Warnen`,hard:`Warnen und blockieren`},tariffs:`Tarife`,noTariffs:`Noch keine Tarife — Kosten bleiben unbepreist, bis Preise hinterlegt sind.`,plugin:`Plugin`,model:`Modell`,modelOptional:`Modell (optional)`,allModels:`Alle Modelle`,inputPerMillion:`Eingabe $/M Token`,outputPerMillion:`Ausgabe $/M Token`,unitPrice:`Stückpreis`,effectiveFrom:`Gültig ab`,addTariff:`Tarif hinzufügen`,deleteTariff:`Tarif löschen`,tariffSaved:`Tarif gespeichert`},evaluations:{title:`Evaluationen`,description:`Blinde Arena-Duelle, eine Elo-Rangliste, wiederverwendbare Evaluationssets und dein Feedback-Datensatz.`,loadFailed:`Evaluationen konnten nicht geladen werden`,matchFailed:`Das Arena-Duell ist fehlgeschlagen`,voteRecorded:`Stimme erfasst`,voteFailed:`Stimme konnte nicht erfasst werden`,saveFailed:`Speichern fehlgeschlagen`,exportFailed:`Export fehlgeschlagen`,setSaved:`Evaluationsset gespeichert`,runStarted:`Evaluationslauf gestartet`,pickModel:`Modell wählen`,tabs:{arena:`Arena`,leaderboard:`Rangliste`,sets:`Eval-Sets`,feedback:`Feedback`},arenaModelA:`Modell A`,arenaModelB:`Modell B`,arenaPrompt:`Stelle beiden Modellen dieselbe Frage…`,startMatch:`Duell starten`,arenaHint:`Die Modellnamen bleiben bis zur Abstimmung verborgen.`,candidate:`Antwort {{letter}}`,voteFirst:`Erste ist besser`,voteSecond:`Zweite ist besser`,voteTie:`Unentschieden`,voteBothBad:`Beide schlecht`,model:`Modell`,rating:`Wertung`,record:`Bilanz`,votes:`Stimmen`,noVotes:`Noch keine Arena-Stimmen — starte ein Duell für die Rangliste.`,newSet:`Neues Evaluationsset`,setName:`Name des Sets`,setPrompts:`Ein Prompt pro Zeile…`,saveSet:`Set speichern`,yourSets:`Deine Sets`,noSets:`Noch keine Evaluationssets.`,itemCount:`{{total}} Prompts`,run:`Ausführen`,deleteSet:`Set löschen`,cancelRun:`Lauf abbrechen`,exportRun:`Lauf exportieren`,status:{queued:`Wartet`,running:`Läuft`,completed:`Abgeschlossen`,failed:`Fehlgeschlagen`,cancelled:`Abgebrochen`},noFeedback:`Noch kein Feedback — bewerte Antworten, um deinen Datensatz aufzubauen.`}};export{e as default};
@@ -0,0 +1,2 @@
1
+ var e={common:{loading:`Cargando...`,save:`Guardar`,saving:`Guardando...`,cancel:`Cancelar`,delete:`Eliminar`,edit:`Editar`,close:`Cerrar`,back:`Atrás`,next:`Siguiente`,confirm:`Confirmar`,error:`Error`,success:`Éxito`,warning:`Advertencia`,or:`o`,optional:`opcional`,enabled:`Habilitado`,disabled:`Deshabilitado`,on:`Activado`,off:`Desactivado`,yes:`Sí`,no:`No`,search:`Buscar`,noResults:`No se encontraron resultados`,retry:`Reintentar`,refresh:`Actualizar`,download:`Descargar`,upload:`Subir`,export:`Exportar`,import:`Importar`,reset:`Restablecer`,apply:`Aplicar`,clear:`Limpiar`,all:`Todos`,none:`Ninguno`,default:`Predeterminado`,custom:`Personalizado`,remove:`Quitar`,home:`Inicio`,more:`Más`},brand:{name:`Libre WebUI`,shortName:`Libre`},auth:{login:{title:`Bienvenido de nuevo`,subtitle:`Inicia sesión en tu cuenta para continuar`,username:`Nombre de usuario`,usernamePlaceholder:`Ingresa tu nombre de usuario`,password:`Contraseña`,passwordPlaceholder:`Ingresa tu contraseña`,signIn:`Iniciar sesión`,signingIn:`Iniciando sesión...`,noAccount:`¿No tienes una cuenta?`,signUpHere:`Regístrate aquí`,loginSuccess:`¡Inicio de sesión exitoso!`,loginFailed:`Error de inicio de sesión`,checkCredentials:`Error de inicio de sesión. Por favor verifica tus credenciales.`,approvalPending:`Tu cuenta está esperando la aprobación del administrador.`,enterBoth:`Por favor ingresa usuario y contraseña`,githubSuccess:`¡Inicio de sesión con GitHub exitoso!`,githubFailed:`Autenticación de GitHub fallida`,githubVerifyFailed:`Error al verificar autenticación de GitHub`,verificationFailed:`La verificación de seguridad falló. Actualiza la página e inténtalo de nuevo.`},signup:{title:`Crear cuenta`,subtitle:`Regístrate para una nueva cuenta`,username:`Nombre de usuario`,usernamePlaceholder:`Elige un nombre de usuario`,email:`Correo electrónico`,emailPlaceholder:`tu@correo.com`,password:`Contraseña`,passwordPlaceholder:`Elige una contraseña`,confirmPassword:`Confirmar contraseña`,confirmPasswordPlaceholder:`Confirma tu contraseña`,createAccount:`Crear cuenta`,creatingAccount:`Creando cuenta...`,hasAccount:`¿Ya tienes una cuenta?`,signInHere:`Inicia sesión aquí`,signupSuccess:`¡Cuenta creada exitosamente!`,approvalPending:`Registro recibido. Un administrador debe aprobar tu cuenta.`,awaitingApproval:`Esperando aprobación`,awaitingApprovalDescription:`Tu cuenta ha sido creada, pero un administrador debe activarla antes de que puedas iniciar sesión.`,backToSignIn:`Volver a iniciar sesión`,signupFailed:`Error en el registro`,tryAgain:`Error en el registro. Por favor intenta de nuevo.`,usernameRequired:`Nombre de usuario y contraseña son obligatorios`,passwordMismatch:`Las contraseñas no coinciden`,passwordTooShort:`La contraseña debe tener al menos 6 caracteres`},logout:{button:`Cerrar sesión`,success:`Sesión cerrada exitosamente`},oauth:{continueWith:`Continuar con {{provider}}`,connectingTo:`Conectando a {{provider}}...`,github:`GitHub`,huggingFace:`Hugging Face`},checkingAuth:`Verificando autenticación...`,welcome:`Bienvenido`,noEmail:`Sin correo electrónico`,role:`Rol`,id:`ID`,userId:`ID de usuario`,signInDescription:`Inicia sesión con tu cuenta de GitHub para continuar`,signInWithGitHub:`Iniciar sesión con GitHub`,jwtActive:`Autenticación JWT activa`,jwtDescription:`Autenticación basada en JWT con GitHub OAuth`,github:`GitHub`,provider:`Proveedor`,tagline:`Tu pila de IA debería responder a ti.`,selfHosted:`Autohospedado · Apache 2.0`,highlights:{local:{title:`Primero local`,body:`Tus conversaciones y archivos permanecen en la máquina donde ejecutas esto.`},providers:{title:`Cualquier proveedor`,body:`Modelos locales a través de Ollama, además de los proveedores remotos que elijas añadir.`},work:{title:`Trabajo aislado`,body:`Dale a un modelo un espacio de trabajo aislado con archivos, una terminal y una vista previa.`}},oidc:{defaultProviderName:`Inicio de sesión único`}},setup:{welcome:{title:`Bienvenido a Libre WebUI`,subtitle:`Comencemos`,description:`Configura tu instancia de Libre WebUI en solo unos pasos`,createAdmin:`Crear cuenta de administrador`,features:{secure:{title:`Seguro y privado`,description:`Tus conversaciones permanecen en tu dispositivo`},fast:{title:`Rápido y responsivo`,description:`Optimizado para velocidad y rendimiento`},openSource:{title:`Código abierto`,description:`Software libre y de código abierto`}}},admin:{title:`Crear cuenta de administrador`,subtitle:`Configuración del administrador`,description:`Crea la primera cuenta de administrador para tu instancia de Libre WebUI`,usernamePlaceholder:`Ingresa nombre de usuario admin`,passwordPlaceholder:`Ingresa contraseña (mín. 6 caracteres)`,confirmPlaceholder:`Confirma tu contraseña`,creating:`Creando...`,createAdmin:`Crear admin`,success:`¡Cuenta de administrador creada exitosamente!`,failed:`Error al crear cuenta de administrador`,approvalUnexpected:`El administrador inicial no pudo ser activado. Por favor, inténtalo de nuevo.`,fillAllFields:`Por favor completa todos los campos`,note:`Esta será la cuenta de administrador principal para tu instancia de Libre WebUI`},encryptionKey:{title:`Guarda tu clave de cifrado`,subtitle:`Importante: Guarda esta clave`,description:`Esta clave de cifrado protege tus datos sensibles. Guárdala de forma segura - la necesitarás si alguna vez necesitas restaurar tu base de datos.`,warning:`Advertencia`,warningText:`Si pierdes esta clave y necesitas restaurar tu base de datos, tus datos cifrados (claves API, preferencias) serán irrecuperables.`,label:`Tu clave de cifrado`,loading:`Cargando...`,copyToClipboard:`Copiar al portapapeles`,copied:`¡Clave de cifrado copiada al portapapeles!`,copyFailed:`Error al copiar la clave al portapapeles`,envNote:`Esta clave también está guardada en tu archivo backend/.env como ENCRYPTION_KEY`,acknowledgment:`He guardado mi clave de cifrado en un lugar seguro y entiendo que perderla puede resultar en pérdida de datos.`,confirmRequired:`Por favor confirma que has guardado la clave de cifrado`,continue:`Continuar a Libre WebUI`}},chat:{greeting:{morning:`Buenos días`,afternoon:`Buenas tardes`,evening:`Buenas tardes`,night:`Buenas noches`},followUp:`Continuar`,welcome:{helpToday:`¿En qué puedo ayudarte hoy?`,helpTonight:`¿En qué puedo ayudarte esta noche?`,variety:{create:{title:`¿Qué vamos a crear?`,subtitle:`Empieza con una idea, un boceto o un problema que se resiste.`},explore:{title:`¿Por dónde empezamos?`,subtitle:`Trae esa pregunta a la que siempre vuelves.`},imagine:{title:`¿Qué estás imaginando?`,subtitle:`Podemos darle forma juntos.`},focus:{title:`¿Qué merece tu atención?`,subtitle:`Aclaremos cuál es el siguiente paso.`},untangle:{title:`¿Qué se ha complicado?`,subtitle:`Cuéntame primero la versión desordenada.`},momentum:{title:`Cuando quieras.`,subtitle:`Retoma una idea, un plan o algo que dejaste a medias.`},open:{title:`¿Qué tienes en mente?`,subtitle:`Una idea pequeña o un proyecto ambicioso. Todo sirve.`},challenge:{title:`¿Qué vamos a resolver?`,subtitle:`Cuéntame qué no está funcionando todavía.`},draft:{title:`Empecemos por algún sitio.`,subtitle:`No tiene que estar perfecto.`},possibility:{title:`¿En qué podría convertirse?`,subtitle:`Enséñame el material en bruto.`},unexpected:{title:`Hagamos algo inesperado.`,subtitle:`Dame una condición, un estado de ánimo o una idea a medio formar.`}}},input:{placeholder:`Enviar un mensaje`,messagePlaceholder:`Mensaje...`,attachImages:`Adjuntar imágenes`,attachments:`Adjuntos y funciones avanzadas`,sendMessage:`Enviar mensaje`,stopGeneration:`Detener generación`,menu:{uploadImages:`Subir imágenes`,attachDocument:`Adjuntar documento`,attachWebpage:`Adjuntar página web`,structuredOutput:`Salida estructurada`,attach:`Adjuntar`,documentAttached:`Documento adjuntado`,webpageAttached:`Página web adjuntada`,attachFailed:`No se pudo adjuntar`,attachKnowledge:`Adjuntar conocimiento`,noCollections:`Aún no hay colecciones: crea una en Ajustes → Documentos`},voiceInput:`Entrada de voz`,voiceStop:`Dejar de escuchar`,transcriptionSource:`Fuente de reconocimiento de voz`,browserSpeech:`Servicio de voz del navegador`,providerTranscriptionDisclosure:`Grabar y enviar audio a {{provider}} para transcribirlo`,webSearchOn:`Búsqueda web activada — las respuestas usan resultados en vivo`,webSearchOff:`Buscar en la web para este mensaje`,toolsOn:`Herramientas activadas: el modelo puede llamar a las herramientas aprobadas`,toolsOff:`Permitir que el modelo llame a herramientas en este mensaje`,thinkingOn:`Razonamiento activado ({{level}})`,thinkingOff:`Razonar antes de responder`},session:{new:`Nuevo chat`,work:`Trabajo`,chat:`Chat`,private:`Privado`,incognito:`Chat de incógnito`,privateMode:`Modo privado`,privateDescription:`Esta conversación no se guardará`,privateTooltip:`Iniciar una conversación privada que no se guardará`,deleteConfirm:`¿Estás seguro de que deseas eliminar este chat?`,generatingTitle:`Generando título`,noChats:`Aún no hay chats`,createFirst:`Crea tu primer chat arriba`,chats:`Chats`,renameChat:`Renombrar chat`,openNewTab:`Abrir en pestaña nueva`,pinChat:`Fijar`,unpinChat:`Desfijar`,deleteChat:`Eliminar chat`,archiveChat:`Archivar chat`,groups:{pinned:`Fijados`,today:`Hoy`,yesterday:`Ayer`,previous7Days:`Últimos 7 días`,previous30Days:`Últimos 30 días`,older:`Más antiguos`},folder:{new:`Nueva carpeta`,namePlaceholder:`Nombre de la carpeta`,move:`Mover a carpeta`,remove:`Quitar de la carpeta`,delete:`Eliminar carpeta`,deleteConfirm:`¿Eliminar esta carpeta? Los chats se conservan.`},shareChat:`Compartir chat…`},persona:{applied:`Persona aplicada`,label:`Persona`,loadFailed:`No se pudieron cargar los detalles de la persona`,removeFailed:`No se pudo eliminar la persona`},model:{updated:`Modelo actualizado`,noModels:`No hay modelos disponibles`,noModelsDescription:`No hay modelos disponibles. Asegúrate de que Ollama esté ejecutándose y tenga modelos instalados.`,pullCommand:`ollama pull llama3.2:3b`,noModelsTooltip:`No hay modelos disponibles. Asegúrate de que Ollama esté ejecutándose y los modelos estén instalados.`,selectBeforePrivateChat:`Selecciona un modelo disponible antes de iniciar el chat privado`,selectBeforeSending:`Selecciona un modelo disponible antes de enviar`},footer:{disclaimer:`Los LLM pueden cometer errores - verifica la información importante`,images:`{{count}} imagen`,images_plural:`{{count}} imágenes`,structuredOutput:`Salida estructurada`},mediaUpload:{dropImagesHere:`Arrastra imágenes aquí o`,supportedFormats:`Soporta: JPG, PNG, GIF, WebP (máx. 10 MB cada una)`,browse:`explorar`},structuredOutput:{title:`Formato de respuesta`,none:`Ninguno (lenguaje natural)`,noneDescription:`Respuesta predeterminada en lenguaje natural`,json:`JSON`,jsonDescription:`Formato JSON estructurado`,list:`Lista`,listDescription:`Array de elementos`,summary:`Resumen`,summaryDescription:`Resumen de documento con puntos clave`,analysis:`Análisis`,analysisDescription:`Análisis estructurado con pros/contras`,custom:`Esquema personalizado`,customDescription:`Define tu propio esquema JSON`,customSchema:`Esquema JSON personalizado`,schemaPreview:`Vista previa del esquema`,applySchema:`Aplicar esquema`,cancel:`Cancelar`,enabled:`Salida estructurada habilitada`},controls:{title:`Controles del chat`,systemPrompt:`Prompt del sistema`,systemPromptPlaceholder:`Instrucciones que solo se aplican a este chat…`,advancedParams:`Parámetros avanzados`,advancedParamsDescription:`Anulaciones para este chat. Los campos vacíos usan tus valores globales.`,fromModel:`del modelo`,fromModelHint:`Este valor proviene de la configuración recomendada por el propio modelo.`,contextCapped:`Contexto limitado a {{context}} de los {{trained}} para los que se entrenó el modelo, para que siga cargando.`,saved:`Controles guardados`,saveFailed:`No se pudieron guardar los controles`,params:{temperature:`Temperatura`,topP:`Top P`,topK:`Top K`,minP:`Min P`,maxTokens:`Tokens máx.`,repeatPenalty:`Penalización de repetición`,seed:`Semilla`,contextLength:`Longitud de contexto`},thinking:`Razonamiento`,thinkingDescription:`Cuánto razona el modelo antes de responder. Los modelos sin razonamiento lo ignoran.`,compaction:`Compactación del contexto`,compactionDescription:`Cuando el servidor compacta conversaciones largas, este chat puede quedar fuera y conservar todo su historial.`,compactionDefault:`Predeterminado del servidor`,compactionOff:`Desactivada en este chat`},message:{sources:`Fuentes`},toasts:{chatCreated:`Nuevo chat creado`,createFailed:`No se pudo crear la sesión`,loadFailed:`No se pudieron cargar las sesiones`,chatDeleted:`Chat eliminado`,deleteFailed:`No se pudo eliminar el chat`,deleteSessionFailed:`No se pudo eliminar la sesión`,historyCleared:`Todo el historial de chat se ha borrado`,historyClearFailed:`No se pudo borrar el historial de chat`,titleUpdated:`Título del chat actualizado`,updateFailed:`No se pudo actualizar la sesión`,noValidSession:`No hay una sesión de chat válida. Crea o selecciona un chat.`,sessionNotFound:`Sesión no encontrada o no válida. Selecciona o crea una sesión de chat válida.`,noModelProvider:`No hay ningún proveedor de modelos disponible`,modelUnavailable:`El modelo seleccionado "{{model}}" no está disponible desde {{provider}}. Reactiva ese proveedor o selecciona otro modelo.`,modelSwitched:`Cambiado a {{model}} (el modelo anterior ya no está disponible)`,modelsLoadFailed:`No se pudieron cargar los modelos`,modelUpdated:`Modelo actualizado para el chat actual`,modelUpdateFailed:`No se pudo actualizar el modelo de la sesión`},documents:{title:`Documentos en contexto`},context:{title:`Ventana de contexto:`,full:`{{percent}}% llena`,tokensUsed:`{{used}} / {{budget}} tokens usados`,tokensUsedNoBudget:`{{used}} tokens usados`,capped:`limitada desde {{trained}}`},queue:{title:`En cola ({{total}})`,moveUp:`Subir`,moveDown:`Bajar`,updateFailed:`No se pudo actualizar el mensaje en cola`,enqueueFailed:`No se pudo poner el mensaje en cola`},compare:{title:`Comparar modelos`,hint:`Responder con hasta {{max}} modelos adicionales`},fork:{action:`Bifurcar desde aquí`,created:`Chat bifurcado`,failed:`No se pudo bifurcar el chat`,origin:`Bifurcado desde {{title}}`,originUnknown:`otro chat`},sharedReadOnly:`Compartido por {{owner}} — solo lectura`},sidebar:{navigation:{chat:`Chat`,models:`Modelos`,personas:`Personas`,imagine:`Generar`,agents:`Agentes`,work:`Trabajo`,settings:`Configuración`,usageAnalytics:`Uso del proveedor`,system:`Sistema`,userManagement:`Gestión de usuarios`,signOut:`Cerrar sesión`,exploreLabel:`Explorar`,notes:`Notas`,calendar:`Calendario`,automations:`Automatizaciones`,prompts:`Prompts`,skills:`Habilidades`,tools:`Herramientas`,channels:`Canales`},toggleSize:`Cambiar tamaño de barra lateral`,expandSidebar:`Expandir barra lateral`},user:{menu:{changePicture:`Cambiar imagen`,settings:`Configuración`,usageAnalytics:`Uso del proveedor`,system:`Sistema`,userManagement:`Gestión de usuarios`,logout:`Cerrar sesión`,pinShortcut:`Fijar en la barra lateral`,unpinShortcut:`Quitar de la barra lateral`,evaluations:`Evaluaciones`},avatar:{title:`Cambiar imagen de perfil`,updated:`Imagen de perfil actualizada`,updateFailed:`Error al actualizar imagen de perfil`,saving:`Guardando...`,label:`Avatar`,uploadAvatarImage:`Subir imagen de avatar`,dragAndDrop:`Arrastra y suelta una imagen o haz clic para explorar`,chooseImage:`Elegir imagen`,uploading:`Subiendo...`,enterImageUrl:`O introduce la URL de la imagen`,supportedFormats:`Soporta: JPG, PNG, GIF, WebP (máx. 2 MB). Las imágenes cuadradas funcionan mejor.`,customAvatar:`Imagen de avatar personalizada`,clickToChange:`Haz clic para cambiar o eliminar`,removed:`Avatar eliminado`,uploaded:`Avatar subido con éxito`,invalidFile:`Por favor selecciona un archivo de imagen válido`,fileTooLarge:`El tamaño de la imagen del avatar debe ser menor a 2 MB`,readFailed:`Error al leer el archivo de imagen`,uploadFailed:`Error al subir la imagen del avatar`},profile:{noEmail:`Sin correo electrónico`}},settings:JSON.parse(`{"title":"Configuración","tabs":{"appearance":"Apariencia","model":"Modelo","systemMessage":"Mensaje del sistema","plugins":"Plugins","search":"Búsqueda","generation":"Generación","documents":"Documentos","tts":"Voz","imageGen":"Imágenes","data":"Datos","shortcuts":"Atajos","about":"Acerca de","sessions":"Sesiones","apiKeys":"Claves API"},"appearance":{"title":"Apariencia","language":{"title":"Idioma","description":"Selecciona tu idioma preferido"},"theme":{"title":"Tema","light":"Claro","dark":"Oscuro","amoled":"Negro Puro","system":"Sistema"},"accent":{"title":"Color de acento","custom":"Color personalizado","useColor":"Usar {{color}} como acento","behaviorTitle":"Paleta de la interfaz","behaviorDescription":"Elige si el acento se limita a los controles o adapta toda la interfaz clara u oscura.","defaultStyle":"Predeterminada","defaultStyleDescription":"Mantener las superficies neutras de los temas claro y oscuro.","adaptedStyle":"Adaptar al acento","adaptedStyleDescription":"Teñir superficies, bordes y texto con el color de acento."},"chatInterface":{"title":"Interfaz de chat","showUsername":"Mostrar nombre de usuario","showUsernameDescription":"Mostrar nombre de usuario en mensajes de chat","followUpSuggestions":"Sugerencias de seguimiento","followUpSuggestionsDescription":"Sugerir respuestas rápidas tras cada respuesta","hapticFeedback":"Respuesta háptica (Android)","hapticFeedbackDescription":"Usar vibraciones sutiles para acciones móviles importantes"},"background":{"title":"Imagen de fondo","enable":"Habilitar imagen de fondo","enableDescription":"Mostrar fondo personalizado con efecto de desenfoque","blur":"Desenfoque","opacity":"Opacidad","upload":"Subir imagen de fondo","dragDrop":"Arrastra una imagen o haz clic para explorar","chooseImage":"Elegir imagen"}},"saveSettings":"Guardar configuración","model":{"title":"Configuración del modelo","defaultModel":"Modelo predeterminado","defaultModelDescription":"Este modelo se usará por defecto para nuevas conversaciones","selectModel":"Seleccionar un modelo","specializedModels":"Modelos especializados","visionModel":"Modelo de visión","selectVisionModel":"Usar el modelo de chat actual","visionModelDescription":"Se utiliza automáticamente siempre que el contexto del chat saliente contenga imágenes. Elige un modelo que admita la entrada de imágenes.","visionModelUpdateFailed":"Error al actualizar el modelo de visión: {{error}}","visionModelNoProvider":"Este modelo de visión no tiene identidad de proveedor. Selecciona un modelo disponible.","persona":"Persona","updateAll":"Actualizar todos los modelos","updateAllDescription":"Buscar actualizaciones y descargar las últimas versiones de todos los modelos instalados","updateAllButton":"Actualizar todos","updating":"Actualizando modelos...","currentModelInfo":"Info del modelo actual","name":"Nombre","size":"Tamaño","family":"Familia","format":"Formato","status":"Estado","statusStarting":"Iniciando...","statusComplete":"Completado","statusError":"Error","bulkOperations":"Operaciones masivas","autoTitle":{"title":"Generación automática de títulos","enable":"Habilitar título automático","enableDescription":"Generar automáticamente títulos para nuevas conversaciones","taskModel":"Modelo de tarea","selectTaskModel":"Seleccionar modelo de tarea","taskModelDescription":"Modelo usado para generar títulos de conversación"},"updatingModel":"Actualizando {{name}} ({{current}}/{{total}})","modelsProgress":"{{current}} de {{total}} modelos"},"systemMessage":{"title":"Mensaje del sistema","description":"Establece un mensaje de sistema personalizado que se usará para todas las nuevas conversaciones.","placeholder":"Ingresa un mensaje del sistema...","saved":"Mensaje del sistema guardado","saveFailed":"Error al guardar mensaje del sistema"},"plugins":{"title":"Plugins","description":"Gestiona tus plugins instalados","providerConnections":"Conexiones de proveedores","providerConnectionsDescription":"Conecta, configura e inspecciona proveedores de modelos a través de plugins.","providers":"Proveedores","searchProviders":"Buscar proveedores","noProvidersFound":"Ningún proveedor coincide con tu búsqueda.","selectProvider":"Selecciona un proveedor","selectProviderDescription":"Elige un proveedor para inspeccionar su conexión y catálogo de modelos.","addNew":"Agregar nuevo plugin","upload":"Subir plugin","addJson":"Agregar JSON","uploading":"Subiendo...","jsonPlaceholder":"Pega la configuración JSON del plugin...","install":"Instalar plugin","noPlugins":"No hay plugins instalados","noPluginsDescription":"Agrega un plugin para extender funcionalidades","loading":"Cargando plugins...","installed":"Plugins instalados","active":"Plugins activos","activeLabel":"Activo","inactive":"Inactivo","activate":"Activar","deactivate":"Desactivar","models":"modelos","apiKeySet":"Clave API establecida","apiKeyConfiguration":"Configuración de clave API","apiKeyDescription":"Almacena una clave API personal para {{name}}.","apiKeyEnvAlternative":"Alternativamente, establece la","environmentVariable":"variable de entorno","apiKeyConfigured":"Clave API configurada","apiKeyPlaceholder":"Ingresa tu clave API...","saveApiKey":"Guardar clave API","showApiKey":"Mostrar clave API","hideApiKey":"Ocultar clave API","configure":"Configurar","providerSettings":"Ajustes del proveedor","status":"Estado","defaultEndpoint":"Endpoint predeterminado","modelCatalog":"Catálogo de modelos","modelCatalogDescription":"Modelos descubiertos y configurados para este proveedor y sus capacidades.","refreshModels":"Actualizar modelos","noModelsConfigured":"No hay modelos configurados para este proveedor.","modelId":"ID del modelo","capabilities":"Capacidades","modelCatalogUpdated":"Catálogo de modelos actualizado: {{count}} modelos.","modelCatalogUnchanged":"El catálogo de modelos ya está actualizado.","modelCatalogNeedsApiKey":"Añade una clave de API válida para este proveedor para cargar su lista de modelos en vivo.","modelCatalogUnavailable":"No se pudo cargar la lista de modelos del proveedor.","modelCatalogRefreshFailed":"Error al actualizar el catálogo de modelos","capability":{"chat":"Chat","embedding":"Embedding","image":"Imagen","speech":"Voz","transcription":"Transcripción"},"exportPlugin":"Exportar plugin","deletePlugin":"Eliminar plugin","apiKey":{"title":"Clave API","placeholder":"Ingresa clave API","save":"Guardar clave","remove":"Eliminar clave","configured":"Clave API configurada","notConfigured":"Clave API requerida","saved":"Clave API guardada exitosamente","removed":"Clave API eliminada","saveFailed":"Error al guardar clave API","removeFailed":"Error al eliminar clave API","enterKey":"Por favor ingresa una clave API"},"variables":"Variables"},"generation":{"title":"Opciones de generación","description":"Configura cómo la IA genera respuestas","scopeLabel":"Se aplica a","scopeAll":"Todos los modelos","scopeModel":"Solo {{model}}","scopeAllHint":"Los valores que usa cada modelo salvo que tenga los suyos.","scopeModelHint":"Se guarda solo para este modelo y prevalece sobre los valores generales.","advancedSettings":"Ajustes avanzados de generación","advancedSettingsDescription":"Muestreo, límites de tokens, contexto, penalizaciones y secuencias de parada","coreParameters":"Parámetros principales","temperature":"Temperatura","temperatureDescription":"Controla la aleatoriedad. Valores más bajos son más enfocados, más altos más creativos.","topP":"Top P","topPDescription":"Controla la diversidad mediante muestreo de núcleo. Valores más bajos se enfocan en tokens probables.","topK":"Top K","topKDescription":"Limita la selección de tokens a los K más probables. Establece en 0 para deshabilitar.","minP":"Min P","minPDescription":"Umbral mínimo de probabilidad para selección de tokens.","generationControl":"Control de generación","maxTokens":"Tokens máximos","maxTokensDescription":"Número máximo de tokens a generar en la respuesta.","repeatPenalty":"Penalización de repetición","repeatPenaltyDescription":"Penaliza tokens repetidos. Valores más altos reducen la repetición.","contextLength":"Longitud de contexto","contextLengthDescription":"Tamaño máximo de ventana de contexto para conversaciones.","seed":"Semilla","optional":"opcional","random":"Aleatorio","seedDescription":"Establece una semilla específica para salidas reproducibles.","advancedOptions":"Opciones avanzadas","presencePenalty":"Penalización de presencia","presencePenaltyDescription":"Penaliza tokens que aparecen en el contexto.","frequencyPenalty":"Penalización de frecuencia","frequencyPenaltyDescription":"Penaliza tokens usados frecuentemente.","stopSequences":"Secuencias de parada","commaSeparated":"separadas por comas","stopSequencesDescription":"Tokens personalizados que detendrán la generación cuando se encuentren.","resetDefaults":"Restablecer predeterminados","saveOptions":"Guardar opciones","embeddingSettings":"Configuración de embeddings","enableEmbeddings":"Habilitar embeddings de documentos","thinking":"Razonamiento","thinkingDescription":"Esfuerzo de razonamiento predeterminado para las respuestas. Cada chat puede cambiarlo.","thinkingLevels":{"default":"Predeterminado del modelo","defaultWith":"Predeterminado del modelo ({{level}})","off":"Desactivado","on":"Activado","low":"Bajo","medium":"Medio","high":"Alto"}},"documents":{"title":"Configuración de documentos","embeddings":{"title":"Embeddings","enable":"Habilitar embeddings de documentos","model":"Modelo de embedding","modelDescription":"Selecciona el modelo usado para embedding de documentos","chunkSize":"Tamaño de chunk","chunkSizeInTokens":"(en tokens)","chunkSizeDescription":"Tamaño de los chunks de texto para embedding","chunkOverlap":"Superposición de chunks","chunkOverlapInTokens":"(en tokens)","chunkOverlapDescription":"Superposición entre chunks consecutivos","similarityThreshold":"Umbral de similitud","similarityDescription":"Puntuación mínima de similitud para incluir resultados","status":"Estado de embedding","statusLabel":"Estado","available":"Disponible","unavailable":"No disponible","chunksWithEmbeddings":"Chunks con embeddings","coverage":"Cobertura","regenerate":"Regenerar embeddings","regenerating":"Regenerando..."},"collections":{"title":"Colecciones de conocimiento","description":"Agrupa documentos en colecciones y adjúntalas a cualquier chat.","namePlaceholder":"Nombre de la colección","create":"Crear","none":"Sin colección","deleteConfirm":"¿Eliminar esta colección? Los documentos se conservan.","createFailed":"No se pudo crear la colección","deleteFailed":"No se pudo eliminar la colección","assignFailed":"No se pudo mover el documento","share":"Compartir colección","shared":"compartida"},"library":{"title":"Documentos subidos","description":"Documentos disponibles como contexto del chat. Un documento subido en un chat permanece en su conversación; un documento sin chat ni colección se suma a todas las conversaciones.","empty":"Aún no hay documentos subidos.","chatScope":"Un chat","everyChatScope":"Todos los chats","deleteConfirm":"¿Eliminar \\"{{name}}\\"? Desaparecerá de todos los chats.","deleteFailed":"No se pudo eliminar el documento"}},"tts":{"title":"Texto a voz","description":"Configura ajustes de texto a voz para leer mensajes en voz alta","loadingProviders":"Cargando proveedores TTS...","noProviders":"Sin proveedores TTS","noProvidersDescription":"Configura un plugin con soporte TTS para habilitar texto a voz","enable":"Habilitar TTS","enableDescription":"Permitir texto a voz para mensajes del asistente","autoPlay":"Reproducción automática","autoPlayDescription":"Leer automáticamente nuevos mensajes del asistente en voz alta","streamSentences":"Reproducción natural por lotes","streamSentencesDescription":"Genera por adelantado varios lotes adaptados a las frases y reprodúcelos como una única respuesta continua.","voiceConfiguration":"Configuración de voz","model":"Modelo TTS","modelDescription":"Selecciona el modelo para generación de texto a voz","voice":"Voz","selectVoice":"Selecciona una voz","voiceDescription":"Elige la voz para texto a voz","providerDefaultVoice":"Este modelo usa su voz predeterminada a menos que proporciones una grabación de referencia al generar el habla.","voiceCloningAvailable":"Clonación de voz disponible","voiceCloningAvailableDescription":"Usa Imagina → Audio para crear voz a partir de una grabación de referencia autorizada y su transcripción exacta. Si quieres, puedes guardar la referencia como una voz reutilizable.","savedVoiceOption":"{{name}} (voz guardada)","savedVoices":"Voces guardadas","loadingSavedVoices":"Cargando voces guardadas…","deleteSavedVoice":"Eliminar la voz guardada {{name}}","deleteSavedVoiceConfirm":"¿Eliminar la voz guardada «{{name}}»? Se borrarán su grabación de referencia y su transcripción.","savedVoiceDeleted":"Voz guardada eliminada","savedVoicePreferenceCleanupFailed":"Se eliminó la voz guardada, pero no se pudieron restablecer los ajustes de Voz","savedVoiceDeleteFailed":"No se pudo eliminar la voz guardada","speed":"Velocidad","speedSlow":"0,5x","speedNormal":"1,0x","speedFast":"2,0x","availableProviders":"Proveedores disponibles","models":"modelos","test":"Probar","testing":"Probando...","stop":"Detener","consentRevoked":"Consentimiento retirado","consentExpired":"Consentimiento caducado","transferCount":"enviado al proveedor {{total}} veces","consentExpires":"consentimiento hasta {{date}}","revokeSavedVoice":"Retirar el consentimiento de {{name}}","revokeSavedVoiceConfirm":"¿Retirar el consentimiento de «{{name}}»? La voz guardada ya no podrá usarse, pero el registro del consentimiento se conserva.","savedVoiceRevoked":"Consentimiento retirado","savedVoiceRevokeFailed":"No se pudo retirar el consentimiento"},"imageGen":{"title":"Generación de imágenes","description":"Configura ajustes y proveedores de generación de imágenes","loadingProviders":"Cargando proveedores de generación de imágenes...","noProviders":"Sin proveedores de generación de imágenes","noProvidersDescription":"Configura un plugin con soporte de generación de imágenes","enable":"Habilitar generación de imágenes","enableDescription":"Permitir generación de imágenes con IA en conversaciones","configuration":"Configuración","model":"Modelo","modelDescription":"Selecciona el modelo para generación de imágenes","size":"Tamaño","sizeDescription":"Resolución de imágenes generadas","quality":"Calidad","qualityDescription":"Nivel de calidad de imágenes generadas","style":"Estilo","styleDescription":"Preajuste de estilo para imágenes generadas","availableProviders":"Proveedores disponibles","models":"modelos"},"data":{"title":"Gestión de datos","export":"Exportar datos","exportDescription":"Descarga un archivo portátil de preferencias, carpetas de chat, sesiones y mensajes, notas, colecciones de conocimiento y texto extraído de documentos.","archiveScopeV3":"Incluye preferencias, chats, carpetas, notas, colecciones de conocimiento y texto extraído de documentos. Excluye cuentas y secretos, voces clonadas biométricas, contenido multimedia generado, personas y memoria, y datos o volúmenes de Work.","exportAll":"Exportar todos los datos","import":"Importar datos","importDescription":"Importa datos de una exportación anterior.","importData":"Importar datos","importing":"Importando...","clearSessions":"Limpiar sesiones","clearSessionsDescription":"Eliminar todas las sesiones de chat. Esta acción no se puede deshacer.","clearAll":"Limpiar todo","clearing":"Limpiando...","importOptions":"Opciones de importación","importOptionsDescription":"Elige cómo manejar datos existentes","validatingArchive":"Validando el archivo y calculando los cambios…","archiveValidationFailed":"Falló la validación del archivo","preflightReport":"Vista previa de la importación","preflightIncoming":"{{folders}} carpetas · {{sessions}} chats · {{messages}} mensajes · {{notes}} notas · {{collections}} colecciones · {{documents}} documentos · {{chunks}} fragmentos","preflightRemappedIds":"Se reasignarán {{count}} ID para proteger los datos de otra cuenta.","skipDuplicates":"Omitir duplicados","overwrite":"Sobrescribir existentes","importResults":"Resultados de importación","preferences":"Preferencias","imported":"Importado","failed":"Fallido","sessions":"Sesiones","sessionFolders":"Carpetas de sesiones","notes":"Notas","knowledgeCollections":"Colecciones de conocimiento","importedLabel":"importado","overwrittenLabel":"sobrescrito","skipped":"omitido","toCreate":"por crear","toOverwrite":"por sobrescribir","toSkip":"por omitir","documents":"Documentos","warnings":"Advertencias","refreshAfterImportFailed":"Los datos se importaron, pero algunas vistas no se pudieron actualizar. Recarga Libre WebUI para ver todos los cambios.","errors":"Errores","archivedChats":{"title":"Chats archivados","empty":"No hay chats archivados","unarchive":"Desarchivar"}},"about":{"title":"Acerca de","versionLabel":"Versión","ollama":{"title":"Estado de Ollama","version":"Versión","healthy":"Saludable","unhealthy":"No saludable"},"stats":{"models":"Modelos","sessions":"Sesiones"},"features":{"privacy":{"title":"Privacidad primero","description":"Tus datos permanecen en tu dispositivo"},"openSource":{"title":"Código abierto","description":"Software libre y de código abierto"},"localInference":{"title":"Inferencia local","description":"Ejecuta modelos de IA localmente con Ollama"}},"openSourceBy":"Código abierto por {{company}}","links":{"title":"Enlaces","github":"GitHub","githubDescription":"Ver código fuente y contribuir","website":"Sitio web","websiteDescription":"Visita nuestro sitio web","documentation":"Documentación","reportIssue":"Reportar problemas","reportIssueDescription":"Reportes de bugs y solicitudes de funciones","documentationDescription":"Guías, tutoriales y referencia de API","forgejo":"Espejo Forgejo","forgejoDescription":"Repositorio Forgejo auto-alojado","sponsor":"Patrocinar","sponsorDescription":"Ayuda a financiar el proyecto","star":"Estrella en GitHub","starDescription":"Una estrella ayuda a otros a descubrir el proyecto"},"version":"Versión {{version}}","updates":{"checking":"Buscando actualizaciones…","upToDate":"Estás en la última versión","updateAvailable":"La versión {{version}} está disponible","ahead":"Por delante de la última versión publicada ({{version}})","checkFailed":"No se pudieron comprobar las actualizaciones","viewChangelog":"Ver registro de cambios"}},"groups":{"general":"General","chat":"Chat","media":"Voz e imágenes","connections":"Conexiones"},"search":{"title":"Búsqueda web","description":"Busca en la web mediante una instancia autoalojada de SearXNG. Al activarla, el chat ofrece un interruptor de búsqueda y las tareas de Work con acceso a red pueden buscar.","enableLabel":"Activar búsqueda web","enableDescription":"Ofrecer búsqueda web en chats y tareas de Work. Las búsquedas se ejecutan en el servidor contra la instancia configurada.","urlLabel":"URL de SearXNG","urlDescription":"URL base de la instancia de SearXNG accesible desde el servidor. La pila de despliegue privado incluida ofrece http://searxng:8080.","maxResultsLabel":"Resultados por búsqueda","maxResultsDescription":"Cuántos resultados alimentan una respuesta o llamada de herramienta, 1-100.","maxResultsInvalid":"Los resultados por búsqueda deben estar entre 1 y 100.","safeSearchLabel":"Búsqueda segura","safeSearchDescription":"Pedir al motor que filtre resultados explícitos.","test":"Probar conexión","testing":"Probando…","testOk":"La búsqueda funciona — se devolvieron {{results}} resultados","testFailed":"La prueba de búsqueda falló","save":"Guardar","saved":"Configuración de búsqueda guardada","saveFailed":"No se pudo guardar la configuración de búsqueda"},"compaction":{"title":"Compactación del contexto","description":"Cuando una conversación supera el umbral de tokens, el servidor resume sus mensajes más antiguos y solo conserva textualmente los más recientes. Se aplica a todos los usuarios de este servidor.","thresholdLabel":"Umbral de tokens","thresholdDescription":"Tokens de contexto estimados a partir de los cuales se resume el historial antiguo, 500-1.000.000.","thresholdInvalid":"El umbral de tokens debe estar entre 500 y 1.000.000.","keepRecentLabel":"Mensajes recientes conservados","keepRecentDescription":"Cuántos de los últimos mensajes se mantienen siempre textualmente, 2-200.","keepRecentInvalid":"Los mensajes recientes conservados deben estar entre 2 y 200.","modelLabel":"Modelo de compactación","modelDescription":"El modelo que escribe los resúmenes. Si no se elige ninguno, se usa el modelo de la propia sesión.","sessionModelOption":"Usar el modelo de la sesión","promptLabel":"Prompt de resumen personalizado","promptPlaceholder":"Déjalo vacío para usar el prompt integrado","promptDescription":"Las variables de plantilla {{previousSummaryVariable}} y {{messagesVariable}} se sustituyen por el resumen anterior y los mensajes que se van a resumir.","saved":"Ajustes de compactación guardados","saveFailed":"No se pudieron guardar los ajustes de compactación","loadFailed":"No se pudieron cargar los ajustes de compactación"},"sessions":{"title":"Sesiones","description":"Todos los lugares donde esta cuenta tiene la sesión iniciada. Cerrar una sesión surte efecto de inmediato; iniciar sesión de nuevo restaura el acceso.","signOutOthers":"Cerrar las demás sesiones","signingOutOthers":"Cerrando sesión…","signOut":"Cerrar sesión","signingOut":"Cerrando sesión…","revoked":"Sesión cerrada.","revokeFailed":"No se pudo cerrar la sesión.","othersRevoked":"Otras sesiones cerradas: {{count}}","loadFailed":"No se pudieron cargar las sesiones.","empty":"No se encontraron sesiones.","current":"Esta sesión","revokedBadge":"Cerrada","unknownDevice":"Dispositivo desconocido","createdAt":"Inicio de sesión","lastSeenAt":"Última actividad","expiresAt":"Expira"},"apiKeys":{"title":"Claves API","description":"Tokens con permisos limitados para scripts e integraciones. Cada clave solo tiene acceso a los ámbitos que elijas.","newKeyTitle":"Tu nueva clave API","copy":"Copiar","copied":"Copiado al portapapeles.","copyFailed":"No se pudo copiar.","showOnceWarning":"Cópiala ahora: no se volverá a mostrar.","dismiss":"Listo","createTitle":"Crear una clave","nameLabel":"Nombre","namePlaceholder":"p. ej., pipeline de CI","nameRequired":"Dale un nombre a la clave.","expiryLabel":"Expira en días (opcional)","expiryPlaceholder":"Nunca","expiryInvalid":"La expiración debe ser un número entero de días.","scopesLabel":"Ámbitos","scopesRequired":"Selecciona al menos un ámbito.","create":"Crear clave","creating":"Creando…","created":"Clave API creada.","createFailed":"No se pudo crear la clave API.","revoke":"Revocar","revoking":"Revocando…","revoked":"Clave API revocada.","revokeFailed":"No se pudo revocar la clave API.","revokedBadge":"Revocada","loadFailed":"No se pudieron cargar las claves API.","empty":"Aún no hay claves API.","createdAt":"Creada","lastUsedAt":"Último uso","expiresAt":"Expira","neverExpires":"Nunca"}}`),models:{title:`Modelos`,subtitle:`Descarga, gestiona y monitorea tus modelos de Ollama`,installed:`Modelos instalados`,available:`Modelos disponibles`,pull:`Descargar modelo`,pulling:`Descargando...`,delete:`Eliminar modelo`,deleting:`Eliminando...`,size:`Tamaño`,modified:`Modificado`,family:`Familia`,parameters:`Parámetros`,quantization:`Cuantización`,noModels:`No hay modelos instalados`,pullFirst:`Descarga un modelo para comenzar`,noModelsFound:`No se encontraron modelos`},personas:{title:`Personas`,create:`Crear persona`,edit:`Editar persona`,delete:`Eliminar persona`,name:`Nombre`,description:`Descripción`,systemPrompt:`Prompt del sistema`,model:`Modelo`,avatar:`Avatar`,background:`Fondo`,noPersonas:`No hay personas creadas`,createFirst:`Crea tu primera persona para personalizar tu experiencia de chat`},gallery:{title:`Galería`,subtitle:`Tu galería de imágenes generadas por IA`,imageCount:`{{count}} imágenes`,generate:`Generar imagen`,generateDescription:`Crea imágenes con IA`,generating:`Generando...`,prompt:`Prompt`,promptPlaceholder:`Describe la imagen que quieres generar...`,noImages:`Aún no hay imágenes generadas`,download:`Descargar`,delete:`Eliminar`,regenerate:`Regenerar`,model:`Modelo`,size:`Tamaño`,quality:`Calidad`,created:`Creado`},errors:{generic:`Ocurrió un error`,network:`Error de red. Por favor verifica tu conexión.`,unauthorized:`No estás autorizado para realizar esta acción.`,notFound:`El recurso solicitado no fue encontrado.`,serverError:`Error del servidor. Por favor intenta más tarde.`,validation:`Por favor verifica tu entrada e intenta de nuevo.`},keyboard:{title:`Atajos de teclado`,toggleSidebar:`Alternar barra lateral`,openSettings:`Abrir configuración`,toggleDarkMode:`Alternar modo oscuro`,showShortcuts:`Mostrar atajos de teclado`,closeModals:`Cerrar modales`,groups:{navigation:`Navegación`,general:`General`,chat:`Chat`,workspace:`Espacio de trabajo`},actions:{sendMessage:`Enviar mensaje`,newLine:`Nueva línea en mensaje`,saveEdit:`Guardar el mensaje editado`,cancelEdit:`Cancelar la edición`,saveFile:`Guardar archivo`,formatCode:`Formatear código`},description:`Todos los atajos de teclado disponibles en Libre WebUI.`,newChat:`Nuevo chat`,newWork:`Nueva sesión de Work`,openPalette:`Abrir la paleta de comandos`},modelManager:{title:`Modelos`,loading:`Cargando modelos...`,systemStatus:{online:`Ollama en línea`,offline:`Ollama sin conexión`,models:`modelo`,models_plural:`modelos`,running:`ejecutándose`,vram:`VRAM`},sections:{pull:`Descargar nuevo modelo`,library:`Explorar biblioteca`,huggingface:`HuggingFace Hub`,running:`Modelos en ejecución`,local:`Modelos locales`,advanced:`Acciones avanzadas`,catalog:`Catálogo de modelos`},catalog:{searchPlaceholder:`Buscar modelos por nombre o proveedor...`,noModels:`Todavía no hay modelos disponibles.`,empty:`Ningún modelo coincide con tu búsqueda.`,providerOllama:`Ollama`,hidden:`Oculto`,visibilityFailed:`No se pudo actualizar la visibilidad del modelo.`,filterAll:`Todos los modelos`,filterLocal:`Local`,filterProviders:`Proveedores`,filterHidden:`Ocultos`,enableAll:`Activar los mostrados`,disableAll:`Desactivar los mostrados`,rename:`Editar nombre e imagen`,setPicture:`Establecer imagen`,clearPicture:`Quitar imagen`,pictureInvalid:`Elige un archivo de imagen.`,pictureTooLarge:`Las imágenes deben pesar menos de 192 KB.`,saving:`Guardando…`,hide:`Ocultar a los usuarios`,show:`Mostrar a los usuarios`},pull:{placeholder:`Ingresa nombre del modelo (ej. llama3.2:3b, deepseek-r1:14b)`,button:`Descargar`,cancel:`Cancelar`,popular:`Modelos populares:`,browseAll:`Explorar todos los modelos en ollama.com`,success:`Modelo {{name}} descargado exitosamente`,cancelled:`Descarga de modelo cancelada`,failed:`Error al descargar modelo`,enterName:`Por favor ingresa un nombre de modelo`,restricted:`La instalación de modelos está restringida a administradores en esta instancia.`},progress:{starting:`Inicializando...`,pulling:`Descargando modelo...`,pullingLayer:`descargando`,verifying:`Verificando integridad...`,verifyingDigest:`verificando digest sha256`,writing:`Escribiendo manifiesto...`,cleaning:`Limpiando...`},library:{available:`disponible`,search:`Buscar modelos...`,noResults:`No se encontraron modelos que coincidan con tu criterio`,installed:`Instalado`,more:`+{{count}} más`,refresh:`Actualizar biblioteca`},huggingface:{browseAll:`Ver todo en HuggingFace`,checkingGguf:`Buscando archivos GGUF...`,noGgufAvailable:`No hay archivos GGUF disponibles para Ollama`,ggufFilesCount:`Archivos GGUF ({{count}}) - Descargar a Ollama`,noModelsFound:`No se encontraron modelos`,noResults:`No se encontraron modelos. Intenta ajustar tu búsqueda o filtros.`,browseAllLink:`Ver todo`,search:`Buscar modelos en HuggingFace...`,by:`por`,gated:`Acceso restringido`,viewOnHF:`Ver en HuggingFace`,sortDownloads:`Descargas`,sortLikes:`Me gusta`,sortRecent:`Reciente`,taskTextGeneration:`Generación de texto`,taskTextToSpeech:`Texto a voz`,taskTextToImage:`Texto a imagen`,taskSpeechRecognition:`Reconocimiento de voz`,tasks:{textGen:`Generación de texto`,tts:`Texto a voz`,image:`Texto a imagen`,stt:`Reconocimiento de voz`},sort:{downloads:`Más descargados`,likes:`Más gustados`,recent:`Actualizados recientemente`}},local:{noModels:`Aún no hay modelos instalados`,pullToStart:`Descarga un modelo arriba para comenzar`,installed:`instalado`,running:`Ejecutándose`,info:`Info`,copy:`Copiar`,delete:`Eliminar`,deleteConfirm:`¿Estás seguro de que deseas eliminar el modelo "{{name}}"?`,deleteSuccess:`Modelo {{name}} eliminado exitosamente`,deleteFailed:`Error al eliminar modelo`},advanced:{createModel:`Crear modelo`,fromModelfile:`Desde Modelfile`,copyModel:`Copiar modelo`,duplicateExisting:`Duplicar existente`,testEmbeddings:`Probar embeddings`,generateVectors:`Generar vectores`,healthCheck:`Verificación de salud`,testConnection:`Probar conexión`,healthy:`¡Ollama está saludable!`},modals:{details:{title:`Detalles del modelo`,info:`Información del modelo`,family:`Familia`,parameters:`Parámetros`,quantization:`Cuantización`,format:`Formato`,systemPrompt:`Prompt del sistema`,template:`Plantilla`,license:`Licencia`,modelfile:`Modelfile`,noDetails:`Sin detalles disponibles`},copy:{title:`Copiar modelo`,source:`Modelo origen`,selectModel:`Selecciona un modelo...`,newName:`Nuevo nombre de modelo`,placeholder:`ej. mi-modelo-personalizado`,copying:`Copiando...`,button:`Copiar modelo`,success:`Modelo copiado a {{name}}`,failed:`Error al copiar modelo`,enterBoth:`Por favor ingresa nombres de origen y destino`},create:{title:`Crear modelo personalizado`,name:`Nombre del modelo`,namePlaceholder:`ej. mi-asistente`,modelfile:`Modelfile`,modelfilePlaceholder:`FROM llama3.2
2
+ SYSTEM Eres un asistente útil.`,see:`Ver`,docs:`Documentación de Modelfile`,docsLink:`para referencia de sintaxis`,creating:`Creando...`,button:`Crear modelo`,success:`Modelo {{name}} creado exitosamente`,failed:`Error al crear modelo`,enterBoth:`Por favor ingresa nombre del modelo y contenido del Modelfile`},embeddings:{title:`Probar embeddings`,model:`Modelo de embedding`,selectModel:`Selecciona un modelo...`,recommended:`Recomendados: nomic-embed-text, mxbai-embed-large`,input:`Texto de entrada`,placeholder:`Ingresa texto para generar embeddings...`,generating:`Generando...`,button:`Generar embeddings`,result:`Resultado ({{count}} dimensiones)`,success:`Vector de embedding de {{count}} dimensiones generado`,failed:`Error al generar embeddings`,enterBoth:`Por favor selecciona un modelo e ingresa texto`}}},personaManager:{title:`Personas`,subtitle:`Crea y gestiona personas de IA con personalidades, memorias y comportamientos personalizados`,loading:`Cargando personas...`,createButton:`Crear persona`,importExport:`Importar/Exportar`,stats:{title:`Tus personas`,count:`{{count}} persona creada`,count_plural:`{{count}} personas creadas`},empty:{title:`Aún no hay personas`,description:`Crea tu primera persona para comenzar con interacciones de IA personalizadas`,button:`Crear tu primera persona`},deleteConfirm:`¿Estás seguro de que deseas eliminar "{{name}}"?`,deleteSuccess:`Persona "{{name}}" eliminada exitosamente`,downloadSuccess:`Persona "{{name}}" descargada exitosamente`,failed:`Error al {{action}} persona`},personaForm:{title:{create:`Crear nueva persona`,edit:`Editar persona`},subtitle:{create:`Crea una nueva persona de IA con personalidad personalizada, sistemas de memoria y capacidades de aprendizaje adaptativo`,edit:`Personaliza tu persona de IA con memoria avanzada, aprendizaje adaptativo y parámetros inteligentes`},loading:`Cargando formulario...`,saved:`Guardado`,tabs:{basic:`Básico`,parameters:`Parámetros`,memory:`Memoria y aprendizaje`,advanced:`Avanzado`,bindings:`Vínculos`},basic:{name:`Nombre`,namePlaceholder:`Ingresa nombre de persona`,model:`Modelo`,selectModel:`Selecciona un modelo`,description:`Descripción`,descriptionPlaceholder:`Describe tu persona...`,systemPrompt:`Prompt del sistema`,systemPromptPlaceholder:`Ingresa el prompt del sistema que define el comportamiento de tu persona...`,systemPromptHint:`El prompt del sistema define cómo se comportará y responderá tu persona.`},parameters:{temperature:`Temperatura`,temperatureHint:`Controla creatividad vs consistencia`,topP:`Top-P`,topPHint:`Controla diversidad de respuesta`,topK:`Top-K`,topKHint:`Limita vocabulario a los top-k tokens`,contextWindow:`Ventana de contexto`,contextWindowHint:`Longitud máxima del historial de conversación`,maxTokens:`Tokens máximos`,maxTokensHint:`Longitud máxima de respuesta`,repeatPenalty:`Penalización de repetición`,repeatPenaltyHint:`Reduce respuestas repetitivas`},memory:{title:`Sistema de memoria`,subtitle:`La persona recuerda conversaciones a lo largo del tiempo`,enableHint:`Habilita el sistema de memoria para que tu persona recuerde conversaciones y construya contexto a lo largo del tiempo.`,loading:`Cargando estado de memoria...`,noData:`Aún no hay datos de memoria`,memories:`Memorias`,mbUsed:`MB usados`,lastBackup:`Última copia de seguridad`,never:`Nunca`,maxMemories:`Memorias máximas`,maxMemoriesHint:`Cuántas memorias puede almacenar esta persona`,retention:`Retención de memoria`,retentionHint:`Días para mantener memorias antes de limpiar`,autoCleanup:`Limpieza automática de memorias antiguas`,wipeAll:`Borrar todas las memorias`,wipeCannot:`Esto no se puede deshacer`,wipeButton:`Borrar`,wiping:`Borrando...`,wipeConfirm:`¿Estás seguro de que deseas borrar todas las memorias? Esto no se puede deshacer.`,wipeSuccess:`Se borraron {{count}} memorias`},learning:{title:`Aprendizaje adaptativo`,subtitle:`La persona evoluciona basándose en interacciones`,enableHint:`Habilita el aprendizaje adaptativo para que tu persona evolucione y personalice respuestas basándose en tus interacciones.`,speed:`Velocidad de aprendizaje`,slow:`Lento`,slowDesc:`Cambios graduales`,balanced:`Equilibrado`,balancedDesc:`Ritmo moderado`,fast:`Rápido`,fastDesc:`Adaptación rápida`,autoAdapt:`Auto-adaptar a preferencias del usuario`,whatLearns:`Lo que aprende la persona:`,conversationTone:`Tono de conversación`,responseStyle:`Estilo de respuesta`,userPreferences:`Preferencias del usuario`,topicInterests:`Intereses en temas`},advanced:{embeddingModel:`Modelo de embedding`,embeddingHint:`Selecciona el modelo usado para codificación de memoria y búsqueda semántica. Los modelos de embedding se muestran primero, seguidos de otros modelos disponibles.`,noModels:`No se encontraron modelos`,embeddingModels:`Modelos de embedding`,otherModels:`Otros modelos`,installHint:`Instala un modelo de embedding:`,recommended:`Recomendados: nomic-embed-text, mxbai-embed-large, bge-m3, snowflake-arctic-embed`,aboutTitle:`Acerca de configuración avanzada`,aboutDescription:`El modelo de embedding es usado por el sistema de memoria para entender significado semántico y encontrar memorias relevantes durante conversaciones. Elige un modelo que coincida con tu caso de uso y recursos disponibles.`},actions:{cancel:`Cancelar`,save:`Guardar`,saving:`Guardando...`,saveClose:`Guardar y cerrar`,create:`Crear`},success:{created:`Persona creada`,updated:`Persona actualizada`},error:{saveFailed:`Error al guardar`},bindings:{toolServers:`Servidores de herramientas`,toolServersHint:`Servidores que esta persona puede llamar. Si se deja vacío se ofrece cualquier servidor al que el usuario ya llegue.`,noToolServers:`No tienes ningún servidor de herramientas disponible.`,builtinTools:`Herramientas integradas`,builtinToolsHint:`Herramientas que implementa el propio servidor. Si se deja vacío se ofrecen todas.`,noBuiltinTools:`No hay herramientas integradas disponibles.`,builtin:{web_search:`Búsqueda web`,search_documents:`Buscar en documentos`,load_skill:`Cargar habilidad`},skills:`Habilidades`,skillsHint:`Habilidades que el modelo puede cargar mientras esta persona está activa.`,noSkills:`Todavía no has creado ninguna habilidad.`,collections:`Colecciones de conocimiento`,collectionsHint:`Colecciones de documentos en las que esta persona puede buscar.`,noCollections:`Todavía no has creado ninguna colección.`,prompt:`Prompt`,promptHint:`Un prompt con el que empieza cada chat nuevo con esta persona.`,noPrompt:`Sin prompt`,version:`Revisión de vínculos {{version}}`}},personaCard:{enhanced:`Mejorado`,systemPrompt:`Prompt del sistema`,memories:`memorias`,use:`Usar`,editTooltip:`Editar persona`,downloadTooltip:`Descargar persona`,backup:`Copia de seguridad`,exportDNA:`Exportar ADN`,wipeMemories:`Borrar memorias`,wipeConfirm:`¿Estás seguro de que deseas borrar todas las memorias de esta persona? Esta acción no se puede deshacer.`,wipeSuccess:`Se borraron {{count}} memorias`,backupSuccess:`Copia de seguridad de persona descargada exitosamente`,dnaSuccess:`ADN de persona exportado exitosamente`,failed:`Error al {{action}}`,shareTooltip:`Compartir esta persona`},userManager:{title:`Gestión de usuarios`,subtitle:`Gestiona cuentas de usuario y permisos`,pageDescription:`Gestiona cuentas de usuario, permisos y controles de acceso para tu instancia de Libre WebUI.`,loading:`Cargando usuarios...`,createUser:`Crear usuario`,search:`Buscar usuarios...`,noUsers:`No se encontraron usuarios`,noUsersMatching:`No hay usuarios que coincidan con tu búsqueda`,columns:{user:`Usuario`,email:`Correo electrónico`,role:`Rol`,created:`Creado`,actions:`Acciones`},roles:{admin:`Admin`,user:`Usuario`},noEmail:`Sin correo`,deleteConfirm:`¿Estás seguro de que deseas eliminar el usuario "{{name}}"?`,deleteSuccess:`Usuario eliminado exitosamente`,deleteFailed:`Error al eliminar usuario`,cannotDeleteSelf:`No puedes eliminar tu propia cuenta`,approval:{title:`Aprobaciones pendientes`,description:`Revisa los nuevos registros antes de permitirles acceso a esta instancia.`,registered:`Registrado`,activate:`Activar cuenta`,reject:`Rechazar registro`,approved:`{{name}} ya puede iniciar sesión.`,failed:`No se pudo aprobar la cuenta.`,notification:`{{count}} registro(s) esperando tu aprobación.`,notificationBadge:`{{count}} aprobaciones de usuario pendientes`},form:{title:{create:`Crear usuario`,edit:`Editar usuario`},username:`Nombre de usuario`,usernamePlaceholder:`Ingresa nombre de usuario`,email:`Correo electrónico`,emailPlaceholder:`Ingresa correo (opcional)`,password:`Contraseña`,passwordPlaceholder:`Ingresa contraseña`,passwordHint:`Deja en blanco para mantener contraseña actual`,role:`Rol`,creating:`Creando...`,updating:`Actualizando...`,createButton:`Crear usuario`,updateButton:`Actualizar usuario`,createSuccess:`Usuario creado exitosamente`,updateSuccess:`Usuario actualizado exitosamente`,createFailed:`Error al crear usuario`,updateFailed:`Error al actualizar usuario`},workAccess:{title:`Acceso a Work`,description:`Permitir que todos los usuarios activos creen y ejecuten tareas de Work en sandboxes aislados. Los administradores siempre tienen acceso; los espacios de trabajo en carpetas del host siguen siendo solo para administradores.`,saved:`Acceso a Work actualizado`,saveFailed:`No se pudo actualizar el acceso a Work`},workPolicies:{title:`Políticas de Work`,description:`Preajustes de ejecución con nombre (imagen, límites, parada por inactividad) bajo los que crear tareas. Los campos vacíos heredan los valores globales.`,add:`Añadir política`,name:`Nombre`,image:`Imagen`,memory:`Memoria`,cpu:`CPU`,pids:`Límite de PID`,workspaceSize:`Tamaño del espacio de trabajo`,idleMinutes:`Parada por inactividad (minutos)`,networkDefault:`Red predeterminada`,networkInherit:`Heredar predeterminado`,networkOn:`Activada`,networkOff:`Desactivada`,save:`Guardar`,cancel:`Cancelar`,edit:`Editar política`,delete:`Eliminar política`,deleteConfirm:`¿Eliminar esta política? Las tareas que la usan vuelven a los valores globales.`,empty:`Aún no hay políticas. Las tareas usan los valores de ejecución globales.`,saved:`Política de Work guardada`,deleted:`Política de Work eliminada`,failed:`No se pudo guardar la política de Work`,invalidNumber:`El límite de PID y la parada por inactividad deben ser números.`},modelAccess:{title:`Descarga de modelos`,description:`Permitir que todos los usuarios activos descarguen modelos desde Ollama y el navegador de Hugging Face. Los administradores siempre pueden descargar modelos.`,saved:`Acceso a descarga de modelos actualizado`,saveFailed:`No se pudo actualizar el acceso a descarga de modelos`},webSearchAccess:{title:`Búsqueda web`,description:`Permitir que todos los usuarios activos usen la búsqueda web en chats y tareas de Work. Los administradores siempre pueden usarla. El motor se configura en Configuración > Búsqueda.`,saved:`Acceso a búsqueda web actualizado`,saveFailed:`No se pudo actualizar el acceso a búsqueda web`},agentAccess:{title:`Agentes`,description:`Ofrecer la sección Agentes (Libre Claw) a los administradores. Las CLI de agentes se ejecutan en el host como el usuario del servidor, fuera del sandbox de Work.`,saved:`Acceso a agentes actualizado`,saveFailed:`No se pudo actualizar el acceso a agentes`,lockedByEnv:`Fijado por la variable de entorno AGENT_CLI_MODELS_ENABLED.`},groups:{title:`Grupos`,description:`Agrupa cuentas para gestionar el acceso compartido e inspecciona lo que cada cuenta puede hacer en la práctica.`,newGroup:`Nuevo grupo`,nameLabel:`Nombre`,nameRequired:`Dale un nombre al grupo.`,descriptionLabel:`Descripción (opcional)`,create:`Crear grupo`,creating:`Creando…`,created:`Grupo creado.`,createFailed:`No se pudo crear el grupo.`,deleted:`Grupo eliminado.`,deleteFailed:`No se pudo eliminar el grupo.`,deleteGroup:`Eliminar grupo`,loadFailed:`No se pudieron cargar los grupos.`,empty:`Aún no hay grupos.`,memberCount:`Miembros: {{count}}`,noMembers:`Aún no hay miembros.`,addedAt:`Añadido`,addMember:`Añadir miembro`,add:`Añadir`,selectUser:`Selecciona un usuario…`,memberAdded:`Miembro añadido.`,memberAddFailed:`No se pudo añadir el miembro.`,removeMember:`Quitar miembro`,memberRemoved:`Miembro quitado.`,memberRemoveFailed:`No se pudo quitar el miembro.`,effectiveTitle:`Acceso efectivo`,effectiveDescription:`Elige una cuenta para ver el acceso que resulta de su rol, grupos y permisos.`,accessLookupFailed:`No se pudo cargar el acceso efectivo.`,roleLabel:`Rol`,statusLabel:`Estado`,memberOf:`Grupos`,featuresLabel:`Acceso a funciones`,grantsLabel:`Permisos`,grantVia:`vía`},audit:{title:`Registro de auditoría de seguridad`,description:`Inicios de sesión recientes, comprobaciones de permisos y cambios administrativos en esta instancia.`,actionFilter:`Acción`,actionPlaceholder:`p. ej., auth.login`,resultFilter:`Resultado`,resultSuccess:`Éxito`,resultDenied:`Denegado`,resultFailure:`Error`,limitFilter:`Límite`,loadFailed:`No se pudo cargar el registro de auditoría.`,empty:`Aún no hay eventos de auditoría registrados.`,actor:`Actor`,target:`Objetivo`},tools:{title:`Acceso a herramientas`,description:`Permitir que todos llamen a servidores de herramientas. Si está desactivado, solo los administradores pueden.`,saved:`Acceso a herramientas actualizado`,saveFailed:`No se pudo actualizar el acceso a herramientas.`,lockedByEnv:`Bloqueado por una variable de entorno en este servidor.`},voice:{title:`Acceso de voz`,description:`Controla quién puede usar las funciones de voz. Los administradores siempre tienen acceso.`,lockedByEnv:`Fijado por una variable de entorno`,saved:`Acceso de voz actualizado`,saveFailed:`No se pudo actualizar el acceso de voz`,features:{stt:`Voz a texto`,tts:`Texto a voz`,voiceMode:`Modo de voz`,voiceCloning:`Clonación de voz`}}},usageAnalytics:{eyebrow:`Administración`,title:`Uso del proveedor`,description:`Sigue las llamadas de API salientes y el consumo de modelos en los plugins habilitados en esta instancia.`,days:`{{count}} días`,refresh:`Actualizar uso`,loadFailed:`No se pudo cargar el uso del proveedor.`,metrics:{calls:`Llamadas`,tokens:`Tokens`},cards:{calls:`Llamadas de API`,callsDetail:`Entre {{count}} usuario(s) activo(s)`,tokens:`Tokens reportados`,tokensDetail:`Uso reportado en {{count}} llamada(s)`,success:`Tasa de éxito`,successDetail:`{{count}} llamada(s) fallida(s)`,latency:`Latencia media`,latencyDetail:`Tiempo de extremo a extremo del proveedor`},activity:{title:`Consumo a lo largo del tiempo`,callsDescription:`Solicitudes salientes diarias a los complementos habilitados`,tokensDescription:`Totales diarios de tokens reportados por los proveedores`,chartLabel:`Gráfico diario de {{metric}} del proveedor`},models:{title:`Consumo por modelo`,description:`Los modelos con mayor tráfico en este período.`,model:`Modelo`,success:`Éxito`,latency:`Latencia`},providers:{title:`Tráfico de complementos habilitados`},capabilities:{title:`Mezcla de capacidades`,characters:`{{count}} caracteres`,bytes:`{{count}} bytes`,images:`{{count}} imágenes`,jobs:`{{count}} trabajos de video`,inputs:`{{count}} entradas`,reportedTokens:`{{count}} tokens reportados`},empty:{title:`Aún no hay llamadas al proveedor`,description:`Las llamadas aparecerán aquí después de que un complemento habilitado gestione solicitudes de chat, Work, incrustación, imagen, voz, sonido o video.`},privacyNote:`El uso se mide en el servidor en el límite del complemento saliente. Libre WebUI almacena proveedor, modelo, tiempo, estado y contadores reportados, nunca prompts, respuestas, endpoints, credenciales ni cuerpos de error del proveedor. Los totales de tokens incluyen solo las llamadas en las que el proveedor devolvió metadatos de uso.`,heatmap:{title:`Un año de actividad`,description:`Llamadas diarias a proveedores durante el último año, coloreadas según el modelo más usado cada día.`,calls:`llamadas`,noCalls:`Sin llamadas`,other:`Otros modelos`,less:`Menos`,more:`Más`,yearTotal:`{{formatted}} llamadas en el último año`}},systemPage:{eyebrow:`Administración`,title:`Sistema`,description:`Monitoree la máquina y el entorno de ejecución que alojan esta instancia de Libre WebUI.`,updated:`Actualizado el {{date}}`,refresh:`Actualizar información del sistema`,loadFailed:`No se pudo cargar la información del sistema.`,cards:{uptime:`Tiempo de actividad del host`,uptimeDetail:`En ejecución desde {{date}}`,memory:`Memoria usada`,memoryDetail:`{{used}} de {{total}}`,freeSpace:`Espacio libre`,freeSpaceDetail:`{{label}} · {{total}} total`,containers:`Contenedores en ejecución`,containersDetail:`{{total}} contenedor(es) conocidos por Docker`,dockerUnavailable:`Docker no disponible`,unavailable:`No disponible`},host:{title:`Host y entorno de ejecución`,description:`Detalles del sistema operativo, procesador y proceso de Libre WebUI.`,container:`Entorno de ejecución de contenedores`,native:`Tiempo de ejecución nativo`,hostname:`Nombre de host`,operatingSystem:`Sistema operativo`,processor:`Procesador`,logicalCpus:`CPU lógicas`,loadAverage:`Carga media · 1 / 5 / 15 min`,libreVersion:`Libre WebUI`,nodeVersion:`Node.js`,process:`Proceso`,workingDirectory:`Directorio de trabajo`},memory:{title:`Memoria`,description:`Memoria del sistema visible en tiempo de ejecución y uso del proceso de la aplicación.`,usedOf:`{{used}} usados de {{total}}`,free:`{{value}} libres`,processRss:`RSS del proceso`,heapUsed:`Heap V8 usado`,heapTotal:`Heap V8 total`,external:`Memoria externa`},storage:{title:`Almacenamiento`,description:`Espacio disponible para el sistema de archivos del tiempo de ejecución y los datos persistentes de la aplicación.`,used:`{{value}} usados`,free:`{{value}} libres`,empty:`La información del sistema de archivos no está disponible en este tiempo de ejecución.`},docker:{title:`Docker`,description:`Estado de solo lectura de Docker Engine y una lista reducida de contenedores.`,connected:`Conectado`,unavailable:`No disponible`,unavailableDetail:`Los diagnósticos de Docker Engine no están disponibles.`,socketStatus:`Socket local: {{status}}`,mounted:`montado`,notMounted:`no montado`,running:`En ejecución`,stopped:`Detenido`,paused:`En pausa`,total:`Total`,version:`Versión`,host:`Host`,architecture:`Arquitectura`,cpus:`CPU`,memory:`Memoria`,container:`Contenedor`,image:`Imagen`,state:`Estado`,created:`Creado`,empty:`Docker está conectado y actualmente no hay contenedores listados.`},network:{title:`Red`,description:`Interfaces visibles en tiempo de ejecución, direcciones y contadores de tráfico de Linux.`,internal:`interna`,empty:`No hay interfaces de red visibles para el entorno de ejecución de la aplicación.`},securityNote:`Esta página está restringida a administradores. El servidor solo devuelve resúmenes operativos: no expone variables de entorno, credenciales, etiquetas de Docker, montajes, comandos de contenedor ni cargas útiles de inspección. Cuando Libre WebUI se ejecuta en un contenedor, los detalles de CPU y memoria a nivel de host provienen de Docker Engine cuando su socket local está disponible; otros valores describen el entorno de ejecución de la aplicación.`,work:{title:`Work`,description:`Sandboxes de todos los usuarios`,access:`Acceso`,accessAdmins:`Solo administradores`,accessAllUsers:`Todos los usuarios`,runtimeAvailable:`Disponible`,runtimeUnavailable:`No disponible`,activeRuntimes:`Entornos activos`,pendingCleanups:`Limpiezas pendientes`,orphans:`Contenedores huérfanos`,owner:`Propietario`,task:`Tarea`,state:`Estado`,preview:`Vista previa`,terminals:`Terminales`,updated:`Actualizado`,stateRunning:`En ejecución`,stateStopped:`Detenido`,stateStarting:`Iniciando`,stateUnknown:`Desconocido`,noTasks:`Aún no hay tareas de Work.`}},chatHistory:{label:`Historial de la conversación`,jumpToTurn:`Ir al turno {{index}} de {{total}}`},chatMessage:{you:`Tú`,assistant:`Asistente`,system:`Sistema`,conversationSummary:`Resumen de la conversación`,restoreCompacted:`Restaurar los mensajes resumidos`,restoreFailed:`No se pudieron restaurar los mensajes resumidos`,copy:`Copiar`,copyMessage:`Copiar mensaje`,copied:`¡Copiado!`,regenerate:`Regenerar`,regenerateResponse:`Regenerar respuesta`,edit:`Editar`,editSystemMessage:`Editar mensaje del sistema`,saveChanges:`Guardar cambios`,cancelEditing:`Cancelar edición`,saveAndSubmit:`Guardar y enviar`,goodResponse:`Buena respuesta`,badResponse:`Mala respuesta`,delete:`Eliminar`,deleteConfirm:`¿Eliminar este mensaje?`,branch:`Ramificar`,speaking:`Hablando...`,speakMessage:`Leer mensaje`,stopSpeaking:`Detener lectura`,showMore:`Mostrar más`,showLess:`Mostrar menos`,thinking:`Pensando`,thoughtFor:`Pensó durante {{duration}}`,hiddenLines:`{{count}} líneas ocultas`,systemMessagePlaceholder:`Ingresa tu mensaje del sistema...`,fullSizeImage:`Imagen a tamaño completo`,startConversation:`Iniciar una conversación`,startConversationDescription:`Envía un mensaje para comenzar a chatear con tu asistente de IA. Haz preguntas, obtén ayuda con código o mantén una conversación natural.`,scrollToBottom:`Desplazar al final`,newMessages:`Nuevos mensajes`,feedbackTags:{accuracy:`Precisión`,style:`Estilo`,incomplete:`Incompleta`,harmful:`Dañina`,formatting:`Formato`},feedbackComment:`Añadir un comentario…`},imageGallery:{title:`Galería de imágenes`,noImages:`Aún no hay imágenes`,noImagesHint:`Genera tu primera imagen usando el panel de la derecha`,delete:`Eliminar`,download:`Descargar`,deleteConfirm:`¿Estás seguro de que deseas eliminar esta imagen?`,deleteSuccess:`Imagen eliminada`,deleteFailed:`Error al eliminar imagen`,downloadFailed:`Error al descargar imagen`,loadMore:`Cargar más ({{current}} de {{total}})`,loadFailed:`Error al cargar galería`},imageGeneration:{title:`Generar imagen`,prompt:`Prompt`,promptPlaceholder:`Describe la imagen que quieres crear...`,model:`Modelo`,selectModel:`Seleccionar modelo`,noModels:`No hay modelos de generación de imágenes disponibles`,configurePlugin:`Configura un plugin con soporte de generación de imágenes`,size:`Tamaño`,quality:`Calidad`,style:`Estilo`,generate:`Generar`,generating:`Generando...`,success:`Imagen generada exitosamente`,failed:`Error al generar imagen`,enterPrompt:`Por favor ingresa un prompt`,promptTooLong:`El prompt excede la longitud máxima de {{max}} caracteres`},mediaGeneration:{title:`Generar multimedia`,description:`Crea video, sonido, música o voz con un proveedor multimedia activado.`,image:`Imagen`,video:`Video`,audio:`Audio`,sound:`Sonido`,speech:`Voz`,model:`Modelo`,voice:`Voz o ID de voz`,cloneVoice:`Clonar una voz de referencia`,cloneVoiceDescription:`Genera esta voz a partir de una grabación de referencia en lugar de una voz predefinida.`,referenceAudio:`Audio de referencia`,referenceTranscript:`Transcripción exacta de la referencia`,referenceTranscriptPlaceholder:`Escribe exactamente lo que se dice en la grabación de referencia…`,referenceAudioTooLarge:`El audio de referencia debe ocupar {{max}} o menos.`,cloneConsent:`Clona una voz solo si tienes el permiso del hablante. La grabación se envía al proveedor seleccionado para esta generación y Libre WebUI no la guarda.`,saveVoiceProfile:`Guardar como voz reutilizable`,saveVoiceProfileDescription:`Guarda de forma segura esta grabación de referencia y su transcripción. Libre WebUI las envía al proveedor seleccionado en cada lote de Voz que usa esta voz.`,voiceProfileName:`Nombre de la voz guardada`,voiceProfileNamePlaceholder:`Por ejemplo, Mi voz`,voiceStorageConsent:`Confirmo que tengo permiso del hablante para clonar y guardar esta voz. La referencia permanecerá guardada hasta que la elimine.`,resolution:`Resolución`,aspectRatio:`Relación de aspecto`,duration:`Duración`,providerDefault:`Predeterminado del proveedor`,generateAudio:`Generar audio con el video cuando se admita`,prompt:`Indicación`,text:`Texto a hablar`,videoPlaceholder:`Describe la escena, el movimiento, la cámara y la iluminación...`,audioPlaceholder:`Introduce el texto que quieres que diga la voz...`,soundPlaceholder:`Describe el sonido, la música, la atmósfera o la respuesta hablada que deseas...`,generate:`Generar`,generating:`Generando… esto puede tardar varios minutos`,success:`Multimedia generada y guardada en Imagine`,successWithSavedVoice:`Se generó el contenido y «{{name}}» ya está disponible en los ajustes de Voz`,failed:`Error al generar multimedia`,loadFailed:`Error al cargar los proveedores multimedia`,noModels:`No hay modelos de {{kind}} disponibles. Activa un proveedor compatible y guarda sus credenciales primero.`,consentTtl:{label:`Duración del consentimiento`,never:`Hasta que lo retire`,days30:`30 días`,days90:`90 días`,days365:`Un año`}},mediaGallery:{itemCount:`{{count}} elementos`,empty:`Aún no hay multimedia generada`,emptyHint:`Genera una imagen, video o clip de voz y aparecerá aquí.`,filters:{all:`Todos`,image:`Imágenes`,video:`Vídeos`,audio:`Audio`}},errorBoundary:{title:`Algo salió mal`,description:`Encontramos un error inesperado. Por favor intenta actualizar la página.`,tryAgain:`Actualizar página`,goHome:`Ir al inicio`,errorDetails:`Detalles del error (desarrollo)`},documents:{title:`Documentos`,upload:`Subir documento`,uploading:`Subiendo...`,noDocuments:`No hay documentos subidos`,uploadHint:`Sube documentos para usar en tus conversaciones`,delete:`Eliminar`,deleteConfirm:`¿Estás seguro de que deseas eliminar este documento?`,deleteSuccess:`Documento eliminado`,deleteFailed:`Error al eliminar documento`,uploadSuccess:`Documento subido exitosamente`,uploadFailed:`Error al subir documento`,types:`Soportados: PDF, TXT, MD, DOCX`,unsupportedFileType:`Este tipo de archivo no es compatible`,fileSizeTooLarge:`El tamaño del archivo debe ser menor a 10 MB`,uploadSuccessWithName:`Documento "{{name}}" subido exitosamente`,removeSuccess:`Documento eliminado exitosamente`,removeFailed:`Error al eliminar documento`,removeError:`Ocurrió un error al eliminar el documento`,clickToUpload:`Haz clic para subir`,orDragAndDrop:`o arrastra y suelta`,fileTypesAndSize:`Archivos PDF, Office, Markdown, HTML, código y CSV de hasta 10 MB`,uploadedDocuments:`Documentos subidos`,removeDocument:`Eliminar documento`,fullContextToggle:`Enviar documentos completos`,fullContextEstimate:`≈ {{tokens}} tokens`,fullContextTooLarge:`Los documentos adjuntos superan el límite de contexto completo, por lo que se usó la recuperación`,fullDocument:`Documento completo`},ttsButton:{speak:`Hablar`,stop:`Detener`,speaking:`Hablando...`,generateFailed:`Error al generar voz`,playbackFailed:`Error en reproducción de audio`,stopSpeaking:`Detener lectura`,preparingSpeech:`Preparando voz...`,generatingSpeech:`Generando voz...`,bufferingSpeech:`Almacenando voz en búfer...`,enableAudio:`Activar audio y leer en voz alta`,enableAudioShort:`Activar audio`,readAloud:`Leer en voz alta`},artifacts:{title:`Artefactos`,code:`Código`,preview:`Vista previa`,copy:`Copiar código`,copied:`¡Copiado!`,download:`Descargar`,expand:`Expandir`,collapse:`Contraer`,openInNewTab:`Abrir en nueva pestaña`,invalidSvg:`Contenido SVG inválido`,invalidJson:`Contenido JSON inválido`,previewMode:`Modo vista previa`,codeMode:`Modo código`,copyContent:`Copiar contenido`,openInPanel:`Abrir en panel`,openInNewWindow:`Abrir en nueva ventana`,created:`Creado`,closePanelEsc:`Cerrar panel (Esc)`,copyButton:`Copiar`,open:`Abrir`,dragEdgeToResize:`Arrastra el borde para redimensionar`,previewUnavailable:`Preview unavailable`,previewUnavailableDescription:`This artifact does not contain renderable preview content. Switch to code view to inspect the source.`,versionOf:`Versión {{current}} de {{total}}`,previousVersion:`Versión anterior`,nextVersion:`Versión siguiente`},personaImportExport:{title:`Importar y exportar personas`,description:`Exporta tus personas para compartirlas o importa personas de otros`,exportPersonas:`Exportar personas`,importPersonas:`Importar personas`,noPersonasToExport:`No hay personas para exportar`,personasAvailable:`{{count}} persona disponible`,personasAvailable_plural:`{{count}} personas disponibles`,exportAll:`Exportar todo`,uploadJsonFile:`Subir archivo JSON`,pasteJsonLabel:`Pegar datos JSON`,pasteJsonPlaceholder:`Pega los datos JSON de la persona aquí...`,importing:`Importando...`,importButton:`Importar persona(s)`,expectedFormat:`Formato JSON esperado:`,exportSuccess:`Persona "{{name}}" exportada exitosamente`,exportFailed:`Error al exportar persona`,exportAllSuccess:`Todas las {{count}} personas exportadas exitosamente`,exportAllFailed:`Error al exportar personas`,pasteJsonData:`Por favor pega los datos JSON de la persona`,importMultipleSuccess:`Se importaron {{count}} personas exitosamente`,importMultipleFailed:`Error al importar {{count}} personas`,importNoneFailed:`Error al importar cualquier persona`,importSuccess:`Persona importada exitosamente`,importFailed:`Error al importar persona`},generationStats:{details:`Detalles`,promptTokens:`Tokens del prompt:`,generatedTokens:`Tokens generados:`,totalTokens:`Tokens totales:`,speed:`Velocidad:`,promptEval:`Evaluación del prompt:`,generation:`Generación:`,modelLoad:`Carga del modelo:`,totalTime:`Tiempo total:`,generatedAt:`Generado a las:`},userMenu:{loggedOut:`Sesión cerrada correctamente`,pictureUpdated:`Foto de perfil actualizada`,failedUpdateAvatar:`Error al actualizar el avatar`,failedUpdatePicture:`Error al actualizar la foto de perfil`,noEmail:`Sin correo electrónico`,changePicture:`Cambiar imagen`,settings:`Configuración`,userManagement:`Gestión de usuarios`,signOut:`Cerrar sesión`,changeProfilePicture:`Cambiar foto de perfil`},pluginManager:{title:`Gestor de plugins`,upload:`Subir`,addJson:`Añadir JSON`,browseHF:`Explorar HF Hub`,confirmDelete:`¿Estás seguro de que quieres eliminar este plugin?`,uploading:`Subiendo plugin...`,pasteJson:`Pega el JSON del plugin aquí...`,installPlugin:`Instalar plugin`,loading:`Cargando plugins...`,noPlugins:`No hay plugins instalados`,noPluginsDescription:`Sube un archivo de plugin o añade uno desde JSON para comenzar.`,active:`Activo`,id:`ID`,endpoint:`Endpoint`,activate:`Activar`,deactivate:`Desactivar`,activePlugin:`Plugin activo`,activePluginDescription:`Todas las solicitudes de chat se enrutarán a través de este plugin`,variables:{title:`Variables`,save:`Guardar`,saving:`Guardando...`,saved:`Variables guardadas`,saveFailed:`Error al guardar variables`,resetDefaults:`Restablecer valores`,reset:`Variables restablecidas`,resetFailed:`Error al restablecer las variables`,sensitiveSet:`Valor establecido (ingrese nuevo valor para cambiar)`,showValue:`Mostrar valor de {{label}}`,hideValue:`Ocultar valor de {{label}}`,connection:`Conexión`,advanced:`Parámetros avanzados`,inherited:`Usar predeterminado del proveedor`,inheritedValue:`Usar predeterminado del proveedor ({{value}})`,enabled:`Habilitado`,disabled:`Deshabilitado`,required:`Se requiere un valor`,fullApiEndpoint:`URL completa del endpoint de API`,endpointHelp:`Introduce la URL de solicitud completa, incluyendo su ruta de operación (por ejemplo, /v1/chat/completions), no solo la URL base del proveedor.`,invalidUrl:`Introduce una URL de endpoint de API completa válida, por ejemplo https://provider.example/v1/chat/completions`,insecureUrl:`Los endpoints de API deben usar HTTP o HTTPS.`,httpWarning:`HTTP no cifra las credenciales ni el tráfico. Úsalo solo en una red de confianza.`,invalidBaseUrl:`Las URLs base no pueden contener una cadena de consulta ni un fragmento.`,invalidApiPath:`Debe empezar con / y no contener URL, consulta, fragmento ni el segmento ..`,tooLong:`El valor es demasiado largo`}},huggingface:{title:`Explorador de modelos HuggingFace`,subtitle:`Explora y selecciona modelos del Hub`,searchPlaceholder:`Buscar modelos...`,filters:`Filtros`,task:`Tarea`,sortBy:`Ordenar por`,noModels:`No se encontraron modelos`,adjustSearch:`Intenta ajustar tu búsqueda o filtros`,gated:`Restringido`,selected:`Seleccionado`,select:`Seleccionar`,refresh:`Actualizar`,modelsFound:`modelos encontrados`},demoMode:{title:`Modo demo`,github:`GitHub`},libreClaw:{title:`Agentes`,subtitle:`Ejecuciones, aprobaciones, programaciones, memoria, herramientas y uso del agente local.`,dashboard:`Panel de control`,connection:{disconnectedTitle:`El demonio de Libre Claw no está conectado`,disconnectedDescription:`Inícielo localmente con <command>libre-claw start</command> o configure <env>LIBRE_CLAW_BASE_URL</env> en el entorno backend.`},status:{connected:`Conectado`,disconnected:`desconectado`,activeRuns:`{{count}} activo`,activeRuns_plural:`{{count}} activo`},states:{queued:`En cola`,running:`En ejecución`,blocked:`Bloqueado`,done:`hecho`,failed:`Fallido`,cancelled:`Cancelado`},startRun:{title:`Iniciar ejecución del agente`,placeholder:`Pídale a Libre Claw que inspeccione un repositorio, corrija un error, ejecute una revisión, programe un informe...`,chatRun:`Ejecutar chat`,goalMode:`Modo objetivo`,providerOverride:`Anulación del proveedor`,modelOverride:`Anulación de modelo`,run:`Ejecutar`},modelRoute:{title:`Ruta Modelo`,providerPlaceholder:`proveedor`,modelPlaceholder:`modelo`,persistGlobal:`Persistir en la configuración global Libre Claw`,saveModel:`Guardar modelo`,theme:`Tema de Libre Claw`,saveTheme:`Guardar tema`},runs:{title:`Ejecuciones`,empty:`Aún no hay ejecuciones de Libre Claw.`},timeline:{title:`Cronología de la ejecución`,empty:`Seleccione una ejecución para inspeccionar sus eventos.`,streaming:`Transmitiendo...`,assistantResponse:`Respuesta del asistente`,resultOk:`bien`,resultError:`error`,labels:{userMessage:`Mensaje de usuario`,toolCall:`llamada de herramienta`,toolResult:`Resultado de la herramienta`,approvalRequest:`Solicitud de aprobación`,approvalResponse:`Respuesta de aprobación`,runStarted:`Ejecución iniciada`,runFinished:`Ejecución finalizada`,usage:`Uso`,error:`error`}},approvals:{needed:`Aprobación necesaria`,allowOnce:`permitir una vez`,alwaysAllowTool:`Permitir siempre la herramienta`,deny:`Rechazar`,toolApprovalRequested:`Se solicita aprobación de herramienta`},automations:{title:`Automatizaciones`,namePlaceholder:`Nombre`,schedulePlaceholder:`daily 09:00`,promptPlaceholder:`Aviso de automatización`,create:`crear`,empty:`No hay automatizaciones programadas Libre Claw.`,runNow:`Ejecutar ahora`,pause:`Pausa`,resume:`Reanudar`,routes:{report:`Informe`,telegram:`Telegram`},status:{active:`Activo`,paused:`En pausa`}},usageFallback:{title:`Uso y respaldo`,usage:`Uso`,fallbackRoute:`Ruta alternativa`,noUsage:`Aún no hay registros de uso.`},metrics:{provider:`Proveedor`,model:`modelo`,input:`Entrada`,output:`Salida`,cached:`En caché`,reasoning:`Razonamiento`,cost:`Costo`,tool:`Herramienta`,resolution:`Resolución`,state:`Estado`,stopReason:`Motivo de detención`,tokens:`{{formatted}} ficha`,tokens_plural:`{{formatted}} fichas`},fallbacks:{tool:`herramienta`,unknown:`desconocido`,resolved:`resuelto`,unknownError:`Error desconocido`},toasts:{loadStatusFailed:`No se pudo cargar el estado Libre Claw`,enterTask:`Ingrese una tarea para Libre Claw`,runStarted:`Ejecución de Libre Claw iniciada`,startRunFailed:`No se pudo iniciar la ejecución de Libre Claw`,runCancelled:`Ejecución cancelada`,cancelRunFailed:`No se pudo cancelar la ejecución`,approved:`Aprobado`,denied:`denegado`,resolvePermissionFailed:`No se pudo resolver el permiso`,providerModelRequired:`Se requiere proveedor y modelo.`,modelUpdated:`Modelo de Libre Claw actualizado`,updateModelFailed:`No se pudo actualizar el modelo`,themeUpdated:`Tema de Libre Claw actualizado`,updateThemeFailed:`No se pudo actualizar el tema`,automationRequired:`Se requieren el nombre, el cronograma y el aviso de la automatización`,automationCreated:`Automatización creada`,createAutomationFailed:`No se pudo crear la automatización`,automationUpdated:`Automatización actualizada`,updateAutomationFailed:`No se pudo actualizar la automatización`}},work:{title:`Trabajo`,subtitle:`Espacios de trabajo aislados para modelos`,tasks:{title:`Tareas de trabajo`,subtitle:`Espacios de trabajo locales persistentes`,new:`Nueva tarea`,emptyTitle:`Aún no hay tareas de trabajo`,empty:`Tus tareas de trabajo aparecerán aquí después de enviar el primer mensaje.`,untitled:`Tarea sin título`,actions:`Acciones de la tarea`,delete:`Eliminar tarea`,deleteNamed:`Eliminar {{title}}`,deleteConfirm:`¿Eliminar «{{title}}» y su espacio de trabajo de forma permanente?`,close:`Cerrar tareas de trabajo`,open:`Abrir tareas de trabajo`,rename:`Título de la tarea`,loading:`Cargando tarea…`,notFound:`Esta tarea de trabajo no está disponible`,back:`Iniciar una nueva tarea`,status:`Estado: {{status}}`},landing:{title:`Iniciar una nueva tarea de trabajo`,description:`Asigna a un modelo local o de un proveedor configurado un espacio de trabajo aislado y persistente. Puede inspeccionar archivos, ejecutar herramientas y continuar donde lo dejó cuando vuelvas.`,isolated:`Aislado`,isolatedBody:`Cada tarea tiene su propio contenedor y archivos.`,durable:`Persistente`,durableBody:`Vuelve más tarde a su conversación y espacio de trabajo.`,controlled:`Controlado`,controlledBody:`El entorno de ejecución y los archivos de la tarea permanecen aislados del host.`},composer:{placeholder:`Describe lo que quieres crear o cambiar…`,model:`Modelo de trabajo`,noModels:`No hay modelos compatibles con el modo Trabajo`,cancel:`Detener`,send:`Ejecutar`,hint:`Cada tarea conserva sus propios archivos e historial. Revisa la salida del modelo antes de usarla.`,remoteTitle:`Proveedor remoto`,remoteHint:`La conversación y la salida de las herramientas se envían al servicio configurado. Una ejecución autónoma puede realizar varias llamadas al proveedor y generar cargos. Los archivos del espacio de trabajo permanecen locales, salvo que una herramienta devuelva su contenido.`,remoteDismiss:`Ocultar`,remoteDismissLabel:`Ocultar aviso del proveedor remoto`,remoteDismissFailed:`No se pudo guardar la preferencia del proveedor remoto.`,noModelSelected:`No hay ningún modelo compatible con el modo Trabajo seleccionado.`},conversation:{ready:`Espacio de trabajo listo`,empty:`Continúa la tarea abajo. Esta conversación y sus archivos permanecen asociados a este espacio de trabajo.`,loadOlder:`Cargar mensajes anteriores`},status:{preparing:`Preparando el espacio de trabajo aislado…`,running:`Trabajando en el espacio de trabajo local…`},statusLabels:{idle:`Inactivo`,thinking:`Pensando`,complete:`Completado`,needsInput:`Requiere información`,error:`Error`},live:{connecting:`Conectando con las actualizaciones en vivo…`,reconnecting:`Reconectando con las actualizaciones en vivo…`,unavailable:`Actualizaciones en vivo no disponibles`,newActivity:`Nueva actividad`,skillsLoaded:`Habilidades del espacio de trabajo · {{count}}`},runtime:{unavailable:`Entorno de ejecución no disponible`,ready:`Entorno de ejecución listo`,readyOllama:`Docker listo`,readyPlugin:`Docker + plugin listos`,readyHybrid:`Docker + modelos listos`,reason:`Se requieren Docker y un proveedor de modelos disponible mediante Ollama o un plugin.`},workspace:{label:`Vistas del espacio de trabajo`,files:`Archivos`,activity:`Actividad`,preview:`Vista previa`,resize:`Cambiar el tamaño de la conversación y el espacio de trabajo`,resizeHint:`Arrastra para cambiar el tamaño. Usa las teclas de flecha para un control preciso. Haz doble clic o pulsa Intro para restablecer.`,splitSize:`Conversación {{conversation}} %, espacio de trabajo {{workspace}} %`,terminal:`Terminal`,git:`Git`},files:{discard:`¿Descartar los cambios no guardados del archivo?`,leaveWithDraft:`¿Salir de este archivo? La edición sin guardar se conservará como borrador en el navegador.`,up:`Carpeta principal`,back:`Volver a los archivos`,empty:`Aún no hay archivos en esta carpeta.`,select:`Selecciona un archivo para inspeccionarlo y editarlo.`,editorLabel:`Editor de archivos: {{path}}`,format:`Formatear`,formatted:`Código formateado.`,formatFailed:`No se pudo formatear este archivo.`,formatShortcut:`Formatear (Mayús+Alt+F)`,formatTooLarge:`El formateo está limitado a archivos de menos de 100.000 caracteres y 4.000 líneas.`,formatUnsupported:`El formato no está disponible para este tipo de archivo.`,saveShortcut:`Guardar (⌘/Ctrl+S)`,highlightPaused:`El resaltado en tiempo real está pausado para archivos grandes, a fin de mantener una edición fluida.`,plainTextLarge:`Texto sin formato · archivo grande`,changes:`Cambios`,changesSince:`Qué cambió desde el último turno`,diffLabel:`Cambios desde el último turno: {{path}}`,diffFolded:`{{count}} líneas sin cambios`},activity:{empty:`Los comandos, las operaciones de archivos y los resultados de las herramientas aparecerán aquí.`,toolActivity:`Actividad de herramientas`,details:`Detalles`,kinds:{message:`Mensaje`,toolCall:`Llamada a herramienta`,toolResult:`Resultado de herramienta`,error:`Error`}},preview:{command:`Comando de inicio opcional`,start:`Iniciar vista previa`,stop:`Detener vista previa`,open:`Abrir`,starting:`Iniciando vista previa…`,frameTitle:`Vista previa del espacio de trabajo`,failed:`No se pudo iniciar la vista previa. Revisa Actividad e inténtalo con otro comando.`,empty:`Inicia la aplicación dentro de este espacio de trabajo para inspeccionarla aquí.`},mobile:{surface:`Vista de la tarea`,conversation:`Conversación`,workspace:`Espacio de trabajo`},toasts:{runFailed:`No se pudo iniciar la tarea de trabajo.`,updateFailed:`No se pudo actualizar esta tarea.`,renameFailed:`No se pudo cambiar el nombre de esta tarea.`,cancelled:`Ejecución de trabajo detenida.`,cancelFailed:`No se pudo detener la ejecución de trabajo.`,deleteFailed:`No se pudo eliminar esta tarea de trabajo.`,saveFailed:`No se pudo guardar este archivo.`,saved:`Archivo guardado.`,previewFailed:`No se pudo iniciar la vista previa.`,previewStopFailed:`No se pudo detener la vista previa.`},terminal:{connecting:`Abriendo un shell en el entorno aislado…`,closed:`La sesión de terminal ha terminado.`,failed:`No se pudo iniciar la sesión de terminal.`,reconnect:`Reconectar`,unavailable:`La terminal interactiva no está disponible en esta instalación.`,blockedByRun:`El modelo está usando este contenedor. La terminal se abrirá al terminar el turno.`,taskRunning:`Turno del modelo en curso`},policy:{label:`Política de ejecución`,default:`Predeterminada (límites globales)`},git:{actionFailed:`La acción de Git falló.`,blockedByPreview:`Detén la vista previa antes de cambiar el estado de Git.`,blockedByRun:`Las acciones de escritura de Git se desbloquean al terminar el turno del modelo.`,branchCreated:`{{name}} creada.`,branchSwitched:`Cambiado a {{name}}.`,clean:`El árbol de trabajo está limpio.`,commit:`Confirmar cambios preparados`,commitMessage:`Mensaje del commit`,committed:`Commit creado.`,detached:`HEAD separado`,diff:`Vista previa del diff`,diffFailed:`No se pudo cargar este diff.`,history:`Historial local`,initialize:`Inicializar Git`,initializeDescription:`Crea un repositorio local para estado, diffs, ramas y commits. No se conectan credenciales remotas.`,initialized:`Repositorio Git inicializado.`,loadFailed:`No se pudo cargar el estado de Git.`,localOnly:`Solo Git local. Push, pull y pull requests requieren un intermediario de credenciales de confianza aparte.`,newBranch:`Nueva rama local`,noCommits:`Aún no hay commits.`,noDiff:`Aún no hay diff textual. Los archivos sin seguimiento aparecen tras prepararlos.`,notInitialized:`Git no está inicializado`,selectChange:`Selecciona un archivo modificado para inspeccionar su diff.`,selectPath:`Seleccionar {{path}}`,stageAll:`Preparar todo`,stageSelected:`Preparar {{count}}`,staged:`Cambios preparados.`,switchBranch:`Cambiar de rama local`,changes:`Cambios`,createBranch:`Crear`,filterFiles:`Filtrar archivos modificados`,noFilterMatches:`Ningún archivo modificado coincide con este filtro.`,allChanges:`Todos los cambios`,diffTruncated:`Este diff está truncado.`,binaryFile:`Archivo binario, sin diff de texto.`},hostWorkspace:{hint:`Déjalo en blanco para un espacio aislado, o apunta la tarea a una carpeta de esta máquina.`,label:`Carpeta del espacio de trabajo (opcional)`,warning:`La tarea puede leer y escribir esta carpeta directamente. Déjalo en blanco para usar un espacio aislado.`}},personaBackground:{label:`Imagen de fondo`,uploadBackgroundImage:`Subir imagen de fondo`,dragAndDrop:`Arrastra y suelta una imagen o haz clic para explorar`,chooseImage:`Elegir imagen`,uploading:`Subiendo...`,enterImageUrl:`O ingresa la URL de la imagen`,supportedFormats:`Soporta: JPG, PNG, GIF, WebP (máx 5MB). Las imágenes horizontales anchas funcionan mejor.`,customBackground:`Imagen de fondo personalizada`,clickToChange:`Haz clic para cambiar o eliminar`,removed:`Fondo eliminado`,uploaded:`Fondo subido exitosamente`,invalidFile:`Por favor selecciona un archivo de imagen válido`,fileTooLarge:`El tamaño de la imagen de fondo debe ser menor a 5MB`,readFailed:`Error al leer el archivo de imagen`,uploadFailed:`Error al subir la imagen de fondo`},modelSelector:{searchInstalled:`Buscar modelos instalados...`,searchOllama:`Buscar en la biblioteca de Ollama...`,searchHuggingFace:`Buscar en HuggingFace...`,selectModel:`Seleccionar modelo`,personas:`Personas`,ollamaModels:`Modelos Ollama`,pluginModels:`Modelos de plugins`,actions:`Acciones`,installed:`Instalado`,use:`Usar`,pull:`Descargar`,pullRestricted:`La instalación de modelos está restringida a administradores en esta instancia.`,adminOnlyPull:`Solo administradores`,legacyProvider:`proveedor no registrado`,providerNotRecorded:`Proveedor no registrado`,providerUnavailable:`proveedor no disponible`,reselectProvider:`vuelve a seleccionar un proveedor para fijar este modelo`,unavailable:`no disponible`,unavailableSelections:`Selecciones no disponibles`,agentModels:`Agentes`},whatsNew:{title:`Novedades`,releaseNotes:`Notas de la versión`,cta:`Vale, vamos`,starAsk:`¿Te gusta Libre WebUI? Deja una estrella en GitHub`},notes:{title:`Notas`,new:`Nueva nota`,untitled:`Sin título`,empty:`Aún no hay notas`,selectOrCreate:`Selecciona una nota o crea una nueva`,contentPlaceholder:`Escribe en Markdown…`,saved:`Guardado`,saveFailed:`No se pudo guardar la nota`,createFailed:`No se pudo crear la nota`,deleteConfirm:`¿Eliminar esta nota?`,deleteFailed:`No se pudo eliminar la nota`,tools:`Herramientas de nota`,revisions:`Historial`,attachments:`Adjuntos`,share:`Compartir`,assist:`Edición con IA`,noRevisions:`Aún no hay versiones anteriores`,restore:`Restaurar`,revisionRestored:`Versión restaurada`,revisionRestoreFailed:`No se pudo restaurar esta versión`,addAttachment:`Añadir adjunto`,noAttachments:`Aún no hay adjuntos`,attachmentAdded:`Adjunto añadido`,attachmentFailed:`No se pudo añadir el adjunto`,attachmentDownloadFailed:`No se pudo descargar el adjunto`,shareUsernamePlaceholder:`Nombre de usuario`,permissionRead:`Puede ver`,permissionWrite:`Puede editar`,shareAction:`Compartir`,notShared:`Aún no se ha compartido`,revokeShare:`Revocar acceso`,shareHint:`Las notas compartidas aparecen en la lista de notas de la otra persona. El acceso puede revocarse en cualquier momento.`,shareUserNotFound:`No hay ningún usuario con ese nombre`,shareAdded:`Compartida con {{username}}`,shareFailed:`No se pudo compartir la nota`,assistPlaceholder:`Describe el cambio, p. ej. condensar el resumen o corregir la gramática`,assistGenerate:`Proponer edición`,assistNoModel:`Selecciona primero un modelo en el Chat`,assistNoChanges:`El modelo no propuso cambios`,assistApply:`Aplicar`,assistDiscard:`Descartar`,assistApplied:`Edición aplicada`,assistRevisionHint:`Al aplicar, la versión anterior se conserva en el historial, así que cualquier edición de IA puede deshacerse.`,assistFailed:`No se pudo generar la edición`,pin:`Fijar nota`,unpin:`Soltar nota`,pinned:`Fijada`,export:`Descargar como Markdown`,sharedWithYou:`Compartida contigo`},calendar:{title:`Calendario`,today:`Hoy`,month:`Mes`,week:`Semana`,previous:`Anterior`,next:`Siguiente`,newEvent:`Nuevo evento`,editEvent:`Editar evento`,eventTitle:`Título`,titlePlaceholder:`Título del evento`,date:`Fecha`,start:`Inicio`,end:`Fin`,allDay:`Todo el día`,repeat:`Repetir`,repeatNone:`No se repite`,repeatDaily:`Diariamente`,repeatWeekly:`Semanalmente`,repeatMonthly:`Mensualmente`,repeatYearly:`Anualmente`,notes:`Notas`,more:`+{{n}} más`,loadFailed:`No se pudo cargar el calendario`,saveFailed:`No se pudo guardar el evento`,deleteFailed:`No se pudo eliminar el evento`,day:`Día`,calendarLabel:`Calendario`,personalCalendar:`Personal`,reminderLabel:`Recordatorio`,reminderNone:`Sin recordatorio`,reminderMinutes:`{{minutes}} minutos antes`,reminderHour:`1 hora antes`,reminderDay:`1 día antes`,sharedReadOnly:`Este evento se compartió contigo solo para lectura.`,sharedBadge:`compartido`,shareCalendar:`Compartir calendario`,newCalendarPlaceholder:`Nuevo calendario…`,calendarSaveFailed:`No se pudo guardar el calendario`,exportFailed:`No se pudo exportar el calendario`,importFailed:`No se pudo importar el archivo`,importResult:`Se importaron {{total}} eventos`,importIcs:`Importar`,exportIcs:`Exportar`},automations:{title:`Automatizaciones`,tab:{automations:`Automatizaciones`,runs:`Ejecuciones`},newAutomation:`Nueva automatización`,editAutomation:`Editar automatización`,empty:`Aún no hay automatizaciones. Crea una para ejecutar una tarea según un horario.`,loadFailed:`No se pudieron cargar las automatizaciones`,saveFailed:`No se pudo guardar la automatización`,actionFailed:`La acción falló`,runQueued:`Ejecución iniciada`,status:{active:`Activa`,paused:`En pausa`},nextRun:`Próxima ejecución {{when}}`,actions:`Acciones`,pause:`Pausar`,resume:`Reanudar`,runNow:`Ejecutar ahora`,openChat:`Abrir chat`,noRuns:`Aún no hay ejecuciones`,deletedAutomation:`Automatización eliminada`,runHistory:`Historial de ejecuciones (últimos 30 días)`,succeeded:`exitosas`,failed:`fallidas`,form:{name:`Nombre`,namePlaceholder:`Mi automatización`,triggers:`Disparadores`,addTrigger:`Añadir disparador`,instructions:`Instrucciones`,instructionsPlaceholder:`¿Qué debe ejecutarse según este horario?`,model:`Modelo`,modelAuto:`Auto`,notification:`Notificación`,notifyApp:`Aplicación`,notifyOff:`Desactivada`,frequency:`Frecuencia`,time:`Hora`,minute:`Minuto`,fromHour:`Desde`,toHour:`Hasta`,weekday:`Día de la semana`,dayOfMonth:`Día`,month:`Mes`},kind:{once:`Una vez`,hourly:`Cada hora`,daily:`Diaria`,weekly:`Semanal`,monthly:`Mensual`,yearly:`Anual`},trigger:{once:`Una vez el {{when}}`,hourly:`Cada hora al minuto :{{minute}}`,daily:`Diariamente a las {{time}}`,weekly:`Semanalmente el {{day}} a las {{time}}`,monthly:`Mensualmente el día {{day}} a las {{time}}`,yearly:`Anualmente el {{date}} a las {{time}}`},finishedNotification:`{{n}} ejecuciones de automatización finalizadas`,templatesTitle:`Plantillas`,templates:{morningBrief:{name:`Resumen matutino`,description:`Empieza el día con titulares y prioridades.`},newsDigest:{name:`Resumen de noticias de IA`,description:`Lanzamientos de modelos, investigación y financiación relevantes.`},weeklyReview:{name:`Revisión semanal`,description:`Cierra la semana: logros, pendientes y próximas prioridades.`},monthlyReport:{name:`Informe mensual`,description:`Un esquema de informe de estado el primer día de cada mes.`}}},home:{active:`activo`,continue:`Continuar`,start:`Empezar`,explore:`Explorar`},palette:{empty:`Sin coincidencias.`,placeholder:`Buscar chats, Work, acciones…`,toggleTheme:`Cambiar tema`,actions:`Acciones`,chats:`Chats`,search:`Buscar`,settings:`Configuración`,work:`Trabajo`,messages:`Mensajes`,notes:`Notas`,documents:`Documentos`},tabs:{actions:`Acciones de pestaña`,close:`Cerrar pestaña`,closeAll:`Cerrar todas las pestañas`,closeOthers:`Cerrar las demás pestañas`,closeRight:`Cerrar pestañas a la derecha`,home:`Inicio`,label:`Pestañas abiertas`,new:`Nueva pestaña`,newWork:`Nuevo Work`,chat:`Chat`,newChat:`Nuevo chat`,work:`Trabajo`},tools:{arguments:`Argumentos`,result:`Resultado`,callStatus:{awaiting_approval:`Esperando aprobación`,running:`En ejecución`,succeeded:`Listo`,failed:`Falló`,denied:`Rechazada`,cancelled:`Cancelada`},approval:{title:`Se necesita aprobación para la herramienta`,description:`El modelo quiere ejecutar {{tool}} en {{server}}. Esta llamada puede cambiar datos fuera de este chat.`,builtinSource:`este servidor`,allowOnce:`Permitir una vez`,allowSession:`Permitir en este chat`,allowAlways:`Permitir siempre`,deny:`Rechazar`}},promptsPage:{title:`Prompts`,description:`Plantillas de prompts reutilizables con variables tipadas. Escribe / en el campo de chat para insertar una.`,newPrompt:`Nuevo prompt`,editPrompt:`Editar prompt`,empty:`Aún no hay prompts`,emptyHint:`Un prompt es una plantilla de mensaje guardada. Una vez creado, escribir /slug en el campo de chat lo inserta y pide las variables que declara.`,loadFailed:`No se pudieron cargar tus prompts.`,saved:`Prompt guardado`,saveFailed:`No se pudo guardar el prompt.`,deleted:`Prompt eliminado`,deleteFailed:`No se pudo eliminar el prompt.`,deleteTitle:`Eliminar prompt`,deleteConfirm:`¿Eliminar "{{title}}"? También se borra su historial de versiones.`,exportFailed:`No se pudo exportar el prompt.`,imported:`Prompt importado`,importFailed:`No se pudo importar ese archivo.`,historyFailed:`No se pudo cargar el historial de versiones.`,rolledBack:`Prompt restaurado`,rollbackFailed:`No se pudo restaurar el prompt.`,versionLabel:`v{{version}}`,updated:`Actualizado {{when}}`,form:{slug:`Slug`,slugPlaceholder:`weekly-report`,slugHint:`Se usa como /slug en el campo de chat.`,slugInvalid:`Solo minúsculas, dígitos y guiones.`,title:`Título`,titlePlaceholder:`Informe semanal`,description:`Descripción`,descriptionPlaceholder:`Para qué sirve este prompt`,content:`Contenido`,contentPlaceholder:`Escribe el prompt. Envuelve entre llaves dobles todo lo que quieras completar más tarde.`,contentHint:`Un marcador es un nombre entre llaves dobles. Decláralo abajo para darle una etiqueta o un valor por defecto.`,tags:`Etiquetas`,tagsPlaceholder:`investigación, redacción`,variables:`Variables`,variablesHint:`Opcional. Declara aquí un marcador para darle una etiqueta, un valor por defecto o un conjunto de opciones.`,variableName:`Nombre`,variableType:`Tipo`,variableLabel:`Etiqueta`,variableDefault:`Por defecto`,variableRequired:`Obligatorio`,variableOptions:`Opciones`,variableOptionsPlaceholder:`Opciones separadas por comas`,addVariable:`Añadir variable`,removeVariable:`Quitar variable`},variableTypes:{text:`Texto`,number:`Número`,select:`Elección`,boolean:`Sí o no`},history:{open:`Historial de versiones`,title:`Historial de {{title}}`,subtitle:`Restaurar guarda la revisión elegida como una versión nueva. No se sobrescribe nada.`,empty:`Aún no hay versiones anteriores.`,current:`Actual`,rollback:`Restaurar`,rollingBack:`Restaurando...`},templatesTitle:`Empieza con una plantilla`,templates:{reviewPr:{name:`Revisión de pull request`,description:`Revisión de código estructurada con rigor ajustable.`},summarize:{name:`Resumir para un público`,description:`Resumen en viñetas ajustado a quien lo lee.`},translate:{name:`Traducir`,description:`Traducción que conserva el tono y el formato.`},explainCode:{name:`Explicar código`,description:`Recorrido paso a paso más casos límite y riesgos.`}}},skillsPage:{title:`Habilidades`,description:`Conjuntos de instrucciones con nombre que el modelo puede cargar cuando los necesita.`,newSkill:`Nueva habilidad`,editSkill:`Editar habilidad`,empty:`Aún no hay habilidades`,emptyHint:`Una habilidad es un conjunto de instrucciones que el modelo carga solo cuando las necesita. Menciona $slug en un mensaje o deja que el modelo la use a través de la herramienta load_skill.`,loadFailed:`No se pudieron cargar tus habilidades.`,saved:`Habilidad guardada`,saveFailed:`No se pudo guardar la habilidad.`,toggleFailed:`No se pudo cambiar la habilidad.`,deleted:`Habilidad eliminada`,deleteFailed:`No se pudo eliminar la habilidad.`,deleteTitle:`Eliminar habilidad`,deleteConfirm:`¿Eliminar "{{name}}"? También se borra su historial de versiones.`,exportFailed:`No se pudo exportar la habilidad.`,imported:`Habilidad importada`,importFailed:`No se pudo importar ese archivo.`,historyFailed:`No se pudo cargar el historial de versiones.`,rolledBack:`Habilidad restaurada`,rollbackFailed:`No se pudo restaurar la habilidad.`,versionLabel:`v{{version}}`,updated:`Actualizada {{when}}`,form:{slug:`Slug`,slugPlaceholder:`code-review`,slugHint:`Se usa como $slug cuando mencionas la habilidad.`,slugInvalid:`Solo minúsculas, dígitos y guiones.`,name:`Nombre`,namePlaceholder:`Revisión de código`,description:`Descripción`,descriptionPlaceholder:`Cuándo usar esta habilidad`,descriptionHint:`Este es el manifiesto que ve el modelo. Escríbelo de forma que el modelo sepa cuándo aplica la habilidad sin cargarla.`,instructions:`Instrucciones`,instructionsPlaceholder:`Instrucciones en Markdown que el modelo lee al cargar esta habilidad.`,instructionsHint:`Se cargan solo cuando se usa la habilidad, así que su longitud no cuesta nada hasta entonces.`,enabled:`Habilitada`,enabledHint:`Las habilidades deshabilitadas siguen guardadas, pero nunca se ofrecen al modelo.`},history:{open:`Historial de versiones`,title:`Historial de {{name}}`},templatesTitle:`Empieza con una plantilla`,templates:{citeSources:{name:`Citar fuentes`,description:`Referencias numeradas con URL, sin afirmaciones sin fuente.`},releaseNotes:{name:`Estilo de notas de versión`,description:`Entradas agrupadas y orientadas al usuario, sin ids internos.`},meetingNotes:{name:`Formato de acta de reunión`,description:`Decisiones, tareas y preguntas abiertas a partir de una transcripción.`}},importUrl:{button:`Desde URL`,title:`Importar una habilidad desde una URL`,hint:`Pega un enlace de skills.sh o GitHub, owner/repo/skill, o un enlace directo a un archivo SKILL.md.`,placeholder:`https://skills.sh/owner/repo/skill u owner/repo/skill`,overwrite:`Sobrescribir mi habilidad si el slug ya existe`},files:{title:`Archivos incluidos`,hint:`Documentos de referencia y scripts que el modelo lee bajo demanda con read_skill_file.`,add:`Añadir archivo`,empty:`Aún no hay archivos incluidos.`,pathPlaceholder:`docs/reference.md`,contentPlaceholder:`Contenido del archivo…`,loadFailed:`No se pudo cargar el archivo`,saveFailed:`No se pudo guardar el archivo`,deleteFailed:`No se pudo eliminar el archivo`},folderImport:{button:`Desde carpeta`,missingSkillMd:`La carpeta necesita un archivo SKILL.md`,done:`Habilidad importada con {{count}} archivos incluidos`}},toolsPage:{title:`Herramientas`,description:`Servidores de herramientas que el modelo puede llamar y las aprobaciones que les has dado.`,approvalNotice:`Las herramientas que cambian datos fuera del chat siempre piden aprobación, salvo que le hayas dado a esa herramienta una aprobación permanente o para el chat.`,registerServer:`Registrar servidor`,registerHint:`Libre WebUI lee el servidor una vez y fija las herramientas que expone. Actualiza el servidor más tarde para recoger los cambios.`,editServer:`Editar servidor`,empty:`Sin servidores de herramientas`,emptyHintAdmin:`Registra un servidor OpenAPI o MCP para darle al modelo algo que llamar.`,emptyHintUser:`Ningún administrador ha compartido servidores de herramientas contigo todavía.`,loadFailed:`No se pudieron cargar los servidores de herramientas.`,saved:`Servidor de herramientas guardado`,saveFailed:`No se pudo guardar el servidor de herramientas.`,deleted:`Servidor de herramientas eliminado`,deleteFailed:`No se pudo eliminar el servidor de herramientas.`,deleteTitle:`Eliminar servidor de herramientas`,deleteConfirm:`¿Eliminar "{{name}}"? Todos perderán el acceso a sus herramientas.`,refresh:`Actualizar herramientas`,refreshed:`Herramientas releídas del servidor`,refreshFailed:`No se pudo leer el servidor.`,toolsLoadFailed:`No se pudieron cargar las herramientas fijadas.`,overrideFailed:`No se pudo cambiar la herramienta.`,pinnedTools:`Herramientas fijadas`,noPinnedTools:`Este servidor no expuso ninguna herramienta.`,sideEffect:`Efecto secundario`,sideEffectOverride:`Efecto secundario`,specRevision:`Revisión {{revision}}`,credential:`Credencial personal`,credentialHint:`Se guarda cifrada y solo se usa para tus propias llamadas a este servidor.`,credentialPlaceholder:`Pega tu token`,credentialSet:`Credencial configurada`,credentialMissing:`Falta la credencial`,credentialSaved:`Credencial guardada`,credentialSaveFailed:`No se pudo guardar la credencial.`,credentialRemove:`Eliminar`,credentialRemoved:`Credencial eliminada`,credentialRemoveFailed:`No se pudo eliminar la credencial.`,builtinSource:`Este servidor`,kinds:{openapi:`OpenAPI`,mcp:`MCP`},authModes:{none:`Sin autenticación`,bearer:`Token Bearer`,header:`Cabecera personalizada`},accessModes:{"admins-only":`Solo administradores`,"all-users":`Todos`,granted:`Solo quienes tengan acceso concedido`},form:{name:`Nombre`,namePlaceholder:`API del tiempo`,kind:`Tipo`,description:`Descripción`,descriptionPlaceholder:`Qué hace este servidor`,baseUrl:`URL base`,specUrl:`URL de la especificación`,specUrlHint:`Opcional. Si se deja vacío se usa la URL base.`,authMode:`Autenticación`,authHeader:`Nombre de la cabecera`,accessMode:`Quién puede usarlo`,timeoutMs:`Tiempo de espera (ms)`,maxResponseBytes:`Respuesta máxima (bytes)`,serverDefault:`Valor del servidor`,enabled:`Habilitado`,enabledHint:`Los servidores deshabilitados siguen registrados, pero nunca se ofrecen al modelo.`},approvals:{title:`Aprobaciones permanentes`,description:`Herramientas que dejaste ejecutarse sin volver a preguntar. Revoca una y volverá a preguntar la próxima vez.`,empty:`Sin aprobaciones permanentes.`,revoke:`Revocar`,revoked:`Aprobación revocada`,revokeFailed:`No se pudo revocar la aprobación.`,scope:{once:`Una vez`,session:`Este chat`,always:`Siempre`}},templatesTitle:`Empieza con una plantilla`,templates:{petstore:{name:`Demo de Petstore`,description:`Una API de demostración pública para una primera prueba integral segura.`},internalOpenApi:{name:`API interna`,description:`Un punto de partida para tu propio servicio OpenAPI.`},mcpServer:{name:`Servidor MCP`,description:`Un punto de partida para un servidor MCP sobre Streamable HTTP.`}}},composer:{promptMenu:{label:`Biblioteca de prompts`,empty:`Aún no hay prompts: crea uno en Ajustes → Prompts o empieza a escribir un slug.`},skillMenu:{label:`Habilidades`,empty:`Aún no hay habilidades: crea una en Ajustes → Habilidades.`},variables:{title:`Completa {{title}}`,insert:`Insertar`,cancel:`Cancelar`,required:`{{name}} es obligatorio`},toolsMenu:{enable:`Usar herramientas para este mensaje`,builtin:`Herramientas integradas`,servers:`Servidores de herramientas`,hint:`Las llamadas con efectos secundarios siguen pidiendo aprobación antes de ejecutarse.`}},share:{title:`Compartir «{{name}}»`,subtitle:`Da acceso a personas o grupos. Solo tú gestionas los accesos.`,kindUser:`Usuario`,kindGroup:`Grupo`,usernamePlaceholder:`Nombre de usuario exacto`,groupPlaceholder:`Nombre de grupo exacto`,permissionRead:`Puede ver`,permissionWrite:`Puede editar`,action:`Compartir`,empty:`Aún no se ha compartido con nadie.`,hint:`Escribe el nombre exacto del usuario o grupo. Los destinatarios lo ven en su espacio; revocar retira el acceso al instante.`,revoke:`Revocar acceso`,added:`Compartido con {{name}}`,failed:`No se pudo compartir`,userNotFound:`No hay ningún usuario con ese nombre`,groupNotFound:`No hay ningún grupo con ese nombre`},channels:{title:`Canales`,browsePublic:`Explorar canales públicos`,newDm:`Nuevo mensaje directo`,newChannel:`Nuevo canal`,empty:`Aún no hay canales. Crea uno o explora los públicos.`,selectPrompt:`Elige un canal para empezar`,pins:`Fijados`,members:`Miembros`,settings:`Ajustes del canal`,sendFailed:`No se pudo enviar el mensaje`,uploadFailed:`No se pudo subir el archivo`,memberAdded:`Miembro añadido`,memberAddFailed:`No se pudo añadir a ese usuario`,attach:`Adjuntar un archivo`,askModel:`Preguntar a un modelo con este mensaje`,noModel:`Sin modelo`,composerPlaceholder:`Escribe un mensaje…`,thread:`Hilo`,replyPlaceholder:`Responder…`,invitePlaceholder:`Usuario a invitar`,roleOwner:`propietario`,removeMember:`Quitar del canal`,leave:`Salir del canal`,noPins:`Nada fijado todavía.`,noMessages:`Sin mensajes todavía: saluda.`,create:`Crear`,createFailed:`No se pudo crear el canal`,nameLabel:`Nombre`,typeLabel:`Tipo`,typePublic:`Público: cualquiera puede unirse`,typePrivate:`Privado: solo con invitación`,descriptionLabel:`Descripción`,openDm:`Abrir conversación`,dmFailed:`No se pudo abrir la conversación`,dmHint:`Los mensajes directos son privados entre vosotros dos.`,dmPlaceholder:`Nombre de usuario exacto`,noPublic:`No hay canales públicos.`,joined:`Unido`,join:`Unirse`,save:`Guardar`,delete:`Eliminar canal`,modelAuthor:`Modelo`,unknownAuthor:`Alguien`,edited:`editado`,deletedMessage:`Este mensaje se eliminó`,modelThinking:`El modelo está pensando…`,react:`Añadir una reacción`,reply:`Responder en el hilo`,pin:`Fijar mensaje`,unpin:`Desfijar mensaje`,edit:`Editar mensaje`,deleteMessage:`Eliminar mensaje`,replyCount:`{{total}} respuestas`},notifications:{title:`Notificaciones`,empty:`Estás al día.`,markAllRead:`Marcar todo como leído`,markRead:`Marcar como leído`},voiceMode:{title:`Modo de voz`,open:`Iniciar el modo de voz`,close:`Cerrar el modo de voz`,starting:`Iniciando…`,listening:`Escuchando…`,muted:`Micrófono silenciado`,transcribing:`Transcribiendo…`,generating:`Pensando…`,speaking:`Hablando…`,mute:`Silenciar el micrófono`,unmute:`Activar el micrófono`,finishTurn:`He terminado de hablar`,skipReply:`Omitir la respuesta`,microphoneFailed:`Micrófono no disponible`,transcriptionFailed:`La transcripción falló`,replyTimeout:`La respuesta tardó demasiado`,unsupported:`El modo de voz no está disponible`,unsupportedHint:`El modo de voz necesita un micrófono y un proveedor de voz a texto o el reconocimiento de voz del navegador.`},imageEdit:{title:`Editar imagen`,prompt:`Describe el cambio`,promptPlaceholder:`Por ejemplo: reemplazar el cielo por un atardecer`,model:`Modelo`,apply:`Aplicar edición`,maskHint:`Pinta las zonas que se deben repintar; deja el lienzo intacto para editar toda la imagen.`,brushSize:`Tamaño del pincel`,clearMask:`Borrar máscara`,referenceImages:`Imágenes de referencia (hasta {{total}})`,noModels:`Ningún modelo configurado admite la edición de imágenes.`,saved:`Imagen editada guardada en la galería`,failed:`La edición de la imagen falló`,loadFailed:`No se pudo cargar la imagen de origen`},costs:{title:`Costos y presupuestos`,description:`Precios de las tarifas aplicados al registro de uso; los presupuestos vigilan o limitan el gasto.`,loadFailed:`No se pudieron cargar los datos de costos`,saveFailed:`Error al guardar`,exportFailed:`Error al exportar`,exportCsv:`Exportar CSV`,totalSpend:`Gasto total`,meteredEvents:`Eventos tarifados`,unmeteredEvents:`Eventos sin tarifa`,topModel:`Modelo principal`,budgets:`Presupuestos`,noBudgets:`Aún no hay presupuestos.`,budgetName:`Nombre del presupuesto`,principalId:`ID de usuario o grupo`,addBudget:`Añadir presupuesto`,deleteBudget:`Eliminar presupuesto`,budgetSaved:`Presupuesto guardado`,scope:{instance:`Toda la instancia`,user:`Usuario`,group:`Grupo`},period:{daily:`Diario`,weekly:`Semanal`,monthly:`Mensual`},mode:{observe:`Observar`,soft:`Alertar`,hard:`Alertar y bloquear`},tariffs:`Tarifas`,noTariffs:`Aún no hay tarifas: los costos quedan sin precio hasta que agregues precios.`,plugin:`Plugin`,model:`Modelo`,modelOptional:`Modelo (opcional)`,allModels:`Todos los modelos`,inputPerMillion:`Entrada $/M tokens`,outputPerMillion:`Salida $/M tokens`,unitPrice:`Precio unitario`,effectiveFrom:`Vigente desde`,addTariff:`Añadir tarifa`,deleteTariff:`Eliminar tarifa`,tariffSaved:`Tarifa guardada`},evaluations:{title:`Evaluaciones`,description:`Duelos de arena a ciegas, clasificación Elo, conjuntos de evaluación reutilizables y tu conjunto de datos de comentarios.`,loadFailed:`No se pudieron cargar las evaluaciones`,matchFailed:`El duelo de arena falló`,voteRecorded:`Voto registrado`,voteFailed:`No se pudo registrar el voto`,saveFailed:`Error al guardar`,exportFailed:`Error al exportar`,setSaved:`Conjunto de evaluación guardado`,runStarted:`Ejecución iniciada`,pickModel:`Elige un modelo`,tabs:{arena:`Arena`,leaderboard:`Clasificación`,sets:`Conjuntos`,feedback:`Comentarios`},arenaModelA:`Modelo A`,arenaModelB:`Modelo B`,arenaPrompt:`Haz la misma pregunta a ambos modelos…`,startMatch:`Iniciar duelo`,arenaHint:`Las identidades de los modelos permanecen ocultas hasta que votes.`,candidate:`Respuesta {{letter}}`,voteFirst:`La primera es mejor`,voteSecond:`La segunda es mejor`,voteTie:`Empate`,voteBothBad:`Ambas malas`,model:`Modelo`,rating:`Puntuación`,record:`Historial`,votes:`Votos`,noVotes:`Aún no hay votos de arena: inicia un duelo para construir la clasificación.`,newSet:`Nuevo conjunto de evaluación`,setName:`Nombre del conjunto`,setPrompts:`Un prompt por línea…`,saveSet:`Guardar conjunto`,yourSets:`Tus conjuntos`,noSets:`Aún no hay conjuntos de evaluación.`,itemCount:`{{total}} prompts`,run:`Ejecutar`,deleteSet:`Eliminar conjunto`,cancelRun:`Cancelar ejecución`,exportRun:`Exportar ejecución`,status:{queued:`En cola`,running:`En curso`,completed:`Completada`,failed:`Fallida`,cancelled:`Cancelada`},noFeedback:`Aún no hay comentarios: califica respuestas para construir tu conjunto de datos.`}};export{e as default};