libre-webui 0.25.0 → 0.27.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 (588) hide show
  1. package/README.md +32 -22
  2. package/backend/dist/index.d.ts.map +1 -1
  3. package/backend/dist/index.js +33 -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/postgresMfaPushRecoveryMigration.d.ts +9 -0
  44. package/backend/dist/persistence/postgresMfaPushRecoveryMigration.d.ts.map +1 -0
  45. package/backend/dist/persistence/postgresMfaPushRecoveryMigration.js +107 -0
  46. package/backend/dist/persistence/postgresMfaPushRecoveryMigration.js.map +1 -0
  47. package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
  48. package/backend/dist/persistence/postgresMigrationRegistry.js +12 -0
  49. package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
  50. package/backend/dist/persistence/postgresNotesV2Migration.d.ts +4 -0
  51. package/backend/dist/persistence/postgresNotesV2Migration.d.ts.map +1 -0
  52. package/backend/dist/persistence/postgresNotesV2Migration.js +57 -0
  53. package/backend/dist/persistence/postgresNotesV2Migration.js.map +1 -0
  54. package/backend/dist/persistence/postgresResourceRepositories.d.ts.map +1 -1
  55. package/backend/dist/persistence/postgresResourceRepositories.js +1930 -133
  56. package/backend/dist/persistence/postgresResourceRepositories.js.map +1 -1
  57. package/backend/dist/persistence/postgresSecurityRepositories.d.ts.map +1 -1
  58. package/backend/dist/persistence/postgresSecurityRepositories.js +150 -0
  59. package/backend/dist/persistence/postgresSecurityRepositories.js.map +1 -1
  60. package/backend/dist/persistence/postgresSkillFilesMigration.d.ts +9 -0
  61. package/backend/dist/persistence/postgresSkillFilesMigration.d.ts.map +1 -0
  62. package/backend/dist/persistence/postgresSkillFilesMigration.js +50 -0
  63. package/backend/dist/persistence/postgresSkillFilesMigration.js.map +1 -0
  64. package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts +10 -0
  65. package/backend/dist/persistence/postgresTeamCollaborationMigration.d.ts.map +1 -0
  66. package/backend/dist/persistence/postgresTeamCollaborationMigration.js +161 -0
  67. package/backend/dist/persistence/postgresTeamCollaborationMigration.js.map +1 -0
  68. package/backend/dist/persistence/resourceTypes.d.ts +600 -3
  69. package/backend/dist/persistence/resourceTypes.d.ts.map +1 -1
  70. package/backend/dist/persistence/resourceTypes.js.map +1 -1
  71. package/backend/dist/persistence/securityTypes.d.ts +59 -0
  72. package/backend/dist/persistence/securityTypes.d.ts.map +1 -1
  73. package/backend/dist/persistence/sqliteExtensionRepositories.d.ts.map +1 -1
  74. package/backend/dist/persistence/sqliteExtensionRepositories.js +26 -4
  75. package/backend/dist/persistence/sqliteExtensionRepositories.js.map +1 -1
  76. package/backend/dist/persistence/sqliteMigrations.d.ts +10 -0
  77. package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
  78. package/backend/dist/persistence/sqliteMigrations.js +1492 -131
  79. package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
  80. package/backend/dist/persistence/sqliteResourceRepositories.d.ts.map +1 -1
  81. package/backend/dist/persistence/sqliteResourceRepositories.js +1657 -134
  82. package/backend/dist/persistence/sqliteResourceRepositories.js.map +1 -1
  83. package/backend/dist/persistence/sqliteSecurityRepositories.d.ts.map +1 -1
  84. package/backend/dist/persistence/sqliteSecurityRepositories.js +134 -0
  85. package/backend/dist/persistence/sqliteSecurityRepositories.js.map +1 -1
  86. package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
  87. package/backend/dist/persistence/sqliteToPostgresMigration.js +302 -3
  88. package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
  89. package/backend/dist/platform/jobs/domainJobContracts.d.ts +10 -0
  90. package/backend/dist/platform/jobs/domainJobContracts.d.ts.map +1 -1
  91. package/backend/dist/platform/jobs/domainJobContracts.js +10 -0
  92. package/backend/dist/platform/jobs/domainJobContracts.js.map +1 -1
  93. package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -1
  94. package/backend/dist/platform/jobs/domainJobHandlers.js +374 -4
  95. package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
  96. package/backend/dist/platform/jobs/embeddedDurableJobWorker.d.ts.map +1 -1
  97. package/backend/dist/platform/jobs/embeddedDurableJobWorker.js +4 -2
  98. package/backend/dist/platform/jobs/embeddedDurableJobWorker.js.map +1 -1
  99. package/backend/dist/platform/jobs/postgresDurableJobWorker.d.ts.map +1 -1
  100. package/backend/dist/platform/jobs/postgresDurableJobWorker.js +4 -2
  101. package/backend/dist/platform/jobs/postgresDurableJobWorker.js.map +1 -1
  102. package/backend/dist/platform/storage/pgVectorStore.d.ts +2 -1
  103. package/backend/dist/platform/storage/pgVectorStore.d.ts.map +1 -1
  104. package/backend/dist/platform/storage/pgVectorStore.js +51 -0
  105. package/backend/dist/platform/storage/pgVectorStore.js.map +1 -1
  106. package/backend/dist/platform/storage/platformDomainRepositories.d.ts +8 -2
  107. package/backend/dist/platform/storage/platformDomainRepositories.d.ts.map +1 -1
  108. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.d.ts.map +1 -1
  109. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js +25 -4
  110. package/backend/dist/platform/storage/postgresPlatformDomainRepositories.js.map +1 -1
  111. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts +2 -1
  112. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.d.ts.map +1 -1
  113. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js +35 -0
  114. package/backend/dist/platform/storage/sqliteEncryptedVectorStore.js.map +1 -1
  115. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.d.ts.map +1 -1
  116. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js +26 -3
  117. package/backend/dist/platform/storage/sqlitePlatformDomainRepositories.js.map +1 -1
  118. package/backend/dist/platform/storage/vectorStore.d.ts +14 -0
  119. package/backend/dist/platform/storage/vectorStore.d.ts.map +1 -1
  120. package/backend/dist/platform/storage/vectorStore.js.map +1 -1
  121. package/backend/dist/routes/access.d.ts.map +1 -1
  122. package/backend/dist/routes/access.js +84 -3
  123. package/backend/dist/routes/access.js.map +1 -1
  124. package/backend/dist/routes/auth.d.ts.map +1 -1
  125. package/backend/dist/routes/auth.js +419 -1
  126. package/backend/dist/routes/auth.js.map +1 -1
  127. package/backend/dist/routes/calendar.d.ts.map +1 -1
  128. package/backend/dist/routes/calendar.js +125 -22
  129. package/backend/dist/routes/calendar.js.map +1 -1
  130. package/backend/dist/routes/channels.d.ts +3 -0
  131. package/backend/dist/routes/channels.d.ts.map +1 -0
  132. package/backend/dist/routes/channels.js +447 -0
  133. package/backend/dist/routes/channels.js.map +1 -0
  134. package/backend/dist/routes/chat.d.ts.map +1 -1
  135. package/backend/dist/routes/chat.js +195 -7
  136. package/backend/dist/routes/chat.js.map +1 -1
  137. package/backend/dist/routes/costs.d.ts +3 -0
  138. package/backend/dist/routes/costs.d.ts.map +1 -0
  139. package/backend/dist/routes/costs.js +191 -0
  140. package/backend/dist/routes/costs.js.map +1 -0
  141. package/backend/dist/routes/documents.d.ts.map +1 -1
  142. package/backend/dist/routes/documents.js +68 -21
  143. package/backend/dist/routes/documents.js.map +1 -1
  144. package/backend/dist/routes/evaluations.d.ts +3 -0
  145. package/backend/dist/routes/evaluations.d.ts.map +1 -0
  146. package/backend/dist/routes/evaluations.js +352 -0
  147. package/backend/dist/routes/evaluations.js.map +1 -0
  148. package/backend/dist/routes/imageGen.d.ts.map +1 -1
  149. package/backend/dist/routes/imageGen.js +2 -1
  150. package/backend/dist/routes/imageGen.js.map +1 -1
  151. package/backend/dist/routes/media.d.ts.map +1 -1
  152. package/backend/dist/routes/media.js +228 -7
  153. package/backend/dist/routes/media.js.map +1 -1
  154. package/backend/dist/routes/notes.d.ts.map +1 -1
  155. package/backend/dist/routes/notes.js +149 -36
  156. package/backend/dist/routes/notes.js.map +1 -1
  157. package/backend/dist/routes/notifications.d.ts +3 -0
  158. package/backend/dist/routes/notifications.d.ts.map +1 -0
  159. package/backend/dist/routes/notifications.js +213 -0
  160. package/backend/dist/routes/notifications.js.map +1 -0
  161. package/backend/dist/routes/openaiCompat.d.ts +3 -0
  162. package/backend/dist/routes/openaiCompat.d.ts.map +1 -0
  163. package/backend/dist/routes/openaiCompat.js +314 -0
  164. package/backend/dist/routes/openaiCompat.js.map +1 -0
  165. package/backend/dist/routes/personas.js +1 -1
  166. package/backend/dist/routes/personas.js.map +1 -1
  167. package/backend/dist/routes/prompts.d.ts +3 -0
  168. package/backend/dist/routes/prompts.d.ts.map +1 -0
  169. package/backend/dist/routes/prompts.js +173 -0
  170. package/backend/dist/routes/prompts.js.map +1 -0
  171. package/backend/dist/routes/push.d.ts +3 -0
  172. package/backend/dist/routes/push.d.ts.map +1 -0
  173. package/backend/dist/routes/push.js +105 -0
  174. package/backend/dist/routes/push.js.map +1 -0
  175. package/backend/dist/routes/recovery.d.ts +3 -0
  176. package/backend/dist/routes/recovery.d.ts.map +1 -0
  177. package/backend/dist/routes/recovery.js +83 -0
  178. package/backend/dist/routes/recovery.js.map +1 -0
  179. package/backend/dist/routes/search.d.ts.map +1 -1
  180. package/backend/dist/routes/search.js +29 -1
  181. package/backend/dist/routes/search.js.map +1 -1
  182. package/backend/dist/routes/skills.d.ts +3 -0
  183. package/backend/dist/routes/skills.d.ts.map +1 -0
  184. package/backend/dist/routes/skills.js +246 -0
  185. package/backend/dist/routes/skills.js.map +1 -0
  186. package/backend/dist/routes/stt.d.ts.map +1 -1
  187. package/backend/dist/routes/stt.js +2 -1
  188. package/backend/dist/routes/stt.js.map +1 -1
  189. package/backend/dist/routes/tools.d.ts +3 -0
  190. package/backend/dist/routes/tools.d.ts.map +1 -0
  191. package/backend/dist/routes/tools.js +359 -0
  192. package/backend/dist/routes/tools.js.map +1 -0
  193. package/backend/dist/routes/tts.d.ts.map +1 -1
  194. package/backend/dist/routes/tts.js +63 -8
  195. package/backend/dist/routes/tts.js.map +1 -1
  196. package/backend/dist/routes/users.d.ts.map +1 -1
  197. package/backend/dist/routes/users.js +35 -0
  198. package/backend/dist/routes/users.js.map +1 -1
  199. package/backend/dist/routes/voiceAccess.d.ts +3 -0
  200. package/backend/dist/routes/voiceAccess.d.ts.map +1 -0
  201. package/backend/dist/routes/voiceAccess.js +102 -0
  202. package/backend/dist/routes/voiceAccess.js.map +1 -0
  203. package/backend/dist/services/apiTokenService.d.ts +2 -2
  204. package/backend/dist/services/apiTokenService.d.ts.map +1 -1
  205. package/backend/dist/services/apiTokenService.js +7 -0
  206. package/backend/dist/services/apiTokenService.js.map +1 -1
  207. package/backend/dist/services/authService.d.ts +6 -0
  208. package/backend/dist/services/authService.d.ts.map +1 -1
  209. package/backend/dist/services/authService.js +9 -0
  210. package/backend/dist/services/authService.js.map +1 -1
  211. package/backend/dist/services/authorizationService.d.ts +8 -4
  212. package/backend/dist/services/authorizationService.d.ts.map +1 -1
  213. package/backend/dist/services/authorizationService.js +31 -1
  214. package/backend/dist/services/authorizationService.js.map +1 -1
  215. package/backend/dist/services/automationSchedulerService.d.ts.map +1 -1
  216. package/backend/dist/services/automationSchedulerService.js +40 -3
  217. package/backend/dist/services/automationSchedulerService.js.map +1 -1
  218. package/backend/dist/services/automationService.d.ts +4 -1
  219. package/backend/dist/services/automationService.d.ts.map +1 -1
  220. package/backend/dist/services/automationService.js +25 -2
  221. package/backend/dist/services/automationService.js.map +1 -1
  222. package/backend/dist/services/builtinToolsService.d.ts +20 -0
  223. package/backend/dist/services/builtinToolsService.d.ts.map +1 -0
  224. package/backend/dist/services/builtinToolsService.js +661 -0
  225. package/backend/dist/services/builtinToolsService.js.map +1 -0
  226. package/backend/dist/services/calendarService.d.ts +74 -0
  227. package/backend/dist/services/calendarService.d.ts.map +1 -0
  228. package/backend/dist/services/calendarService.js +339 -0
  229. package/backend/dist/services/calendarService.js.map +1 -0
  230. package/backend/dist/services/channelService.d.ts +195 -0
  231. package/backend/dist/services/channelService.d.ts.map +1 -0
  232. package/backend/dist/services/channelService.js +1057 -0
  233. package/backend/dist/services/channelService.js.map +1 -0
  234. package/backend/dist/services/chatRequestService.d.ts.map +1 -1
  235. package/backend/dist/services/chatRequestService.js +29 -1
  236. package/backend/dist/services/chatRequestService.js.map +1 -1
  237. package/backend/dist/services/chatService.d.ts +61 -1
  238. package/backend/dist/services/chatService.d.ts.map +1 -1
  239. package/backend/dist/services/chatService.js +218 -1
  240. package/backend/dist/services/chatService.js.map +1 -1
  241. package/backend/dist/services/chatToolRuntimeService.d.ts +55 -0
  242. package/backend/dist/services/chatToolRuntimeService.d.ts.map +1 -0
  243. package/backend/dist/services/chatToolRuntimeService.js +389 -0
  244. package/backend/dist/services/chatToolRuntimeService.js.map +1 -0
  245. package/backend/dist/services/costGovernanceService.d.ts +102 -0
  246. package/backend/dist/services/costGovernanceService.d.ts.map +1 -0
  247. package/backend/dist/services/costGovernanceService.js +463 -0
  248. package/backend/dist/services/costGovernanceService.js.map +1 -0
  249. package/backend/dist/services/dataArchiveService.d.ts +6 -0
  250. package/backend/dist/services/dataArchiveService.d.ts.map +1 -1
  251. package/backend/dist/services/dataArchiveService.js +26 -4
  252. package/backend/dist/services/dataArchiveService.js.map +1 -1
  253. package/backend/dist/services/documentMediaExtractionService.d.ts +40 -0
  254. package/backend/dist/services/documentMediaExtractionService.d.ts.map +1 -0
  255. package/backend/dist/services/documentMediaExtractionService.js +157 -0
  256. package/backend/dist/services/documentMediaExtractionService.js.map +1 -0
  257. package/backend/dist/services/documentService.d.ts +64 -1
  258. package/backend/dist/services/documentService.d.ts.map +1 -1
  259. package/backend/dist/services/documentService.js +342 -83
  260. package/backend/dist/services/documentService.js.map +1 -1
  261. package/backend/dist/services/durableChatGenerationService.d.ts +9 -0
  262. package/backend/dist/services/durableChatGenerationService.d.ts.map +1 -1
  263. package/backend/dist/services/durableChatGenerationService.js +152 -11
  264. package/backend/dist/services/durableChatGenerationService.js.map +1 -1
  265. package/backend/dist/services/encryptionService.d.ts +6 -0
  266. package/backend/dist/services/encryptionService.d.ts.map +1 -1
  267. package/backend/dist/services/encryptionService.js +12 -0
  268. package/backend/dist/services/encryptionService.js.map +1 -1
  269. package/backend/dist/services/evaluationService.d.ts +111 -0
  270. package/backend/dist/services/evaluationService.d.ts.map +1 -0
  271. package/backend/dist/services/evaluationService.js +403 -0
  272. package/backend/dist/services/evaluationService.js.map +1 -0
  273. package/backend/dist/services/galleryService.d.ts +6 -0
  274. package/backend/dist/services/galleryService.d.ts.map +1 -1
  275. package/backend/dist/services/galleryService.js +26 -0
  276. package/backend/dist/services/galleryService.js.map +1 -1
  277. package/backend/dist/services/mcpClientService.d.ts +29 -0
  278. package/backend/dist/services/mcpClientService.d.ts.map +1 -0
  279. package/backend/dist/services/mcpClientService.js +189 -0
  280. package/backend/dist/services/mcpClientService.js.map +1 -0
  281. package/backend/dist/services/mfaService.d.ts +64 -0
  282. package/backend/dist/services/mfaService.d.ts.map +1 -0
  283. package/backend/dist/services/mfaService.js +263 -0
  284. package/backend/dist/services/mfaService.js.map +1 -0
  285. package/backend/dist/services/noteService.d.ts +71 -0
  286. package/backend/dist/services/noteService.d.ts.map +1 -0
  287. package/backend/dist/services/noteService.js +397 -0
  288. package/backend/dist/services/noteService.js.map +1 -0
  289. package/backend/dist/services/notificationService.d.ts +60 -0
  290. package/backend/dist/services/notificationService.d.ts.map +1 -0
  291. package/backend/dist/services/notificationService.js +340 -0
  292. package/backend/dist/services/notificationService.js.map +1 -0
  293. package/backend/dist/services/openApiToolService.d.ts +38 -0
  294. package/backend/dist/services/openApiToolService.d.ts.map +1 -0
  295. package/backend/dist/services/openApiToolService.js +254 -0
  296. package/backend/dist/services/openApiToolService.js.map +1 -0
  297. package/backend/dist/services/personaService.d.ts +18 -2
  298. package/backend/dist/services/personaService.d.ts.map +1 -1
  299. package/backend/dist/services/personaService.js +113 -4
  300. package/backend/dist/services/personaService.js.map +1 -1
  301. package/backend/dist/services/pluginImageGenerationService.d.ts +19 -0
  302. package/backend/dist/services/pluginImageGenerationService.d.ts.map +1 -1
  303. package/backend/dist/services/pluginImageGenerationService.js +121 -0
  304. package/backend/dist/services/pluginImageGenerationService.js.map +1 -1
  305. package/backend/dist/services/pluginService.d.ts +7 -0
  306. package/backend/dist/services/pluginService.d.ts.map +1 -1
  307. package/backend/dist/services/pluginService.js +8 -2
  308. package/backend/dist/services/pluginService.js.map +1 -1
  309. package/backend/dist/services/preferencesService.d.ts +1 -1
  310. package/backend/dist/services/preferencesService.d.ts.map +1 -1
  311. package/backend/dist/services/preferencesService.js +1 -0
  312. package/backend/dist/services/preferencesService.js.map +1 -1
  313. package/backend/dist/services/promptService.d.ts +74 -0
  314. package/backend/dist/services/promptService.d.ts.map +1 -0
  315. package/backend/dist/services/promptService.js +513 -0
  316. package/backend/dist/services/promptService.js.map +1 -0
  317. package/backend/dist/services/recoveryDrillService.d.ts +57 -0
  318. package/backend/dist/services/recoveryDrillService.d.ts.map +1 -0
  319. package/backend/dist/services/recoveryDrillService.js +363 -0
  320. package/backend/dist/services/recoveryDrillService.js.map +1 -0
  321. package/backend/dist/services/resourceGrantService.d.ts.map +1 -1
  322. package/backend/dist/services/resourceGrantService.js +62 -17
  323. package/backend/dist/services/resourceGrantService.js.map +1 -1
  324. package/backend/dist/services/searchService.d.ts +29 -0
  325. package/backend/dist/services/searchService.d.ts.map +1 -0
  326. package/backend/dist/services/searchService.js +0 -0
  327. package/backend/dist/services/searchService.js.map +1 -0
  328. package/backend/dist/services/securityAuditService.d.ts.map +1 -1
  329. package/backend/dist/services/securityAuditService.js +2 -1
  330. package/backend/dist/services/securityAuditService.js.map +1 -1
  331. package/backend/dist/services/sharedResourceAccess.d.ts +25 -0
  332. package/backend/dist/services/sharedResourceAccess.d.ts.map +1 -0
  333. package/backend/dist/services/sharedResourceAccess.js +59 -0
  334. package/backend/dist/services/sharedResourceAccess.js.map +1 -0
  335. package/backend/dist/services/skillService.d.ts +137 -0
  336. package/backend/dist/services/skillService.d.ts.map +1 -0
  337. package/backend/dist/services/skillService.js +852 -0
  338. package/backend/dist/services/skillService.js.map +1 -0
  339. package/backend/dist/services/toolAccessService.d.ts +9 -0
  340. package/backend/dist/services/toolAccessService.d.ts.map +1 -0
  341. package/backend/dist/services/toolAccessService.js +60 -0
  342. package/backend/dist/services/toolAccessService.js.map +1 -0
  343. package/backend/dist/services/toolApprovalService.d.ts +34 -0
  344. package/backend/dist/services/toolApprovalService.d.ts.map +1 -0
  345. package/backend/dist/services/toolApprovalService.js +188 -0
  346. package/backend/dist/services/toolApprovalService.js.map +1 -0
  347. package/backend/dist/services/toolGatewayService.d.ts +53 -0
  348. package/backend/dist/services/toolGatewayService.d.ts.map +1 -0
  349. package/backend/dist/services/toolGatewayService.js +249 -0
  350. package/backend/dist/services/toolGatewayService.js.map +1 -0
  351. package/backend/dist/services/toolServerService.d.ts +57 -0
  352. package/backend/dist/services/toolServerService.d.ts.map +1 -0
  353. package/backend/dist/services/toolServerService.js +521 -0
  354. package/backend/dist/services/toolServerService.js.map +1 -0
  355. package/backend/dist/services/voiceAccessService.d.ts +10 -0
  356. package/backend/dist/services/voiceAccessService.d.ts.map +1 -0
  357. package/backend/dist/services/voiceAccessService.js +74 -0
  358. package/backend/dist/services/voiceAccessService.js.map +1 -0
  359. package/backend/dist/services/voiceProfileService.d.ts +20 -0
  360. package/backend/dist/services/voiceProfileService.d.ts.map +1 -1
  361. package/backend/dist/services/voiceProfileService.js +60 -0
  362. package/backend/dist/services/voiceProfileService.js.map +1 -1
  363. package/backend/dist/services/webPushService.d.ts +71 -0
  364. package/backend/dist/services/webPushService.d.ts.map +1 -0
  365. package/backend/dist/services/webPushService.js +328 -0
  366. package/backend/dist/services/webPushService.js.map +1 -0
  367. package/backend/dist/services/webauthnService.d.ts +58 -0
  368. package/backend/dist/services/webauthnService.d.ts.map +1 -0
  369. package/backend/dist/services/webauthnService.js +300 -0
  370. package/backend/dist/services/webauthnService.js.map +1 -0
  371. package/backend/dist/storage.d.ts +28 -1
  372. package/backend/dist/storage.d.ts.map +1 -1
  373. package/backend/dist/storage.js +100 -1
  374. package/backend/dist/storage.js.map +1 -1
  375. package/backend/dist/storageMappers.d.ts +2 -2
  376. package/backend/dist/storageMappers.d.ts.map +1 -1
  377. package/backend/dist/storageMappers.js.map +1 -1
  378. package/backend/dist/types/index.d.ts +199 -3
  379. package/backend/dist/types/index.d.ts.map +1 -1
  380. package/backend/dist/types/index.js.map +1 -1
  381. package/backend/dist/types/tools.d.ts +137 -0
  382. package/backend/dist/types/tools.d.ts.map +1 -0
  383. package/backend/dist/types/tools.js +25 -0
  384. package/backend/dist/types/tools.js.map +1 -0
  385. package/backend/dist/utils/chatDocumentContext.d.ts +26 -1
  386. package/backend/dist/utils/chatDocumentContext.d.ts.map +1 -1
  387. package/backend/dist/utils/chatDocumentContext.js +87 -18
  388. package/backend/dist/utils/chatDocumentContext.js.map +1 -1
  389. package/backend/dist/utils/documentExtraction.d.ts +97 -0
  390. package/backend/dist/utils/documentExtraction.d.ts.map +1 -0
  391. package/backend/dist/utils/documentExtraction.js +651 -0
  392. package/backend/dist/utils/documentExtraction.js.map +1 -0
  393. package/backend/dist/utils/hybridRetrieval.d.ts +34 -0
  394. package/backend/dist/utils/hybridRetrieval.d.ts.map +1 -0
  395. package/backend/dist/utils/hybridRetrieval.js +119 -0
  396. package/backend/dist/utils/hybridRetrieval.js.map +1 -0
  397. package/backend/dist/utils/icsCalendar.d.ts +27 -0
  398. package/backend/dist/utils/icsCalendar.d.ts.map +1 -0
  399. package/backend/dist/utils/icsCalendar.js +313 -0
  400. package/backend/dist/utils/icsCalendar.js.map +1 -0
  401. package/backend/dist/utils/imageEditUpload.d.ts +29 -0
  402. package/backend/dist/utils/imageEditUpload.d.ts.map +1 -0
  403. package/backend/dist/utils/imageEditUpload.js +82 -0
  404. package/backend/dist/utils/imageEditUpload.js.map +1 -0
  405. package/backend/dist/utils/logRedaction.d.ts +2 -0
  406. package/backend/dist/utils/logRedaction.d.ts.map +1 -0
  407. package/backend/dist/utils/logRedaction.js +66 -0
  408. package/backend/dist/utils/logRedaction.js.map +1 -0
  409. package/backend/dist/utils/logger.d.ts +3 -0
  410. package/backend/dist/utils/logger.d.ts.map +1 -1
  411. package/backend/dist/utils/logger.js +63 -20
  412. package/backend/dist/utils/logger.js.map +1 -1
  413. package/backend/dist/utils/pluginChatAdapter.d.ts +5 -1
  414. package/backend/dist/utils/pluginChatAdapter.d.ts.map +1 -1
  415. package/backend/dist/utils/pluginChatAdapter.js +83 -0
  416. package/backend/dist/utils/pluginChatAdapter.js.map +1 -1
  417. package/backend/dist/utils/pluginDefinitionTrust.js +1 -1
  418. package/backend/dist/utils/resourceLimits.d.ts +61 -2
  419. package/backend/dist/utils/resourceLimits.d.ts.map +1 -1
  420. package/backend/dist/utils/resourceLimits.js +59 -0
  421. package/backend/dist/utils/resourceLimits.js.map +1 -1
  422. package/backend/dist/utils/toolEgress.d.ts +23 -0
  423. package/backend/dist/utils/toolEgress.d.ts.map +1 -0
  424. package/backend/dist/utils/toolEgress.js +169 -0
  425. package/backend/dist/utils/toolEgress.js.map +1 -0
  426. package/backend/dist/utils/totp.d.ts +19 -0
  427. package/backend/dist/utils/totp.d.ts.map +1 -0
  428. package/backend/dist/utils/totp.js +117 -0
  429. package/backend/dist/utils/totp.js.map +1 -0
  430. package/backend/dist/utils/webauthn.d.ts +43 -0
  431. package/backend/dist/utils/webauthn.d.ts.map +1 -0
  432. package/backend/dist/utils/webauthn.js +294 -0
  433. package/backend/dist/utils/webauthn.js.map +1 -0
  434. package/backend/dist/utils/websocketMessages.d.ts +6 -0
  435. package/backend/dist/utils/websocketMessages.d.ts.map +1 -1
  436. package/backend/dist/utils/websocketMessages.js +8 -0
  437. package/backend/dist/utils/websocketMessages.js.map +1 -1
  438. package/backend/dist/utils/zipArchive.d.ts +32 -0
  439. package/backend/dist/utils/zipArchive.d.ts.map +1 -0
  440. package/backend/dist/utils/zipArchive.js +171 -0
  441. package/backend/dist/utils/zipArchive.js.map +1 -0
  442. package/backend/dist/websocketServer.d.ts.map +1 -1
  443. package/backend/dist/websocketServer.js +142 -35
  444. package/backend/dist/websocketServer.js.map +1 -1
  445. package/backend/package.json +1 -1
  446. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  447. package/frontend/dist/assets/index-DBAf_VaS.js +47 -0
  448. package/frontend/dist/assets/index-kn_Axjts.css +1 -0
  449. package/frontend/dist/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
  450. package/frontend/dist/fonts/jetbrains-mono-latin-700-normal.woff2 +0 -0
  451. package/frontend/dist/fonts/jetbrains-mono.css +24 -0
  452. package/frontend/dist/index.html +27 -20
  453. package/frontend/dist/js/ArtifactContainer-C9zNtCay.js +1 -0
  454. package/frontend/dist/js/{ArtifactDemoPage-BeNs3gHp.js → ArtifactDemoPage-C-EBFBCt.js} +1 -1
  455. package/frontend/dist/js/ArtifactSandboxFrame-CTA1j_d1.js +111 -0
  456. package/frontend/dist/js/ArtifactSlideOutPanel-BOENbOiv.js +1 -0
  457. package/frontend/dist/js/AutomationsPage-C58MQ4te.js +1 -0
  458. package/frontend/dist/js/{Button-BPf_pOxH.js → Button-C0r3J9G_.js} +1 -1
  459. package/frontend/dist/js/CalendarPage-BcdAZ292.js +1 -0
  460. package/frontend/dist/js/ChannelsPage-DPr9Yajs.js +1 -0
  461. package/frontend/dist/js/ChatPage-DsbB748s.js +14 -0
  462. package/frontend/dist/js/EvaluationsPage-FWIJu2fI.js +2 -0
  463. package/frontend/dist/js/FirstTimeSetup-Cy-w6xko.js +1 -0
  464. package/frontend/dist/js/GalleryPage-DDAtxM-x.js +1 -0
  465. package/frontend/dist/js/HomePage-DLKwmE7n.js +1 -0
  466. package/frontend/dist/js/LibreClawPage-vKOj-9w9.js +1 -0
  467. package/frontend/dist/js/{ModelManagerModals-DcLGYN3l.js → ModelManagerModals-BY5TK38_.js} +1 -1
  468. package/frontend/dist/js/ModelSelector-CoCS6MZ9.js +1 -0
  469. package/frontend/dist/js/NotesPage-BElIpXgA.js +3 -0
  470. package/frontend/dist/js/OptimizedSyntaxHighlighter-xgyE3dRA.js +1 -0
  471. package/frontend/dist/js/PersonasPage-P40jVbfU.js +13 -0
  472. package/frontend/dist/js/PluginUsagePage-CKUEPCJN.js +1 -0
  473. package/frontend/dist/js/RichMessageContent-Bm2WaEGi.js +3 -0
  474. package/frontend/dist/js/SettingsModal-DxSGzx9A.js +19 -0
  475. package/frontend/dist/js/{SettingsToggle-woG_WebF.js → SettingsToggle-BIVyfGjl.js} +1 -1
  476. package/frontend/dist/js/SystemPage-BT07dTMT.js +1 -0
  477. package/frontend/dist/js/UserManagementPage-B9Vz5cm3.js +1 -0
  478. package/frontend/dist/js/WorkPage-qoN_e_jK.js +6 -0
  479. package/frontend/dist/js/api-D7Ff5M2Q.js +14 -0
  480. package/frontend/dist/js/appStore-DmV5wqDz.js +2 -0
  481. package/frontend/dist/js/ar-YHHTVP8f.js +2 -0
  482. package/frontend/dist/js/artifactHtml-DDmfpcB0.js +41 -0
  483. package/frontend/dist/js/{authStore-DbMdvNgJ.js → authStore-BYW8-kP6.js} +3 -3
  484. package/frontend/dist/js/{babel-BsYoxD-7.js → babel-DSqqk5kt.js} +1 -1
  485. package/frontend/dist/js/bn-C8VTxBVl.js +2 -0
  486. package/frontend/dist/js/chatStore-D-NTlArO.js +3 -0
  487. package/frontend/dist/js/{config-DSOYQ9a3.js → config-BqZ5304Q.js} +1 -1
  488. package/frontend/dist/js/cs-CCngB5fC.js +2 -0
  489. package/frontend/dist/js/da-CM2PP2ma.js +2 -0
  490. package/frontend/dist/js/de-BqVkD-dw.js +2 -0
  491. package/frontend/dist/js/es-BtWsWBjZ.js +2 -0
  492. package/frontend/dist/js/{estree-BcnBcOAx.js → estree-DPkpBuOU.js} +3 -3
  493. package/frontend/dist/js/evaluationsApi-Dnf2dTd-.js +1 -0
  494. package/frontend/dist/js/fr-C68w9abT.js +2 -0
  495. package/frontend/dist/js/hi-DtBlcyXZ.js +2 -0
  496. package/frontend/dist/js/{html-DkY55Jys.js → html-BpGUXG8E.js} +2 -2
  497. package/frontend/dist/js/id-BWzIu8tn.js +2 -0
  498. package/frontend/dist/js/is-yeFwu4dJ.js +2 -0
  499. package/frontend/dist/js/it-AxEMG8Jg.js +2 -0
  500. package/frontend/dist/js/ja-B-VyokB8.js +2 -0
  501. package/frontend/dist/js/ko-CvwzYr9k.js +2 -0
  502. package/frontend/dist/js/{markdown-IZSI9DXw.js → markdown-DCBRWJSK.js} +3 -3
  503. package/frontend/dist/js/markdown-core-BK7WVOb7.js +32 -0
  504. package/frontend/dist/js/{markdown-math-DK846gXU.js → markdown-math-e1ByS3KY.js} +5 -5
  505. package/frontend/dist/js/messageCodeStyles-BQwf7sSz.js +2 -0
  506. package/frontend/dist/js/ms-BhEwb4b7.js +2 -0
  507. package/frontend/dist/js/nl-Dq-QRx1L.js +2 -0
  508. package/frontend/dist/js/pl-BNEy8mQm.js +2 -0
  509. package/frontend/dist/js/{postcss-BJ0okz7n.js → postcss-Bg15EcFE.js} +1 -1
  510. package/frontend/dist/js/pt-_3Jl3FdY.js +2 -0
  511. package/frontend/dist/js/{react-vendor-C5yShNlM.js → react-vendor-BG_HPV6X.js} +1 -1
  512. package/frontend/dist/js/router-vendor-CbexJIsv.js +1 -0
  513. package/frontend/dist/js/ru-IhQiJ8ta.js +2 -0
  514. package/frontend/dist/js/{standalone-Csw3jfJ_.js → standalone-BFrK0R2A.js} +3 -3
  515. package/frontend/dist/js/sv-DWunXUNz.js +2 -0
  516. package/frontend/dist/js/{syntax-highlight-3EEX6CGL.js → syntax-highlight-P2zo9o06.js} +4 -4
  517. package/frontend/dist/js/th-DVnW2yyh.js +2 -0
  518. package/frontend/dist/js/tr-Do8CFmhR.js +2 -0
  519. package/frontend/dist/js/{typescript-CnF4UVx7.js → typescript-DYVyvmm_.js} +1 -1
  520. package/frontend/dist/js/ui-db9meqAB.js +2 -0
  521. package/frontend/dist/js/ui-vendor-C0DZ8-Cm.js +177 -0
  522. package/frontend/dist/js/uk-BNPKIZga.js +2 -0
  523. package/frontend/dist/js/{useTranslation-Bho4HCyg.js → useTranslation-5b5UhAc9.js} +1 -1
  524. package/frontend/dist/js/{utils-D9W1Lnkn.js → utils-BGrdX9ie.js} +1 -1
  525. package/frontend/dist/js/{utils-vendor-DWh39_3x.js → utils-vendor-9bQ62WeD.js} +1 -1
  526. package/frontend/dist/js/vi-CZMFo9je.js +2 -0
  527. package/frontend/dist/js/{workApi-C3uy9EDT.js → workApi-CcprMH_1.js} +3 -3
  528. package/frontend/dist/js/{yaml-DzT5hBSH.js → yaml-DUeWcOOH.js} +2 -2
  529. package/frontend/dist/js/zh-Pg0881v0.js +2 -0
  530. package/frontend/dist/manifest.webmanifest +32 -0
  531. package/frontend/dist/sw.js +125 -0
  532. package/package.json +2 -2
  533. package/plugins/openai.json +52 -9
  534. package/frontend/dist/assets/index-6o-Hc2wS.js +0 -41
  535. package/frontend/dist/assets/index-D-pM957b.css +0 -1
  536. package/frontend/dist/js/ArtifactContainer-CpUi6ekF.js +0 -1
  537. package/frontend/dist/js/ArtifactSandboxFrame-qsj_Y3LV.js +0 -151
  538. package/frontend/dist/js/ArtifactSlideOutPanel-CSFRluWA.js +0 -1
  539. package/frontend/dist/js/AutomationsPage-KUeWoZNv.js +0 -1
  540. package/frontend/dist/js/CalendarPage-D9I972w8.js +0 -1
  541. package/frontend/dist/js/ChatPage-CmBx4oAL.js +0 -16
  542. package/frontend/dist/js/FirstTimeSetup-Df0YJni3.js +0 -1
  543. package/frontend/dist/js/GalleryPage-bLCrdJN_.js +0 -1
  544. package/frontend/dist/js/HomePage-Uc6PEg-U.js +0 -1
  545. package/frontend/dist/js/LibreClawPage-CG63DHg1.js +0 -1
  546. package/frontend/dist/js/ModelSelector-yxJC64rM.js +0 -1
  547. package/frontend/dist/js/ModelsPage-1R_TxgmJ.js +0 -2
  548. package/frontend/dist/js/NotesPage-L65j5HoW.js +0 -1
  549. package/frontend/dist/js/OptimizedSyntaxHighlighter-Dz7D1LPB.js +0 -1
  550. package/frontend/dist/js/PersonasPage-CKeBpHIH.js +0 -13
  551. package/frontend/dist/js/PluginUsagePage-BX1SKMbW.js +0 -1
  552. package/frontend/dist/js/RichMessageContent-DiySVYGB.js +0 -3
  553. package/frontend/dist/js/SettingsModal-68SG1uZ2.js +0 -1
  554. package/frontend/dist/js/SystemPage-CytpZiQV.js +0 -1
  555. package/frontend/dist/js/UserManagementPage-BzJBvZiS.js +0 -1
  556. package/frontend/dist/js/WorkPage-C8gr0QJe.js +0 -6
  557. package/frontend/dist/js/api-BDtqBtqw.js +0 -14
  558. package/frontend/dist/js/appStore-0JnCUlEq.js +0 -2
  559. package/frontend/dist/js/ar-CSpi37Gr.js +0 -2
  560. package/frontend/dist/js/bn-CyH1BeDD.js +0 -2
  561. package/frontend/dist/js/chatStore-CHQ2uINS.js +0 -3
  562. package/frontend/dist/js/cs-Cv2NfRK5.js +0 -2
  563. package/frontend/dist/js/da-D6D6IvPK.js +0 -2
  564. package/frontend/dist/js/de-BNoJJTrT.js +0 -2
  565. package/frontend/dist/js/es-kzo9C7q_.js +0 -2
  566. package/frontend/dist/js/fr-CjHYvJRp.js +0 -2
  567. package/frontend/dist/js/hi-BU98AdCQ.js +0 -2
  568. package/frontend/dist/js/id-CpdedejX.js +0 -2
  569. package/frontend/dist/js/is-Cp5dDWBH.js +0 -2
  570. package/frontend/dist/js/it-CuH_cK4U.js +0 -2
  571. package/frontend/dist/js/ja-BWXXXiHn.js +0 -2
  572. package/frontend/dist/js/ko-DQgv2M1t.js +0 -2
  573. package/frontend/dist/js/markdown-core-BmPPZiuD.js +0 -31
  574. package/frontend/dist/js/messageCodeStyles-BFNR9Wv6.js +0 -2
  575. package/frontend/dist/js/ms-DCcRoIcX.js +0 -2
  576. package/frontend/dist/js/nl-CbKR1_EU.js +0 -2
  577. package/frontend/dist/js/pl-CRyJZccn.js +0 -2
  578. package/frontend/dist/js/pt-BXYmHFGH.js +0 -2
  579. package/frontend/dist/js/router-vendor-DGFGM3EP.js +0 -1
  580. package/frontend/dist/js/ru-M9SyZG4b.js +0 -2
  581. package/frontend/dist/js/sv-DJ486LTU.js +0 -2
  582. package/frontend/dist/js/th-Ch7gKtZv.js +0 -2
  583. package/frontend/dist/js/tr-ClehWhSC.js +0 -2
  584. package/frontend/dist/js/ui-CC-K19wO.js +0 -2
  585. package/frontend/dist/js/ui-vendor-B1UgO3vd.js +0 -177
  586. package/frontend/dist/js/uk-BqAd5zHF.js +0 -2
  587. package/frontend/dist/js/vi-D9gjlDVB.js +0 -2
  588. 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`},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`},mfa:{sectionTitle:`Zwei-Faktor-Authentifizierung`,sectionDescription:`Schütze dein Konto mit einer Authenticator-App und Passkeys.`,totpTitle:`Authenticator-App`,totpEnabledHint:`Aktiviert. Unbenutzte Wiederherstellungscodes: {{count}}`,totpDisabledHint:`Ergänze die Passwortanmeldung um einen Einmalcode als zweiten Schritt.`,enableButton:`Aktivieren`,disableButton:`Deaktivieren`,activateButton:`Bestätigen`,regenerateCodes:`Neue Wiederherstellungscodes`,confirmWithCode:`Mit einem Code aus deiner App oder einem Wiederherstellungscode bestätigen`,enabled:`Zwei-Faktor-Authentifizierung ist aktiviert.`,disabled:`Zwei-Faktor-Authentifizierung ist deaktiviert.`,invalidCode:`Dieser Code ist ungültig.`,enrollFailed:`Die Einrichtung konnte nicht gestartet werden.`,challengeExpired:`Die Anmeldeanfrage ist abgelaufen. Bitte melde dich erneut an.`,setupTitle:`Zwei-Faktor-Authentifizierung einrichten`,setupSubtitle:`Diese Instanz verlangt einen zweiten Anmeldeschritt. Füge das Geheimnis deiner Authenticator-App hinzu, um fortzufahren.`,verifyTitle:`Code eingeben`,verifyHint:`Gib den 6-stelligen Code aus deiner Authenticator-App oder einen Wiederherstellungscode ein.`,secretHint:`Füge dieses Geheimnis deiner Authenticator-App hinzu und bestätige mit dem aktuellen Code.`,openAuthenticator:`In Authenticator-App öffnen`,codeLabel:`6-stelliger Code`,codeOrRecoveryLabel:`Code oder Wiederherstellungscode`,codePlaceholder:`123456`,verifyButton:`Bestätigen`,backToSignIn:`Zurück zur Anmeldung`,recoveryCodesTitle:`Wiederherstellungscodes`,recoveryCodesHint:`Bewahre diese Codes sicher auf. Jeder Code meldet dich einmal an, falls du deinen Authenticator verlierst.`,recoveryCodesSaved:`Ich habe meine Wiederherstellungscodes gespeichert`,recoveryCodesRegenerated:`Neue Wiederherstellungscodes erstellt. Die alten funktionieren nicht mehr.`},passkeys:{sectionTitle:`Passkeys`,sectionDescription:`Melde dich ohne Passwort an – mit der Displaysperre deines Geräts oder einem Sicherheitsschlüssel.`,addButton:`Passkey hinzufügen`,empty:`Noch keine Passkeys.`,unnamed:`Passkey`,createdAt:`Hinzugefügt`,lastUsedAt:`Zuletzt verwendet`,removeButton:`Passkey entfernen`,registered:`Passkey hinzugefügt.`,registerFailed:`Der Passkey konnte nicht hinzugefügt werden.`,removed:`Passkey entfernt.`,removeFailed:`Der Passkey konnte nicht entfernt werden.`,signInButton:`Mit Passkey anmelden`,signInFailed:`Passkey-Anmeldung fehlgeschlagen.`}},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 (mindestens 12 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","notifications":"Benachrichtigungen"},"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","autoOpenArtifacts":"Artefakte automatisch öffnen","autoOpenArtifactsDescription":"Artefakt-Panel öffnen, wenn eine Antwort eines erstellt"},"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","extractionFailed":"Extraktion fehlgeschlagen","extractionQueued":"Wird extrahiert…"}},"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"},"notifications":{"title":"Benachrichtigungen","description":"Wie dieser Browser über Erwähnungen, Freigaben, Erinnerungen und fertige Aufgaben informiert wird.","pushTitle":"Browser-Benachrichtigungen","pushHint":"Systembenachrichtigungen von diesem Gerät anzeigen, auch wenn der Tab im Hintergrund ist.","enabled":"Browser-Benachrichtigungen sind auf diesem Gerät aktiviert.","disabled":"Browser-Benachrichtigungen sind auf diesem Gerät deaktiviert.","enableFailed":"Browser-Benachrichtigungen konnten nicht aktiviert werden.","permissionDenied":"Benachrichtigungen sind in den Browsereinstellungen für diese Seite blockiert.","unsupported":"Dieser Browser unterstützt keine Push-Benachrichtigungen.","workerMissing":"Push benötigt die installierte App. Lade die Produktions-App neu und versuche es erneut.","deviceNote":"Benachrichtigungen gelten pro Gerät. Das Abmelden der Sitzung entfernt auch ihre Push-Registrierung."}}`),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`}},mfaPolicy:{title:`Zwei-Faktor-Richtlinie`,description:`Ob Konten einen zweiten Anmeldeschritt abschließen müssen.`,requireAll:`Zwei-Faktor für alle Benutzer verlangen`,requireAllHint:`Benutzer ohne zweiten Faktor müssen ihn bei der nächsten Anmeldung einrichten.`,lockedByEnv:`Durch MFA_REQUIRED_MODE festgelegt.`,saved:`Zwei-Faktor-Richtlinie gespeichert.`,saveFailed:`Die Zwei-Faktor-Richtlinie konnte nicht gespeichert werden.`},mfaReset:`Zwei-Faktor zurücksetzen`,mfaResetConfirm:`Zweiten Faktor für {{name}} entfernen? Die Anmeldung mit Passwort und eine neue Einrichtung bleiben möglich.`,mfaResetSuccess:`Zwei-Faktor für {{name}} entfernt.`,mfaResetNothing:`{{name}} hatte keine Zwei-Faktor-Einrichtung.`,mfaResetFailed:`Das Zurücksetzen ist fehlgeschlagen.`},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.`},recovery:{title:`Wiederherstellungsübungen`,scheduleOn:`Läuft automatisch alle {{hours}} h — jede Übung sichert, stellt in einer isolierten Kopie wieder her und prüft das Ergebnis.`,scheduleOff:`Nicht geplant — setze RECOVERY_DRILL_INTERVAL_HOURS für automatische Übungen.`,teamUnsupported:`Übungen gelten für das Solo-Profil (SQLite); das Team-Profil nutzt die koordinierte Backup-CLI.`,runNow:`Übung jetzt starten`,running:`Läuft…`,passed:`Wiederherstellungsübung bestanden.`,failed:`Die Wiederherstellungsübung ist fehlgeschlagen.`,lastPassed:`Zuletzt bestanden`,restoreTime:`Wiederherstellungszeit (RTO)`,drillSpacing:`Übungsabstand (RPO)`,archiveSize:`Archivgröße`,lastFailed:`Letzte Übung fehlgeschlagen am {{date}}`,originManual:`Manuell`,originScheduled:`Geplant`,columns:{when:`Wann`,origin:`Ursprung`,status:`Status`,restore:`Wiederherstellung`},status:{passed:`Bestanden`,failed:`Fehlgeschlagen`,running:`Läuft`}}},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-, CSV-, Bild- und Audiodateien 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`,created:`Erstellt`,closePanelEsc:`Panel schließen (Esc)`,copyButton:`Kopieren`,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.`},passwordStrength:{levels:{weak:`Schwach`,fair:`Ausreichend`,good:`Gut`,strong:`Stark`},checks:{minLength:`Mindestens 12 Zeichen`,hasCase:`Groß- und Kleinbuchstaben`,hasNumber:`Mindestens eine Zahl`,tooLong:`Höchstens 72 Bytes`}}};export{e as default};