@adminiumjs/adminium 0.1.0-rc.1

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 (875) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +94 -0
  3. package/dashboard/assets/DeltaPill-dxlsGh-1.js +2 -0
  4. package/dashboard/assets/DeltaPill-dxlsGh-1.js.map +1 -0
  5. package/dashboard/assets/DistributionCorrelationWidgets-ztVy_W_R.js +2 -0
  6. package/dashboard/assets/DistributionCorrelationWidgets-ztVy_W_R.js.map +1 -0
  7. package/dashboard/assets/PartWholeWidgets-BDn0i0jt.js +2 -0
  8. package/dashboard/assets/PartWholeWidgets-BDn0i0jt.js.map +1 -0
  9. package/dashboard/assets/RemapEditor-z3vRY12e.js +2 -0
  10. package/dashboard/assets/RemapEditor-z3vRY12e.js.map +1 -0
  11. package/dashboard/assets/ReviewScreen-COkLQ3T7.js +2 -0
  12. package/dashboard/assets/ReviewScreen-COkLQ3T7.js.map +1 -0
  13. package/dashboard/assets/Sparkline-Cvwo368J.js +2 -0
  14. package/dashboard/assets/Sparkline-Cvwo368J.js.map +1 -0
  15. package/dashboard/assets/WidgetMissingCard-D0bPJKIs.js +2 -0
  16. package/dashboard/assets/WidgetMissingCard-D0bPJKIs.js.map +1 -0
  17. package/dashboard/assets/arc-CPxb74pf.js +2 -0
  18. package/dashboard/assets/arc-CPxb74pf.js.map +1 -0
  19. package/dashboard/assets/bars-ranking-components-9Asn_0gR.js +2 -0
  20. package/dashboard/assets/bars-ranking-components-9Asn_0gR.js.map +1 -0
  21. package/dashboard/assets/blocks-track-components-BST-NjK2.js +2 -0
  22. package/dashboard/assets/blocks-track-components-BST-NjK2.js.map +1 -0
  23. package/dashboard/assets/calendar-track-components-RgNtGtZR.js +2 -0
  24. package/dashboard/assets/calendar-track-components-RgNtGtZR.js.map +1 -0
  25. package/dashboard/assets/chrome-track-components-ClNsentC.js +2 -0
  26. package/dashboard/assets/chrome-track-components-ClNsentC.js.map +1 -0
  27. package/dashboard/assets/common-BY1j__bD.js +2 -0
  28. package/dashboard/assets/common-BY1j__bD.js.map +1 -0
  29. package/dashboard/assets/common-BdlXKpcB.js +2 -0
  30. package/dashboard/assets/common-BdlXKpcB.js.map +1 -0
  31. package/dashboard/assets/common-BqqhgMgB.js +2 -0
  32. package/dashboard/assets/common-BqqhgMgB.js.map +1 -0
  33. package/dashboard/assets/common-BribWmIo.js +2 -0
  34. package/dashboard/assets/common-BribWmIo.js.map +1 -0
  35. package/dashboard/assets/common-Cmf0_lKV.js +2 -0
  36. package/dashboard/assets/common-Cmf0_lKV.js.map +1 -0
  37. package/dashboard/assets/common-i0r48qY9.js +2 -0
  38. package/dashboard/assets/common-i0r48qY9.js.map +1 -0
  39. package/dashboard/assets/common-x8cfkwpc.js +2 -0
  40. package/dashboard/assets/common-x8cfkwpc.js.map +1 -0
  41. package/dashboard/assets/communication-track-components-CNLZXOH_.js +2 -0
  42. package/dashboard/assets/communication-track-components-CNLZXOH_.js.map +1 -0
  43. package/dashboard/assets/components-Bp5cFm2d.js +2 -0
  44. package/dashboard/assets/components-Bp5cFm2d.js.map +1 -0
  45. package/dashboard/assets/components-C4-O3_gD.js +2 -0
  46. package/dashboard/assets/components-C4-O3_gD.js.map +1 -0
  47. package/dashboard/assets/domain-ops-track-components-BPa41AU7.js +2 -0
  48. package/dashboard/assets/domain-ops-track-components-BPa41AU7.js.map +1 -0
  49. package/dashboard/assets/domain-track-components-CQ1i1X1t.js +2 -0
  50. package/dashboard/assets/domain-track-components-CQ1i1X1t.js.map +1 -0
  51. package/dashboard/assets/errors-BHUWiAQ3.js +2 -0
  52. package/dashboard/assets/errors-BHUWiAQ3.js.map +1 -0
  53. package/dashboard/assets/errors-BbyKweDG.js +2 -0
  54. package/dashboard/assets/errors-BbyKweDG.js.map +1 -0
  55. package/dashboard/assets/errors-CMQ6JC31.js +2 -0
  56. package/dashboard/assets/errors-CMQ6JC31.js.map +1 -0
  57. package/dashboard/assets/errors-D3nVgTmf.js +2 -0
  58. package/dashboard/assets/errors-D3nVgTmf.js.map +1 -0
  59. package/dashboard/assets/errors-IqJSoANC.js +2 -0
  60. package/dashboard/assets/errors-IqJSoANC.js.map +1 -0
  61. package/dashboard/assets/errors-gmIkO9F6.js +2 -0
  62. package/dashboard/assets/errors-gmIkO9F6.js.map +1 -0
  63. package/dashboard/assets/errors-vFk058Vh.js +2 -0
  64. package/dashboard/assets/errors-vFk058Vh.js.map +1 -0
  65. package/dashboard/assets/feeds-track-f-components-Cl_8SkGs.js +2 -0
  66. package/dashboard/assets/feeds-track-f-components-Cl_8SkGs.js.map +1 -0
  67. package/dashboard/assets/format-Lx4cQ8k-.js +2 -0
  68. package/dashboard/assets/format-Lx4cQ8k-.js.map +1 -0
  69. package/dashboard/assets/forms-track-components-Bc2Hoxdh.js +2 -0
  70. package/dashboard/assets/forms-track-components-Bc2Hoxdh.js.map +1 -0
  71. package/dashboard/assets/generated-1EfWhCMA.js +2 -0
  72. package/dashboard/assets/generated-1EfWhCMA.js.map +1 -0
  73. package/dashboard/assets/generated-BB3ZMxvx.js +2 -0
  74. package/dashboard/assets/generated-BB3ZMxvx.js.map +1 -0
  75. package/dashboard/assets/generated-C0JVNBRX.js +2 -0
  76. package/dashboard/assets/generated-C0JVNBRX.js.map +1 -0
  77. package/dashboard/assets/generated-C1W48_-3.js +2 -0
  78. package/dashboard/assets/generated-C1W48_-3.js.map +1 -0
  79. package/dashboard/assets/generated-CluiB_xY.js +2 -0
  80. package/dashboard/assets/generated-CluiB_xY.js.map +1 -0
  81. package/dashboard/assets/generated-DDGtlf-4.js +2 -0
  82. package/dashboard/assets/generated-DDGtlf-4.js.map +1 -0
  83. package/dashboard/assets/generated-DPCHvNto.js +2 -0
  84. package/dashboard/assets/generated-DPCHvNto.js.map +1 -0
  85. package/dashboard/assets/geo-track-components-Ct4-MSRw.js +3 -0
  86. package/dashboard/assets/geo-track-components-Ct4-MSRw.js.map +1 -0
  87. package/dashboard/assets/ibm-plex-sans-arabic-arabic-400-normal-CyU-ddYS.woff2 +0 -0
  88. package/dashboard/assets/ibm-plex-sans-arabic-arabic-500-normal-C4MQITzh.woff2 +0 -0
  89. package/dashboard/assets/ibm-plex-sans-arabic-arabic-600-normal-0pRdybE_.woff2 +0 -0
  90. package/dashboard/assets/ibm-plex-sans-arabic-arabic-700-normal-DrtBj6UE.woff2 +0 -0
  91. package/dashboard/assets/index-DPi4cduu.css +1 -0
  92. package/dashboard/assets/index-PB1II0WV.js +137 -0
  93. package/dashboard/assets/index-PB1II0WV.js.map +1 -0
  94. package/dashboard/assets/jetbrains-mono-latin-ext-wght-italic-BrDczivE.woff2 +0 -0
  95. package/dashboard/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  96. package/dashboard/assets/jetbrains-mono-latin-wght-italic-B2M6KQje.woff2 +0 -0
  97. package/dashboard/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  98. package/dashboard/assets/leaflet-CIGW-MKW.css +1 -0
  99. package/dashboard/assets/leaflet-src-D12shr04.js +2 -0
  100. package/dashboard/assets/leaflet-src-D12shr04.js.map +1 -0
  101. package/dashboard/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2 +0 -0
  102. package/dashboard/assets/manrope-latin-wght-normal-DHIcAJRg.woff2 +0 -0
  103. package/dashboard/assets/media-track-components-CpeII-tT.js +2 -0
  104. package/dashboard/assets/media-track-components-CpeII-tT.js.map +1 -0
  105. package/dashboard/assets/scales-e0tkfEy1.js +2 -0
  106. package/dashboard/assets/scales-e0tkfEy1.js.map +1 -0
  107. package/dashboard/assets/sparkline-2JUGDrMW.js +2 -0
  108. package/dashboard/assets/sparkline-2JUGDrMW.js.map +1 -0
  109. package/dashboard/assets/stats-BNgXz5BD.js +2 -0
  110. package/dashboard/assets/stats-BNgXz5BD.js.map +1 -0
  111. package/dashboard/assets/studio-B7hMOwAF.js +2 -0
  112. package/dashboard/assets/studio-B7hMOwAF.js.map +1 -0
  113. package/dashboard/assets/studio-BN_9xHY3.js +2 -0
  114. package/dashboard/assets/studio-BN_9xHY3.js.map +1 -0
  115. package/dashboard/assets/studio-Cn2MObe8.js +2 -0
  116. package/dashboard/assets/studio-Cn2MObe8.js.map +1 -0
  117. package/dashboard/assets/studio-DZEZCCkw.js +2 -0
  118. package/dashboard/assets/studio-DZEZCCkw.js.map +1 -0
  119. package/dashboard/assets/studio-DzatTvLl.js +2 -0
  120. package/dashboard/assets/studio-DzatTvLl.js.map +1 -0
  121. package/dashboard/assets/studio-cBlD8x90.js +2 -0
  122. package/dashboard/assets/studio-cBlD8x90.js.map +1 -0
  123. package/dashboard/assets/studio-cglZPbJK.js +2 -0
  124. package/dashboard/assets/studio-cglZPbJK.js.map +1 -0
  125. package/dashboard/assets/system-track-components-GTYYpnfB.js +2 -0
  126. package/dashboard/assets/system-track-components-GTYYpnfB.js.map +1 -0
  127. package/dashboard/assets/tables-tail-components-DiA5GeHB.js +2 -0
  128. package/dashboard/assets/tables-tail-components-DiA5GeHB.js.map +1 -0
  129. package/dashboard/assets/tables-track-f-components-CVNPd7rq.js +2 -0
  130. package/dashboard/assets/tables-track-f-components-CVNPd7rq.js.map +1 -0
  131. package/dashboard/assets/time-flow-components-nKsaryry.js +2 -0
  132. package/dashboard/assets/time-flow-components-nKsaryry.js.map +1 -0
  133. package/dashboard/assets/ui-B-kZetor.js +2 -0
  134. package/dashboard/assets/ui-B-kZetor.js.map +1 -0
  135. package/dashboard/assets/ui-BEStJ5Pw.js +2 -0
  136. package/dashboard/assets/ui-BEStJ5Pw.js.map +1 -0
  137. package/dashboard/assets/ui-BS5_eDN4.js +2 -0
  138. package/dashboard/assets/ui-BS5_eDN4.js.map +1 -0
  139. package/dashboard/assets/ui-BZ0EyxRH.js +2 -0
  140. package/dashboard/assets/ui-BZ0EyxRH.js.map +1 -0
  141. package/dashboard/assets/ui-BloJDdt6.js +2 -0
  142. package/dashboard/assets/ui-BloJDdt6.js.map +1 -0
  143. package/dashboard/assets/ui-CpdrplJH.js +2 -0
  144. package/dashboard/assets/ui-CpdrplJH.js.map +1 -0
  145. package/dashboard/assets/ui-YJfT644k.js +2 -0
  146. package/dashboard/assets/ui-YJfT644k.js.map +1 -0
  147. package/dashboard/assets/widgets-uDqZWw4A.js +2 -0
  148. package/dashboard/assets/widgets-uDqZWw4A.js.map +1 -0
  149. package/dashboard/index.html +41 -0
  150. package/dist/app.d.ts +48 -0
  151. package/dist/app.d.ts.map +1 -0
  152. package/dist/app.js +250 -0
  153. package/dist/app.js.map +1 -0
  154. package/dist/auth/audit.d.ts +22 -0
  155. package/dist/auth/audit.d.ts.map +1 -0
  156. package/dist/auth/audit.js +17 -0
  157. package/dist/auth/audit.js.map +1 -0
  158. package/dist/auth/desktop-session.d.ts +53 -0
  159. package/dist/auth/desktop-session.d.ts.map +1 -0
  160. package/dist/auth/desktop-session.js +111 -0
  161. package/dist/auth/desktop-session.js.map +1 -0
  162. package/dist/auth/passwords.d.ts +17 -0
  163. package/dist/auth/passwords.d.ts.map +1 -0
  164. package/dist/auth/passwords.js +40 -0
  165. package/dist/auth/passwords.js.map +1 -0
  166. package/dist/auth/sessions.d.ts +77 -0
  167. package/dist/auth/sessions.d.ts.map +1 -0
  168. package/dist/auth/sessions.js +137 -0
  169. package/dist/auth/sessions.js.map +1 -0
  170. package/dist/auth/totp.d.ts +30 -0
  171. package/dist/auth/totp.d.ts.map +1 -0
  172. package/dist/auth/totp.js +97 -0
  173. package/dist/auth/totp.js.map +1 -0
  174. package/dist/backup/backup-service.d.ts +157 -0
  175. package/dist/backup/backup-service.d.ts.map +1 -0
  176. package/dist/backup/backup-service.js +354 -0
  177. package/dist/backup/backup-service.js.map +1 -0
  178. package/dist/backup/format.d.ts +300 -0
  179. package/dist/backup/format.d.ts.map +1 -0
  180. package/dist/backup/format.js +304 -0
  181. package/dist/backup/format.js.map +1 -0
  182. package/dist/backup/notify.d.ts +55 -0
  183. package/dist/backup/notify.d.ts.map +1 -0
  184. package/dist/backup/notify.js +60 -0
  185. package/dist/backup/notify.js.map +1 -0
  186. package/dist/backup/snapshot.d.ts +78 -0
  187. package/dist/backup/snapshot.d.ts.map +1 -0
  188. package/dist/backup/snapshot.js +142 -0
  189. package/dist/backup/snapshot.js.map +1 -0
  190. package/dist/capabilities/catalog.d.ts +33 -0
  191. package/dist/capabilities/catalog.d.ts.map +1 -0
  192. package/dist/capabilities/catalog.js +32 -0
  193. package/dist/capabilities/catalog.js.map +1 -0
  194. package/dist/capabilities/grants.d.ts +44 -0
  195. package/dist/capabilities/grants.d.ts.map +1 -0
  196. package/dist/capabilities/grants.js +65 -0
  197. package/dist/capabilities/grants.js.map +1 -0
  198. package/dist/cli/allowlist.d.ts +46 -0
  199. package/dist/cli/allowlist.d.ts.map +1 -0
  200. package/dist/cli/allowlist.js +99 -0
  201. package/dist/cli/allowlist.js.map +1 -0
  202. package/dist/cli/args.d.ts +63 -0
  203. package/dist/cli/args.d.ts.map +1 -0
  204. package/dist/cli/args.js +92 -0
  205. package/dist/cli/args.js.map +1 -0
  206. package/dist/cli/command.d.ts +32 -0
  207. package/dist/cli/command.d.ts.map +1 -0
  208. package/dist/cli/command.js +64 -0
  209. package/dist/cli/command.js.map +1 -0
  210. package/dist/cli/commands/apply-llm-response.d.ts +32 -0
  211. package/dist/cli/commands/apply-llm-response.d.ts.map +1 -0
  212. package/dist/cli/commands/apply-llm-response.js +209 -0
  213. package/dist/cli/commands/apply-llm-response.js.map +1 -0
  214. package/dist/cli/commands/export-zip.d.ts +17 -0
  215. package/dist/cli/commands/export-zip.d.ts.map +1 -0
  216. package/dist/cli/commands/export-zip.js +111 -0
  217. package/dist/cli/commands/export-zip.js.map +1 -0
  218. package/dist/cli/commands/generate-prompt.d.ts +29 -0
  219. package/dist/cli/commands/generate-prompt.d.ts.map +1 -0
  220. package/dist/cli/commands/generate-prompt.js +154 -0
  221. package/dist/cli/commands/generate-prompt.js.map +1 -0
  222. package/dist/cli/commands/import-zip.d.ts +13 -0
  223. package/dist/cli/commands/import-zip.d.ts.map +1 -0
  224. package/dist/cli/commands/import-zip.js +95 -0
  225. package/dist/cli/commands/import-zip.js.map +1 -0
  226. package/dist/cli/commands/init.d.ts +47 -0
  227. package/dist/cli/commands/init.d.ts.map +1 -0
  228. package/dist/cli/commands/init.js +372 -0
  229. package/dist/cli/commands/init.js.map +1 -0
  230. package/dist/cli/commands/introspect.d.ts +11 -0
  231. package/dist/cli/commands/introspect.d.ts.map +1 -0
  232. package/dist/cli/commands/introspect.js +100 -0
  233. package/dist/cli/commands/introspect.js.map +1 -0
  234. package/dist/cli/commands/migrate.d.ts +11 -0
  235. package/dist/cli/commands/migrate.d.ts.map +1 -0
  236. package/dist/cli/commands/migrate.js +80 -0
  237. package/dist/cli/commands/migrate.js.map +1 -0
  238. package/dist/cli/commands/start.d.ts +22 -0
  239. package/dist/cli/commands/start.d.ts.map +1 -0
  240. package/dist/cli/commands/start.js +101 -0
  241. package/dist/cli/commands/start.js.map +1 -0
  242. package/dist/cli/exit.d.ts +37 -0
  243. package/dist/cli/exit.d.ts.map +1 -0
  244. package/dist/cli/exit.js +39 -0
  245. package/dist/cli/exit.js.map +1 -0
  246. package/dist/cli/index.d.ts +10 -0
  247. package/dist/cli/index.d.ts.map +1 -0
  248. package/dist/cli/index.js +17 -0
  249. package/dist/cli/index.js.map +1 -0
  250. package/dist/cli/io.d.ts +49 -0
  251. package/dist/cli/io.d.ts.map +1 -0
  252. package/dist/cli/io.js +77 -0
  253. package/dist/cli/io.js.map +1 -0
  254. package/dist/cli/run.d.ts +35 -0
  255. package/dist/cli/run.d.ts.map +1 -0
  256. package/dist/cli/run.js +139 -0
  257. package/dist/cli/run.js.map +1 -0
  258. package/dist/cli/runtime.d.ts +116 -0
  259. package/dist/cli/runtime.d.ts.map +1 -0
  260. package/dist/cli/runtime.js +181 -0
  261. package/dist/cli/runtime.js.map +1 -0
  262. package/dist/cli/static-root.d.ts +42 -0
  263. package/dist/cli/static-root.d.ts.map +1 -0
  264. package/dist/cli/static-root.js +58 -0
  265. package/dist/cli/static-root.js.map +1 -0
  266. package/dist/compose.d.ts +135 -0
  267. package/dist/compose.d.ts.map +1 -0
  268. package/dist/compose.js +383 -0
  269. package/dist/compose.js.map +1 -0
  270. package/dist/config/bootstrap.d.ts +33 -0
  271. package/dist/config/bootstrap.d.ts.map +1 -0
  272. package/dist/config/bootstrap.js +81 -0
  273. package/dist/config/bootstrap.js.map +1 -0
  274. package/dist/config/env.d.ts +95 -0
  275. package/dist/config/env.d.ts.map +1 -0
  276. package/dist/config/env.js +236 -0
  277. package/dist/config/env.js.map +1 -0
  278. package/dist/config/secrets.d.ts +24 -0
  279. package/dist/config/secrets.d.ts.map +1 -0
  280. package/dist/config/secrets.js +74 -0
  281. package/dist/config/secrets.js.map +1 -0
  282. package/dist/connections/crypto.d.ts +9 -0
  283. package/dist/connections/crypto.d.ts.map +1 -0
  284. package/dist/connections/crypto.js +16 -0
  285. package/dist/connections/crypto.js.map +1 -0
  286. package/dist/connections/dsn.d.ts +42 -0
  287. package/dist/connections/dsn.d.ts.map +1 -0
  288. package/dist/connections/dsn.js +131 -0
  289. package/dist/connections/dsn.js.map +1 -0
  290. package/dist/connections/effective-schema.d.ts +65 -0
  291. package/dist/connections/effective-schema.d.ts.map +1 -0
  292. package/dist/connections/effective-schema.js +249 -0
  293. package/dist/connections/effective-schema.js.map +1 -0
  294. package/dist/connections/introspect.d.ts +52 -0
  295. package/dist/connections/introspect.d.ts.map +1 -0
  296. package/dist/connections/introspect.js +111 -0
  297. package/dist/connections/introspect.js.map +1 -0
  298. package/dist/connections/manager.d.ts +97 -0
  299. package/dist/connections/manager.d.ts.map +1 -0
  300. package/dist/connections/manager.js +224 -0
  301. package/dist/connections/manager.js.map +1 -0
  302. package/dist/connections/register-adapters.d.ts +42 -0
  303. package/dist/connections/register-adapters.d.ts.map +1 -0
  304. package/dist/connections/register-adapters.js +92 -0
  305. package/dist/connections/register-adapters.js.map +1 -0
  306. package/dist/crud/filters.d.ts +57 -0
  307. package/dist/crud/filters.d.ts.map +1 -0
  308. package/dist/crud/filters.js +177 -0
  309. package/dist/crud/filters.js.map +1 -0
  310. package/dist/crud/identifiers.d.ts +58 -0
  311. package/dist/crud/identifiers.d.ts.map +1 -0
  312. package/dist/crud/identifiers.js +99 -0
  313. package/dist/crud/identifiers.js.map +1 -0
  314. package/dist/crud/list.d.ts +51 -0
  315. package/dist/crud/list.d.ts.map +1 -0
  316. package/dist/crud/list.js +126 -0
  317. package/dist/crud/list.js.map +1 -0
  318. package/dist/crud/mask.d.ts +23 -0
  319. package/dist/crud/mask.d.ts.map +1 -0
  320. package/dist/crud/mask.js +41 -0
  321. package/dist/crud/mask.js.map +1 -0
  322. package/dist/crud/records.d.ts +33 -0
  323. package/dist/crud/records.d.ts.map +1 -0
  324. package/dist/crud/records.js +126 -0
  325. package/dist/crud/records.js.map +1 -0
  326. package/dist/crud/undo.d.ts +55 -0
  327. package/dist/crud/undo.d.ts.map +1 -0
  328. package/dist/crud/undo.js +74 -0
  329. package/dist/crud/undo.js.map +1 -0
  330. package/dist/data-io/coerce.d.ts +28 -0
  331. package/dist/data-io/coerce.d.ts.map +1 -0
  332. package/dist/data-io/coerce.js +123 -0
  333. package/dist/data-io/coerce.js.map +1 -0
  334. package/dist/data-io/csv.d.ts +38 -0
  335. package/dist/data-io/csv.d.ts.map +1 -0
  336. package/dist/data-io/csv.js +138 -0
  337. package/dist/data-io/csv.js.map +1 -0
  338. package/dist/data-io/snapshot-view.d.ts +10 -0
  339. package/dist/data-io/snapshot-view.d.ts.map +1 -0
  340. package/dist/data-io/snapshot-view.js +19 -0
  341. package/dist/data-io/snapshot-view.js.map +1 -0
  342. package/dist/desktop/demo-seed.d.ts +23 -0
  343. package/dist/desktop/demo-seed.d.ts.map +1 -0
  344. package/dist/desktop/demo-seed.js +28 -0
  345. package/dist/desktop/demo-seed.js.map +1 -0
  346. package/dist/desktop/lan-share.d.ts +94 -0
  347. package/dist/desktop/lan-share.d.ts.map +1 -0
  348. package/dist/desktop/lan-share.js +150 -0
  349. package/dist/desktop/lan-share.js.map +1 -0
  350. package/dist/errors.d.ts +72 -0
  351. package/dist/errors.d.ts.map +1 -0
  352. package/dist/errors.js +82 -0
  353. package/dist/errors.js.map +1 -0
  354. package/dist/export/bundle.d.ts +235 -0
  355. package/dist/export/bundle.d.ts.map +1 -0
  356. package/dist/export/bundle.js +172 -0
  357. package/dist/export/bundle.js.map +1 -0
  358. package/dist/export/import-service.d.ts +99 -0
  359. package/dist/export/import-service.d.ts.map +1 -0
  360. package/dist/export/import-service.js +515 -0
  361. package/dist/export/import-service.js.map +1 -0
  362. package/dist/export/readme.d.ts +25 -0
  363. package/dist/export/readme.d.ts.map +1 -0
  364. package/dist/export/readme.js +154 -0
  365. package/dist/export/readme.js.map +1 -0
  366. package/dist/export/redaction.d.ts +118 -0
  367. package/dist/export/redaction.d.ts.map +1 -0
  368. package/dist/export/redaction.js +233 -0
  369. package/dist/export/redaction.js.map +1 -0
  370. package/dist/export/zip-service.d.ts +66 -0
  371. package/dist/export/zip-service.d.ts.map +1 -0
  372. package/dist/export/zip-service.js +306 -0
  373. package/dist/export/zip-service.js.map +1 -0
  374. package/dist/files/storage.d.ts +50 -0
  375. package/dist/files/storage.d.ts.map +1 -0
  376. package/dist/files/storage.js +100 -0
  377. package/dist/files/storage.js.map +1 -0
  378. package/dist/generate/materialize-llm.d.ts +45 -0
  379. package/dist/generate/materialize-llm.d.ts.map +1 -0
  380. package/dist/generate/materialize-llm.js +167 -0
  381. package/dist/generate/materialize-llm.js.map +1 -0
  382. package/dist/generate/run.d.ts +48 -0
  383. package/dist/generate/run.d.ts.map +1 -0
  384. package/dist/generate/run.js +123 -0
  385. package/dist/generate/run.js.map +1 -0
  386. package/dist/index.d.ts +89 -0
  387. package/dist/index.d.ts.map +1 -0
  388. package/dist/index.js +116 -0
  389. package/dist/index.js.map +1 -0
  390. package/dist/jobs/export-run.d.ts +38 -0
  391. package/dist/jobs/export-run.d.ts.map +1 -0
  392. package/dist/jobs/export-run.js +172 -0
  393. package/dist/jobs/export-run.js.map +1 -0
  394. package/dist/jobs/import-run.d.ts +43 -0
  395. package/dist/jobs/import-run.d.ts.map +1 -0
  396. package/dist/jobs/import-run.js +290 -0
  397. package/dist/jobs/import-run.js.map +1 -0
  398. package/dist/jobs/llm-run.d.ts +73 -0
  399. package/dist/jobs/llm-run.d.ts.map +1 -0
  400. package/dist/jobs/llm-run.js +225 -0
  401. package/dist/jobs/llm-run.js.map +1 -0
  402. package/dist/jobs/register.d.ts +90 -0
  403. package/dist/jobs/register.d.ts.map +1 -0
  404. package/dist/jobs/register.js +121 -0
  405. package/dist/jobs/register.js.map +1 -0
  406. package/dist/jobs/registry.d.ts +74 -0
  407. package/dist/jobs/registry.d.ts.map +1 -0
  408. package/dist/jobs/registry.js +78 -0
  409. package/dist/jobs/registry.js.map +1 -0
  410. package/dist/jobs/report-run.d.ts +64 -0
  411. package/dist/jobs/report-run.d.ts.map +1 -0
  412. package/dist/jobs/report-run.js +221 -0
  413. package/dist/jobs/report-run.js.map +1 -0
  414. package/dist/jobs/scheduler.d.ts +72 -0
  415. package/dist/jobs/scheduler.d.ts.map +1 -0
  416. package/dist/jobs/scheduler.js +121 -0
  417. package/dist/jobs/scheduler.js.map +1 -0
  418. package/dist/jobs/worker.d.ts +110 -0
  419. package/dist/jobs/worker.d.ts.map +1 -0
  420. package/dist/jobs/worker.js +282 -0
  421. package/dist/jobs/worker.js.map +1 -0
  422. package/dist/llm/apply-service.d.ts +150 -0
  423. package/dist/llm/apply-service.d.ts.map +1 -0
  424. package/dist/llm/apply-service.js +463 -0
  425. package/dist/llm/apply-service.js.map +1 -0
  426. package/dist/llm/apply-undo-store.d.ts +50 -0
  427. package/dist/llm/apply-undo-store.d.ts.map +1 -0
  428. package/dist/llm/apply-undo-store.js +60 -0
  429. package/dist/llm/apply-undo-store.js.map +1 -0
  430. package/dist/llm/direct-runner.d.ts +146 -0
  431. package/dist/llm/direct-runner.d.ts.map +1 -0
  432. package/dist/llm/direct-runner.js +204 -0
  433. package/dist/llm/direct-runner.js.map +1 -0
  434. package/dist/llm/prompt-service.d.ts +90 -0
  435. package/dist/llm/prompt-service.d.ts.map +1 -0
  436. package/dist/llm/prompt-service.js +93 -0
  437. package/dist/llm/prompt-service.js.map +1 -0
  438. package/dist/llm/provider-resolver.d.ts +25 -0
  439. package/dist/llm/provider-resolver.d.ts.map +1 -0
  440. package/dist/llm/provider-resolver.js +81 -0
  441. package/dist/llm/provider-resolver.js.map +1 -0
  442. package/dist/llm/run-service.d.ts +215 -0
  443. package/dist/llm/run-service.d.ts.map +1 -0
  444. package/dist/llm/run-service.js +343 -0
  445. package/dist/llm/run-service.js.map +1 -0
  446. package/dist/llm/stats-collector.d.ts +40 -0
  447. package/dist/llm/stats-collector.d.ts.map +1 -0
  448. package/dist/llm/stats-collector.js +74 -0
  449. package/dist/llm/stats-collector.js.map +1 -0
  450. package/dist/log-scrub.d.ts +58 -0
  451. package/dist/log-scrub.d.ts.map +1 -0
  452. package/dist/log-scrub.js +103 -0
  453. package/dist/log-scrub.js.map +1 -0
  454. package/dist/meta/store.d.ts +96 -0
  455. package/dist/meta/store.d.ts.map +1 -0
  456. package/dist/meta/store.js +192 -0
  457. package/dist/meta/store.js.map +1 -0
  458. package/dist/notifications/notify.d.ts +43 -0
  459. package/dist/notifications/notify.d.ts.map +1 -0
  460. package/dist/notifications/notify.js +42 -0
  461. package/dist/notifications/notify.js.map +1 -0
  462. package/dist/plugins/auth.d.ts +42 -0
  463. package/dist/plugins/auth.d.ts.map +1 -0
  464. package/dist/plugins/auth.js +84 -0
  465. package/dist/plugins/auth.js.map +1 -0
  466. package/dist/plugins/core.d.ts +48 -0
  467. package/dist/plugins/core.d.ts.map +1 -0
  468. package/dist/plugins/core.js +248 -0
  469. package/dist/plugins/core.js.map +1 -0
  470. package/dist/plugins/rbac.d.ts +54 -0
  471. package/dist/plugins/rbac.d.ts.map +1 -0
  472. package/dist/plugins/rbac.js +103 -0
  473. package/dist/plugins/rbac.js.map +1 -0
  474. package/dist/plugins/static.d.ts +12 -0
  475. package/dist/plugins/static.d.ts.map +1 -0
  476. package/dist/plugins/static.js +36 -0
  477. package/dist/plugins/static.js.map +1 -0
  478. package/dist/rbac/api-keys.d.ts +30 -0
  479. package/dist/rbac/api-keys.d.ts.map +1 -0
  480. package/dist/rbac/api-keys.js +41 -0
  481. package/dist/rbac/api-keys.js.map +1 -0
  482. package/dist/rbac/index.d.ts +6 -0
  483. package/dist/rbac/index.d.ts.map +1 -0
  484. package/dist/rbac/index.js +6 -0
  485. package/dist/rbac/index.js.map +1 -0
  486. package/dist/rbac/permissions.d.ts +107 -0
  487. package/dist/rbac/permissions.d.ts.map +1 -0
  488. package/dist/rbac/permissions.js +250 -0
  489. package/dist/rbac/permissions.js.map +1 -0
  490. package/dist/rbac/principal.d.ts +33 -0
  491. package/dist/rbac/principal.d.ts.map +1 -0
  492. package/dist/rbac/principal.js +31 -0
  493. package/dist/rbac/principal.js.map +1 -0
  494. package/dist/rbac/resolver.d.ts +26 -0
  495. package/dist/rbac/resolver.d.ts.map +1 -0
  496. package/dist/rbac/resolver.js +46 -0
  497. package/dist/rbac/resolver.js.map +1 -0
  498. package/dist/realtime/hub.d.ts +90 -0
  499. package/dist/realtime/hub.d.ts.map +1 -0
  500. package/dist/realtime/hub.js +146 -0
  501. package/dist/realtime/hub.js.map +1 -0
  502. package/dist/realtime/sse.d.ts +35 -0
  503. package/dist/realtime/sse.d.ts.map +1 -0
  504. package/dist/realtime/sse.js +88 -0
  505. package/dist/realtime/sse.js.map +1 -0
  506. package/dist/realtime/ws.d.ts +38 -0
  507. package/dist/realtime/ws.d.ts.map +1 -0
  508. package/dist/realtime/ws.js +124 -0
  509. package/dist/realtime/ws.js.map +1 -0
  510. package/dist/reports/schedule.d.ts +14 -0
  511. package/dist/reports/schedule.d.ts.map +1 -0
  512. package/dist/reports/schedule.js +63 -0
  513. package/dist/reports/schedule.js.map +1 -0
  514. package/dist/routes/about/index.d.ts +39 -0
  515. package/dist/routes/about/index.d.ts.map +1 -0
  516. package/dist/routes/about/index.js +73 -0
  517. package/dist/routes/about/index.js.map +1 -0
  518. package/dist/routes/about/schema.d.ts +50 -0
  519. package/dist/routes/about/schema.d.ts.map +1 -0
  520. package/dist/routes/about/schema.js +53 -0
  521. package/dist/routes/about/schema.js.map +1 -0
  522. package/dist/routes/api-keys/index.d.ts +11 -0
  523. package/dist/routes/api-keys/index.d.ts.map +1 -0
  524. package/dist/routes/api-keys/index.js +79 -0
  525. package/dist/routes/api-keys/index.js.map +1 -0
  526. package/dist/routes/api-keys/schema.d.ts +62 -0
  527. package/dist/routes/api-keys/schema.d.ts.map +1 -0
  528. package/dist/routes/api-keys/schema.js +37 -0
  529. package/dist/routes/api-keys/schema.js.map +1 -0
  530. package/dist/routes/audit/index.d.ts +11 -0
  531. package/dist/routes/audit/index.d.ts.map +1 -0
  532. package/dist/routes/audit/index.js +107 -0
  533. package/dist/routes/audit/index.js.map +1 -0
  534. package/dist/routes/audit/schema.d.ts +129 -0
  535. package/dist/routes/audit/schema.d.ts.map +1 -0
  536. package/dist/routes/audit/schema.js +43 -0
  537. package/dist/routes/audit/schema.js.map +1 -0
  538. package/dist/routes/auth/desktop-session.d.ts +48 -0
  539. package/dist/routes/auth/desktop-session.d.ts.map +1 -0
  540. package/dist/routes/auth/desktop-session.js +132 -0
  541. package/dist/routes/auth/desktop-session.js.map +1 -0
  542. package/dist/routes/auth/handlers.d.ts +21 -0
  543. package/dist/routes/auth/handlers.d.ts.map +1 -0
  544. package/dist/routes/auth/handlers.js +256 -0
  545. package/dist/routes/auth/handlers.js.map +1 -0
  546. package/dist/routes/auth/index.d.ts +27 -0
  547. package/dist/routes/auth/index.d.ts.map +1 -0
  548. package/dist/routes/auth/index.js +67 -0
  549. package/dist/routes/auth/index.js.map +1 -0
  550. package/dist/routes/auth/schema.d.ts +129 -0
  551. package/dist/routes/auth/schema.d.ts.map +1 -0
  552. package/dist/routes/auth/schema.js +84 -0
  553. package/dist/routes/auth/schema.js.map +1 -0
  554. package/dist/routes/bootstrap/handlers.d.ts +34 -0
  555. package/dist/routes/bootstrap/handlers.d.ts.map +1 -0
  556. package/dist/routes/bootstrap/handlers.js +96 -0
  557. package/dist/routes/bootstrap/handlers.js.map +1 -0
  558. package/dist/routes/bootstrap/index.d.ts +9 -0
  559. package/dist/routes/bootstrap/index.d.ts.map +1 -0
  560. package/dist/routes/bootstrap/index.js +16 -0
  561. package/dist/routes/bootstrap/index.js.map +1 -0
  562. package/dist/routes/bootstrap/schema.d.ts +177 -0
  563. package/dist/routes/bootstrap/schema.d.ts.map +1 -0
  564. package/dist/routes/bootstrap/schema.js +55 -0
  565. package/dist/routes/bootstrap/schema.js.map +1 -0
  566. package/dist/routes/connections/index.d.ts +21 -0
  567. package/dist/routes/connections/index.d.ts.map +1 -0
  568. package/dist/routes/connections/index.js +260 -0
  569. package/dist/routes/connections/index.js.map +1 -0
  570. package/dist/routes/connections/schema.d.ts +161 -0
  571. package/dist/routes/connections/schema.d.ts.map +1 -0
  572. package/dist/routes/connections/schema.js +91 -0
  573. package/dist/routes/connections/schema.js.map +1 -0
  574. package/dist/routes/data/index.d.ts +46 -0
  575. package/dist/routes/data/index.d.ts.map +1 -0
  576. package/dist/routes/data/index.js +508 -0
  577. package/dist/routes/data/index.js.map +1 -0
  578. package/dist/routes/data/schema.d.ts +128 -0
  579. package/dist/routes/data/schema.d.ts.map +1 -0
  580. package/dist/routes/data/schema.js +83 -0
  581. package/dist/routes/data/schema.js.map +1 -0
  582. package/dist/routes/desktop/index.d.ts +61 -0
  583. package/dist/routes/desktop/index.d.ts.map +1 -0
  584. package/dist/routes/desktop/index.js +91 -0
  585. package/dist/routes/desktop/index.js.map +1 -0
  586. package/dist/routes/desktop/schema.d.ts +71 -0
  587. package/dist/routes/desktop/schema.d.ts.map +1 -0
  588. package/dist/routes/desktop/schema.js +58 -0
  589. package/dist/routes/desktop/schema.js.map +1 -0
  590. package/dist/routes/desktop-capabilities/index.d.ts +9 -0
  591. package/dist/routes/desktop-capabilities/index.d.ts.map +1 -0
  592. package/dist/routes/desktop-capabilities/index.js +62 -0
  593. package/dist/routes/desktop-capabilities/index.js.map +1 -0
  594. package/dist/routes/desktop-capabilities/schema.d.ts +46 -0
  595. package/dist/routes/desktop-capabilities/schema.d.ts.map +1 -0
  596. package/dist/routes/desktop-capabilities/schema.js +30 -0
  597. package/dist/routes/desktop-capabilities/schema.js.map +1 -0
  598. package/dist/routes/desktop-demo/handlers.d.ts +94 -0
  599. package/dist/routes/desktop-demo/handlers.d.ts.map +1 -0
  600. package/dist/routes/desktop-demo/handlers.js +182 -0
  601. package/dist/routes/desktop-demo/handlers.js.map +1 -0
  602. package/dist/routes/desktop-demo/index.d.ts +39 -0
  603. package/dist/routes/desktop-demo/index.d.ts.map +1 -0
  604. package/dist/routes/desktop-demo/index.js +73 -0
  605. package/dist/routes/desktop-demo/index.js.map +1 -0
  606. package/dist/routes/desktop-demo/schema.d.ts +17 -0
  607. package/dist/routes/desktop-demo/schema.d.ts.map +1 -0
  608. package/dist/routes/desktop-demo/schema.js +30 -0
  609. package/dist/routes/desktop-demo/schema.js.map +1 -0
  610. package/dist/routes/desktop-lan/index.d.ts +54 -0
  611. package/dist/routes/desktop-lan/index.d.ts.map +1 -0
  612. package/dist/routes/desktop-lan/index.js +33 -0
  613. package/dist/routes/desktop-lan/index.js.map +1 -0
  614. package/dist/routes/desktop-lan/schema.d.ts +24 -0
  615. package/dist/routes/desktop-lan/schema.d.ts.map +1 -0
  616. package/dist/routes/desktop-lan/schema.js +40 -0
  617. package/dist/routes/desktop-lan/schema.js.map +1 -0
  618. package/dist/routes/desktop-local-db/handlers.d.ts +92 -0
  619. package/dist/routes/desktop-local-db/handlers.d.ts.map +1 -0
  620. package/dist/routes/desktop-local-db/handlers.js +300 -0
  621. package/dist/routes/desktop-local-db/handlers.js.map +1 -0
  622. package/dist/routes/desktop-local-db/index.d.ts +39 -0
  623. package/dist/routes/desktop-local-db/index.d.ts.map +1 -0
  624. package/dist/routes/desktop-local-db/index.js +83 -0
  625. package/dist/routes/desktop-local-db/index.js.map +1 -0
  626. package/dist/routes/desktop-local-db/placeholder.d.ts +75 -0
  627. package/dist/routes/desktop-local-db/placeholder.d.ts.map +1 -0
  628. package/dist/routes/desktop-local-db/placeholder.js +420 -0
  629. package/dist/routes/desktop-local-db/placeholder.js.map +1 -0
  630. package/dist/routes/desktop-local-db/schema.d.ts +50 -0
  631. package/dist/routes/desktop-local-db/schema.d.ts.map +1 -0
  632. package/dist/routes/desktop-local-db/schema.js +71 -0
  633. package/dist/routes/desktop-local-db/schema.js.map +1 -0
  634. package/dist/routes/desktop-local-db/sqlite-ddl.d.ts +104 -0
  635. package/dist/routes/desktop-local-db/sqlite-ddl.d.ts.map +1 -0
  636. package/dist/routes/desktop-local-db/sqlite-ddl.js +419 -0
  637. package/dist/routes/desktop-local-db/sqlite-ddl.js.map +1 -0
  638. package/dist/routes/email-templates/index.d.ts +7 -0
  639. package/dist/routes/email-templates/index.d.ts.map +1 -0
  640. package/dist/routes/email-templates/index.js +70 -0
  641. package/dist/routes/email-templates/index.js.map +1 -0
  642. package/dist/routes/email-templates/schema.d.ts +54 -0
  643. package/dist/routes/email-templates/schema.d.ts.map +1 -0
  644. package/dist/routes/email-templates/schema.js +35 -0
  645. package/dist/routes/email-templates/schema.js.map +1 -0
  646. package/dist/routes/exports/index.d.ts +19 -0
  647. package/dist/routes/exports/index.d.ts.map +1 -0
  648. package/dist/routes/exports/index.js +145 -0
  649. package/dist/routes/exports/index.js.map +1 -0
  650. package/dist/routes/exports/schema.d.ts +183 -0
  651. package/dist/routes/exports/schema.d.ts.map +1 -0
  652. package/dist/routes/exports/schema.js +37 -0
  653. package/dist/routes/exports/schema.js.map +1 -0
  654. package/dist/routes/generate/index.d.ts +23 -0
  655. package/dist/routes/generate/index.d.ts.map +1 -0
  656. package/dist/routes/generate/index.js +80 -0
  657. package/dist/routes/generate/index.js.map +1 -0
  658. package/dist/routes/generate/schema.d.ts +43 -0
  659. package/dist/routes/generate/schema.d.ts.map +1 -0
  660. package/dist/routes/generate/schema.js +37 -0
  661. package/dist/routes/generate/schema.js.map +1 -0
  662. package/dist/routes/imports/index.d.ts +21 -0
  663. package/dist/routes/imports/index.d.ts.map +1 -0
  664. package/dist/routes/imports/index.js +288 -0
  665. package/dist/routes/imports/index.js.map +1 -0
  666. package/dist/routes/imports/schema.d.ts +292 -0
  667. package/dist/routes/imports/schema.d.ts.map +1 -0
  668. package/dist/routes/imports/schema.js +78 -0
  669. package/dist/routes/imports/schema.js.map +1 -0
  670. package/dist/routes/index.d.ts +11 -0
  671. package/dist/routes/index.d.ts.map +1 -0
  672. package/dist/routes/index.js +8 -0
  673. package/dist/routes/index.js.map +1 -0
  674. package/dist/routes/jobs/index.d.ts +29 -0
  675. package/dist/routes/jobs/index.d.ts.map +1 -0
  676. package/dist/routes/jobs/index.js +175 -0
  677. package/dist/routes/jobs/index.js.map +1 -0
  678. package/dist/routes/jobs/schema.d.ts +170 -0
  679. package/dist/routes/jobs/schema.d.ts.map +1 -0
  680. package/dist/routes/jobs/schema.js +57 -0
  681. package/dist/routes/jobs/schema.js.map +1 -0
  682. package/dist/routes/llm/config-service.d.ts +48 -0
  683. package/dist/routes/llm/config-service.d.ts.map +1 -0
  684. package/dist/routes/llm/config-service.js +102 -0
  685. package/dist/routes/llm/config-service.js.map +1 -0
  686. package/dist/routes/llm/index.d.ts +69 -0
  687. package/dist/routes/llm/index.d.ts.map +1 -0
  688. package/dist/routes/llm/index.js +412 -0
  689. package/dist/routes/llm/index.js.map +1 -0
  690. package/dist/routes/llm/schema.d.ts +605 -0
  691. package/dist/routes/llm/schema.d.ts.map +1 -0
  692. package/dist/routes/llm/schema.js +238 -0
  693. package/dist/routes/llm/schema.js.map +1 -0
  694. package/dist/routes/me/handlers.d.ts +14 -0
  695. package/dist/routes/me/handlers.d.ts.map +1 -0
  696. package/dist/routes/me/handlers.js +88 -0
  697. package/dist/routes/me/handlers.js.map +1 -0
  698. package/dist/routes/me/index.d.ts +8 -0
  699. package/dist/routes/me/index.d.ts.map +1 -0
  700. package/dist/routes/me/index.js +17 -0
  701. package/dist/routes/me/index.js.map +1 -0
  702. package/dist/routes/me/schema.d.ts +270 -0
  703. package/dist/routes/me/schema.d.ts.map +1 -0
  704. package/dist/routes/me/schema.js +59 -0
  705. package/dist/routes/me/schema.js.map +1 -0
  706. package/dist/routes/me-views/index.d.ts +23 -0
  707. package/dist/routes/me-views/index.d.ts.map +1 -0
  708. package/dist/routes/me-views/index.js +76 -0
  709. package/dist/routes/me-views/index.js.map +1 -0
  710. package/dist/routes/me-views/schema.d.ts +44 -0
  711. package/dist/routes/me-views/schema.d.ts.map +1 -0
  712. package/dist/routes/me-views/schema.js +13 -0
  713. package/dist/routes/me-views/schema.js.map +1 -0
  714. package/dist/routes/notifications/index.d.ts +19 -0
  715. package/dist/routes/notifications/index.d.ts.map +1 -0
  716. package/dist/routes/notifications/index.js +123 -0
  717. package/dist/routes/notifications/index.js.map +1 -0
  718. package/dist/routes/notifications/schema.d.ts +122 -0
  719. package/dist/routes/notifications/schema.d.ts.map +1 -0
  720. package/dist/routes/notifications/schema.js +83 -0
  721. package/dist/routes/notifications/schema.js.map +1 -0
  722. package/dist/routes/onboarding/derive.d.ts +41 -0
  723. package/dist/routes/onboarding/derive.d.ts.map +1 -0
  724. package/dist/routes/onboarding/derive.js +30 -0
  725. package/dist/routes/onboarding/derive.js.map +1 -0
  726. package/dist/routes/onboarding/index.d.ts +26 -0
  727. package/dist/routes/onboarding/index.d.ts.map +1 -0
  728. package/dist/routes/onboarding/index.js +95 -0
  729. package/dist/routes/onboarding/index.js.map +1 -0
  730. package/dist/routes/onboarding/schema.d.ts +22 -0
  731. package/dist/routes/onboarding/schema.d.ts.map +1 -0
  732. package/dist/routes/onboarding/schema.js +22 -0
  733. package/dist/routes/onboarding/schema.js.map +1 -0
  734. package/dist/routes/pages/index.d.ts +26 -0
  735. package/dist/routes/pages/index.d.ts.map +1 -0
  736. package/dist/routes/pages/index.js +119 -0
  737. package/dist/routes/pages/index.js.map +1 -0
  738. package/dist/routes/pages/layout-schema.d.ts +19 -0
  739. package/dist/routes/pages/layout-schema.d.ts.map +1 -0
  740. package/dist/routes/pages/layout-schema.js +19 -0
  741. package/dist/routes/pages/layout-schema.js.map +1 -0
  742. package/dist/routes/pages/schema.d.ts +52 -0
  743. package/dist/routes/pages/schema.d.ts.map +1 -0
  744. package/dist/routes/pages/schema.js +35 -0
  745. package/dist/routes/pages/schema.js.map +1 -0
  746. package/dist/routes/roles/index.d.ts +17 -0
  747. package/dist/routes/roles/index.d.ts.map +1 -0
  748. package/dist/routes/roles/index.js +255 -0
  749. package/dist/routes/roles/index.js.map +1 -0
  750. package/dist/routes/roles/schema.d.ts +94 -0
  751. package/dist/routes/roles/schema.d.ts.map +1 -0
  752. package/dist/routes/roles/schema.js +57 -0
  753. package/dist/routes/roles/schema.js.map +1 -0
  754. package/dist/routes/scheduled-reports/index.d.ts +15 -0
  755. package/dist/routes/scheduled-reports/index.d.ts.map +1 -0
  756. package/dist/routes/scheduled-reports/index.js +195 -0
  757. package/dist/routes/scheduled-reports/index.js.map +1 -0
  758. package/dist/routes/scheduled-reports/schema.d.ts +154 -0
  759. package/dist/routes/scheduled-reports/schema.d.ts.map +1 -0
  760. package/dist/routes/scheduled-reports/schema.js +49 -0
  761. package/dist/routes/scheduled-reports/schema.js.map +1 -0
  762. package/dist/routes/schema/index.d.ts +24 -0
  763. package/dist/routes/schema/index.d.ts.map +1 -0
  764. package/dist/routes/schema/index.js +224 -0
  765. package/dist/routes/schema/index.js.map +1 -0
  766. package/dist/routes/schema/schema.d.ts +92 -0
  767. package/dist/routes/schema/schema.d.ts.map +1 -0
  768. package/dist/routes/schema/schema.js +64 -0
  769. package/dist/routes/schema/schema.js.map +1 -0
  770. package/dist/routes/schema-import/fallback-parser.d.ts +35 -0
  771. package/dist/routes/schema-import/fallback-parser.d.ts.map +1 -0
  772. package/dist/routes/schema-import/fallback-parser.js +349 -0
  773. package/dist/routes/schema-import/fallback-parser.js.map +1 -0
  774. package/dist/routes/schema-import/index.d.ts +43 -0
  775. package/dist/routes/schema-import/index.d.ts.map +1 -0
  776. package/dist/routes/schema-import/index.js +167 -0
  777. package/dist/routes/schema-import/index.js.map +1 -0
  778. package/dist/routes/schema-import/schema.d.ts +65 -0
  779. package/dist/routes/schema-import/schema.d.ts.map +1 -0
  780. package/dist/routes/schema-import/schema.js +40 -0
  781. package/dist/routes/schema-import/schema.js.map +1 -0
  782. package/dist/routes/search/index.d.ts +71 -0
  783. package/dist/routes/search/index.d.ts.map +1 -0
  784. package/dist/routes/search/index.js +361 -0
  785. package/dist/routes/search/index.js.map +1 -0
  786. package/dist/routes/search/schema.d.ts +125 -0
  787. package/dist/routes/search/schema.d.ts.map +1 -0
  788. package/dist/routes/search/schema.js +70 -0
  789. package/dist/routes/search/schema.js.map +1 -0
  790. package/dist/routes/settings/index.d.ts +24 -0
  791. package/dist/routes/settings/index.d.ts.map +1 -0
  792. package/dist/routes/settings/index.js +164 -0
  793. package/dist/routes/settings/index.js.map +1 -0
  794. package/dist/routes/settings/schema.d.ts +110 -0
  795. package/dist/routes/settings/schema.d.ts.map +1 -0
  796. package/dist/routes/settings/schema.js +71 -0
  797. package/dist/routes/settings/schema.js.map +1 -0
  798. package/dist/routes/setup/index.d.ts +29 -0
  799. package/dist/routes/setup/index.d.ts.map +1 -0
  800. package/dist/routes/setup/index.js +68 -0
  801. package/dist/routes/setup/index.js.map +1 -0
  802. package/dist/routes/setup/schema.d.ts +61 -0
  803. package/dist/routes/setup/schema.d.ts.map +1 -0
  804. package/dist/routes/setup/schema.js +47 -0
  805. package/dist/routes/setup/schema.js.map +1 -0
  806. package/dist/routes/system/handlers.d.ts +63 -0
  807. package/dist/routes/system/handlers.d.ts.map +1 -0
  808. package/dist/routes/system/handlers.js +121 -0
  809. package/dist/routes/system/handlers.js.map +1 -0
  810. package/dist/routes/system/index.d.ts +34 -0
  811. package/dist/routes/system/index.d.ts.map +1 -0
  812. package/dist/routes/system/index.js +18 -0
  813. package/dist/routes/system/index.js.map +1 -0
  814. package/dist/routes/system/schema.d.ts +93 -0
  815. package/dist/routes/system/schema.d.ts.map +1 -0
  816. package/dist/routes/system/schema.js +109 -0
  817. package/dist/routes/system/schema.js.map +1 -0
  818. package/dist/routes/views/index.d.ts +21 -0
  819. package/dist/routes/views/index.d.ts.map +1 -0
  820. package/dist/routes/views/index.js +155 -0
  821. package/dist/routes/views/index.js.map +1 -0
  822. package/dist/routes/views/schema.d.ts +127 -0
  823. package/dist/routes/views/schema.d.ts.map +1 -0
  824. package/dist/routes/views/schema.js +56 -0
  825. package/dist/routes/views/schema.js.map +1 -0
  826. package/dist/routes/widget-data/index.d.ts +29 -0
  827. package/dist/routes/widget-data/index.d.ts.map +1 -0
  828. package/dist/routes/widget-data/index.js +152 -0
  829. package/dist/routes/widget-data/index.js.map +1 -0
  830. package/dist/routes/widget-data/schema.d.ts +252 -0
  831. package/dist/routes/widget-data/schema.d.ts.map +1 -0
  832. package/dist/routes/widget-data/schema.js +44 -0
  833. package/dist/routes/widget-data/schema.js.map +1 -0
  834. package/dist/setup/service.d.ts +63 -0
  835. package/dist/setup/service.d.ts.map +1 -0
  836. package/dist/setup/service.js +103 -0
  837. package/dist/setup/service.js.map +1 -0
  838. package/dist/start.d.ts +12 -0
  839. package/dist/start.d.ts.map +1 -0
  840. package/dist/start.js +28 -0
  841. package/dist/start.js.map +1 -0
  842. package/dist/telemetry/payload.d.ts +66 -0
  843. package/dist/telemetry/payload.d.ts.map +1 -0
  844. package/dist/telemetry/payload.js +69 -0
  845. package/dist/telemetry/payload.js.map +1 -0
  846. package/dist/telemetry/service.d.ts +67 -0
  847. package/dist/telemetry/service.d.ts.map +1 -0
  848. package/dist/telemetry/service.js +103 -0
  849. package/dist/telemetry/service.js.map +1 -0
  850. package/dist/telemetry/update-check.d.ts +79 -0
  851. package/dist/telemetry/update-check.d.ts.map +1 -0
  852. package/dist/telemetry/update-check.js +103 -0
  853. package/dist/telemetry/update-check.js.map +1 -0
  854. package/dist/version.d.ts +14 -0
  855. package/dist/version.d.ts.map +1 -0
  856. package/dist/version.js +21 -0
  857. package/dist/version.js.map +1 -0
  858. package/dist/widget-data/cache.d.ts +35 -0
  859. package/dist/widget-data/cache.d.ts.map +1 -0
  860. package/dist/widget-data/cache.js +67 -0
  861. package/dist/widget-data/cache.js.map +1 -0
  862. package/dist/widget-data/compiler.d.ts +107 -0
  863. package/dist/widget-data/compiler.d.ts.map +1 -0
  864. package/dist/widget-data/compiler.js +362 -0
  865. package/dist/widget-data/compiler.js.map +1 -0
  866. package/dist/widget-data/shapers.d.ts +75 -0
  867. package/dist/widget-data/shapers.d.ts.map +1 -0
  868. package/dist/widget-data/shapers.js +128 -0
  869. package/dist/widget-data/shapers.js.map +1 -0
  870. package/dist/widget-data/stream-publisher.d.ts +42 -0
  871. package/dist/widget-data/stream-publisher.d.ts.map +1 -0
  872. package/dist/widget-data/stream-publisher.js +34 -0
  873. package/dist/widget-data/stream-publisher.js.map +1 -0
  874. package/package.json +79 -0
  875. package/vocabulary/llm-allowlist.json +76 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-BdlXKpcB.js","sources":["../../../../packages/i18n/dist/resources/cs-cz/common.js"],"sourcesContent":["/**\n * GENERATED MIRROR of ../../../locales/cs-CZ/common.json — do not edit by hand.\n * The JSON file is the canonical hand-authored bundle (10-i18n-theming.md §3.1);\n * this TS mirror exists so the runtime bundles en-US resources (and chunk-splits\n * the other locales) without JSON import attributes (browser + NodeNext safe).\n * Parity is enforced by src/resources/parity.test.ts. Regenerate with\n * scripts/gen-resources.mjs.\n */\nexport default {\n \"common\": {\n \"dismiss\": \"Zavřít\",\n \"notifications\": \"Oznámení\",\n \"retry\": \"Zkusit znovu\",\n \"undo\": \"Vrátit zpět\",\n \"close\": \"Zavřít\",\n \"cancel\": \"Zrušit\",\n \"back\": \"Zpět\",\n \"loading\": \"Načítání\",\n \"clearSearch\": \"Vymazat hledání\",\n \"clear\": \"Vymazat\",\n \"save\": \"Uložit\"\n },\n \"auth\": {\n \"headline\": \"Proměňte jakoukoli databázi v přehledový panel.\",\n \"trust\": \"Jádro pod licencí AGPL · Vlastní hosting · Vaše data zůstávají vaše\",\n \"signIn\": {\n \"title\": \"Vítejte zpět\",\n \"subtitle\": \"Přihlaste se do svého pracovního prostoru Adminium.\",\n \"email\": \"E-mail\",\n \"emailInvalid\": \"Zadejte platnou e-mailovou adresu.\",\n \"password\": \"Heslo\",\n \"passwordRequired\": \"Zadejte své heslo.\",\n \"showPassword\": \"Zobrazit heslo\",\n \"hidePassword\": \"Skrýt heslo\",\n \"remember\": \"Zůstat přihlášen(a)\",\n \"forgot\": \"Zapomněli jste?\",\n \"submit\": \"Přihlásit se\",\n \"invalid\": \"Neplatný e-mail nebo heslo.\",\n \"rateLimited\": \"Příliš mnoho pokusů — zkuste to znovu za minutu.\",\n \"failed\": \"Přihlášení se nezdařilo. Zkontrolujte připojení a zkuste to znovu.\"\n },\n \"forgot\": {\n \"title\": \"Obnovení hesla\",\n \"email\": \"E-mail\",\n \"emailInvalid\": \"Zadejte platnou e-mailovou adresu.\",\n \"submit\": \"Odeslat odkaz pro obnovení\",\n \"sentTitle\": \"Zkontrolujte svůj e-mail\",\n \"resend\": \"Odeslat znovu\",\n \"back\": \"Zpět na přihlášení\",\n \"done\": \"Zpět na přihlášení\",\n \"rateLimited\": \"Příliš mnoho požadavků — zkuste to později.\",\n \"failed\": \"Něco se pokazilo. Zkuste to znovu.\",\n \"smtpUnconfigured\": \"Toto Adminium nemá nastavený e-mailový server, takže nemůže odeslat odkaz pro obnovení hesla. Požádejte správce, aby vám heslo obnovil.\"\n },\n \"reset\": {\n \"title\": \"Nastavte si nové heslo\",\n \"subtitle\": \"Musí mít alespoň 8 znaků.\",\n \"password\": \"Nové heslo\",\n \"confirm\": \"Potvrzení hesla\",\n \"showPassword\": \"Zobrazit heslo\",\n \"hidePassword\": \"Skrýt heslo\",\n \"strength\": \"Síla hesla\",\n \"weak\": \"Slabé\",\n \"fair\": \"Ucházející\",\n \"good\": \"Dobré\",\n \"strong\": \"Silné\",\n \"tooShort\": \"Použijte alespoň 8 znaků.\",\n \"submit\": \"Obnovit heslo\",\n \"failed\": \"Obnovení se nezdařilo. Zkuste to znovu.\"\n },\n \"otp\": {\n \"title\": \"Dvoufázové ověření\",\n \"subtitle\": \"Zadejte 6místný kód z ověřovací aplikace.\",\n \"code\": \"Jednorázový kód\",\n \"recoveryCode\": \"Záložní kód\",\n \"useRecovery\": \"Ztratili jste zařízení? Použijte záložní kód\",\n \"useAuthenticator\": \"Použít místo toho ověřovací aplikaci\",\n \"submit\": \"Ověřit\",\n \"invalid\": \"Tento kód nefunguje. Zkuste to znovu.\",\n \"failed\": \"Ověření se nezdařilo. Zkontrolujte připojení a zkuste to znovu.\"\n }\n },\n \"nav\": {\n \"home\": \"Domů\",\n \"primary\": \"Hlavní\",\n \"account\": \"Účet\",\n \"signOut\": \"Odhlásit se\",\n \"empty\": \"Jakmile připojíte databázi, objeví se zde stránky.\",\n \"connection\": {\n \"shared\": \"Sdílené\",\n \"unnamed\": \"Připojení\"\n },\n \"imports\": \"Import dat\",\n \"exports\": \"Exporty dat\",\n \"emailTemplates\": \"E-mailové šablony\",\n \"notificationSettings\": \"Nastavení oznámení\",\n \"scheduledReports\": \"Naplánované sestavy\",\n \"group\": {\n \"workspace\": \"Pracovní prostor\",\n \"library\": \"Knihovna\",\n \"planning\": \"Plánování\",\n \"people\": \"Lidé\",\n \"account\": \"Účet\"\n }\n },\n \"topbar\": {\n \"search\": \"Hledat…\",\n \"notifications\": \"Oznámení\",\n \"notificationsLoading\": \"Načítání oznámení\",\n \"notificationsError\": \"Oznámení se nepodařilo načíst.\",\n \"notificationsEmpty\": \"Vše vyřízeno.\",\n \"theme\": \"Přepnout světlý / tmavý režim\",\n \"userMenu\": \"Nabídka účtu\",\n \"profile\": \"Profil\",\n \"preferences\": \"Předvolby\",\n \"signOut\": \"Odhlásit se\"\n },\n \"palette\": {\n \"dialog\": \"Paleta příkazů\",\n \"placeholder\": \"Zadejte příkaz nebo hledejte…\",\n \"navigate\": \"Navigace\",\n \"actions\": \"Akce\",\n \"askAi\": \"Zeptat se AI\",\n \"shortcuts\": \"Klávesové zkratky\",\n \"signOut\": \"Odhlásit se\",\n \"themeDark\": \"Přepnout na tmavý motiv\",\n \"themeLight\": \"Přepnout na světlý motiv\",\n \"footerNavigate\": \"navigace\",\n \"footerOpen\": \"vybrat\",\n \"footerClose\": \"zavřít\"\n },\n \"shortcuts\": {\n \"title\": \"Klávesové zkratky\",\n \"subtitle\": \"Pracujte v Adminiu rychleji\",\n \"close\": \"Zavřít\",\n \"dismiss\": \"Zavřít nebo zrušit\",\n \"palette\": \"Otevřít paletu příkazů\",\n \"panel\": \"Zobrazit panel zkratek\",\n \"search\": \"Přejít na hledání\",\n \"sidebar\": \"Přepnout postranní panel\",\n \"theme\": \"Přepnout světlý / tmavý režim\",\n \"then\": \"pak\",\n \"footerPre\": \"Stiskněte\",\n \"footerPost\": \"a tento panel kdykoli otevřete.\"\n },\n \"states\": {\n \"checked\": \"zkontrolováno před 8 s\",\n \"diagnostics\": \"Diagnostika\"\n },\n \"notFound\": {\n \"title\": \"Tato stránka se ztratila\",\n \"errorLine\": \"Chyba 404\",\n \"searchPlaceholder\": \"Hledat stránku…\",\n \"matches\": \"Odpovídající stránky\",\n \"popular\": \"Oblíbené cíle\",\n \"goBack\": \"Zpět\",\n \"backToDashboard\": \"Zpět na přehled\"\n },\n \"page\": {\n \"invalid\": {\n \"title\": \"Konfigurace této stránky je neplatná\",\n \"body\": \"Uložený dokument stránky neprošel validací a nelze jej vykreslit.\"\n },\n \"renderError\": {\n \"title\": \"Tuto stránku se nepodařilo vykreslit\"\n },\n \"tooNew\": {\n \"title\": \"Tato stránka vyžaduje novější Adminium\"\n },\n \"unknownTemplate\": {\n \"title\": \"Neznámá šablona stránky\"\n }\n },\n \"mutation\": {\n \"created\": \"Záznam vytvořen\",\n \"updated\": \"Záznam aktualizován\",\n \"deleted\": \"Záznam smazán\"\n },\n \"undo\": {\n \"done\": \"Změna vrácena zpět\",\n \"failed\": \"Tuto změnu se nepodařilo vrátit zpět\"\n },\n \"prefs\": {\n \"theme\": {\n \"label\": \"Motiv\",\n \"light\": \"Světlý\",\n \"dark\": \"Tmavý\",\n \"system\": \"Podle systému\"\n },\n \"accent\": {\n \"label\": \"Barva zvýraznění\",\n \"indigo\": \"Indigová\",\n \"blue\": \"Modrá\",\n \"teal\": \"Modrozelená\",\n \"violet\": \"Fialová\",\n \"rose\": \"Růžová\",\n \"red\": \"Červená\",\n \"orange\": \"Oranžová\",\n \"black\": \"Černá\"\n },\n \"density\": {\n \"label\": \"Hustota\",\n \"comfortable\": \"Pohodlná\",\n \"compact\": \"Kompaktní\"\n },\n \"locale\": {\n \"label\": \"Jazyk\",\n \"directionNote\": \"Směr textu: zprava doleva (nastaveno automaticky podle jazyka)\"\n }\n },\n \"account\": {\n \"title\": \"Účet\",\n \"subtitle\": \"Identita vaší aktuální relace. Předvolby zobrazení a nastavení oznámení spravujete na samostatných stránkách.\",\n \"preferencesLink\": \"Předvolby\",\n \"notificationsLink\": \"Nastavení oznámení\",\n \"name\": \"Jméno\",\n \"email\": \"E-mail\",\n \"roles\": \"Role\",\n \"twoFactor\": \"Dvoufázové ověření\",\n \"on\": \"Zapnuto\",\n \"off\": \"Vypnuto\",\n \"preferences\": {\n \"title\": \"Předvolby\",\n \"subtitle\": \"Jak Adminium vypadá a v jakém jazyce se vám zobrazuje — na tomto i na každém dalším zařízení, kde se přihlásíte.\",\n \"workspaceDefault\": \"Výchozí nastavení prostoru\",\n \"personal\": \"Osobní\",\n \"usingDefault\": \"Používá se výchozí nastavení prostoru ({value})\",\n \"reset\": \"Vrátit na výchozí nastavení prostoru\",\n \"resetFailed\": \"Tuto předvolbu se nepodařilo obnovit. Zkuste to znovu.\",\n \"appliesInstantly\": \"Změny se projeví okamžitě a uloží se do vašeho profilu.\"\n }\n },\n \"settings\": {\n \"defaults\": {\n \"title\": \"Globální výchozí nastavení\",\n \"subtitle\": \"Výchozí vzhled a jazyk pro celý pracovní prostor.\",\n \"explainer\": \"Tato výchozí nastavení platí pro všechny uživatele, dokud si je nepřenastaví. Každý si může nastavit vlastní předvolby v Profil → Předvolby — osobní předvolby mají pro daného uživatele vždy přednost.\",\n \"appearanceHeading\": \"Výchozí vzhled\",\n \"languageHeading\": \"Výchozí jazyk a region\",\n \"adoption\": \"Tímto výchozím nastavením se řídí {following, number} z {total, plural, one {# uživatele} few {# uživatelů} many {# uživatele} other {# uživatelů}}.\",\n \"weekStartNote\": \"Začátek týdne a formáty čísel se řídí jazykem.\",\n \"save\": \"Uložit výchozí nastavení\",\n \"saved\": \"Výchozí nastavení prostoru aktualizována\",\n \"saveFailed\": \"Výchozí nastavení prostoru se nepodařilo uložit. Zkuste to znovu.\",\n \"liveNote\": \"Uložení rozešle změnu naživo — přihlášení uživatelé, kteří se řídí výchozím nastavením, ji uvidí bez opětovného načtení.\"\n },\n \"notifications\": {\n \"subtitle\": \"Zvolte, o čem a jak budete informováni\",\n \"matrixLabel\": \"Upozornit mě na\",\n \"rowHeader\": \"Událost\",\n \"saving\": \"Ukládání…\",\n \"saved\": \"Uloženo\",\n \"unavailable\": \"Zatím není k dispozici\",\n \"loading\": \"Načítání předvoleb\",\n \"errorTitle\": \"Tato nastavení se nepodařilo načíst\",\n \"emptyTitle\": \"Zatím není co nastavovat\",\n \"emptyBody\": \"Události oznámení se zde objeví, jakmile budou jejich producenti nasazeni.\",\n \"saveFailed\": \"Tuto změnu se nepodařilo uložit.\"\n }\n },\n \"studio\": {\n \"source\": {\n \"engine\": {\n \"label\": \"Databázový engine\",\n \"postgres\": \"PostgreSQL\",\n \"mysql\": \"MySQL / MariaDB\",\n \"sqlite\": \"SQLite\"\n },\n \"format\": {\n \"label\": \"Formát schématu\",\n \"helper\": \"Ponechte automatickou detekci, pokud se nemýlí.\",\n \"auto\": \"Rozpoznat automaticky\",\n \"sql\": \"SQL DDL / pg_dump\",\n \"prisma\": \"Schéma Prisma\",\n \"drizzle\": \"Drizzle ORM\",\n \"typeorm\": \"Entity TypeORM\",\n \"sequelize\": \"Modely Sequelize\",\n \"rails\": \"Rails schema.rb\",\n \"django\": \"Django models.py\",\n \"json\": \"Adminium JSON\"\n },\n \"sqlite\": {\n \"file\": \"Cesta k souboru databáze\",\n \"helper\": \"SQLite je soubor, ne server — zadejte absolutní cestu na stroji, kde běží Adminium.\"\n },\n \"file\": {\n \"detectedAs\": \"Rozpoznáno: {format}\",\n \"moreWarnings\": \"+{count} dalších varování — úplný seznam se zobrazí v kroku analýzy.\",\n \"dropTitle\": \"Přetáhněte sem soubor schématu, nebo procházejte\",\n \"dropHint\": \"SQL DDL / pg_dump, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, modely Django, Adminium JSON\",\n \"pitch\": \"Není potřeba připojení k databázi — zpracujeme váš soubor schématu a postavíme stejné nástěnky.\",\n \"parsing\": \"Načítání nahraného souboru schématu…\",\n \"tables\": \"tabulek\",\n \"columns\": \"sloupců\",\n \"warnings\": \"varování\",\n \"errorTitle\": \"Soubor se nepodařilo zpracovat\",\n \"parseFailed\": \"Tento soubor se nepodařilo zpracovat. Pokud automatická detekce odhadla špatně, zvolte formát ručně a zkuste to znovu.\",\n \"unsupported\": \"Tento formát nebyl rozpoznán — podporovány jsou SQL DDL, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, modely Django a Adminium JSON. Zvolte jeden ručně a zkuste to znovu.\",\n \"requestFailed\": \"Nahrání se nezdařilo — zkontrolujte připojení a zkuste to znovu.\"\n },\n \"title\": \"Připojte svou databázi\",\n \"subtitle\": \"Nasměrujte Adminium na databázi a my z jejího schématu vygenerujeme administrační nástěnku.\",\n \"name\": \"Název připojení\",\n \"namePlaceholder\": \"Produkční Postgres\",\n \"modeLabel\": \"Režim zadání zdroje\",\n \"mode\": {\n \"dsn\": \"Připojovací řetězec\",\n \"fields\": \"Jednotlivá pole\",\n \"file\": \"Soubor schématu\"\n },\n \"dsn\": {\n \"label\": \"Připojovací řetězec\",\n \"helper\": \"postgres://uzivatel:heslo@host:5432/databaze — fungují také mysql:// a sqlite:.\",\n \"incomplete\": \"Doplňte hostitele a databázi, např. postgres://user@host:5432/db\",\n \"invalidScheme\": \"Nerozpoznané schéma — očekává se postgres://, mysql://, mariadb:// nebo sqlite:\",\n \"quickFill\": \"Rychlé vyplnění:\"\n },\n \"fields\": {\n \"host\": \"Hostitel\",\n \"port\": \"Port\",\n \"database\": \"Databáze\",\n \"user\": \"Uživatel\",\n \"password\": \"Heslo\",\n \"ssl\": \"Režim SSL\",\n \"preview\": \"Náhled připojovacího řetězce:\"\n },\n \"readOnlyRole\": {\n \"title\": \"Použijte roli jen pro čtení\",\n \"body\": \"Adminium do vaší databáze nikdy nezapisuje — nastavení používá pouze metadata schématu. Doporučujeme vyhrazeného uživatele s právy pouze SELECT; kde bude mít Adminium své vlastní tabulky, rozhodnete v kroku úložiště metadat.\"\n }\n },\n \"capability\": {\n \"mysqlApproxRows\": \"Počty řádků v MySQL jsou odhady úložného enginu (odchylka až ±40 %) — zobrazují se se znakem ≈.\",\n \"mysqlFkEnum\": \"Metadata cizích klíčů a enumů jsou v MySQL slabší: tabulky MyISAM nedeklarují cizí klíče, enumy jsou sloupcové typy enum(…) a omezení CHECK vyžadují MySQL 8.0.16+ / MariaDB 10.2+.\",\n \"sqliteCheckEnums\": \"SQLite nemá nativní typ enum — enumy se syntetizují z omezení CHECK (col IN (…)).\",\n \"sqliteNoComments\": \"SQLite nepodporuje komentáře sloupců — popisky přidejte v editoru přemapování schématu.\",\n \"importNoRowCounts\": \"Soubory se schématem neobsahují počty řádků — seznam tabulek zobrazuje — místo smyšlených čísel.\",\n \"importNoLiveHealth\": \"Bez živého databázového připojení — kontroly stavu a detekce driftu schématu nejsou pro tento zdroj dostupné.\",\n \"rowsUnavailable\": \"Soubory se schématem nemají živou databázi — počty řádků zůstanou neznámé, dokud nějakou nepřipojíte.\",\n \"rowsRunAnalyze\": \"Zatím žádný odhad — spusťte na databázi ANALYZE, aby se počty řádků doplnily.\",\n \"rowsNoEstimate\": \"Engine pro tuto tabulku nenahlásil žádný odhad.\",\n \"rowsApproximate\": \"Odhad úložného enginu — u InnoDB se může lišit až o ±40 %.\"\n },\n \"test\": {\n \"log\": {\n \"moreWarnings\": \"+{count} dalších varování parseru\",\n \"connecting\": \"Navazuje se zabezpečené připojení…\",\n \"connected\": \"Připojeno ({latency} ms) · introspekce jen pro čtení\",\n \"connectFailed\": \"Připojení se nezdařilo.\",\n \"readingSchema\": \"Čtení schématu: public\",\n \"readingFile\": \"Načítání nahraného souboru schématu…\",\n \"parsingFile\": \"Zpracovává se {file}…\",\n \"detected\": \"Zjištěno {tables} tabulek · {columns} sloupců\",\n \"found\": \"Nalezeno {tables} tabulek · {columns} sloupců\",\n \"mapping\": \"Mapování typů sloupců → vstupní widgety\",\n \"relations\": \"Zjišťování vztahů…\",\n \"piiScan\": \"Vyhledávání sloupců s PII…\",\n \"piiDone\": \"Kontrola PII dokončena — {count} sloupců ve výchozím stavu maskováno\",\n \"piiDoneUnknown\": \"Kontrola PII dokončena\",\n \"jobFailed\": \"Introspekce se nezdařila.\",\n \"networkFailed\": \"Požadavek se nezdařil — zkontrolujte připojení a zkuste to znovu.\",\n \"ready\": \"Připraveno\"\n },\n \"title\": \"Analýza vašeho schématu\",\n \"subtitle\": \"Probíhá introspekce tabulek, sloupců a vztahů. Zabere to pár sekund.\",\n \"trust\": \"Vaše schéma a data pouze čteme. Nic se nemění.\",\n \"errorTitle\": \"Připojení se nezdařilo\",\n \"retry\": \"Zkusit znovu\",\n \"logLabel\": \"Protokol introspekce\",\n \"hint\": {\n \"auth\": \"Ověření se nezdařilo — zkontrolujte uživatelské jméno a heslo v DSN.\",\n \"hostUnreachable\": \"Hostitel je nedostupný — zkontrolujte název hostitele a port a že databáze přijímá připojení z tohoto stroje (povolte naše IP adresy).\",\n \"metaPlacement\": \"Tento zdroj nemůže hostit meta tabulky Adminia — pokračujte se samostatnou meta databází.\",\n \"permission\": \"Role se připojila, ale nemá oprávnění číst schéma — udělte introspekční roli právo USAGE na schéma.\",\n \"timeout\": \"Databáze neodpověděla včas — zkontrolujte síťovou cestu a zátěž a zkuste to znovu.\",\n \"tls\": \"Vyjednávání TLS se nezdařilo — zkuste sslmode=require, nebo nahrajte certifikát CA, který váš server očekává.\",\n \"unknown\": \"Připojení se nezdařilo — ověřte DSN a zkuste to znovu.\"\n }\n },\n \"tables\": {\n \"importNoCounts\": \"Soubory se schématem neobsahují počty řádků — sloupec zobrazuje —, dokud nepřipojíte živou databázi.\",\n \"title\": \"Vyberte tabulky\",\n \"subtitle\": \"Zvolte, které zahrnout. Kdykoli to můžete změnit.\",\n \"search\": \"Filtrovat tabulky…\",\n \"listLabel\": \"Tabulky k zahrnutí\",\n \"emptyFilter\": \"Žádné tabulky neodpovídají filtru.\",\n \"pii\": \"PII\",\n \"highVolume\": \"velký objem\",\n \"highVolumeNote\": \"Tabulky s více než 100 000 řádky začínají odškrtnuté — provozní tabulky do nástěnky patří jen zřídka.\",\n \"joinHidden\": \"{count} spojovacích/systémových tabulek je předem skryto — vztahy M:N ale stále zajišťují.\"\n },\n \"hub\": {\n \"title\": \"Datová připojení\",\n \"subtitle\": \"{healthy, number} z {total, plural, one {# připojení} few {# připojení} other {# připojení}} v pořádku\",\n \"connectNew\": \"Nové připojení\",\n \"stats\": {\n \"connections\": \"Připojení\",\n \"healthy\": \"V pořádku\",\n \"tables\": \"Zahrnuté tabulky\",\n \"pages\": \"Vygenerované stránky\"\n },\n \"status\": {\n \"connected\": \"Připojeno\",\n \"error\": \"Chyba\",\n \"unconfigured\": \"Koncept\",\n \"testing\": \"Testuje se…\"\n },\n \"card\": {\n \"readOnly\": \"Jen pro čtení\",\n \"tables\": \"Tabulky\",\n \"pages\": \"Stránky\",\n \"latency\": \"Latence\",\n \"latencyMs\": \"{latency, number} ms\",\n \"lastIntrospected\": \"Poslední introspekce\",\n \"never\": \"Nikdy\"\n },\n \"action\": {\n \"test\": \"Otestovat\",\n \"reintrospect\": \"Znovu introspektovat\",\n \"reintrospectFile\": \"Zdroje ze souboru se schématem nemají živou databázi — nahrajte soubor znovu.\",\n \"remap\": \"Přemapovat schéma\",\n \"delete\": \"Smazat\"\n },\n \"test\": {\n \"ok\": \"Připojení v pořádku · {latency, number} ms\",\n \"failed\": \"Test připojení selhal\"\n },\n \"introspect\": {\n \"noChanges\": \"Schéma beze změn — žádný nový snímek.\",\n \"updated\": \"Schéma znovu introspektováno\",\n \"masksProposed\": \"{count, plural, one {# sloupec navržen} few {# sloupce navrženy} other {# sloupců navrženo}} k maskování — zkontrolujte v editoru přemapování.\",\n \"failed\": \"Introspekce selhala. Zkuste to znovu.\"\n },\n \"delete\": {\n \"title\": \"Smazat připojení\",\n \"body\": \"Tímto smažete „{name}“ a z něj vygenerované stránky. Vaší databáze se to nijak nedotkne.\",\n \"prompt\": \"Potvrďte zadáním {name}\",\n \"confirm\": \"Smazat připojení\",\n \"cancel\": \"Zrušit\",\n \"close\": \"Zavřít\",\n \"success\": \"Připojení „{name}“ smazáno\",\n \"failed\": \"Připojení se nepodařilo smazat. Zkuste to znovu.\"\n },\n \"empty\": {\n \"title\": \"Zatím žádné zdroje dat\",\n \"body\": \"Připojte databázi a Adminium z jejího schématu vygeneruje váš administrační panel.\",\n \"cta\": \"Připojit databázi\"\n }\n },\n \"settingsHub\": {\n \"title\": \"Nastavení workspace\",\n \"subtitle\": \"Identita, zabezpečení a destruktivní akce tohoto workspace.\",\n \"save\": \"Uložit změny\",\n \"saved\": \"Nastavení workspace aktualizováno\",\n \"saveFailed\": \"Nastavení workspace se nepodařilo uložit. Zkuste to znovu.\",\n \"superAdminOnlyTitle\": \"Vyžadován super admin\",\n \"superAdminOnly\": \"Identitu a zabezpečení workspace může měnit pouze super admin.\",\n \"identity\": {\n \"heading\": \"Identita workspace\",\n \"appName\": {\n \"label\": \"Název aplikace\",\n \"helper\": \"Zobrazuje se v postranním panelu, v titulku prohlížeče a v e-mailech.\",\n \"error\": \"Zadejte název o délce nejvýše 60 znaků.\"\n }\n },\n \"security\": {\n \"heading\": \"Zabezpečení\",\n \"require2fa\": {\n \"label\": \"Vyžadovat dvoufaktorové ověření\",\n \"desc\": \"Každý člen musí mít pro přihlášení zapnuté 2FA.\"\n },\n \"allowSignup\": {\n \"label\": \"Povolit samoregistraci\",\n \"desc\": \"Účet si může založit kdokoli — při vypnutí zůstává workspace jen na pozvánky.\"\n },\n \"sessionTtl\": {\n \"label\": \"Životnost relace (hodiny)\",\n \"error\": \"Mezi {min, number} a {max, number} hodinami.\"\n },\n \"passwordMin\": {\n \"label\": \"Minimální délka hesla\",\n \"error\": \"Mezi {min, number} a {max, number} znaky.\"\n }\n },\n \"review\": {\n \"title\": \"Uložit nastavení workspace\",\n \"subtitle\": \"Před uložením zkontrolujte změny.\",\n \"confirm\": \"Uložit změny\",\n \"cancel\": \"Zrušit\",\n \"close\": \"Zavřít\",\n \"on\": \"Zapnuto\",\n \"off\": \"Vypnuto\",\n \"change\": \"{before} → {after}\"\n },\n \"defaultsCard\": {\n \"heading\": \"Výchozí vzhled a jazyk\",\n \"body\": \"Motiv, akcentová barva, hustota a jazyk pro celý workspace najdete ve výchozím globálním nastavení.\",\n \"cta\": \"Otevřít globální výchozí nastavení\"\n },\n \"danger\": {\n \"heading\": \"Nebezpečná zóna\",\n \"subtitle\": \"Nevratné akce.\",\n \"empty\": \"Není co mazat — zatím žádná připojení.\",\n \"deleteDesc\": \"Smaže připojení a z něj vygenerované stránky. Vaší databáze se to nedotkne. Nelze vzít zpět.\",\n \"deleteCta\": \"Smazat připojení\"\n },\n \"aiCard\": {\n \"heading\": \"Obohacení pomocí AI\",\n \"body\": \"Nastavte poskytovatele AI (nebo okruh kopírovat-vložit) k obohacení popisků, skupin a vztahů.\",\n \"cta\": \"Otevřít nastavení AI\"\n }\n },\n \"settingsAi\": {\n \"title\": \"Obohacení pomocí AI\",\n \"subtitle\": \"Připojte model, aby Adminium navrhoval popisky, skupiny, vztahy a další — vždy zkontrolováno jako rozdíl, než se cokoli použije.\",\n \"saved\": \"Poskytovatel AI uložen\",\n \"saveFailed\": \"Poskytovatele AI se nepodařilo uložit. Zkuste to znovu.\",\n \"save\": \"Uložit poskytovatele\",\n \"test\": \"Otestovat připojení\",\n \"testHintDirty\": \"Před testem uložte změny.\",\n \"testing\": \"Kontaktuji poskytovatele…\",\n \"testError\": \"Test selhal\",\n \"testErrorBody\": \"Poskytovatele se nepodařilo kontaktovat. Zkontrolujte klíč a základní URL.\",\n \"testOk\": \"Připojeno k {model} za {latency} ms\",\n \"testUnknownModel\": \"poskytovateli\",\n \"provider\": {\n \"heading\": \"Poskytovatel AI\",\n \"subtitle\": \"Vyberte, jak Adminium osloví model pro obohacení vašeho schématu. Klíče se ukládají zašifrované a už se nikdy nezobrazí.\",\n \"active\": \"Aktivní\",\n \"anthropic\": {\n \"label\": \"Anthropic\",\n \"desc\": \"Modely Claude přes API Anthropic.\"\n },\n \"openai\": {\n \"label\": \"OpenAI\",\n \"desc\": \"Modely GPT přes API OpenAI.\"\n },\n \"openaiCompatible\": {\n \"label\": \"Kompatibilní s OpenAI\",\n \"desc\": \"Jakýkoli koncový bod ve formátu OpenAI — Groq, Together, vLLM, LM Studio.\"\n },\n \"ollama\": {\n \"label\": \"Ollama (lokálně)\",\n \"desc\": \"Modely běžící lokálně přes Ollama — bez klíče, bez cloudu.\"\n },\n \"requiresNetwork\": \"Vyžaduje internet a API klíč\",\n \"networkDisabledTitle\": \"Přímí AI poskytovatelé jsou v této instalaci vypnuti\",\n \"networkDisabledBody\": \"Toto Adminium je nastaveno bez odchozího přístupu k internetu, takže nemůže oslovit API poskytovatele. Použijte níže kolečko kopírovat-vložit — nepotřebuje klíč ani síť.\"\n },\n \"configure\": {\n \"heading\": \"Nastavit {provider}\"\n },\n \"field\": {\n \"baseUrl\": \"Základní URL\",\n \"baseUrlOptional\": \"Ponechte beze změny, pokud Ollama neběží na jiném hostiteli.\",\n \"baseUrlHelper\": \"Kořen koncového bodu, který obsluhuje /chat/completions.\",\n \"model\": \"Model\",\n \"modelFreeText\": \"Zadejte přesné ID modelu, který váš koncový bod obsluhuje.\",\n \"modelLive\": \"Načteno živě od poskytovatele.\",\n \"modelStatic\": \"Ověřený seznam; po uložení zadejte vlastní ID pro obnovení.\",\n \"modelLoading\": \"Načítání…\",\n \"modelPlaceholder\": \"Vyberte model…\",\n \"key\": \"Klíč API\",\n \"keyStored\": \"Uloženo zašifrované. Nahraďte jej, chcete-li použít jiný klíč.\",\n \"keyMask\": \"sk-…{last4}\",\n \"keyReplace\": \"Nahradit klíč\",\n \"keyOptional\": \"Volitelné — některé koncové body žádný klíč nepotřebují.\",\n \"keyWriteOnly\": \"Pouze pro zápis: po uložení se už nikdy nezobrazí.\",\n \"noKeyTitle\": \"Klíč API není potřeba\",\n \"noKeyBody\": \"Ollama běží lokálně, takže nic neopouští tento počítač.\"\n },\n \"runStatus\": {\n \"draft\": \"Koncept\",\n \"running\": \"Probíhá\",\n \"awaitingResponse\": \"Čeká na odpověď\",\n \"validated\": \"Ověřeno\",\n \"applied\": \"Použito\",\n \"partiallyApplied\": \"Částečně použito\",\n \"failed\": \"Selhalo\",\n \"discarded\": \"Zahozeno\"\n },\n \"byo\": {\n \"heading\": \"Bez klíče? Použijte svůj vlastní nástroj AI\",\n \"subtitle\": \"Okruh kopírovat-vložit — nic neopouští tento počítač.\",\n \"body\": \"Studio umí z vašeho schématu vygenerovat samostatný prompt. Spusťte jej v Claude Code, ChatGPT nebo libovolném nástroji a vrácené JSON vložte zpět do průvodce připojením. Stejná validace, stejná kontrola, stejný výsledek jako přímá cesta.\",\n \"guaranteeTitle\": \"Záruka bez telemetrie\",\n \"guarantee1\": \"Prompt nese jen vaše schéma a agregované statistiky — ve výchozím stavu nikdy data řádků.\",\n \"guarantee2\": \"Nejsou vloženy žádné přihlašovací údaje, URL instance ani identifikátory.\",\n \"guarantee3\": \"Běhy BYO nedělají žádné síťové volání.\",\n \"promptVersion\": \"Prompt {version}\",\n \"schemaVersion\": \"Schéma {version}\",\n \"headingRecommended\": \"Použijte vlastní AI nástroj — klíč není potřeba\",\n \"recommended\": \"Doporučeno\"\n },\n \"history\": {\n \"heading\": \"Historie běhů\",\n \"subtitle\": \"Předchozí běhy obohacení. Otevřete některý pro kontrolu jeho návrhů.\",\n \"tableLabel\": \"Běhy obohacení\",\n \"colDate\": \"Datum\",\n \"colSource\": \"Zdroj\",\n \"colStatus\": \"Stav\",\n \"colChunks\": \"Bloky\",\n \"openReview\": \"Otevřít kontrolu běhu z {date}\",\n \"connection\": \"Připojení\",\n \"empty\": \"Zatím žádné běhy obohacení. Obohaťte schéma z průvodce připojením a historie se zobrazí zde.\",\n \"errorTitle\": \"Běhy se nepodařilo načíst\",\n \"errorBody\": \"Zkuste to znovu obnovením stránky.\",\n \"noConnections\": \"Nejprve připojte databázi — běhy obohacení se zaznamenávají u každého připojení.\",\n \"byo\": \"BYO\",\n \"directPath\": \"Přímá\"\n }\n },\n \"enrich\": {\n \"title\": \"Obohatit pomocí AI\",\n \"subtitle\": \"Volitelně vylepšete vygenerované popisky, skupiny, výčty a nástěnky pomocí LLM. Heuristický základ funguje i bez toho — toto pouze přidává návrhy, které před použitím zkontrolujete.\",\n \"intentLabel\": \"Jak chcete obohatit?\",\n \"sectionsLegend\": \"O čem má AI rozhodovat?\",\n \"localesLegend\": \"Přeložit popisky do\",\n \"localeLocked\": \"(povinné)\",\n \"samplingTitle\": \"Zahrnout ukázkové hodnoty\",\n \"samplingHint\": \"Do promptu zahrne až 20 skutečných hodnot na sloupec bez PII.\",\n \"samplingPreviewTitle\": \"Co opouští tento počítač\",\n \"samplingPreviewBody\": \"Až 20 nejčastějších hodnot na sloupec bez PII, plus min/max u číselných a datumových sloupců. Sloupce označené jako PII se nikdy nevzorkují. Vše ostatní zůstává pouze agregované. Před kopírováním (BYO) zkontrolujte přesný prompt — bez vaší akce se nic neodešle.\",\n \"noSections\": \"Vyberte alespoň jednu skupinu rozhodnutí k obohacení.\",\n \"generatePrompt\": \"Vygenerovat prompt\",\n \"startProvider\": \"Spustit obohacení\",\n \"startOver\": \"Začít znovu\",\n \"copied\": \"Zkopírováno\",\n \"createFailed\": \"Prompt pro obohacení se nepodařilo sestavit — zkuste to znovu.\",\n \"createFailedTitle\": \"Nelze spustit\",\n \"providerFallback\": \"váš poskytovatel AI\",\n \"fileTitle\": \"Obohacení pomocí AI vyžaduje živou databázi\",\n \"fileBody\": \"Zdroje ze souboru se schématem zatím nemají snímek k obohacení. Připojte živou databázi pro obohacení pomocí AI, nebo pokračujte — heuristický základ i tak vygeneruje kompletní aplikaci.\",\n \"section\": {\n \"labels\": \"Popisky a popisy\",\n \"groups\": \"Navigační skupiny\",\n \"enums\": \"Sémantika výčtů\",\n \"relations\": \"Vztahy\",\n \"keys\": \"Klíčové sloupce\",\n \"templates\": \"Šablony stránek\",\n \"widgets\": \"Widgety nástěnky\",\n \"pii\": \"PII a maskování\",\n \"icons\": \"Ikony\",\n \"microcopy\": \"Mikrotexty\"\n },\n \"provider\": {\n \"title\": \"Použít mého poskytovatele AI\",\n \"description\": \"Spusťte obohacení nyní s nakonfigurovaným poskytovatelem. Každý návrh zkontrolujete jako rozdíl.\",\n \"unconfigured\": \"Zatím není nakonfigurován žádný poskytovatel AI — zkopírujte prompt do vlastního nástroje níže, nebo nejprve nakonfigurujte poskytovatele.\",\n \"settingsHint\": \"Chcete jej spustit přímo?\",\n \"settingsLink\": \"Nakonfigurujte poskytovatele v Nastavení → AI\",\n \"networkDisabled\": \"Toto Adminium nemá odchozí přístup k internetu, takže nemůže oslovit API poskytovatele. Použijte místo toho kolečko kopírovat-vložit — stejný prompt, stejná kontrola.\"\n },\n \"byo\": {\n \"cardTitle\": \"Zkopírovat prompt do vlastního nástroje AI\",\n \"cardDescription\": \"Zkopírujte samostatný prompt do Claude Code, ChatGPT, čehokoli — a poté vložte JSON zpět. Není potřeba klíč, nic tento počítač automaticky neopouští.\",\n \"guidance\": \"Spusťte to v jakémkoli nástroji AI — Claude Code, ChatGPT, cokoli. Vložte vrácený JSON níže.\",\n \"promptLabel\": \"Prompt obohacení\",\n \"promptLabelN\": \"Prompt obohacení {index} z {total}\",\n \"tokenChip\": \"≈ {tokens} tokenů\",\n \"copyPrompt\": \"Kopírovat prompt\",\n \"copyPromptDone\": \"Prompt zkopírován\",\n \"download\": \"Stáhnout .md\",\n \"chunkTabs\": \"Části promptu\",\n \"chunkTab\": \"Prompt {index}\",\n \"chunkValid\": \"Část {index} ověřena\",\n \"pasteLabel\": \"Vložte odpověď JSON\",\n \"pastePlaceholder\": \"Sem vložte odpověď JSON…\",\n \"validate\": \"Ověřit\",\n \"valid\": \"Odpověď ověřena\",\n \"mergedTitle\": \"Všech {count} částí ověřeno a sloučeno\",\n \"mergedTitleSingle\": \"Odpověď ověřena\",\n \"mergedBody\": \"Návrhy jsou připraveny ke kontrole vůči heuristickému základu.\",\n \"errorsTitle\": \"Ověření našlo {count} problémů\",\n \"copyErrors\": \"Kopírovat chyby pro váš nástroj AI\",\n \"copyErrorsDone\": \"Chyby zkopírovány\",\n \"copyErrorsHint\": \"Vložte to zpět do svého nástroje AI a získejte opravenou odpověď.\",\n \"droppedItems\": \"{count} návrhů bylo při ověření vyřazeno — kontrola zobrazuje zbytek.\",\n \"pendingTitle\": \"Pokračujte ověřením každého promptu\",\n \"pendingBody\": \"Vložte odpověď JSON výše a ověřte ji, abyste mohli pokračovat ke kontrole.\",\n \"pendingBodyChunked\": \"Každá část musí být ověřena, než se návrhy sloučí. Vložte a ověřte každý prompt výše.\",\n \"requestFailed\": \"Server nebyl pro ověření dostupný — zkuste to znovu.\",\n \"continueReview\": \"Pokračovat ke kontrole\",\n \"wholeDocument\": \"celý dokument\",\n \"cardTitleRecommended\": \"Zkopírovat prompt do vlastního AI nástroje — doporučeno\"\n },\n \"direct\": {\n \"title\": \"Obohacování pomocí AI\",\n \"subtitle\": \"Odesílání vašeho schématu do\",\n \"building\": \"Sestavování promptu…\",\n \"logLabel\": \"Protokol obohacení\",\n \"cancel\": \"Zrušit\",\n \"back\": \"Zpět na možnosti\",\n \"retry\": \"Zkusit znovu\",\n \"done\": \"Obohacení dokončeno — zkontrolujte návrhy.\",\n \"continueReview\": \"Pokračovat ke kontrole\",\n \"failed\": \"Běh poskytovatele selhal. Zkontrolujte nastavení AI a zkuste to znovu.\",\n \"jobFailed\": \"Běh obohacení nebyl dokončen.\",\n \"startFailed\": \"Běh se nepodařilo spustit — zkuste to znovu.\",\n \"errorTitle\": \"Obohacení selhalo\"\n },\n \"skip\": {\n \"title\": \"Přeskočit — použít pouze heuristiku\",\n \"description\": \"Generovat z heuristického základu. Obohatit můžete později v Nastavení → AI — přeskočení není nikdy penalizováno.\",\n \"confirmTitle\": \"Pokračování s heuristikou\",\n \"confirmBody\": \"Vygenerovaná aplikace použije heuristické popisky, skupiny a nástěnky. Pokračujte v generování — obohacení pomocí AI můžete kdykoli spustit v Nastavení → AI.\"\n }\n },\n \"review\": {\n \"unavailableTitle\": \"Obrazovka kontroly není k dispozici\",\n \"unavailableBody\": \"Tento build zatím obrazovku kontroly obohacení neobsahuje (06-T14). Přijde s tokem rozdílu a použití.\"\n },\n \"llmRuns\": {\n \"review\": {\n \"header\": {\n \"title\": \"Zkontrolovat návrhy AI\",\n \"model\": \"Model\",\n \"snapshot\": \"Snímek\",\n \"byo\": \"BYO\",\n \"pathDirect\": \"Přímé API\",\n \"pathByo\": \"Kopírovat a vložit\",\n \"agree\": \"{n} shodných\",\n \"conflict\": \"{n} konfliktů\",\n \"new\": \"{n} nových\",\n \"rejects\": \"{n} zamítnutí\",\n \"countsAria\": \"Počty návrhů\"\n },\n \"bulk\": {\n \"thresholdLabel\": \"Práh spolehlivosti\",\n \"thresholdAria\": \"Práh spolehlivosti pro „Přijmout vše“\",\n \"acceptAll\": \"Přijmout vše ≥ {pct}%\",\n \"clear\": \"Zrušit výběr\"\n },\n \"section\": {\n \"selectAllAria\": \"Vybrat vše v {group}\",\n \"acceptedCount\": \"{n} přijato\"\n },\n \"group\": {\n \"labels\": \"Popisky a překlady\",\n \"navigation\": \"Navigace a domény\",\n \"enums\": \"Sémantika výčtů\",\n \"relations\": \"Vztahy\",\n \"keys\": \"Klíčové sloupce\",\n \"templates\": \"Šablony stránek\",\n \"dashboards\": \"Nástěnky a widgety\",\n \"pii\": \"Osobní údaje a maskování\",\n \"icons\": \"Ikony\",\n \"microcopy\": \"Mikrotexty\"\n },\n \"status\": {\n \"agree\": \"Souhlasí\",\n \"conflict\": \"Konflikt\",\n \"new\": \"Nový\",\n \"heuristicOnly\": \"Pouze heuristika\",\n \"rejects\": \"Zamítá heuristiku\",\n \"locked\": \"Uzamčeno\"\n },\n \"row\": {\n \"acceptAria\": \"Přijmout návrh {noun} pro {target}\",\n \"keptEdited\": \"ponecháno – upraveno vámi\",\n \"rejectsCallout\": \"AI zamítá heuristické rozhodnutí – před přijetím potvrďte.\",\n \"showTranslations\": \"Zobrazit překlady\",\n \"hideTranslations\": \"Skrýt překlady\",\n \"confidenceAria\": \"Spolehlivost {pct}%\",\n \"noAi\": \"Žádný návrh AI\"\n },\n \"value\": {\n \"none\": \"Žádná hodnota\",\n \"absent\": \"Žádná\",\n \"dash\": \"—\",\n \"display\": \"Zobrazení\",\n \"key\": \"Klíč\",\n \"rank\": \"pořadí {n}\",\n \"span\": \"šířka {n}\",\n \"tableCount\": \"{n} tabulek\",\n \"widgetCount\": \"{n} widgetů\",\n \"enumWorkflow\": \"Pracovní postup\",\n \"enumCategory\": \"Kategorie\",\n \"notPii\": \"Nejsou osobní údaje\",\n \"label\": \"Popisek\",\n \"description\": \"Popis\",\n \"subtitle\": \"Podtitul stránky\",\n \"headline\": \"Nadpis prázdného stavu\",\n \"guidance\": \"Pokyn prázdného stavu\"\n },\n \"apply\": {\n \"title\": \"Použít {n} návrhů\",\n \"subtitle\": \"Tyto změny se zapíší v jedné transakci a lze je vrátit zpět.\",\n \"empty\": \"Není vybráno nic k použití.\",\n \"confirm\": \"Použít změny\"\n },\n \"footer\": {\n \"count\": \"Vybráno {n} návrhů\",\n \"apply\": \"Použít {n} přijatých návrhů\",\n \"failed\": \"Použití selhalo\"\n },\n \"toast\": {\n \"applied\": \"Použito {n} návrhů\",\n \"appliedPartial\": \"Použito {n} návrhů (některé přeskočeny)\",\n \"applyFailed\": \"Návrhy se nepodařilo použít\",\n \"undoFailed\": \"Tuto změnu se nepodařilo vrátit zpět\"\n },\n \"error\": {\n \"title\": \"Tento běh se nepodařilo načíst\"\n },\n \"notReady\": {\n \"title\": \"Tento běh zatím nemá návrhy ke kontrole\",\n \"body\": \"Běh musí být ověřen, než bude možné jeho návrhy zkontrolovat. Nejprve vygenerujte nebo vložte odpověď.\"\n },\n \"applied\": {\n \"title\": \"Tento běh byl použit\",\n \"body\": \"Přijaté návrhy níže jsou pouze ke čtení.\"\n },\n \"empty\": {\n \"title\": \"Žádné návrhy\",\n \"body\": \"Tento běh nevytvořil žádné návrhy ke kontrole.\"\n },\n \"cat\": {\n \"label\": \"popisek\",\n \"key\": \"klíčové sloupce\",\n \"enum\": \"výčet\",\n \"relation\": \"vztah\",\n \"pii\": \"osobní údaje\",\n \"template\": \"šablona stránky\",\n \"group\": \"navigační skupina\",\n \"dashboard\": \"nástěnka\",\n \"widget\": \"widget\",\n \"copy\": \"mikrotext\"\n }\n }\n },\n \"wizard\": {\n \"title\": \"Nové připojení\",\n \"back\": \"Zpět\",\n \"continue\": \"Pokračovat\",\n \"progress\": \"Průběh nastavení\",\n \"persistFailed\": \"Výběr tabulek se nepodařilo uložit — zkuste to znovu.\",\n \"persistFailedTitle\": \"Uložení se nezdařilo\",\n \"step\": {\n \"source\": \"Zdroj\",\n \"test\": \"Analyzovat\",\n \"tables\": \"Tabulky\",\n \"meta\": \"Úložiště metadat\",\n \"intent\": \"Záměr\",\n \"enrich\": \"Obohatit\",\n \"generate\": \"Generovat\"\n }\n },\n \"meta\": {\n \"title\": \"Kde má Adminium uchovávat své vlastní tabulky?\",\n \"subtitle\": \"Stránky, role, auditní log a nastavení žijí v tabulkách s předponou adminium_ — nikdy se nemíchají s vašimi daty.\",\n \"sameDb\": {\n \"title\": \"Stejná databáze\",\n \"description\": \"Tabulky adminium_* se vytvoří vedle vašich zdrojových tabulek. Nejjednodušší nastavení — vyžaduje roli s právy zápisu a CREATE TABLE.\",\n \"disabledReadOnly\": \"Vaše role je jen pro čtení — Adminium do této databáze nikdy nezapisuje. Zvolte pro vlastní tabulky Adminia samostatnou databázi.\",\n \"disabledNoDdl\": \"Tato role nemůže spouštět DDL — migrace Adminia vyžadují CREATE TABLE. Zvolte pro vlastní tabulky Adminia samostatnou databázi.\",\n \"disabledFile\": \"Soubor schématu nemá živou databázi — zvolte pro vlastní tabulky Adminia samostatnou databázi.\"\n },\n \"separate\": {\n \"title\": \"Samostatná databáze\",\n \"description\": \"Adminium drží své tabulky v jiné databázi. Váš zdroj zůstává nedotčen — vyžadováno pro zdroje jen pro čtení.\",\n \"dsn\": \"Připojovací řetězec meta databáze\",\n \"helper\": \"Vyžaduje práva zápisu + DDL — Adminium tam spouští vlastní migrace.\",\n \"test\": \"Otestovat připojení\",\n \"ok\": \"Kompatibilní — zápis ✓ · DDL ✓\",\n \"insufficient\": \"Tato role nemůže hostit meta úložiště — Adminium tam potřebuje práva zápisu a CREATE TABLE.\",\n \"errorTitle\": \"Meta úložiště není kompatibilní\"\n },\n \"testFailed\": \"Připojení se nezdařilo.\",\n \"v1Note\": {\n \"title\": \"O této instalaci\",\n \"body\": \"Tento server si zvolil své meta úložiště při prvním spuštění. Tento krok ověří, že je vaše volba kompatibilní s tímto připojením, a zaznamená ji — server vynucuje stejné pravidlo nezávisle (409 META_PLACEMENT_INVALID). Přesun existujícího meta úložiště je provozní úkol (M10).\"\n }\n },\n \"intent\": {\n \"title\": \"Co potřebujete?\",\n \"subtitle\": \"Záměr určuje, které stránky se vygenerují. Později ho můžete změnit — změna navrhne regeneraci, nikdy tiché přepsání.\",\n \"trust\": \"Čteme pouze vaše schéma — během nastavení nikdy vaše řádková data.\",\n \"fullAdmin\": {\n \"title\": \"Kompletní administrace\",\n \"description\": \"Nástěnky, CRUD stránky, vyhledávání, importy a exporty — vše, co vaše schéma podporuje.\"\n },\n \"analytics\": {\n \"title\": \"Analytika jen pro čtení\",\n \"description\": \"Nástěnky, grafy a mřížky jen pro čtení. Žádné formuláře, žádné zápisy — každá role omezena na Prohlížejícího.\"\n },\n \"crud\": {\n \"title\": \"CRUD tabulky\",\n \"description\": \"Jedna editační stránka na tabulku plus vyhledávání a import/export — minimální domov, žádné nástěnky.\"\n },\n \"support\": {\n \"title\": \"Konzole podpory\",\n \"description\": \"Nejprve fronty, stránky tiketů a detailů zákazníků. Mazání ve výchozím stavu vypnuto. (Šablony front přijdou v M7 — sada stránek v1 odpovídá kompletní administraci.)\"\n }\n },\n \"generate\": {\n \"title\": \"Vygenerujte svou aplikaci\",\n \"subtitle\": \"Jedna stránka na zahrnutou tabulku plus nástěnky podle domény — záměr:\",\n \"run\": \"Vygenerovat nástěnku\",\n \"openApp\": \"Otevřít aplikaci\",\n \"logLabel\": \"Protokol generování\",\n \"log\": {\n \"classifying\": \"Klasifikace schématu…\",\n \"composing\": \"Skládání šablon…\",\n \"writing\": \"Zapisování stránek…\",\n \"done\": \"Vygenerováno {pages} stránek v {groups} navigačních skupinách\"\n },\n \"successTitle\": \"Vaše nástěnka je připravena\",\n \"successBody\": \"{pages} stránek v {groups} navigačních skupinách — vygenerováno z vašeho schématu, upravitelné ve Studiu.\",\n \"errorTitle\": \"Generování se nezdařilo\",\n \"failed\": \"Generování se nezdařilo — zkuste to znovu, nebo nejprve znovu spusťte introspekci.\",\n \"fileTitle\": \"Soubor schématu zpracován — generování vyžaduje živou databázi\",\n \"fileBody\": \"Vaše schéma se zpracovalo čistě a náhled výše je skutečný. Generování běžící aplikace přímo ze souboru schématu (se zástupnými řádky) zatím není k dispozici — připojte živou databázi a generujte hned.\"\n },\n \"remap\": {\n \"column\": {\n \"nullable\": \"může být NULL\",\n \"labelOverride\": \"Zobrazovaný popisek\",\n \"labelHelper\": \"Odvozeno: {name}\",\n \"logicalType\": \"Logický typ\",\n \"logicalTypeHelper\": \"Odvozeno: {type} (z {dbType}) — mapuje adaptér; ve v1 nelze přepsat.\",\n \"semantic\": \"Sémantický typ\",\n \"unclassified\": \"Zatím neklasifikováno.\",\n \"semanticHelper\": \"Klasifikátor: {tag} · spolehlivost {confidence}% · zdroj: {source}\",\n \"semanticInferred\": \"odvozeno: {tag}\",\n \"currency\": \"Měna\",\n \"currencyHelper\": \"Kód ISO 4217 použitý při formátování peněžních částek.\",\n \"pii\": \"Ve výchozím stavu maskovat\",\n \"piiHelper\": \"Maskované hodnoty se zobrazují skryté; odmaskování vyžaduje oprávnění data.unmask_pii a zaznamenává se do auditního logu.\",\n \"enum\": \"Sémantika výčtu\",\n \"enumKind\": \"Druh výčtu\",\n \"enumWorkflow\": \"Pracovní postup\",\n \"enumCategory\": \"Kategorie\",\n \"enumLabelFor\": \"Popisek pro {value}\",\n \"enumToneFor\": \"Tón pro {value}\",\n \"enumToneAuto\": \"automaticky\",\n \"enumHelper\": \"Výčty typu pracovní postup řídí stavové štítky a sloupce kanbanu; tóny mapují hodnoty na škálu sémantických odstínů.\"\n },\n \"diff\": {\n \"one\": \"1 změna\",\n \"count\": \"Změny: {count}\",\n \"saved\": \"Úpravy uloženy.\",\n \"revertOne\": \"Vrátit {change} zpět\",\n \"regenerate\": \"Znovu vygenerovat stránky\",\n \"revertAll\": \"Vrátit vše zpět\",\n \"save\": \"Uložit úpravy\"\n },\n \"table\": {\n \"iconPicker\": \"Ikona tabulky\",\n \"system\": \"Systémová\",\n \"labelOverride\": \"Zobrazovaný popisek\",\n \"labelHelper\": \"Odvozeno: {name}\",\n \"icon\": \"Ikona\",\n \"navGroup\": \"Navigační skupina\",\n \"navGroupHelper\": \"Umístění v navigaci určuje generátor — úprava table.navGroup není ve slovníku v1.\",\n \"include\": \"Zahrnout do vygenerované aplikace\",\n \"includeHelper\": \"Vyloučené tabulky nedostanou žádné stránky a zmizí z navigace.\",\n \"shape\": \"Tvar tabulky (klasifikovaný)\",\n \"role\": \"Role\",\n \"unclassified\": \"Neklasifikováno\",\n \"kind\": \"Druh\",\n \"hierarchy\": \"Hierarchie\",\n \"selfFk\": \"Odkaz na sebe přes {column}\",\n \"polymorphic\": \"Polymorfní dvojice\",\n \"rows\": \"Odhad počtu řádků\",\n \"shapeHelper\": \"Klasifikace se přepočítává při každé introspekci; úpravy se vrství navrch a přežijí regeneraci.\"\n },\n \"relations\": {\n \"declared\": \"Deklarované cizí klíče\",\n \"noneDeclared\": \"Této tabulky se nedotýkají žádné deklarované cizí klíče.\",\n \"inferred\": \"Odvozené vztahy\",\n \"noneInferred\": \"Pro tuto tabulku nebylo nic odvozeno.\",\n \"confidence\": \"odvozeno · {pct}%\",\n \"accepted\": \"Přijato\",\n \"suppressed\": \"Potlačeno\",\n \"accept\": \"Přijmout\",\n \"suppress\": \"Potlačit\",\n \"overrides\": \"Úpravy vztahů (použité)\",\n \"overrideBadge\": \"úprava\",\n \"add\": \"Přidat virtuální vztah\",\n \"fromColumn\": \"Ze sloupce\",\n \"noColumns\": \"Žádný odpovídající sloupec\",\n \"fromPlaceholder\": \"customer_id\",\n \"toTable\": \"Do tabulky\",\n \"noTables\": \"Žádná odpovídající tabulka\",\n \"toColumn\": \"Do sloupce\",\n \"cardinality\": \"Kardinalita\",\n \"addButton\": \"Přidat vztah\"\n },\n \"toast\": {\n \"saved\": \"Úpravy schématu uloženy\",\n \"savedDetail\": \"Použité schéma níže odráží vaše změny.\",\n \"regenerated\": \"{created} vytvořeno · {updated} aktualizováno · {unchanged} beze změny\",\n \"regeneratedDetail\": \"Ručně upravené stránky zůstávají zachovány — na místě byly znovu vygenerovány pouze stránky s nedotčeným generated_hash.\",\n \"regenerateFailed\": \"Regenerace se nezdařila\"\n },\n \"title\": \"Přemapování schématu\",\n \"subtitle\": \"{tables} tabulek · použito {applied} úprav\",\n \"saveFailed\": \"Uložení se nezdařilo: {message}\",\n \"loadFailed\": \"Schéma pro toto připojení se nepodařilo načíst.\",\n \"inspector\": \"Inspektor\",\n \"empty\": {\n \"title\": \"Vyberte tabulku nebo sloupec\",\n \"description\": \"Vyberte něco ve stromu schématu a přemapujte jeho popisek, typ, vztahy nebo maskování.\"\n },\n \"tabs\": {\n \"details\": \"Podrobnosti\",\n \"relations\": \"Vztahy\"\n },\n \"tree\": {\n \"label\": \"Schéma\",\n \"search\": \"Hledat tabulky a sloupce\",\n \"searchPlaceholder\": \"Hledat tabulky…\",\n \"noMatches\": \"Vašemu hledání neodpovídají žádné tabulky.\",\n \"collapse\": \"Sbalit tabulku\",\n \"expand\": \"Rozbalit tabulku\",\n \"unsaved\": \"Neuložená změna\",\n \"excluded\": \"Vyloučeno\"\n },\n \"badge\": {\n \"pk\": \"PK\",\n \"fk\": \"FK\",\n \"unique\": \"UNIQUE\",\n \"pii\": \"PII\",\n \"masked\": \"Maskováno\"\n }\n }\n },\n \"onboarding\": {\n \"title\": \"Začínáme\",\n \"subtitle\": \"Několik kroků k přípravě vašeho pracovního prostoru.\",\n \"loading\": \"Načítání kontrolního seznamu…\",\n \"welcome\": \"Vítejte v Adminiu, {name} 👋\",\n \"progressBody\": \"Dokončili jste {done} z {total} kroků nastavení. Dokončete zbytek a odemkněte plný pracovní prostor.\",\n \"completeBody\": \"Hotovo — váš pracovní prostor je plně nastaven.\",\n \"ringLabel\": \"{done} z {total} kroků dokončeno\",\n \"done\": \"Hotovo\",\n \"skip\": \"Zatím přeskočit\",\n \"goToWorkspace\": \"Přejít do prostoru\",\n \"help\": {\n \"title\": \"Potřebujete pomoc?\",\n \"body\": \"Rádi vám pomůžeme s rychlým nastavením.\"\n },\n \"steps\": {\n \"connectDatabase\": {\n \"title\": \"Připojit databázi\",\n \"desc\": \"Nasměrujte Adminium na svou databázi Postgres, MySQL nebo SQLite — stačí i role jen pro čtení.\",\n \"time\": \"5 min\",\n \"action\": \"Připojit\"\n },\n \"chooseTables\": {\n \"title\": \"Vyberte tabulky\",\n \"desc\": \"Vyberte, které tabulky se stanou stránkami — osobní údaje jsou ve výchozím nastavení maskovány.\",\n \"time\": \"2 min\",\n \"action\": \"Vybrat\"\n },\n \"inviteTeammates\": {\n \"title\": \"Pozvat členy týmu\",\n \"desc\": \"Přizvěte svůj tým k prozkoumávání a spolupráci.\",\n \"time\": \"2 min\",\n \"action\": \"Pozvat\"\n },\n \"workspaceDefaults\": {\n \"title\": \"Nastavit výchozí hodnoty\",\n \"desc\": \"Motiv, akcent, hustota a jazyk pro všechny.\",\n \"time\": \"1 min\",\n \"action\": \"Nastavit\"\n }\n },\n \"entry\": {\n \"wayBack\": \"Začínáme · {done}/{total}\",\n \"dismiss\": \"Skrýt kontrolní seznam\",\n \"continue\": \"Pokračovat v nastavení\",\n \"banner\": \"Dokončete nastavení prostoru — hotovo {done} z {total} kroků.\"\n }\n },\n \"views\": {\n \"baseView\": \"Všechny záznamy\",\n \"menuLabel\": \"Uložené pohledy\",\n \"saveAs\": \"Uložit aktuální jako pohled…\",\n \"updateActive\": \"Aktualizovat „{name}“\",\n \"rename\": \"Přejmenovat…\",\n \"setDefault\": \"Nastavit jako výchozí\",\n \"delete\": \"Odstranit…\",\n \"saveTitle\": \"Uložit pohled\",\n \"save\": \"Uložit pohled\",\n \"renameTitle\": \"Přejmenovat pohled\",\n \"saveName\": \"Uložit název\",\n \"nameLabel\": \"Název pohledu\",\n \"namePlaceholder\": \"např. Aktivní tento měsíc\",\n \"nameRequired\": \"Zadejte název tohoto pohledu.\",\n \"saveFailed\": \"Pohled se nepodařilo uložit.\",\n \"deleteTitle\": \"Odstranit pohled\",\n \"deleteBody\": \"Tímto se odstraní uložený pohled. Vaše data nejsou dotčena.\",\n \"deletePrompt\": \"Pro potvrzení zadejte název pohledu\",\n \"deleteConfirm\": \"Odstranit pohled\",\n \"savedToast\": \"Pohled „{name}“ uložen.\",\n \"updatedToast\": \"Pohled „{name}“ aktualizován.\",\n \"defaultToast\": \"„{name}“ je nyní výchozí pohled.\",\n \"deletedToast\": \"Pohled „{name}“ odstraněn.\"\n },\n \"builder\": {\n \"view\": \"Zobrazit\",\n \"edit\": \"Upravit\",\n \"done\": \"Hotovo\",\n \"addWidget\": \"Přidat widget\",\n \"saveLayout\": \"Uložit rozvržení\",\n \"saving\": \"Ukládání…\",\n \"savedShort\": \"Uloženo\",\n \"options\": \"Možnosti dashboardu\",\n \"resetLayout\": \"Obnovit rozvržení\",\n \"resetTitle\": \"Obnovit na sdílené rozvržení?\",\n \"resetBody\": \"Tím se odeberou vaše osobní změny a obnoví se dashboard, který vidí všichni. Vaše data nebudou dotčena.\",\n \"resetConfirm\": \"Obnovit rozvržení\",\n \"resetDone\": \"Rozvržení obnoveno na sdílené výchozí.\",\n \"sharedNote\": \"Upravujete sdílený dashboard, který vidí všichni.\",\n \"personalNote\": \"Upravujete své osobní rozvržení — tyto změny vidíte jen vy.\",\n \"savedShared\": \"Dashboard uložen pro všechny s přístupem.\",\n \"empty\": \"Tento dashboard zatím nemá žádné widgety.\",\n \"emptyAction\": \"Přidat widget\",\n \"palette\": {\n \"title\": \"Přidat widget\",\n \"count\": \"{count} widgetů\",\n \"searchLabel\": \"Hledat widgety\",\n \"searchPlaceholder\": \"Hledat widgety…\",\n \"clear\": \"Vymazat hledání\",\n \"noResults\": \"Žádné widgety neodpovídají „{query}“.\",\n \"add\": \"Přidat {name}\",\n \"added\": \"{name} přidán.\"\n },\n \"inspector\": {\n \"title\": \"Konfigurovat widget\",\n \"empty\": \"Tento widget nemá žádné možnosti konfigurace.\",\n \"locked\": \"Uzamčeno\",\n \"lockedHint\": \"Toto pole je nastaveno zdrojem a nelze jej zde upravit.\",\n \"selectPlaceholder\": \"Vybrat…\",\n \"increment\": \"Zvýšit\",\n \"decrement\": \"Snížit\",\n \"done\": \"Hotovo\"\n },\n \"item\": {\n \"configure\": \"Konfigurovat {name}\",\n \"duplicate\": \"Duplikovat {name}\",\n \"remove\": \"Odebrat {name}\",\n \"removed\": \"{name} odebrán.\",\n \"duplicated\": \"{name} duplikován.\"\n },\n \"families\": {\n \"kpi\": \"KPI\",\n \"charts\": \"Grafy\",\n \"tables\": \"Tabulky\",\n \"feeds\": \"Kanály\",\n \"calendar\": \"Kalendář\",\n \"boards\": \"Nástěnky\",\n \"geo\": \"Mapy\",\n \"media\": \"Média\",\n \"communication\": \"Komunikace\",\n \"forms\": \"Formuláře\",\n \"chrome\": \"Navigace\",\n \"system\": \"Systém\",\n \"domain\": \"Doména\"\n },\n \"versions\": \"Verze\",\n \"versionsEmpty\": \"Zatím žádné uložené verze\",\n \"saveAsVersion\": \"Uložit jako verzi\",\n \"saveVersionTitle\": \"Uložit verzi\",\n \"saveVersionBody\": \"Vytvoří snímek aktuálního dokumentu. Kdykoli jej obnovíte z Verzí.\",\n \"versionName\": \"Název verze\",\n \"versionNamePlaceholder\": \"např. Před změnou sazeb za Q3\"\n },\n \"setup\": {\n \"title\": \"Nastavení Adminia\",\n \"subtitle\": \"Vytvořte prvního správce. To se děje jen jednou.\",\n \"progress\": \"Průběh nastavení\",\n \"steps\": {\n \"account\": \"Účet správce\",\n \"consent\": \"Soukromí\"\n },\n \"account\": {\n \"name\": \"Vaše jméno\",\n \"email\": \"E-mail\",\n \"emailInvalid\": \"Zadejte platnou e-mailovou adresu.\",\n \"password\": \"Heslo\",\n \"passwordHelper\": \"Nejméně {min} znaků.\",\n \"passwordTooShort\": \"Použijte nejméně {min} znaků.\",\n \"confirm\": \"Potvrzení hesla\",\n \"passwordMismatch\": \"Hesla se neshodují.\",\n \"continue\": \"Pokračovat\",\n \"strength\": \"Síla hesla\",\n \"strengthLevels\": {\n \"weak\": \"Slabé\",\n \"fair\": \"Průměrné\",\n \"good\": \"Dobré\",\n \"strong\": \"Silné\"\n }\n },\n \"consent\": {\n \"telemetry\": {\n \"title\": \"Sdílet anonymní data o používání\",\n \"description\": \"Pomáhá nám zjistit, které databázové enginy upřednostnit. Dokud to nezapnete, je vypnuto.\"\n },\n \"updates\": {\n \"title\": \"Kontrolovat nové verze\",\n \"description\": \"Zobrazí upozornění, když je k dispozici nová verze — včetně bezpečnostní opravy. Dotazuje se GitHubu na nejnovější vydání, čímž GitHubu prozradí IP adresu a verzi této instance. Nic dalšího se neodesílá.\"\n },\n \"sentTitle\": \"Přesně toto se odesílá:\",\n \"sent\": {\n \"instanceId\": \"Náhodné ID instance (UUID vygenerované zde; neodvozuje se z vašeho jména, hostitele ani databáze)\",\n \"version\": \"Verze Adminia, kterou tato instance používá\",\n \"engines\": \"Které typy databázových enginů jsou připojeny (např. „postgres“) — pouze typy\"\n },\n \"neverTitle\": \"Nikdy se neodesílá:\",\n \"never\": {\n \"schema\": \"Vaše schéma — žádné názvy tabulek, sloupců ani výčtů\",\n \"rows\": \"Vaše data — nikdy ani jeden řádek\",\n \"connections\": \"Připojovací řetězce, názvy hostitelů ani přihlašovací údaje\",\n \"people\": \"E-maily, jména ani ID uživatelů\",\n \"llm\": \"Zadání pro AI ani obsah běhů\"\n },\n \"reversible\": \"Obojí je ve výchozím stavu vypnuté a kdykoli později to změníte v Nastavení.\",\n \"back\": \"Zpět\",\n \"finish\": \"Vytvořit účet správce\"\n },\n \"error\": {\n \"alreadyCompleted\": \"Tato instance už byla nastavena. Přihlaste se stávajícím účtem správce.\",\n \"rejected\": \"Server tyto údaje odmítl. Zkontrolujte e-mail a heslo a zkuste to znovu.\",\n \"failed\": \"Nastavení se nezdařilo. Zkontrolujte připojení a zkuste to znovu.\"\n }\n },\n \"about\": {\n \"title\": \"O Adminiu\",\n \"subtitle\": \"Verze, licence a kde najdete zdrojový kód této instance.\",\n \"version\": \"Verze\",\n \"license\": \"Licence\",\n \"metaStore\": \"Meta úložiště\",\n \"node\": \"Node.js\",\n \"engine\": {\n \"postgres\": \"PostgreSQL\",\n \"mysql\": \"MySQL / MariaDB\",\n \"sqlite\": \"SQLite\"\n },\n \"licenseCard\": {\n \"title\": \"Svobodný a otevřený software\",\n \"body\": \"Adminium je licencováno pod GNU Affero General Public License v3.0. Můžete jej volně spouštět, studovat, upravovat a sdílet. Pokud upravenou verzi nabídnete ostatním po síti, AGPL vyžaduje, abyste jim nabídli i její zdrojový kód.\"\n },\n \"viewLicense\": \"Přečíst licenci\",\n \"viewSource\": \"Získat zdrojový kód\",\n \"updates\": {\n \"title\": \"Aktualizace\",\n \"description\": \"Zda tato instance kontroluje nové verze.\"\n },\n \"update\": {\n \"disabled\": \"Kontrola aktualizací je vypnutá, takže tato instance nikdy nekontaktuje GitHub. Zapněte ji v Nastavení, abyste se dozvěděli o nových verzích.\",\n \"current\": \"Používáte nejnovější verzi.\",\n \"available\": \"Je k dispozici Adminium {version}\",\n \"availableBody\": \"Aktuálně používáte {version}.\",\n \"viewRelease\": \"Zobrazit poznámky k vydání\"\n },\n \"desktop\": {\n \"unknown\": \"Neznámé\",\n \"appVersion\": \"Verze aplikace\",\n \"serverVersion\": \"Verze serveru\",\n \"migration\": \"Migrace meta-úložiště\",\n \"electron\": \"Electron\",\n \"chromium\": \"Chromium\",\n \"runtimeNode\": \"Běhové prostředí Node\",\n \"system\": {\n \"title\": \"Systém\"\n },\n \"dataDir\": \"Datový adresář\",\n \"reveal\": \"Zobrazit ve složce\",\n \"secret\": {\n \"title\": \"Úložiště tajemství\",\n \"safe\": \"Šifrováno vaším operačním systémem\",\n \"plainWarning\": \"Tento počítač nemá k dispozici systémovou klíčenku, takže vaše tajemství Adminium je uloženo na disku nezašifrované. Přečíst je může kdokoli, kdo má přístup k souborům tohoto počítače. Nastavte přihlašovací klíčenku (nebo linuxovou službu tajemství) a restartujte Adminium, abyste je ochránili.\"\n },\n \"updates\": {\n \"title\": \"Aktualizace\",\n \"mode\": {\n \"notify\": \"Upozornit na nové verze\",\n \"manual\": \"Jen když zkontroluji\",\n \"disabled\": \"Vypnuto (bez sítě)\"\n },\n \"disabledBody\": \"Automatické aktualizace jsou vypnuté (bez sítě). Nové verze instalujte ručně.\",\n \"check\": \"Zkontrolovat aktualizace\",\n \"checking\": \"Kontroluji…\",\n \"lastChecked\": \"Naposledy zkontrolováno {when}\",\n \"available\": \"Je dostupná verze {version}\",\n \"none\": \"Máte nejnovější verzi.\",\n \"unavailable\": \"Aktualizace jsou v této instalaci vypnuté.\",\n \"error\": \"Aktualizace se nepodařilo zkontrolovat.\",\n \"download\": \"Stáhnout aktualizaci\",\n \"downloading\": \"Stahování… {percent} %\",\n \"downloaded\": \"Verze {version} je připravena k instalaci\",\n \"restart\": \"Restartovat a nainstalovat\",\n \"downloadError\": \"Stahování se nedokončilo. Můžete to zkusit znovu.\",\n \"toast\": {\n \"available\": \"Je dostupná nová verze Adminia\",\n \"view\": \"Zobrazit\",\n \"downloaded\": \"Aktualizace je připravena k instalaci\",\n \"restart\": \"Restartovat nyní\"\n }\n },\n \"legal\": {\n \"title\": \"Licence\",\n \"agpl\": \"Adminium Desktop je svobodný software pod licencí GNU Affero General Public License v3.0.\",\n \"viewLicense\": \"Zobrazit licenci\",\n \"licenseTitle\": \"GNU Affero General Public License v3.0\",\n \"licenseUnavailable\": \"Přibalený licenční soubor není v tomto sestavení k dispozici.\",\n \"viewNotices\": \"Licence třetích stran\",\n \"noticesTitle\": \"Oznámení třetích stran\",\n \"noticesUnavailable\": \"Oznámení třetích stran se generují při balení aplikace a nejsou v tomto sestavení k dispozici.\",\n \"source\": \"Zdrojový kód\",\n \"close\": \"Zavřít\"\n },\n \"telemetry\": {\n \"title\": \"Anonymní data o používání\",\n \"label\": \"Sdílet anonymní data o používání\",\n \"description\": \"Pomáhá nám rozhodnout, které databázové enginy upřednostnit. Vypnuto, dokud to nezapnete; nikdy se neodesílá schéma, data ani osobní údaje.\",\n \"saveFailed\": \"Toto nastavení se nepodařilo uložit. Zkuste to znovu.\"\n },\n \"diagnostics\": {\n \"title\": \"Diagnostika\",\n \"description\": \"Údaje, které pomohou při hlášení problému. Neobsahuje žádné schéma ani data.\",\n \"copy\": \"Kopírovat diagnostické údaje\",\n \"copied\": \"Zkopírováno\",\n \"showLogs\": \"Zobrazit protokoly\",\n \"dataSize\": \"Velikost dat: {size}\"\n }\n }\n },\n \"apiKeys\": {\n \"title\": \"Klíče API a tokeny\",\n \"subtitle\": \"Spravujte programový přístup ke svému pracovnímu prostoru.\",\n \"createButton\": \"Vytvořit klíč\",\n \"copy\": \"Kopírovat\",\n \"copied\": \"Zkopírováno\",\n \"revoke\": \"Odvolat klíč\",\n \"neverUsed\": \"Nikdy nepoužit\",\n \"lastUsed\": \"Naposledy použit {since}\",\n \"scopesOverflow\": \"+{count} dalších\",\n \"status\": {\n \"active\": \"Aktivní\",\n \"revoked\": \"Odvolaný\",\n \"expired\": \"Vypršelý\"\n },\n \"list\": {\n \"title\": \"Klíče\",\n \"activeCount\": \"{count, plural, one {# aktivní klíč} few {# aktivní klíče} many {# aktivního klíče} other {# aktivních klíčů}}\"\n },\n \"empty\": {\n \"title\": \"Zatím žádné klíče API\",\n \"body\": \"Vytvořte si klíč a volejte API Adminia z vlastního kódu.\"\n },\n \"revealed\": {\n \"title\": \"Nový klíč vytvořen\",\n \"body\": \"Zkopírujte si ho hned — už ho nikdy neuvidíte.\"\n },\n \"rolesUnavailable\": {\n \"title\": \"Role pro vás nejsou viditelné\",\n \"body\": \"Vytvořit klíč znamená zvolit roli, pod kterou jedná, a váš účet nemůže číst seznam rolí. Požádejte správce o oprávnění „Spravovat role“.\"\n },\n \"quickStart\": {\n \"title\": \"Rychlý start\",\n \"body\": \"Požadavky ověřujte klíčem v hlavičce Authorization.\"\n },\n \"create\": {\n \"title\": \"Vytvořit klíč API\",\n \"description\": \"Klíč jedná s oprávněními role, kterou zvolíte.\",\n \"name\": \"Název\",\n \"namePlaceholder\": \"např. Analytická pipeline\",\n \"role\": \"Role\",\n \"roleHelper\": \"Zvolte roli s nejnižšími oprávněními, která na to stačí.\",\n \"expires\": \"Platnost do\",\n \"expiresHelper\": \"Ponechte prázdné pro klíč bez expirace.\",\n \"submit\": \"Vytvořit klíč\",\n \"failed\": \"Klíč se nepodařilo vytvořit\"\n },\n \"revokeConfirm\": {\n \"title\": \"Odvolat klíč API\",\n \"body\": \"Každý kód, který ještě volá API klíčem „{name}“, začne okamžitě selhávat. Tuto akci nelze vrátit.\",\n \"prompt\": \"Pro potvrzení napište „{name}“\",\n \"confirm\": \"Odvolat klíč\"\n }\n },\n \"changelog\": {\n \"title\": \"Seznam změn\",\n \"subtitle\": \"Novinky produktu a vydání.\",\n \"allReleases\": \"Všechna vydání\",\n \"tag\": {\n \"new\": \"Novinka\",\n \"improved\": \"Vylepšeno\",\n \"fixed\": \"Opraveno\",\n \"security\": \"Bezpečnost\"\n },\n \"filter\": {\n \"all\": \"Vše\",\n \"label\": \"Filtrovat změny podle typu\"\n },\n \"empty\": {\n \"title\": \"Pod tímto filtrem nic není\",\n \"body\": \"Zatím žádné vydání neobsahovalo změnu tohoto druhu.\",\n \"clear\": \"Zobrazit všechny změny\"\n }\n },\n \"kb\": {\n \"title\": \"Znalostní báze\",\n \"subtitle\": \"{count, plural, one {# návod} few {# návody} many {# návodu} other {# návodů}} · kompletní dokumentace na docs.adminium.dev\",\n \"openDocs\": \"Otevřít dokumentaci\",\n \"browse\": \"Procházet podle témat\",\n \"hero\": {\n \"title\": \"S čím vám můžeme pomoci?\",\n \"subtitle\": \"Prohledejte návody, dokumentaci API a řešení potíží.\",\n \"placeholder\": \"Hledat ve znalostní bázi…\",\n \"label\": \"Hledat ve znalostní bázi\",\n \"clear\": \"Vymazat hledání\"\n },\n \"category\": {\n \"start\": \"Začínáme\",\n \"connect\": \"Připojení dat\",\n \"api\": \"API a vývoj\",\n \"security\": \"Zabezpečení a přístup\",\n \"selfhost\": \"Vlastní hosting\",\n \"trouble\": \"Řešení potíží\",\n \"count\": \"{count, plural, one {# článek} few {# články} many {# článku} other {# článků}}\",\n \"selected\": \"Filtrováno\"\n },\n \"list\": {\n \"all\": \"Všechny návody\",\n \"clear\": \"Zrušit filtr\"\n },\n \"empty\": {\n \"title\": \"Vašemu hledání neodpovídá žádný návod\",\n \"body\": \"Zkuste jiné slovo nebo prohledejte úplnou dokumentaci na docs.adminium.dev.\",\n \"openDocs\": \"Otevřít dokumentaci\"\n },\n \"article\": {\n \"install\": {\n \"title\": \"Instalace Adminia\",\n \"excerpt\": \"Spusťte ze zdrojového checkoutu nebo přes docker run a během minuty jste u průvodce prvním spuštěním.\"\n },\n \"firstAdmin\": {\n \"title\": \"Vytvoření prvního supersprávce\",\n \"excerpt\": \"Na co se průvodce prvním spuštěním ptá a proč může proběhnout jen jednou.\"\n },\n \"connectDb\": {\n \"title\": \"Připojení první databáze\",\n \"excerpt\": \"Nasměrujte Adminium na PostgreSQL, MySQL nebo SQLite a vygenerujte administraci.\"\n },\n \"schemaFile\": {\n \"title\": \"Generování ze souboru se schématem\",\n \"excerpt\": \"Nahrajte schéma Prisma, models.py z Djanga, schema.rb z Rails nebo výpis .sql — bez připojení.\"\n },\n \"readOnly\": {\n \"title\": \"Použití role jen pro čtení\",\n \"excerpt\": \"Introspekce čte pouze metadata schématu. Dejte Adminiu co nejméně oprávnění.\"\n },\n \"apiKeys\": {\n \"title\": \"Ověřování pomocí klíčů API\",\n \"excerpt\": \"Vytváření a odvolávání klíčů — a proč se vám klíč ukáže jen jednou.\"\n },\n \"rest\": {\n \"title\": \"Referenční příručka REST API\",\n \"excerpt\": \"Každý koncový bod vygenerované aplikace, s tvarem požadavku i odpovědi.\"\n },\n \"manifest\": {\n \"title\": \"Manifest stránky\",\n \"excerpt\": \"Jak je stránka popsána konfigurací a jak ji upravit ručně.\"\n },\n \"roles\": {\n \"title\": \"Role a oprávnění\",\n \"excerpt\": \"Přidělte role Divák, Editor a Správce a sestavte si vlastní z matice oprávnění.\"\n },\n \"audit\": {\n \"title\": \"Čtení auditního záznamu\",\n \"excerpt\": \"Kdo co změnil, kdy a odkud.\"\n },\n \"secrets\": {\n \"title\": \"Jak Adminium ukládá vaše tajemství\",\n \"excerpt\": \"Přihlašovací údaje k připojení jsou šifrovány pomocí ADMINIUM_SECRET. Klíče API se hashují.\"\n },\n \"docker\": {\n \"title\": \"Vlastní hosting s Dockerem\",\n \"excerpt\": \"Oficiální image, docker-compose a provoz samostatné meta databáze.\"\n },\n \"backup\": {\n \"title\": \"Záloha a přesun instance\",\n \"excerpt\": \"export-zip zabalí konfiguraci serveru; import ji jinde přehraje ve stejné podobě.\"\n },\n \"telemetry\": {\n \"title\": \"Telemetrie a kontrola aktualizací\",\n \"excerpt\": \"Obojí je dobrovolné a ve výchozím stavu vypnuté. Co se odesílá, když je zapnete.\"\n },\n \"connectionFails\": {\n \"title\": \"Připojení k databázi selhává\",\n \"excerpt\": \"Přečtěte si diagnostickou kartu: host, port, TLS a IP, kterou musí databáze povolit.\"\n },\n \"missingTables\": {\n \"title\": \"Po introspekci chybí tabulky\",\n \"excerpt\": \"Viditelnost schématu, vyloučené tabulky a opětovné spuštění generování.\"\n }\n }\n },\n \"desktop\": {\n \"menu\": {\n \"file\": \"Soubor\",\n \"fileNewDatabase\": \"Nová místní databáze…\",\n \"fileOpenSqlite\": \"Otevřít soubor SQLite…\",\n \"fileBackupNow\": \"Zálohovat nyní…\",\n \"fileRestore\": \"Obnovit ze zálohy…\",\n \"edit\": \"Úpravy\",\n \"view\": \"Zobrazení\",\n \"window\": \"Okno\",\n \"help\": \"Nápověda\",\n \"helpDocs\": \"Dokumentace Adminium\",\n \"helpShortcuts\": \"Klávesové zkratky\",\n \"helpLogs\": \"Zobrazit protokoly\",\n \"helpCheckForUpdates\": \"Zkontrolovat aktualizace…\",\n \"helpAbout\": \"O aplikaci Adminium\"\n },\n \"settings\": {\n \"explainer\": \"Tato nastavení platí pouze pro aplikaci Adminium na tomto počítači. Ukládají se na tomto zařízení, ne ve vašem pracovním prostoru.\"\n },\n \"security\": {\n \"heading\": \"Přihlášení\"\n },\n \"requireLogin\": {\n \"label\": \"Vyžadovat přihlášení na tomto zařízení\",\n \"description\": \"Adminium vás na tomto počítači obvykle přihlásí automaticky. Zapněte tuto volbu, pokud chcete zadávat heslo při každém spuštění — hodí se, když počítač může používat i někdo další. Změna se projeví při příštím spuštění Adminia.\",\n \"savedOn\": \"Při příštím spuštění bude vyžadováno přihlášení\",\n \"savedOff\": \"Adminium na tomto počítači přihlášení přeskočí\",\n \"saveFailed\": \"Nastavení se nepodařilo uložit. Zkuste to znovu.\"\n },\n \"chip\": {\n \"local\": \"Místní\",\n \"lanShare\": \"Místní · Sdíleno v síti\",\n \"remoteDb\": \"Místní + vzdálená databáze\",\n \"remoteDbOffline\": \"Vzdálená databáze offline\",\n \"remoteDbOfflineDetail\": \"Nelze se připojit k {names}. Stránky těchto připojení zobrazují stav opětovného připojení.\"\n },\n \"lan\": {\n \"heading\": \"Sdílet v místní síti\",\n \"label\": \"Umožnit ostatním zařízením v této síti používat Adminium\",\n \"description\": \"Ostatní počítače, tablety a telefony ve stejné síti mohou otevřít Adminium v prohlížeči a přihlásit se vlastním účtem. Aby se k němu dostaly, musí Adminium na tomto počítači zůstat spuštěné.\",\n \"savedOn\": \"Sdílení v místní síti je zapnuté\",\n \"savedOff\": \"Sdílení ukončeno — Adminium je opět jen na tomto počítači\",\n \"saveFailed\": \"Sdílení v síti se nepodařilo změnit\",\n \"noUsers\": \"Jste jediný člověk s účtem, takže se zatím nikdo jiný nemůže přihlásit. Sdílení přesto funguje — jen budete muset lidi nejdřív pozvat.\",\n \"usersUnknown\": \"Adminium nemohlo zjistit, kdo další má na tomto počítači účet. Sdílení funguje dál a kdokoli s účtem se může přihlásit — selhala pouze tato kontrola.\",\n \"acknowledge\": \"Rozumím — lidi pozvu vzápětí\",\n \"port\": \"Port\",\n \"portHelper\": \"Výchozí {port}\",\n \"portInvalid\": \"Použijte číslo mezi 1024 a 65535.\",\n \"applyPort\": \"Změnit port\",\n \"portInUse\": \"Port {port} už používá jiný program.\",\n \"portInUseHint\": \"Nic se nezměnilo — sdílení je stále vypnuté.\",\n \"portInUseNoSuggestion\": \"Nic se nezměnilo. Zkuste jiný port.\",\n \"tryPort\": \"Zkusit {port}\",\n \"urlsHeading\": \"Otevřete to na jiném zařízení\",\n \"noUrls\": \"Tento počítač teď není připojený k síti, takže není co sdílet. Připojte se k Wi-Fi nebo zapojte kabel a seznam se doplní.\",\n \"copyUrl\": \"Kopírovat\",\n \"sessions\": \"{count, plural, =0 {Z této sítě není přihlášené žádné zařízení} one {# zařízení přihlášené z této sítě} few {# zařízení přihlášená z této sítě} many {# zařízení přihlášeno z této sítě} other {# zařízení přihlášeno z této sítě}}\",\n \"sessionsUnknown\": \"Zjišťujeme, kdo je připojený…\",\n \"pending\": \"Spouštíme sdílení…\",\n \"mismatch\": \"Adminium je v této síti stále dostupné\",\n \"mismatchBody\": \"Sdílení je vypnuté, ale server síť zatím neuvolnil. Zavřete ji restartem Adminia.\",\n \"transportTitle\": \"Provoz ve vaší místní síti není šifrovaný.\",\n \"transportBody\": \"Sdílejte jen v sítích, kterým důvěřujete. Pro vzdálený přístup použijte vlastní hosting Adminia za HTTPS.\",\n \"firewall\": \"Při prvním sdílení se váš operační systém zeptá, zda povolit příchozí připojení — zvolte Povolit, jinak se k Adminiu ostatní zařízení nedostanou.\"\n },\n \"setup\": {\n \"title\": \"Vítejte v Adminiu\",\n \"subtitle\": \"Čtyři krátké kroky a Adminium z vaší databáze postaví administrační aplikaci. Vše zůstává v tomto počítači.\",\n \"progress\": \"Průběh nastavení\",\n \"back\": \"Zpět\",\n \"continue\": \"Pokračovat\",\n \"createAccount\": \"Vytvořit účet a pokračovat\",\n \"step\": {\n \"location\": \"Vítejte\",\n \"database\": \"Vaše první databáze\",\n \"account\": \"Váš účet\",\n \"generate\": \"Generovat\"\n },\n \"dataDir\": {\n \"heading\": \"Kam má Adminium ukládat vaše data?\",\n \"description\": \"Vaše databáze, nastavení i zálohy žijí v této složce. Vše zůstává v tomto počítači — nikam se nic nenahrává.\",\n \"label\": \"Složka s daty\",\n \"loading\": \"Načítá se aktuální umístění…\",\n \"pending\": \"Adminium se po pokračování restartuje, aby přešlo do této složky.\",\n \"change\": \"Změnit…\",\n \"revert\": \"Vrátit zpět\",\n \"dialogTitle\": \"Vyberte, kam má Adminium ukládat vaše data\",\n \"cloudSyncTitle\": \"Tato složka se synchronizuje do cloudu\",\n \"cloudSyncWarning\": \"Adminium ukládá data do souborů SQLite. {provider} synchronizuje soubory ve složce „{folder}“ tak, že je na pozadí kopíruje, což může poškodit otevřenou databázi — a bez varování ztratit data. Zvolte složku mimo {provider}.\",\n \"chooseAnother\": \"Zvolit jinou složku\",\n \"useAnyway\": \"Přesto ji použít — beru riziko na vědomí\",\n \"unusableTitle\": \"Adminium tuto složku nemůže použít\",\n \"failed\": \"Adminium tuto složku nemohlo použít.\"\n },\n \"source\": {\n \"heading\": \"Z čeho má Adminium stavět?\",\n \"description\": \"Adminium přečte schéma databáze a vygeneruje z něj administrační aplikaci. Další databáze můžete přidat později.\",\n \"groupLabel\": \"Zdroj databáze\",\n \"local\": {\n \"title\": \"Vytvořit novou místní databázi\",\n \"description\": \"Začněte od nuly, nebo ze souboru se schématem, který už máte. Databáze se vytvoří ve vaší složce s daty.\",\n \"name\": \"Název databáze\",\n \"namePlaceholder\": \"Provoz\",\n \"nameUnusable\": \"Použijte alespoň jedno písmeno nebo číslici — z toho se sestaví název souboru.\",\n \"fileHelper\": \"Vytvoří {file}\",\n \"schemaLabel\": \"Začít z\",\n \"blank\": \"Prázdné\",\n \"fromFile\": \"Souboru se schématem\",\n \"schemaFile\": \"Soubor se schématem\",\n \"schemaFileHelper\": \".sql, pg_dump, Prisma, Drizzle, TypeORM, Sequelize, schema.rb, Django nebo JSON Adminia. Adminium jej přeloží do SQLite.\",\n \"placeholder\": \"Automaticky vygenerovat ukázkové záznamy\",\n \"placeholderHelper\": \"Naimportovali jste schéma bez řádků. Naplňte každou tabulku realistickými ukázkovými daty, aby se vaše přehledy a grafy vykreslily hned.\"\n },\n \"openSqlite\": {\n \"title\": \"Otevřít existující soubor SQLite\",\n \"description\": \"Nasměrujte Adminium na soubor .sqlite v tomto počítači. Otevře se tam, kde je — nic se nekopíruje ani nepřesouvá.\",\n \"browse\": \"Vybrat soubor .sqlite…\",\n \"change\": \"Vybrat jiný soubor…\",\n \"networkTitle\": \"Tento soubor je na síťovém sdílení\",\n \"networkBody\": \"Zamykání SQLite je přes síťová sdílení nespolehlivé a přerušené spojení uprostřed zápisu může databázi poškodit. Kopie na disku tohoto počítače je bezpečnější.\"\n },\n \"remote\": {\n \"title\": \"Připojit se k serverové databázi\",\n \"description\": \"PostgreSQL nebo MySQL. Vyžaduje dostupnou síťovou databázi; vlastní tabulky Adminia i tak zůstanou v tomto počítači.\",\n \"networkNote\": \"Vyžaduje dostupnou síťovou databázi\",\n \"metaNote\": \"Vlastní tabulky Adminia — vaše stránky, nastavení a přihlášení — zůstávají tak jako tak ve složce s daty v tomto počítači.\",\n \"engine\": \"Engine\",\n \"name\": \"Název připojení\",\n \"namePlaceholder\": \"Produkce\",\n \"dsn\": \"Připojovací řetězec\",\n \"dsnHelper\": \"Adminium jej při připojení otestuje. Pokud chcete jen přehledy, použijte roli jen pro čtení.\"\n },\n \"demo\": {\n \"title\": \"Prozkoumat ukázkovou databázi\",\n \"description\": \"Hotová databáze týmového provozu, abyste viděli, co Adminium postaví, ještě než ho nasměrujete na vlastní data. Kdykoli ji smažete.\",\n \"unavailable\": \"Tento build ukázková data neobsahuje, není tedy co načíst. Zvolte některou z možností výše.\"\n }\n },\n \"account\": {\n \"heading\": \"Vytvořte si účet\",\n \"description\": \"Toto je účet správce této kopie Adminia. Heslo chrání vaše zálohy i všechny, s nimiž sdílíte po síti — při každém spuštění o něj nebudete žádáni.\",\n \"name\": \"Vaše jméno\",\n \"email\": \"E-mail\",\n \"password\": \"Heslo\",\n \"passwordHelper\": \"Alespoň {min} znaků.\",\n \"confirm\": \"Potvrďte heslo\",\n \"strength\": \"Síla hesla\",\n \"strengthLevels\": {\n \"weak\": \"Slabé\",\n \"fair\": \"Ucházející\",\n \"good\": \"Dobré\",\n \"strong\": \"Silné\"\n },\n \"singleUser\": \"Přeskočit přihlášení v tomto počítači\",\n \"singleUserHelper\": \"Adminium vás zde po otevření přihlásí automaticky. Vypněte to, pokud tento počítač používají i jiní lidé. Změnit to můžete později v Nastavení → Desktop.\",\n \"locale\": \"Jazyk\",\n \"theme\": \"Vzhled\",\n \"alreadyExists\": \"Tato kopie Adminia už účet má. Přihlaste se místo toho jím.\",\n \"failed\": \"Adminium nemohlo tento účet vytvořit.\"\n },\n \"generate\": {\n \"creating\": \"Nastavuje se vaše databáze…\",\n \"introspecting\": \"Čte se vaše schéma — tabulky, sloupce a vztahy…\",\n \"working\": \"Pracuje se…\",\n \"offlineNote\": \"Vše se odehrává v tomto počítači.\",\n \"failedTitle\": \"Adminium nemohlo tuto databázi nastavit\",\n \"failedBody\": \"Něco se pokazilo. Zkuste to znovu.\",\n \"retry\": \"Zkusit znovu\"\n }\n }\n },\n \"capabilities\": {\n \"heading\": \"Oprávnění aplikací\",\n \"description\": \"Aplikace, které nainstalujete, mohou požádat o přístup k hardwaru tohoto počítače. Každou z nich schvalujete a přístup můžete kdykoli odvolat.\",\n \"grantedTo\": \"Povoleno pro {app}\",\n \"status\": {\n \"available\": \"Dostupné\",\n \"stub\": \"Zatím nedostupné\",\n \"unavailable\": \"Nedostupné\"\n },\n \"allow\": {\n \"action\": \"Povolit…\"\n },\n \"revoke\": {\n \"action\": \"Odvolat\",\n \"saved\": \"Přístup odvolán\",\n \"failed\": \"Přístup se nepodařilo odvolat. Zkuste to znovu.\"\n },\n \"grant\": {\n \"saved\": \"Přístup povolen\",\n \"failed\": \"Přístup se nepodařilo povolit. Zkuste to znovu.\"\n },\n \"catalog\": {\n \"printerEscpos\": {\n \"name\": \"Tiskárna účtenek (ESC/POS)\",\n \"scope\": \"Tisknout na tiskárnách účtenek a otevřít připojenou pokladní zásuvku\"\n }\n },\n \"consent\": {\n \"title\": \"Povolit {app}?\",\n \"subtitle\": \"{app} žádá o použití hardwaru tohoto počítače.\",\n \"willAllow\": \"Toto umožní aplikaci {app}:\",\n \"revokeNote\": \"Toto můžete kdykoli odvolat v Nastavení → Plocha. Povolujte jen aplikace, kterým důvěřujete.\",\n \"deny\": \"Teď ne\",\n \"approve\": \"Povolit\"\n }\n },\n \"emailTemplates\": {\n \"title\": \"E-mailové šablony\",\n \"subtitle\": \"Transakční e-maily a e-maily životního cyklu, které váš pracovní prostor odesílá.\",\n \"search\": \"Hledat šablony…\",\n \"loadFailed\": \"Šablony se nepodařilo načíst\",\n \"empty\": \"Zatím žádné e-mailové šablony\",\n \"emptyBody\": \"Šablony se zde objeví, jakmile je server založí nebo je vytvoříte.\",\n \"noMatches\": \"Žádné odpovídající šablony\",\n \"noMatchesBody\": \"Zkuste jiné hledání.\",\n \"live\": \"Aktivní\",\n \"disabled\": \"Vypnuto\",\n \"name\": \"Název šablony\",\n \"subject\": \"Předmět\",\n \"enabled\": \"Zapnuto\"\n },\n \"board\": {\n \"addCard\": \"Přidat kartu\",\n \"compose\": {\n \"placeholder\": \"Název karty…\",\n \"add\": \"Přidat\",\n \"cancel\": \"Zrušit\"\n },\n \"empty\": {\n \"title\": \"Žádné sloupce nástěnky\",\n \"body\": \"Přidejte stavové pole, aby se karty seskupily do sloupců.\"\n }\n },\n \"calendar\": {\n \"dateRange\": \"Rozsah dat\",\n \"compose\": {\n \"placeholder\": \"Název události…\",\n \"add\": \"Přidat\",\n \"cancel\": \"Zrušit\",\n \"open\": \"Přidat událost\"\n },\n \"agenda\": {\n \"empty\": \"Nic naplánováno\"\n }\n },\n \"scheduler\": {\n \"prevWeek\": \"Předchozí týden\",\n \"nextWeek\": \"Další týden\",\n \"week\": \"Týden\",\n \"month\": \"Měsíc\",\n \"resource\": \"Zdroj\",\n \"coverage\": \"Pokrytí\",\n \"addShift\": \"Přidat směnu\",\n \"shiftCount\": \"{n} směn\"\n },\n \"planning\": {\n \"drawer\": {\n \"close\": \"Zavřít\",\n \"loading\": \"Načítání záznamu\",\n \"error\": \"Tento záznam se nepodařilo načíst.\"\n }\n },\n \"files\": {\n \"uploadsUnavailable\": \"Nahrávání na této stránce zatím není k dispozici.\"\n },\n \"chat\": {\n \"messageSent\": \"Zpráva odeslána\",\n \"sendFailed\": \"Zprávu se nepodařilo odeslat.\"\n },\n \"templates\": {\n \"crud\": {\n \"title\": \"Záznamy\"\n },\n \"dashboard\": {\n \"title\": \"Přehled\"\n },\n \"board\": {\n \"title\": \"Nástěnka\"\n },\n \"calendar\": {\n \"title\": \"Kalendář\"\n },\n \"scheduler\": {\n \"title\": \"Plánovač\"\n },\n \"logViewer\": {\n \"title\": \"Protokoly\"\n },\n \"files\": {\n \"title\": \"Soubory\"\n },\n \"chat\": {\n \"title\": \"Chat\"\n },\n \"builder\": {\n \"title\": \"Editor\"\n },\n \"wizard\": {\n \"title\": \"Průvodce\"\n },\n \"settings\": {\n \"title\": \"Nastavení\"\n },\n \"directory\": {\n \"title\": \"Adresář\",\n \"searchPlaceholder\": \"Hledat osoby…\",\n \"allFilter\": \"Vše\",\n \"clearFilters\": \"Vymazat filtry\",\n \"detailTitle\": \"Osoba\",\n \"emptyTitle\": \"Zatím žádné osoby\",\n \"emptyBody\": \"Osoby se zde objeví, jakmile do tabulky přibudou řádky.\",\n \"noMatchesTitle\": \"Žádné odpovídající osoby\",\n \"noMatchesBody\": \"Zkuste jiné hledání nebo odeberte filtr.\",\n \"errorTitle\": \"Tento adresář se nepodařilo načíst\",\n \"loading\": \"Načítání osob\",\n \"memberCount\": \"{count} osob\"\n },\n \"masterDetail\": {\n \"title\": \"Seznam a detail\",\n \"allFilter\": \"Vše\",\n \"clearFilters\": \"Vymazat filtry\",\n \"emptyTitle\": \"Zatím tu nic není\",\n \"emptyBody\": \"Záznamy se zde objeví, jakmile do tabulky přibudou řádky.\",\n \"noMatchesTitle\": \"Žádné odpovídající záznamy\",\n \"noMatchesBody\": \"Zkuste odebrat filtr.\",\n \"errorTitle\": \"Tento seznam se nepodařilo načíst\",\n \"loading\": \"Načítání záznamů\",\n \"selectPrompt\": \"Vyberte záznam\"\n },\n \"queueInbox\": {\n \"title\": \"Fronta\",\n \"approve\": \"Schválit\",\n \"reject\": \"Zamítnout\",\n \"allSegment\": \"Vše\",\n \"approvedToast\": \"{count} schváleno.\",\n \"rejectedToast\": \"{count} zamítnuto.\",\n \"undoneToast\": \"Rozhodnutí vráceno zpět.\",\n \"failedToast\": \"Rozhodnutí se nezdařilo.\",\n \"bulkFailed\": \"{failed} z {total} vybraných řádků se nepodařilo aktualizovat.\",\n \"undoFailedToast\": \"Toto rozhodnutí se nepodařilo vrátit zpět.\",\n \"rejectTitle\": \"Zamítnout žádosti\",\n \"rejectCount\": \"Vybráno · {count}\",\n \"rejectNote\": \"Žadatel bude informován spolu s vaší poznámkou.\",\n \"rejectPlaceholder\": \"Přidejte poznámku pro žadatele…\",\n \"rejectConfirm\": \"Zamítnout\",\n \"emptyTitle\": \"Ve frontě nic není\",\n \"emptyBody\": \"Nové žádosti se zde objeví, jakmile dorazí.\",\n \"caughtUpTitle\": \"Vše vyřízeno\",\n \"caughtUpBody\": \"V této záložce teď nejsou žádné žádosti.\",\n \"errorTitle\": \"Tuto frontu se nepodařilo načíst\",\n \"loading\": \"Načítání fronty\",\n \"selectPrompt\": \"Vyberte žádost\",\n \"daysUnit\": \"{count} dní\"\n }\n },\n \"dataio\": {\n \"back\": \"Zpět\",\n \"import\": {\n \"title\": \"Import dat\",\n \"stepUpload\": \"Nahrát\",\n \"stepMap\": \"Namapovat sloupce\",\n \"stepValidate\": \"Ověřit\",\n \"stepRun\": \"Importovat a zkontrolovat\",\n \"targetLabel\": \"Cílová tabulka\",\n \"targetPlaceholder\": \"Vyberte stránku tabulky…\",\n \"notATable\": \"Tato stránka není tabulka — vyberte stránku tabulky, do které se má importovat.\",\n \"dropTitle\": \"Přetáhněte sem soubor CSV k importu\",\n \"dropHint\": \"CSV do 32 MB — první řádek musí být hlavička\",\n \"skipTarget\": \"Neimportovat\",\n \"mapHint\": \"{count} datových řádků v {file} — vyberte cíl pro každý sloupec.\",\n \"validating\": \"Ověřování…\",\n \"toValidate\": \"Ověřit\",\n \"validateFailed\": \"Ověření se nezdařilo.\",\n \"validationSummary\": \"{valid} z {total} řádků připraveno k importu — {invalid} bude přeskočeno.\",\n \"allValid\": \"Všechny řádky prošly ověřením\",\n \"run\": \"Spustit import\",\n \"runSkipping\": \"Importovat {valid} řádků (přeskočit {invalid})\",\n \"progressLabel\": \"Průběh importu\",\n \"running\": \"Importuje se…\",\n \"kpiTotal\": \"Řádků v souboru\",\n \"kpiCreated\": \"Vytvořeno\",\n \"kpiUpdated\": \"Aktualizováno\",\n \"kpiSkipped\": \"Přeskočeno\",\n \"inconsistent\": \"Čísla importu nesedí — celkem se musí rovnat vytvořeno + aktualizováno + přeskočeno.\",\n \"downloadErrors\": \"Stáhnout report přeskočených řádků (CSV)\",\n \"runFailed\": \"Import se nezdařil.\"\n },\n \"exports\": {\n \"title\": \"Exporty dat\",\n \"tableLabel\": \"Tabulka\",\n \"tablePlaceholder\": \"Vyberte tabulku…\",\n \"notATable\": \"Tato stránka není tabulka — vyberte stránku tabulky k exportu.\",\n \"formatLabel\": \"Formát\",\n \"create\": \"Exportovat\",\n \"createFailed\": \"Export se nepodařilo vyžádat.\",\n \"retention\": \"Exporty se uchovávají 30 dní, poté vyprší.\",\n \"statusProcessing\": \"Zpracovává se…\",\n \"statusReady\": \"Hotovo — {rows} řádků · stáhnete klepnutím\",\n \"statusFailed\": \"Nezdařilo se — {error}\",\n \"statusCancelled\": \"Zrušeno\",\n \"statusExpired\": \"Vypršelo\",\n \"emptyTitle\": \"Zatím žádné exporty\",\n \"emptyBody\": \"Vyžádejte si jeden výše — artefakty se zde objeví se svým stavem.\"\n }\n },\n \"reports\": {\n \"title\": \"Naplánované sestavy\",\n \"subtitle\": \"Opakované datové snímky stránky doručované jako oznámení v aplikaci.\",\n \"new\": \"Nová sestava\",\n \"loadFailed\": \"Naplánované sestavy se nepodařilo načíst.\",\n \"saveFailed\": \"Tuto sestavu se nepodařilo uložit.\",\n \"nextRun\": \"Další spuštění\",\n \"emptyTitle\": \"Zatím žádné naplánované sestavy\",\n \"emptyBody\": \"Vytvořte jednu a získáte opakovaný datový snímek libovolné stránky tabulky.\",\n \"createTitle\": \"Nová naplánovaná sestava\",\n \"editTitle\": \"Upravit naplánovanou sestavu\",\n \"nameLabel\": \"Název\",\n \"namePlaceholder\": \"např. Týdenní tržby\",\n \"pageLabel\": \"Stránka\",\n \"pagePlaceholder\": \"Vyberte stránku…\",\n \"frequencyLabel\": \"Frekvence\",\n \"frequency\": {\n \"daily\": \"Denně\",\n \"weekly\": \"Týdně\",\n \"monthly\": \"Měsíčně\"\n },\n \"dayOfWeekLabel\": \"Den\",\n \"dayOfMonthLabel\": \"Den v měsíci\",\n \"timeLabel\": \"Čas\",\n \"timezoneLabel\": \"Časové pásmo\",\n \"formatLabel\": \"Doručení\",\n \"formatHint\": \"Datový snímek (vykreslování PDF/PNG dorazí v pozdější verzi) — každé spuštění vytvoří CSV snímek a oznámení v aplikaci.\",\n \"recipientsLabel\": \"Příjemci\",\n \"recipientsHint\": \"Uloženo se sestavou. Doručování e-mailem dorazí v pozdější verzi — spuštění vás zatím upozorní v aplikaci.\",\n \"deliveryBadge\": \"CSV snímek\",\n \"delete\": \"Smazat\",\n \"create\": \"Vytvořit\",\n \"cadence\": {\n \"daily\": \"Denně v {time} ({zone})\",\n \"weekly\": \"Týdně · {day} v {time} ({zone})\",\n \"monthly\": \"Měsíčně · {day}. den v {time} ({zone})\"\n }\n },\n \"notifications\": {\n \"channel\": {\n \"inApp\": \"V aplikaci\",\n \"email\": \"E-mail\",\n \"push\": \"Push\"\n },\n \"event\": {\n \"reportReady\": \"Naplánovaná sestava připravena\",\n \"reportFailed\": \"Naplánovaná sestava selhala\",\n \"backupCompleted\": \"Záloha dokončena\"\n }\n }\n};\n//# sourceMappingURL=common.js.map"],"names":["common"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e={common:{dismiss:"Schließen",notifications:"Benachrichtigungen",retry:"Erneut versuchen",undo:"Rückgängig",close:"Schließen",cancel:"Abbrechen",back:"Zurück",loading:"Wird geladen",clearSearch:"Suche löschen",clear:"Leeren",save:"Speichern"},auth:{headline:"Machen Sie aus jeder Datenbank ein Dashboard.",trust:"AGPL-Kern · Selbst gehostet · Ihre Daten bleiben Ihre",signIn:{title:"Willkommen zurück",subtitle:"Melden Sie sich in Ihrem Adminium-Workspace an.",email:"E-Mail",emailInvalid:"Geben Sie eine gültige E-Mail-Adresse ein.",password:"Passwort",passwordRequired:"Geben Sie Ihr Passwort ein.",showPassword:"Passwort anzeigen",hidePassword:"Passwort verbergen",remember:"Angemeldet bleiben",forgot:"Vergessen?",submit:"Anmelden",invalid:"E-Mail oder Passwort ist ungültig.",rateLimited:"Zu viele Versuche — versuchen Sie es in einer Minute erneut.",failed:"Anmeldung fehlgeschlagen. Prüfen Sie Ihre Verbindung und versuchen Sie es erneut."},forgot:{title:"Passwort zurücksetzen",email:"E-Mail",emailInvalid:"Geben Sie eine gültige E-Mail-Adresse ein.",submit:"Link zum Zurücksetzen senden",sentTitle:"Prüfen Sie Ihr E-Mail-Postfach",resend:"Erneut senden",back:"Zurück zur Anmeldung",done:"Zurück zur Anmeldung",rateLimited:"Zu viele Anfragen — versuchen Sie es später erneut.",failed:"Etwas ist schiefgelaufen. Versuchen Sie es erneut.",smtpUnconfigured:"Für dieses Adminium ist kein E-Mail-Server konfiguriert, daher kann kein Link zum Zurücksetzen gesendet werden. Bitten Sie eine Administratorin oder einen Administrator, Ihr Passwort zurückzusetzen."},reset:{title:"Neues Passwort festlegen",subtitle:"Mindestens 8 Zeichen.",password:"Neues Passwort",confirm:"Passwort bestätigen",showPassword:"Passwort anzeigen",hidePassword:"Passwort verbergen",strength:"Passwortstärke",weak:"Schwach",fair:"Ausreichend",good:"Gut",strong:"Stark",tooShort:"Verwenden Sie mindestens 8 Zeichen.",submit:"Passwort zurücksetzen",failed:"Zurücksetzen fehlgeschlagen. Versuchen Sie es erneut."},otp:{title:"Zwei-Faktor-Authentifizierung",subtitle:"Geben Sie den 6-stelligen Code aus Ihrer Authenticator-App ein.",code:"Einmalcode",recoveryCode:"Wiederherstellungscode",useRecovery:"Gerät verloren? Wiederherstellungscode verwenden",useAuthenticator:"Stattdessen die Authenticator-App verwenden",submit:"Bestätigen",invalid:"Dieser Code hat nicht funktioniert. Versuchen Sie es erneut.",failed:"Bestätigung fehlgeschlagen. Prüfen Sie Ihre Verbindung und versuchen Sie es erneut."}},nav:{home:"Start",primary:"Hauptbereich",account:"Konto",signOut:"Abmelden",empty:"Sobald eine Datenbank verbunden ist, erscheinen hier Seiten.",connection:{shared:"Gemeinsam",unnamed:"Verbindung"},imports:"Daten importieren",exports:"Datenexporte",emailTemplates:"E-Mail-Vorlagen",notificationSettings:"Benachrichtigungseinstellungen",scheduledReports:"Geplante Berichte",group:{workspace:"Arbeitsbereich",library:"Bibliothek",planning:"Planung",people:"Personen",account:"Konto"}},topbar:{search:"Suchen…",notifications:"Benachrichtigungen",notificationsLoading:"Benachrichtigungen werden geladen",notificationsError:"Benachrichtigungen konnten nicht geladen werden.",notificationsEmpty:"Alles erledigt.",theme:"Hell / Dunkel umschalten",userMenu:"Kontomenü",profile:"Profil",preferences:"Einstellungen",signOut:"Abmelden"},palette:{dialog:"Befehlspalette",placeholder:"Befehl eingeben oder suchen…",navigate:"Navigation",actions:"Aktionen",askAi:"KI fragen",shortcuts:"Tastaturkürzel",signOut:"Abmelden",themeDark:"Zum dunklen Design wechseln",themeLight:"Zum hellen Design wechseln",footerNavigate:"navigieren",footerOpen:"auswählen",footerClose:"schließen"},shortcuts:{title:"Tastaturkürzel",subtitle:"Schneller arbeiten in ganz Adminium",close:"Schließen",dismiss:"Schließen oder verwerfen",palette:"Befehlspalette öffnen",panel:"Kürzel-Übersicht anzeigen",search:"Suche fokussieren",sidebar:"Seitenleiste umschalten",theme:"Hell / Dunkel umschalten",then:"dann",footerPre:"Drücken Sie",footerPost:", um diese Übersicht jederzeit zu öffnen."},states:{checked:"vor 8 s geprüft",diagnostics:"Diagnose"},notFound:{title:"Diese Seite ist verschwunden",errorLine:"Fehler 404",searchPlaceholder:"Nach einer Seite suchen…",matches:"Passende Seiten",popular:"Beliebte Ziele",goBack:"Zurück",backToDashboard:"Zurück zum Dashboard"},page:{invalid:{title:"Die Konfiguration dieser Seite ist ungültig",body:"Das gespeicherte Seitendokument hat die Validierung nicht bestanden und kann nicht dargestellt werden."},renderError:{title:"Diese Seite konnte nicht dargestellt werden"},tooNew:{title:"Diese Seite benötigt ein neueres Adminium"},unknownTemplate:{title:"Unbekannte Seitenvorlage"}},mutation:{created:"Datensatz erstellt",updated:"Datensatz aktualisiert",deleted:"Datensatz gelöscht"},undo:{done:"Änderung rückgängig gemacht",failed:"Diese Änderung konnte nicht rückgängig gemacht werden"},prefs:{theme:{label:"Design",light:"Hell",dark:"Dunkel",system:"System"},accent:{label:"Akzentfarbe",indigo:"Indigo",blue:"Blau",teal:"Petrol",violet:"Violett",rose:"Rosé",red:"Rot",orange:"Orange",black:"Schwarz"},density:{label:"Dichte",comfortable:"Komfortabel",compact:"Kompakt"},locale:{label:"Sprache",directionNote:"Textrichtung: rechts nach links (wird automatisch durch die Sprache festgelegt)"}},account:{title:"Konto",subtitle:"Die Identität Ihrer aktuellen Sitzung. Anzeigeeinstellungen und Benachrichtigungen verwalten Sie auf ihren eigenen Seiten.",preferencesLink:"Einstellungen",notificationsLink:"Benachrichtigungseinstellungen",name:"Name",email:"E-Mail",roles:"Rollen",twoFactor:"Zwei-Faktor",on:"Aktiviert",off:"Aus",preferences:{title:"Einstellungen",subtitle:"Wie Adminium für Sie aussieht und sich liest — auf diesem und jedem anderen Gerät, an dem Sie sich anmelden.",workspaceDefault:"Workspace-Standard",personal:"Persönlich",usingDefault:"Workspace-Standard wird verwendet ({value})",reset:"Auf Workspace-Standard zurücksetzen",resetFailed:"Diese Einstellung konnte nicht zurückgesetzt werden. Versuchen Sie es erneut.",appliesInstantly:"Änderungen gelten sofort und werden in Ihrem Profil gespeichert."}},settings:{defaults:{title:"Globale Standards",subtitle:"Workspace-weite Standards für Darstellung und Sprache.",explainer:"Diese Standards gelten für alle Benutzer, sofern sie sie nicht überschreiben. Jeder kann unter Profil → Einstellungen eigene Werte festlegen — persönliche Einstellungen haben für diesen Benutzer immer Vorrang.",appearanceHeading:"Darstellungs-Standards",languageHeading:"Standards für Sprache & Region",adoption:"{following, number} von {total, plural, one {# Benutzer} other {# Benutzern}} folgen diesem Standard.",weekStartNote:"Wochenbeginn und Zahlenformate richten sich nach der Sprache.",save:"Standards speichern",saved:"Workspace-Standards aktualisiert",saveFailed:"Die Workspace-Standards konnten nicht gespeichert werden. Versuchen Sie es erneut.",liveNote:"Beim Speichern wird die Änderung live übertragen — angemeldete Benutzer, die einem Standard folgen, sehen sie ohne Neuladen."},notifications:{subtitle:"Wählen Sie, worüber und wie Sie benachrichtigt werden",matrixLabel:"Benachrichtigen bei",rowHeader:"Ereignis",saving:"Wird gespeichert…",saved:"Gespeichert",unavailable:"Noch nicht verfügbar",loading:"Einstellungen werden geladen",errorTitle:"Diese Einstellungen konnten nicht geladen werden",emptyTitle:"Noch nichts zu konfigurieren",emptyBody:"Benachrichtigungsereignisse erscheinen hier, sobald ihre Produzenten ausgeliefert werden.",saveFailed:"Diese Änderung konnte nicht gespeichert werden."}},studio:{source:{engine:{label:"Datenbank-Engine",postgres:"PostgreSQL",mysql:"MySQL / MariaDB",sqlite:"SQLite"},format:{label:"Schemaformat",helper:"Bei automatischer Erkennung belassen, sofern sie nicht danebenliegt.",auto:"Automatisch erkennen",sql:"SQL-DDL / pg_dump",prisma:"Prisma-Schema",drizzle:"Drizzle ORM",typeorm:"TypeORM-Entitäten",sequelize:"Sequelize-Modelle",rails:"Rails schema.rb",django:"Django models.py",json:"Adminium-JSON"},sqlite:{file:"Pfad zur Datenbankdatei",helper:"SQLite ist eine Datei, kein Server — geben Sie den absoluten Pfad auf der Maschine an, auf der Adminium läuft."},file:{detectedAs:"Erkannt: {format}",moreWarnings:"+{count} weitere Warnungen — die vollständige Liste erscheint im Analyse-Schritt.",dropTitle:"Schemadatei hier ablegen oder durchsuchen",dropHint:"SQL DDL / pg_dump, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, Django-Modelle, Adminium JSON",pitch:"Keine Datenbankverbindung nötig — wir parsen Ihre Schemadatei und bauen dieselben Dashboards.",parsing:"Hochgeladene Schemadatei wird gelesen…",tables:"Tabellen",columns:"Spalten",warnings:"Warnungen",errorTitle:"Datei konnte nicht geparst werden",parseFailed:"Diese Datei konnte nicht geparst werden. Falls die automatische Erkennung falsch lag, wählen Sie das Format explizit und versuchen Sie es erneut.",unsupported:"Dieses Format wird nicht erkannt — unterstützt werden SQL DDL, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, Django-Modelle und Adminium JSON. Wählen Sie eines explizit und versuchen Sie es erneut.",requestFailed:"Upload fehlgeschlagen — prüfen Sie Ihre Verbindung und versuchen Sie es erneut."},title:"Verbinden Sie Ihre Datenbank",subtitle:"Richten Sie Adminium auf eine Datenbank — wir generieren aus ihrem Schema ein Admin-Dashboard.",name:"Verbindungsname",namePlaceholder:"Produktions-Postgres",modeLabel:"Eingabemodus der Quelle",mode:{dsn:"Verbindungszeichenfolge",fields:"Einzelne Felder",file:"Schemadatei"},dsn:{label:"Verbindungszeichenfolge",helper:"postgres://benutzer:passwort@host:5432/datenbank — mysql:// und sqlite: funktionieren ebenfalls.",incomplete:"Host und Datenbank ergänzen, z. B. postgres://user@host:5432/db",invalidScheme:"Unbekanntes Schema — erwartet werden postgres://, mysql://, mariadb:// oder sqlite:",quickFill:"Schnellausfüllen:"},fields:{host:"Host",port:"Port",database:"Datenbank",user:"Benutzer",password:"Passwort",ssl:"SSL-Modus",preview:"Vorschau der Verbindungszeichenfolge:"},readOnlyRole:{title:"Verwenden Sie eine schreibgeschützte Rolle",body:"Adminium schreibt nie in Ihre Datenbank — die Einrichtung nutzt nur Schema-Metadaten. Wir empfehlen einen dedizierten Benutzer mit reinen SELECT-Rechten; wo Adminium seine eigenen Tabellen ablegt, entscheiden Sie im Meta-Speicher-Schritt."}},capability:{mysqlApproxRows:"MySQL-Zeilenzahlen sind Schätzungen der Storage-Engine (Abweichungen bis ±40 % möglich) — sie werden mit ≈ angezeigt.",mysqlFkEnum:"MySQL liefert schwächere FK-/Enum-Metadaten: MyISAM-Tabellen deklarieren keine Fremdschlüssel, Enums sind spaltengebundene enum(…)-Typen, und CHECK-Constraints erfordern MySQL 8.0.16+ / MariaDB 10.2+.",sqliteCheckEnums:"SQLite hat keinen nativen Enum-Typ — Enums werden aus CHECK-(col IN (…))-Constraints abgeleitet.",sqliteNoComments:"SQLite kennt keine Spaltenkommentare — verwenden Sie den Schema-Remap-Editor, um Beschriftungen zu vergeben.",importNoRowCounts:"Schemadateien enthalten keine Zeilenzahlen — die Tabellenliste zeigt — statt erfundener Werte.",importNoLiveHealth:"Keine Live-Datenbankverbindung — Health-Checks und Schema-Drift-Erkennung sind für diese Quelle nicht verfügbar.",rowsUnavailable:"Schemadateien haben keine Live-Datenbank — Zeilenzahlen sind unbekannt, bis Sie eine verbinden.",rowsRunAnalyze:"Noch keine Schätzung — führen Sie ANALYZE auf der Datenbank aus, um Zeilenzahlen zu erhalten.",rowsNoEstimate:"Die Engine hat für diese Tabelle keine Schätzung gemeldet.",rowsApproximate:"Schätzung der Storage-Engine — kann bei InnoDB um bis zu ±40 % abweichen."},test:{log:{moreWarnings:"+{count} weitere Parser-Warnungen",connecting:"Sichere Verbindung wird aufgebaut…",connected:"Verbunden ({latency} ms) · schreibgeschützte Introspektion",connectFailed:"Verbindung fehlgeschlagen.",readingSchema:"Schema wird gelesen: public",readingFile:"Hochgeladene Schemadatei wird gelesen…",parsingFile:"{file} wird geparst…",detected:"{tables} Tabellen · {columns} Spalten erkannt",found:"{tables} Tabellen · {columns} Spalten gefunden",mapping:"Spaltentypen → Eingabe-Widgets werden zugeordnet",relations:"Beziehungen werden erkannt…",piiScan:"Suche nach PII-Spalten…",piiDone:"PII-Scan abgeschlossen — {count} Spalten standardmäßig maskiert",piiDoneUnknown:"PII-Scan abgeschlossen",jobFailed:"Introspektion fehlgeschlagen.",networkFailed:"Anfrage fehlgeschlagen — prüfen Sie Ihre Verbindung und versuchen Sie es erneut.",ready:"Bereit"},title:"Ihr Schema wird analysiert",subtitle:"Tabellen, Spalten und Beziehungen werden introspiziert. Das dauert ein paar Sekunden.",trust:"Wir lesen nur Ihr Schema und Ihre Daten. Nichts wird verändert.",errorTitle:"Verbindung fehlgeschlagen",retry:"Erneut versuchen",logLabel:"Introspektionsprotokoll",hint:{auth:"Authentifizierung fehlgeschlagen — prüfen Sie Benutzername und Passwort in Ihrer DSN.",hostUnreachable:"Host nicht erreichbar — prüfen Sie Hostname und Port und dass die Datenbank Verbindungen von dieser Maschine akzeptiert (unsere IPs freigeben).",metaPlacement:"Diese Quelle kann Adminiums Meta-Tabellen nicht aufnehmen — fahren Sie mit einer separaten Meta-Datenbank fort.",permission:"Die Rolle hat sich verbunden, darf das Schema aber nicht lesen — erteilen Sie Ihrer Introspektionsrolle USAGE auf dem Schema.",timeout:"Die Datenbank hat nicht rechtzeitig geantwortet — prüfen Sie Netzwerkpfad und Auslastung und versuchen Sie es erneut.",tls:"TLS-Aushandlung fehlgeschlagen — versuchen Sie sslmode=require oder laden Sie das CA-Zertifikat hoch, das Ihr Server erwartet.",unknown:"Verbindung fehlgeschlagen — prüfen Sie die DSN und versuchen Sie es erneut."}},tables:{importNoCounts:"Schemadateien enthalten keine Zeilenzahlen — die Spalte zeigt —, bis eine Live-Datenbank verbunden ist.",title:"Wählen Sie Ihre Tabellen",subtitle:"Wählen Sie, welche enthalten sein sollen. Sie können das jederzeit ändern.",search:"Tabellen filtern…",listLabel:"Einbeziehbare Tabellen",emptyFilter:"Keine Tabellen entsprechen Ihrem Filter.",pii:"PII",highVolume:"hohes Volumen",highVolumeNote:"Tabellen mit über 100.000 Zeilen sind anfangs abgewählt — Ops-Tabellen gehören selten in ein Dashboard.",joinHidden:"{count} Join-/Systemtabellen sind vorab ausgeblendet — sie treiben weiterhin m:n-Beziehungen an."},hub:{title:"Datenverbindungen",subtitle:"{healthy, number} von {total, plural, one {# Verbindung} other {# Verbindungen}} fehlerfrei",connectNew:"Neue Verbindung",stats:{connections:"Verbindungen",healthy:"Fehlerfrei",tables:"Einbezogene Tabellen",pages:"Generierte Seiten"},status:{connected:"Verbunden",error:"Fehler",unconfigured:"Entwurf",testing:"Wird getestet…"},card:{readOnly:"Schreibgeschützt",tables:"Tabellen",pages:"Seiten",latency:"Latenz",latencyMs:"{latency, number} ms",lastIntrospected:"Zuletzt introspiziert",never:"Nie"},action:{test:"Testen",reintrospect:"Neu introspizieren",reintrospectFile:"Schemadatei-Quellen haben keine Live-Datenbank — laden Sie stattdessen die Datei erneut hoch.",remap:"Schema neu zuordnen",delete:"Löschen"},test:{ok:"Verbindung fehlerfrei · {latency, number} ms",failed:"Verbindungstest fehlgeschlagen"},introspect:{noChanges:"Schema unverändert — kein neuer Snapshot.",updated:"Schema neu introspiziert",masksProposed:"{count, plural, one {# Spalte} other {# Spalten}} zur Maskierung vorgeschlagen — im Remap-Editor prüfen.",failed:"Introspektion fehlgeschlagen. Versuchen Sie es erneut."},delete:{title:"Verbindung löschen",body:"Dies löscht „{name}“ und die daraus generierten Seiten. Ihre Datenbank selbst bleibt unangetastet.",prompt:"Geben Sie {name} zur Bestätigung ein",confirm:"Verbindung löschen",cancel:"Abbrechen",close:"Schließen",success:"Verbindung „{name}“ gelöscht",failed:"Die Verbindung konnte nicht gelöscht werden. Versuchen Sie es erneut."},empty:{title:"Noch keine Datenquellen",body:"Verbinden Sie eine Datenbank — Adminium generiert Ihr Admin-Panel aus deren Schema.",cta:"Datenbank verbinden"}},settingsHub:{title:"Workspace-Einstellungen",subtitle:"Identität, Sicherheit und destruktive Aktionen für diesen Workspace.",save:"Änderungen speichern",saved:"Workspace-Einstellungen aktualisiert",saveFailed:"Die Workspace-Einstellungen konnten nicht gespeichert werden. Versuchen Sie es erneut.",superAdminOnlyTitle:"Super-Admin erforderlich",superAdminOnly:"Nur ein Super-Admin kann Identität und Sicherheitseinstellungen des Workspace ändern.",identity:{heading:"Workspace-Identität",appName:{label:"Anwendungsname",helper:"Erscheint in der Seitenleiste, im Browser-Titel und in E-Mails.",error:"Geben Sie einen Namen mit höchstens 60 Zeichen ein."}},security:{heading:"Sicherheit",require2fa:{label:"Zwei-Faktor-Authentifizierung verlangen",desc:"Jedes Mitglied muss 2FA aktivieren, um sich anzumelden."},allowSignup:{label:"Selbstregistrierung erlauben",desc:"Jeder kann ein Konto erstellen — deaktiviert bleibt der Workspace nur per Einladung zugänglich."},sessionTtl:{label:"Sitzungsdauer (Stunden)",error:"Zwischen {min, number} und {max, number} Stunden."},passwordMin:{label:"Minimale Passwortlänge",error:"Zwischen {min, number} und {max, number} Zeichen."}},review:{title:"Workspace-Einstellungen speichern",subtitle:"Prüfen Sie Ihre Änderungen vor dem Speichern.",confirm:"Änderungen speichern",cancel:"Abbrechen",close:"Schließen",on:"An",off:"Aus",change:"{before} → {after}"},defaultsCard:{heading:"Standards für Darstellung & Sprache",body:"Workspace-weite Einstellungen für Theme, Akzentfarbe, Dichte und Sprache finden Sie unter „Globale Standards“.",cta:"Globale Standards öffnen"},danger:{heading:"Gefahrenzone",subtitle:"Unumkehrbare Aktionen.",empty:"Nichts zu löschen — noch keine Verbindungen.",deleteDesc:"Löscht die Verbindung und die daraus generierten Seiten. Ihre Datenbank bleibt unangetastet. Kann nicht rückgängig gemacht werden.",deleteCta:"Verbindung löschen"},aiCard:{heading:"KI-Anreicherung",body:"Konfigurieren Sie einen KI-Anbieter (oder den Kopieren-Einfügen-Umlauf), um Bezeichnungen, Gruppen und Beziehungen anzureichern.",cta:"KI-Einstellungen öffnen"}},settingsAi:{title:"KI-Anreicherung",subtitle:"Verbinden Sie ein Modell, damit Adminium Bezeichnungen, Gruppen, Beziehungen und mehr vorschlägt — immer als Diff geprüft, bevor etwas übernommen wird.",saved:"KI-Anbieter gespeichert",saveFailed:"Der KI-Anbieter konnte nicht gespeichert werden. Erneut versuchen.",save:"Anbieter speichern",test:"Verbindung testen",testHintDirty:"Speichern Sie Ihre Änderungen vor dem Test.",testing:"Anbieter wird angepingt…",testError:"Test fehlgeschlagen",testErrorBody:"Der Anbieter war nicht erreichbar. Prüfen Sie Schlüssel und Basis-URL.",testOk:"Verbunden mit {model} in {latency} ms",testUnknownModel:"dem Anbieter",provider:{heading:"KI-Anbieter",subtitle:"Wählen Sie, wie Adminium ein Modell zur Anreicherung Ihres Schemas erreicht. Schlüssel werden verschlüsselt gespeichert und nie wieder angezeigt.",active:"Aktiv",anthropic:{label:"Anthropic",desc:"Claude-Modelle über die Anthropic-API."},openai:{label:"OpenAI",desc:"GPT-Modelle über die OpenAI-API."},openaiCompatible:{label:"OpenAI-kompatibel",desc:"Jeder Endpunkt, der das OpenAI-Format spricht — Groq, Together, vLLM, LM Studio."},ollama:{label:"Ollama (lokal)",desc:"Modelle laufen lokal über Ollama — kein Schlüssel, keine Cloud."},requiresNetwork:"Erfordert Internet und einen API-Schlüssel",networkDisabledTitle:"Direkte KI-Anbieter sind in dieser Installation deaktiviert",networkDisabledBody:"Dieses Adminium ist ohne ausgehenden Internetzugang konfiguriert und kann keine Anbieter-API erreichen. Nutzen Sie unten den Kopieren-und-Einfügen-Weg — er braucht weder Schlüssel noch Netzwerk."},configure:{heading:"{provider} konfigurieren"},field:{baseUrl:"Basis-URL",baseUrlOptional:"Unverändert lassen, außer Ollama läuft auf einem anderen Host.",baseUrlHelper:"Die Endpunkt-Wurzel, die /chat/completions bereitstellt.",model:"Modell",modelFreeText:"Geben Sie die genaue Modell-ID ein, die Ihr Endpunkt bereitstellt.",modelLive:"Live vom Anbieter geladen.",modelStatic:"Eine bewährte Liste; geben Sie nach dem Speichern eine eigene ID ein, um sie zu aktualisieren.",modelLoading:"Wird geladen…",modelPlaceholder:"Modell auswählen…",key:"API-Schlüssel",keyStored:"Verschlüsselt gespeichert. Ersetzen Sie ihn, um einen anderen Schlüssel zu verwenden.",keyMask:"sk-…{last4}",keyReplace:"Schlüssel ersetzen",keyOptional:"Optional — manche Endpunkte brauchen keinen Schlüssel.",keyWriteOnly:"Nur schreibend: einmal gespeichert, wird er nie wieder angezeigt.",noKeyTitle:"Kein API-Schlüssel nötig",noKeyBody:"Ollama läuft lokal, es verlässt also nichts diesen Rechner."},runStatus:{draft:"Entwurf",running:"Läuft",awaitingResponse:"Wartet auf Antwort",validated:"Validiert",applied:"Übernommen",partiallyApplied:"Teilweise übernommen",failed:"Fehlgeschlagen",discarded:"Verworfen"},byo:{heading:"Kein Schlüssel? Nutzen Sie Ihr eigenes KI-Tool",subtitle:"Der Kopieren-Einfügen-Umlauf — nichts verlässt diesen Rechner.",body:"Studio kann aus Ihrem Schema einen eigenständigen Prompt erzeugen. Führen Sie ihn in Claude Code, ChatGPT oder einem beliebigen Tool aus und fügen Sie das zurückgegebene JSON wieder in den Verbindungsassistenten ein. Gleiche Validierung, gleiche Prüfung, gleiches Ergebnis wie der direkte Weg.",guaranteeTitle:"Telemetriefreie Garantie",guarantee1:"Der Prompt enthält nur Ihr Schema und aggregierte Statistiken — standardmäßig nie Zeilendaten.",guarantee2:"Keine Anmeldedaten, keine Instanz-URL, keine Kennungen sind eingebettet.",guarantee3:"BYO-Läufe machen keinerlei Netzwerkaufrufe.",promptVersion:"Prompt {version}",schemaVersion:"Schema {version}",headingRecommended:"Eigenes KI-Tool verwenden — kein Schlüssel nötig",recommended:"Empfohlen"},history:{heading:"Laufverlauf",subtitle:"Frühere Anreicherungsläufe. Öffnen Sie einen, um seine Vorschläge zu prüfen.",tableLabel:"Anreicherungsläufe",colDate:"Datum",colSource:"Quelle",colStatus:"Status",colChunks:"Blöcke",openReview:"Prüfung für den Lauf vom {date} öffnen",connection:"Verbindung",empty:"Noch keine Anreicherungsläufe. Reichern Sie ein Schema im Verbindungsassistenten an, um hier Verlauf zu sehen.",errorTitle:"Läufe konnten nicht geladen werden",errorBody:"Laden Sie die Seite neu, um es erneut zu versuchen.",noConnections:"Verbinden Sie zuerst eine Datenbank — Anreicherungsläufe werden pro Verbindung erfasst.",byo:"BYO",directPath:"Direkt"}},enrich:{title:"Mit KI anreichern",subtitle:"Verfeinern Sie die generierten Bezeichnungen, Gruppen, Enums und Dashboards optional mit einem LLM. Die heuristische Grundlage funktioniert auch ohne — dies fügt nur Vorschläge hinzu, die Sie prüfen, bevor etwas angewendet wird.",intentLabel:"Wie möchten Sie anreichern?",sectionsLegend:"Worüber soll die KI entscheiden?",localesLegend:"Bezeichnungen übersetzen in",localeLocked:"(erforderlich)",samplingTitle:"Beispielwerte einbeziehen",samplingHint:"Nimmt bis zu 20 echte Werte pro Nicht-PII-Spalte in den Prompt auf.",samplingPreviewTitle:"Was diesen Rechner verlässt",samplingPreviewBody:"Bis zu 20 häufigste Werte pro Nicht-PII-Spalte, plus Min/Max für numerische und Datumsspalten. Als PII markierte Spalten werden nie beprobt. Alles Übrige bleibt rein aggregiert. Prüfen Sie den genauen Prompt vor dem Kopieren (BYO) — ohne Ihr Zutun wird nichts gesendet.",noSections:"Wählen Sie mindestens eine Entscheidungsgruppe zum Anreichern.",generatePrompt:"Prompt erzeugen",startProvider:"Anreicherung starten",startOver:"Von vorn beginnen",copied:"Kopiert",createFailed:"Der Anreicherungs-Prompt konnte nicht erstellt werden — erneut versuchen.",createFailedTitle:"Konnte nicht starten",providerFallback:"Ihr KI-Anbieter",fileTitle:"KI-Anreicherung benötigt eine aktive Datenbank",fileBody:"Schema-Datei-Quellen haben noch keinen Snapshot zum Anreichern. Verbinden Sie eine aktive Datenbank für die KI-Anreicherung, oder fahren Sie fort — die heuristische Grundlage erzeugt weiterhin eine vollständige App.",section:{labels:"Bezeichnungen & Beschreibungen",groups:"Navigationsgruppen",enums:"Enum-Semantik",relations:"Beziehungen",keys:"Schlüsselspalten",templates:"Seitenvorlagen",widgets:"Dashboard-Widgets",pii:"PII & Maskierung",icons:"Symbole",microcopy:"Mikrotexte"},provider:{title:"Meinen KI-Anbieter verwenden",description:"Führen Sie die Anreicherung jetzt mit Ihrem konfigurierten Anbieter aus. Sie prüfen jeden Vorschlag als Diff.",unconfigured:"Es ist noch kein KI-Anbieter konfiguriert — kopieren Sie unten einen Prompt in Ihr eigenes Tool, oder konfigurieren Sie zuerst einen Anbieter.",settingsHint:"Möchten Sie es direkt ausführen?",settingsLink:"Anbieter in Einstellungen → KI konfigurieren",networkDisabled:"Dieses Adminium hat keinen ausgehenden Internetzugang und kann keine Anbieter-API erreichen. Nutzen Sie stattdessen den Kopieren-und-Einfügen-Weg — gleicher Prompt, gleiche Prüfung."},byo:{cardTitle:"Einen Prompt in mein eigenes KI-Tool kopieren",cardDescription:"Kopieren Sie einen eigenständigen Prompt in Claude Code, ChatGPT oder ein beliebiges Tool — und fügen Sie das JSON zurück ein. Kein Schlüssel nötig, nichts verlässt diesen Rechner automatisch.",guidance:"Führen Sie dies in einem beliebigen KI-Tool aus — Claude Code, ChatGPT, egal. Fügen Sie das zurückgegebene JSON unten ein.",promptLabel:"Anreicherungs-Prompt",promptLabelN:"Anreicherungs-Prompt {index} von {total}",tokenChip:"≈ {tokens} Tokens",copyPrompt:"Prompt kopieren",copyPromptDone:"Prompt kopiert",download:".md herunterladen",chunkTabs:"Prompt-Abschnitte",chunkTab:"Prompt {index}",chunkValid:"Abschnitt {index} validiert",pasteLabel:"JSON-Antwort einfügen",pastePlaceholder:"JSON-Antwort hier einfügen…",validate:"Validieren",valid:"Antwort validiert",mergedTitle:"Alle {count} Abschnitte validiert und zusammengeführt",mergedTitleSingle:"Antwort validiert",mergedBody:"Die Vorschläge können nun gegen die heuristische Grundlage geprüft werden.",errorsTitle:"Die Validierung fand {count} Probleme",copyErrors:"Fehler für Ihr KI-Tool kopieren",copyErrorsDone:"Fehler kopiert",copyErrorsHint:"Fügen Sie dies in Ihr KI-Tool zurück ein, um eine korrigierte Antwort zu erhalten.",droppedItems:"{count} Vorschläge wurden bei der Validierung verworfen — die Prüfung zeigt die übrigen.",pendingTitle:"Validieren Sie jeden Prompt, um fortzufahren",pendingBody:"Fügen Sie die JSON-Antwort oben ein und validieren Sie sie, um zur Prüfung fortzufahren.",pendingBodyChunked:"Jeder Abschnitt muss validiert werden, bevor die Vorschläge zusammengeführt werden. Fügen Sie jeden Prompt oben ein und validieren Sie ihn.",requestFailed:"Der Server war für die Validierung nicht erreichbar — erneut versuchen.",continueReview:"Weiter zur Prüfung",wholeDocument:"gesamtes Dokument",cardTitleRecommended:"Prompt in mein eigenes KI-Tool kopieren — empfohlen"},direct:{title:"Anreicherung mit KI",subtitle:"Ihr Schema wird gesendet an",building:"Prompt wird erstellt…",logLabel:"Anreicherungsprotokoll",cancel:"Abbrechen",back:"Zurück zu den Optionen",retry:"Erneut versuchen",done:"Anreicherung abgeschlossen — prüfen Sie die Vorschläge.",continueReview:"Weiter zur Prüfung",failed:"Der Anbieterlauf ist fehlgeschlagen. Prüfen Sie Ihre KI-Einstellungen und versuchen Sie es erneut.",jobFailed:"Der Anreicherungslauf wurde nicht abgeschlossen.",startFailed:"Der Lauf konnte nicht gestartet werden — erneut versuchen.",errorTitle:"Anreicherung fehlgeschlagen"},skip:{title:"Überspringen — nur Heuristik verwenden",description:"Aus der heuristischen Grundlage generieren. Sie können später über Einstellungen → KI anreichern — Überspringen wird nie bestraft.",confirmTitle:"Weiter mit Heuristik",confirmBody:"Die generierte App verwendet die heuristischen Bezeichnungen, Gruppen und Dashboards. Fahren Sie mit dem Generieren fort — Sie können die KI-Anreicherung jederzeit über Einstellungen → KI ausführen."}},review:{unavailableTitle:"Prüfungsansicht nicht verfügbar",unavailableBody:"Dieser Build enthält die Anreicherungs-Prüfungsansicht noch nicht (06-T14). Sie kommt mit dem Diff-und-Übernehmen-Ablauf."},llmRuns:{review:{header:{title:"KI-Vorschläge prüfen",model:"Modell",snapshot:"Snapshot",byo:"BYO",pathDirect:"Direkte API",pathByo:"Kopieren & Einfügen",agree:"{n} übereinstimmend",conflict:"{n} Konflikt",new:"{n} neu",rejects:"{n} Ablehnungen",countsAria:"Anzahl der Vorschläge"},bulk:{thresholdLabel:"Konfidenzschwelle",thresholdAria:"Konfidenzschwelle für „Alle übernehmen“",acceptAll:"Alle ≥ {pct}% übernehmen",clear:"Auswahl aufheben"},section:{selectAllAria:"Alle in {group} auswählen",acceptedCount:"{n} übernommen"},group:{labels:"Bezeichnungen & Übersetzungen",navigation:"Navigation & Domänen",enums:"Enum-Semantik",relations:"Beziehungen",keys:"Schlüsselspalten",templates:"Seitenvorlagen",dashboards:"Dashboards & Widgets",pii:"PII & Maskierung",icons:"Symbole",microcopy:"Mikrotexte"},status:{agree:"Stimmt überein",conflict:"Konflikt",new:"Neu",heuristicOnly:"Nur Heuristik",rejects:"Lehnt Heuristik ab",locked:"Gesperrt"},row:{acceptAria:"{noun}-Vorschlag für {target} übernehmen",keptEdited:"beibehalten – von Ihnen bearbeitet",rejectsCallout:"Die KI lehnt eine heuristische Entscheidung ab – vor dem Übernehmen bestätigen.",showTranslations:"Übersetzungen anzeigen",hideTranslations:"Übersetzungen ausblenden",confidenceAria:"Konfidenz {pct}%",noAi:"Kein KI-Vorschlag"},value:{none:"Kein Wert",absent:"Keiner",dash:"—",display:"Anzeige",key:"Schlüssel",rank:"Rang {n}",span:"Breite {n}",tableCount:"{n} Tabellen",widgetCount:"{n} Widgets",enumWorkflow:"Workflow",enumCategory:"Kategorie",notPii:"Keine PII",label:"Bezeichnung",description:"Beschreibung",subtitle:"Seitenuntertitel",headline:"Überschrift für leeren Zustand",guidance:"Hinweis für leeren Zustand"},apply:{title:"{n} Vorschläge übernehmen",subtitle:"Diese Änderungen werden in einer Transaktion geschrieben und können rückgängig gemacht werden.",empty:"Nichts zum Übernehmen ausgewählt.",confirm:"Änderungen übernehmen"},footer:{count:"{n} Vorschläge ausgewählt",apply:"{n} übernommene Vorschläge anwenden",failed:"Anwenden fehlgeschlagen"},toast:{applied:"{n} Vorschläge übernommen",appliedPartial:"{n} Vorschläge übernommen (einige übersprungen)",applyFailed:"Vorschläge konnten nicht übernommen werden",undoFailed:"Diese Änderung konnte nicht rückgängig gemacht werden"},error:{title:"Dieser Lauf konnte nicht geladen werden"},notReady:{title:"Dieser Lauf hat noch keine Vorschläge zur Prüfung",body:"Ein Lauf muss validiert sein, bevor seine Vorschläge geprüft werden können. Erzeugen oder fügen Sie zuerst eine Antwort ein."},applied:{title:"Dieser Lauf wurde angewendet",body:"Die übernommenen Vorschläge unten sind schreibgeschützt."},empty:{title:"Keine Vorschläge",body:"Dieser Lauf hat keine Vorschläge zur Prüfung erzeugt."},cat:{label:"Bezeichnung",key:"Schlüsselspalten",enum:"Enum",relation:"Beziehung",pii:"PII",template:"Seitenvorlage",group:"Navigationsgruppe",dashboard:"Dashboard",widget:"Widget",copy:"Mikrotext"}}},wizard:{title:"Neue Verbindung",back:"Zurück",continue:"Weiter",progress:"Einrichtungsfortschritt",persistFailed:"Ihre Tabellenauswahl konnte nicht gespeichert werden — versuchen Sie es erneut.",persistFailedTitle:"Speichern fehlgeschlagen",step:{source:"Quelle",test:"Analysieren",tables:"Tabellen",meta:"Meta-Speicher",intent:"Zweck",enrich:"Anreichern",generate:"Generieren"}},meta:{title:"Wo soll Adminium seine eigenen Tabellen ablegen?",subtitle:"Seiten, Rollen, Audit-Log und Einstellungen liegen in Tabellen mit adminium_-Präfix — nie mit Ihren Daten vermischt.",sameDb:{title:"Gleiche Datenbank",description:"adminium_*-Tabellen werden neben Ihren Quelltabellen angelegt. Einfachste Einrichtung — benötigt eine Rolle mit Schreib- und CREATE-TABLE-Rechten.",disabledReadOnly:"Ihre Rolle ist schreibgeschützt — Adminium schreibt nie in diese Datenbank. Wählen Sie für Adminiums eigene Tabellen eine separate Datenbank.",disabledNoDdl:"Diese Rolle darf kein DDL ausführen — Adminium-Migrationen benötigen CREATE TABLE. Wählen Sie für Adminiums eigene Tabellen eine separate Datenbank.",disabledFile:"Eine Schemadatei hat keine Live-Datenbank — wählen Sie für Adminiums eigene Tabellen eine separate Datenbank."},separate:{title:"Separate Datenbank",description:"Adminium hält seine Tabellen in einer anderen Datenbank. Ihre Quelle bleibt unangetastet — erforderlich für schreibgeschützte Quellen.",dsn:"Verbindungszeichenfolge der Meta-Datenbank",helper:"Benötigt Schreib- und DDL-Rechte — Adminium führt dort seine eigenen Migrationen aus.",test:"Verbindung testen",ok:"Kompatibel — Schreiben ✓ · DDL ✓",insufficient:"Diese Rolle kann den Meta-Store nicht aufnehmen — Adminium benötigt dort Schreib- und CREATE-TABLE-Rechte.",errorTitle:"Meta-Store nicht kompatibel"},testFailed:"Verbindung fehlgeschlagen.",v1Note:{title:"Über diese Installation",body:"Dieser Server hat seinen Meta-Store beim ersten Start gewählt. Dieser Schritt prüft, ob Ihre Wahl mit dieser Verbindung kompatibel ist, und hält sie fest — der Server erzwingt dieselbe Regel unabhängig (409 META_PLACEMENT_INVALID). Einen bestehenden Meta-Store zu verschieben ist eine Ops-Aufgabe (M10)."}},intent:{title:"Was brauchen Sie?",subtitle:"Der Zweck bestimmt, welche Seiten generiert werden. Sie können ihn später ändern — eine Änderung schlägt eine Neugenerierung vor, nie ein stilles Überschreiben.",trust:"Wir lesen nur Ihr Schema — während der Einrichtung nie Ihre Zeilendaten.",fullAdmin:{title:"Vollständiges Admin-Panel",description:"Dashboards, CRUD-Seiten, Suche, Importe und Exporte — alles, was Ihr Schema unterstützt."},analytics:{title:"Schreibgeschützte Analysen",description:"Dashboards, Diagramme und schreibgeschützte Tabellen. Keine Formulare, keine Schreibvorgänge — jede Rolle auf Betrachter begrenzt."},crud:{title:"CRUD-Tabellen",description:"Eine Bearbeitungsseite pro Tabelle plus Suche und Import/Export — ein minimales Zuhause, keine Dashboards."},support:{title:"Support-Konsole",description:"Zuerst Warteschlangen, Ticket- und Kundendetailseiten. Löschen standardmäßig aus. (Queue-Vorlagen kommen mit M7 — der v1-Seitensatz entspricht dem vollständigen Admin.)"}},generate:{title:"Generieren Sie Ihre App",subtitle:"Eine Seite pro einbezogener Tabelle plus Dashboards je Domäne — Zweck:",run:"Dashboard generieren",openApp:"App öffnen",logLabel:"Generierungsprotokoll",log:{classifying:"Schema wird klassifiziert…",composing:"Vorlagen werden zusammengestellt…",writing:"Seiten werden geschrieben…",done:"{pages} Seiten in {groups} Navigationsgruppen generiert"},successTitle:"Ihr Dashboard ist bereit",successBody:"{pages} Seiten in {groups} Navigationsgruppen — aus Ihrem Schema generiert, im Studio bearbeitbar.",errorTitle:"Generierung fehlgeschlagen",failed:"Generierung fehlgeschlagen — versuchen Sie es erneut oder führen Sie zuerst die Introspektion erneut aus.",fileTitle:"Schemadatei geparst — die Generierung benötigt eine Live-Datenbank",fileBody:"Ihr Schema wurde sauber geparst und die Vorschau oben ist echt. Eine laufende App direkt aus einer Schemadatei (mit Platzhalterzeilen) zu generieren ist noch nicht verfügbar — verbinden Sie eine Live-Datenbank, um heute zu generieren."},remap:{column:{nullable:"nullable",labelOverride:"Anzeigebezeichnung",labelHelper:"Abgeleitet: {name}",logicalType:"Logischer Typ",logicalTypeHelper:"Abgeleitet: {type} (aus {dbType}) — vom Adapter zugeordnet; in v1 nicht überschreibbar.",semantic:"Semantischer Typ",unclassified:"Noch nicht klassifiziert.",semanticHelper:"Klassifizierer: {tag} · {confidence}% Konfidenz · Quelle: {source}",semanticInferred:"abgeleitet: {tag}",currency:"Währung",currencyHelper:"ISO-4217-Code für die Formatierung von Geldbeträgen.",pii:"Standardmäßig maskieren",piiHelper:"Maskierte Werte werden geschwärzt dargestellt; das Aufheben der Maskierung erfordert die Berechtigung data.unmask_pii und wird im Audit-Log protokolliert.",enum:"Enum-Semantik",enumKind:"Enum-Art",enumWorkflow:"Workflow",enumCategory:"Kategorie",enumLabelFor:"Bezeichnung für {value}",enumToneFor:"Farbton für {value}",enumToneAuto:"auto",enumHelper:"Workflow-Enums steuern Status-Pills und Board-Spalten; Farbtöne ordnen Werte der semantischen Farbtonskala zu."},diff:{one:"1 Änderung",count:"{count} Änderungen",saved:"Überschreibungen gespeichert.",revertOne:"{change} verwerfen",regenerate:"Seiten neu generieren",revertAll:"Alle verwerfen",save:"Überschreibungen speichern"},table:{iconPicker:"Tabellensymbol",system:"System",labelOverride:"Anzeigebezeichnung",labelHelper:"Abgeleitet: {name}",icon:"Symbol",navGroup:"Navigationsgruppe",navGroupHelper:"Die Platzierung in der Navigation entscheidet der Generator — eine table.navGroup-Überschreibung ist nicht Teil des v1-Vokabulars.",include:"In die generierte App einbeziehen",includeHelper:"Ausgeschlossene Tabellen erhalten keine Seiten und verschwinden aus der Navigation.",shape:"Tabellenform (klassifiziert)",role:"Rolle",unclassified:"Nicht klassifiziert",kind:"Art",hierarchy:"Hierarchie",selfFk:"Selbstreferenz über {column}",polymorphic:"Polymorphe Paare",rows:"Geschätzte Zeilenzahl",shapeHelper:"Die Klassifikation wird bei jeder Introspektion neu berechnet; Überschreibungen liegen darüber und überstehen die Neugenerierung."},relations:{declared:"Deklarierte Fremdschlüssel",noneDeclared:"Keine deklarierten Fremdschlüssel berühren diese Tabelle.",inferred:"Abgeleitete Beziehungen",noneInferred:"Für diese Tabelle wurde nichts abgeleitet.",confidence:"abgeleitet · {pct}%",accepted:"Übernommen",suppressed:"Unterdrückt",accept:"Übernehmen",suppress:"Unterdrücken",overrides:"Beziehungs-Überschreibungen (angewendet)",overrideBadge:"Überschreibung",add:"Virtuelle Beziehung hinzufügen",fromColumn:"Quellspalte",noColumns:"Keine passende Spalte",fromPlaceholder:"customer_id",toTable:"Zieltabelle",noTables:"Keine passende Tabelle",toColumn:"Zielspalte",cardinality:"Kardinalität",addButton:"Beziehung hinzufügen"},toast:{saved:"Schema-Überschreibungen gespeichert",savedDetail:"Das angewendete Schema unten spiegelt Ihre Änderungen wider.",regenerated:"{created} erstellt · {updated} aktualisiert · {unchanged} unverändert",regeneratedDetail:"Von Hand bearbeitete Seiten bleiben erhalten — nur Seiten mit unangetastetem generated_hash wurden an Ort und Stelle neu generiert.",regenerateFailed:"Neugenerierung fehlgeschlagen"},title:"Schema neu zuordnen",subtitle:"{tables} Tabellen · {applied} Überschreibungen angewendet",saveFailed:"Speichern fehlgeschlagen: {message}",loadFailed:"Das Schema für diese Verbindung konnte nicht geladen werden.",inspector:"Inspektor",empty:{title:"Wählen Sie eine Tabelle oder Spalte",description:"Wählen Sie etwas im Schemabaum aus, um Bezeichnung, Typ, Beziehungen oder Maskierung neu zuzuordnen."},tabs:{details:"Details",relations:"Beziehungen"},tree:{label:"Schema",search:"Tabellen und Spalten durchsuchen",searchPlaceholder:"Tabellen durchsuchen…",noMatches:"Keine Tabellen entsprechen Ihrer Suche.",collapse:"Tabelle einklappen",expand:"Tabelle ausklappen",unsaved:"Ungespeicherte Änderung",excluded:"Ausgeschlossen"},badge:{pk:"PK",fk:"FK",unique:"UNIQUE",pii:"PII",masked:"Maskiert"}}},onboarding:{title:"Erste Schritte",subtitle:"Ein paar Schritte, um Ihren Workspace einzurichten.",loading:"Setup-Checkliste wird geladen…",welcome:"Willkommen bei Adminium, {name} 👋",progressBody:"Sie haben {done} von {total} Einrichtungsschritten abgeschlossen. Schließen Sie die übrigen ab, um den vollen Workspace freizuschalten.",completeBody:"Alles erledigt — Ihr Workspace ist vollständig eingerichtet.",ringLabel:"{done} von {total} Schritten abgeschlossen",done:"Erledigt",skip:"Später",goToWorkspace:"Zum Workspace",help:{title:"Brauchen Sie Hilfe?",body:"Wir helfen Ihnen gern beim schnellen Einrichten."},steps:{connectDatabase:{title:"Datenbank verbinden",desc:"Verbinden Sie Adminium mit Ihrer Postgres-, MySQL- oder SQLite-Datenbank — eine Nur-Lese-Rolle genügt.",time:"5 Min.",action:"Verbinden"},chooseTables:{title:"Tabellen auswählen",desc:"Wählen Sie, welche Tabellen zu Seiten werden — PII wird standardmäßig maskiert.",time:"2 Min.",action:"Auswählen"},inviteTeammates:{title:"Teammitglieder einladen",desc:"Holen Sie Ihr Team zum Erkunden und Zusammenarbeiten dazu.",time:"2 Min.",action:"Einladen"},workspaceDefaults:{title:"Workspace-Standards festlegen",desc:"Design, Akzent, Dichte und Sprache für alle.",time:"1 Min.",action:"Festlegen"}},entry:{wayBack:"Erste Schritte · {done}/{total}",dismiss:"Setup-Checkliste ausblenden",continue:"Setup fortsetzen",banner:"Richten Sie Ihren Workspace fertig ein — {done} von {total} Schritten erledigt."}},views:{baseView:"Alle Datensätze",menuLabel:"Gespeicherte Ansichten",saveAs:"Aktuelle als Ansicht speichern…",updateActive:"„{name}“ aktualisieren",rename:"Umbenennen…",setDefault:"Als Standard festlegen",delete:"Löschen…",saveTitle:"Ansicht speichern",save:"Ansicht speichern",renameTitle:"Ansicht umbenennen",saveName:"Namen speichern",nameLabel:"Ansichtsname",namePlaceholder:"z. B. Diesen Monat aktiv",nameRequired:"Geben Sie einen Namen für diese Ansicht ein.",saveFailed:"Ansicht konnte nicht gespeichert werden.",deleteTitle:"Ansicht löschen",deleteBody:"Dies entfernt die gespeicherte Ansicht. Ihre Daten sind nicht betroffen.",deletePrompt:"Zum Bestätigen den Ansichtsnamen eingeben",deleteConfirm:"Ansicht löschen",savedToast:"Ansicht „{name}“ gespeichert.",updatedToast:"Ansicht „{name}“ aktualisiert.",defaultToast:"„{name}“ ist jetzt die Standardansicht.",deletedToast:"Ansicht „{name}“ gelöscht."},builder:{view:"Ansicht",edit:"Bearbeiten",done:"Fertig",addWidget:"Widget hinzufügen",saveLayout:"Layout speichern",saving:"Wird gespeichert …",savedShort:"Gespeichert",options:"Dashboard-Optionen",resetLayout:"Layout zurücksetzen",resetTitle:"Auf das geteilte Layout zurücksetzen?",resetBody:"Dadurch werden deine persönlichen Änderungen entfernt und das Dashboard wiederhergestellt, das alle sehen. Deine Daten sind nicht betroffen.",resetConfirm:"Layout zurücksetzen",resetDone:"Layout auf die geteilte Standardansicht zurückgesetzt.",sharedNote:"Du bearbeitest das geteilte Dashboard, das alle sehen.",personalNote:"Du bearbeitest dein persönliches Layout – nur du siehst diese Änderungen.",savedShared:"Dashboard für alle mit Zugriff gespeichert.",empty:"Dieses Dashboard enthält noch keine Widgets.",emptyAction:"Widget hinzufügen",palette:{title:"Widget hinzufügen",count:"{count} Widgets",searchLabel:"Widgets durchsuchen",searchPlaceholder:"Widgets durchsuchen …",clear:"Suche löschen",noResults:"Keine Widgets passen zu „{query}“.",add:"{name} hinzufügen",added:"{name} hinzugefügt."},inspector:{title:"Widget konfigurieren",empty:"Dieses Widget hat keine konfigurierbaren Optionen.",locked:"Gesperrt",lockedHint:"Dieses Feld wird von der Quelle festgelegt und kann hier nicht bearbeitet werden.",selectPlaceholder:"Auswählen …",increment:"Erhöhen",decrement:"Verringern",done:"Fertig"},item:{configure:"{name} konfigurieren",duplicate:"{name} duplizieren",remove:"{name} entfernen",removed:"{name} entfernt.",duplicated:"{name} dupliziert."},families:{kpi:"KPIs",charts:"Diagramme",tables:"Tabellen",feeds:"Feeds",calendar:"Kalender",boards:"Boards",geo:"Karten",media:"Medien",communication:"Kommunikation",forms:"Formulare",chrome:"Navigation",system:"System",domain:"Domäne"},versions:"Versionen",versionsEmpty:"Noch keine gespeicherten Versionen",saveAsVersion:"Als Version speichern",saveVersionTitle:"Version speichern",saveVersionBody:"Erstellt einen Schnappschuss des aktuellen Dokuments. Über „Versionen“ jederzeit wiederherstellbar.",versionName:"Versionsname",versionNamePlaceholder:"z. B. Vor der Q3-Preisänderung"},setup:{title:"Adminium einrichten",subtitle:"Legen Sie den ersten Administrator an. Das geschieht nur einmal.",progress:"Einrichtungsfortschritt",steps:{account:"Administratorkonto",consent:"Datenschutz"},account:{name:"Ihr Name",email:"E-Mail",emailInvalid:"Geben Sie eine gültige E-Mail-Adresse ein.",password:"Passwort",passwordHelper:"Mindestens {min} Zeichen.",passwordTooShort:"Verwenden Sie mindestens {min} Zeichen.",confirm:"Passwort bestätigen",passwordMismatch:"Die Passwörter stimmen nicht überein.",continue:"Weiter",strength:"Passwortstärke",strengthLevels:{weak:"Schwach",fair:"Mittel",good:"Gut",strong:"Stark"}},consent:{telemetry:{title:"Anonyme Nutzungsdaten teilen",description:"Hilft uns zu erkennen, welche Datenbank-Engines Priorität haben. Standardmäßig aus, bis Sie es aktivieren."},updates:{title:"Nach neuen Versionen suchen",description:"Zeigt einen Hinweis, wenn eine neue Version — auch ein Sicherheitsfix — verfügbar ist. Dabei wird GitHub nach dem neuesten Release gefragt, wodurch GitHub die IP-Adresse und Version dieser Instanz erfährt. Mehr wird nicht gesendet."},sentTitle:"Genau das wird gesendet:",sent:{instanceId:"Eine zufällige Instanz-ID (eine hier erzeugte UUID; nicht aus Ihrem Namen, Host oder Ihrer Datenbank abgeleitet)",version:"Die Adminium-Version dieser Instanz",engines:"Welche Datenbank-Engine-Typen verbunden sind (z. B. „postgres“) — nur die Typen"},neverTitle:"Wird niemals gesendet:",never:{schema:"Ihr Schema — keine Tabellen-, Spalten- oder Enum-Namen",rows:"Ihre Daten — niemals auch nur eine Zeile",connections:"Verbindungszeichenfolgen, Hostnamen oder Zugangsdaten",people:"E-Mail-Adressen, Namen oder IDs von Benutzern",llm:"KI-Prompts oder Lauf-Inhalte"},reversible:"Beides ist standardmäßig aus und lässt sich später jederzeit in den Einstellungen ändern.",back:"Zurück",finish:"Administratorkonto anlegen"},error:{alreadyCompleted:"Diese Instanz wurde bereits eingerichtet. Melden Sie sich mit dem vorhandenen Administratorkonto an.",rejected:"Der Server hat diese Angaben abgelehnt. Prüfen Sie E-Mail und Passwort und versuchen Sie es erneut.",failed:"Einrichtung fehlgeschlagen. Prüfen Sie Ihre Verbindung und versuchen Sie es erneut."}},about:{title:"Über Adminium",subtitle:"Version, Lizenz und wo der Quellcode dieser Instanz liegt.",version:"Version",license:"Lizenz",metaStore:"Meta-Speicher",node:"Node.js",engine:{postgres:"PostgreSQL",mysql:"MySQL / MariaDB",sqlite:"SQLite"},licenseCard:{title:"Frei und quelloffen",body:"Adminium steht unter der GNU Affero General Public License v3.0. Sie dürfen es ausführen, untersuchen, verändern und weitergeben. Wenn Sie eine veränderte Fassung anderen über ein Netzwerk anbieten, verlangt die AGPL, dass Sie ihnen auch deren Quellcode anbieten."},viewLicense:"Lizenz lesen",viewSource:"Quellcode herunterladen",updates:{title:"Aktualisierungen",description:"Ob diese Instanz nach neuen Versionen sucht."},update:{disabled:"Die Update-Prüfung ist aus, daher kontaktiert diese Instanz GitHub nie. Aktivieren Sie sie in den Einstellungen, um von neuen Versionen zu erfahren.",current:"Sie nutzen die neueste Version.",available:"Adminium {version} ist verfügbar",availableBody:"Sie nutzen derzeit {version}.",viewRelease:"Release-Notes ansehen"},desktop:{unknown:"Unbekannt",appVersion:"App-Version",serverVersion:"Server-Version",migration:"Meta-Store-Migration",electron:"Electron",chromium:"Chromium",runtimeNode:"Node-Laufzeit",system:{title:"System"},dataDir:"Datenverzeichnis",reveal:"Im Ordner anzeigen",secret:{title:"Geheimnisspeicher",safe:"Von Ihrem Betriebssystem verschlüsselt",plainWarning:"Auf diesem Computer ist kein System-Schlüsselbund verfügbar, daher wird Ihr Adminium-Geheimnis unverschlüsselt auf der Festplatte gespeichert. Jeder, der die Dateien dieses Rechners lesen kann, kann es lesen. Richten Sie einen Anmelde-Schlüsselbund (oder einen Linux-Secret-Service) ein und starten Sie Adminium neu, um es zu schützen."},updates:{title:"Updates",mode:{notify:"Über neue Versionen benachrichtigen",manual:"Nur wenn ich prüfe",disabled:"Aus (offline)"},disabledBody:"Automatische Updates sind aus (offline). Installieren Sie neue Versionen manuell.",check:"Nach Updates suchen",checking:"Wird geprüft…",lastChecked:"Zuletzt geprüft {when}",available:"Version {version} ist verfügbar",none:"Sie verwenden die neueste Version.",unavailable:"Updates sind in dieser Installation deaktiviert.",error:"Nach Updates konnte nicht gesucht werden.",download:"Update herunterladen",downloading:"Wird heruntergeladen… {percent} %",downloaded:"Version {version} ist installationsbereit",restart:"Zum Installieren neu starten",downloadError:"Der Download wurde nicht abgeschlossen. Sie können es erneut versuchen.",toast:{available:"Eine neue Version von Adminium ist verfügbar",view:"Anzeigen",downloaded:"Update installationsbereit",restart:"Jetzt neu starten"}},legal:{title:"Lizenzen",agpl:"Adminium Desktop ist freie Software unter der GNU Affero General Public License v3.0.",viewLicense:"Lizenz anzeigen",licenseTitle:"GNU Affero General Public License v3.0",licenseUnavailable:"Die mitgelieferte Lizenzdatei ist in diesem Build nicht verfügbar.",viewNotices:"Drittanbieter-Lizenzen",noticesTitle:"Drittanbieter-Hinweise",noticesUnavailable:"Drittanbieter-Hinweise werden beim Paketieren der App erzeugt und sind in diesem Build nicht verfügbar.",source:"Quellcode",close:"Schließen"},telemetry:{title:"Anonyme Nutzungsdaten",label:"Anonyme Nutzungsdaten teilen",description:"Hilft uns zu entscheiden, welche Datenbank-Engines wir priorisieren. Aus, sofern Sie es nicht aktivieren; es werden niemals Schema, Daten oder personenbezogene Informationen gesendet.",saveFailed:"Diese Einstellung konnte nicht gespeichert werden. Bitte erneut versuchen."},diagnostics:{title:"Diagnose",description:"Details, die bei einer Problemmeldung helfen. Kein Schema und keine Daten sind enthalten.",copy:"Diagnoseinfo kopieren",copied:"Kopiert",showLogs:"Protokolle anzeigen",dataSize:"Datengröße: {size}"}}},apiKeys:{title:"API-Schlüssel & Tokens",subtitle:"Programmatischen Zugriff auf Ihren Workspace verwalten.",createButton:"Schlüssel erstellen",copy:"Kopieren",copied:"Kopiert",revoke:"Schlüssel widerrufen",neverUsed:"Nie verwendet",lastUsed:"Zuletzt verwendet {since}",scopesOverflow:"+{count} weitere",status:{active:"Aktiv",revoked:"Widerrufen",expired:"Abgelaufen"},list:{title:"Schlüssel",activeCount:"{count, plural, one {# aktiver Schlüssel} other {# aktive Schlüssel}}"},empty:{title:"Noch keine API-Schlüssel",body:"Erstellen Sie einen, um die Adminium-API aus eigenem Code aufzurufen."},revealed:{title:"Neuer Schlüssel erstellt",body:"Kopieren Sie ihn jetzt — Sie werden ihn nie wieder sehen können."},rolesUnavailable:{title:"Rollen sind für Sie nicht sichtbar",body:"Einen Schlüssel zu erstellen heißt, die Rolle zu wählen, mit der er handelt — und Ihr Konto darf die Rollenliste nicht lesen. Bitten Sie eine Administratorin um die Berechtigung „Rollen verwalten“."},quickStart:{title:"Schnellstart",body:"Authentifizieren Sie Anfragen mit Ihrem Schlüssel im Authorization-Header."},create:{title:"API-Schlüssel erstellen",description:"Der Schlüssel handelt mit den Berechtigungen der gewählten Rolle.",name:"Name",namePlaceholder:"z. B. Analytics-Pipeline",role:"Rolle",roleHelper:"Wählen Sie die Rolle mit den geringsten Rechten, die ausreicht.",expires:"Läuft ab",expiresHelper:"Leer lassen für einen Schlüssel, der nie abläuft.",submit:"Schlüssel erstellen",failed:"Schlüssel konnte nicht erstellt werden"},revokeConfirm:{title:"API-Schlüssel widerrufen",body:"Jeder Code, der die API noch mit „{name}“ aufruft, schlägt ab sofort fehl. Das lässt sich nicht rückgängig machen.",prompt:"Geben Sie „{name}“ ein, um zu bestätigen",confirm:"Schlüssel widerrufen"}},changelog:{title:"Änderungsprotokoll",subtitle:"Produkt-Updates & Releases.",allReleases:"Alle Releases",tag:{new:"Neu",improved:"Verbessert",fixed:"Behoben",security:"Sicherheit"},filter:{all:"Alle",label:"Änderungen nach Typ filtern"},empty:{title:"Nichts unter diesem Filter",body:"Bisher enthielt kein Release eine Änderung dieser Art.",clear:"Alle Änderungen anzeigen"}},kb:{title:"Wissensdatenbank",subtitle:"{count, plural, one {# Anleitung} other {# Anleitungen}} · vollständige Doku unter docs.adminium.dev",openDocs:"Doku öffnen",browse:"Nach Thema stöbern",hero:{title:"Wie können wir helfen?",subtitle:"Anleitungen, API-Doku und Fehlerbehebung durchsuchen.",placeholder:"Wissensdatenbank durchsuchen…",label:"Wissensdatenbank durchsuchen",clear:"Suche leeren"},category:{start:"Erste Schritte",connect:"Daten verbinden",api:"API & Entwicklung",security:"Sicherheit & Zugriff",selfhost:"Self-Hosting",trouble:"Fehlerbehebung",count:"{count, plural, one {# Artikel} other {# Artikel}}",selected:"Gefiltert"},list:{all:"Alle Anleitungen",clear:"Filter zurücksetzen"},empty:{title:"Keine Anleitung passt zu Ihrer Suche",body:"Versuchen Sie ein anderes Wort oder durchsuchen Sie die vollständige Dokumentation auf docs.adminium.dev.",openDocs:"Doku öffnen"},article:{install:{title:"Adminium installieren",excerpt:"Aus einem Quell-Checkout oder per docker run starten und in einer Minute beim Ersteinrichtungs-Assistenten sein."},firstAdmin:{title:"Ersten Super-Admin anlegen",excerpt:"Was der Ersteinrichtungs-Assistent abfragt und warum er nur einmal laufen kann."},connectDb:{title:"Ihre erste Datenbank verbinden",excerpt:"Adminium auf PostgreSQL, MySQL oder SQLite richten und eine Admin-App generieren."},schemaFile:{title:"Aus einer Schemadatei generieren",excerpt:"Ein Prisma-Schema, eine Django-models.py, eine Rails-schema.rb oder einen .sql-Dump hochladen — ganz ohne Verbindung."},readOnly:{title:"Eine Nur-Lese-Rolle verwenden",excerpt:"Die Introspektion liest nur Schema-Metadaten. Geben Sie Adminium so wenig Rechte wie möglich."},apiKeys:{title:"Authentifizierung mit API-Schlüsseln",excerpt:"Schlüssel erstellen und widerrufen — und warum ein Schlüssel Ihnen nur ein einziges Mal gezeigt wird."},rest:{title:"REST-API-Referenz",excerpt:"Jeder Endpunkt der generierten App, mit Request- und Response-Formaten."},manifest:{title:"Das Seiten-Manifest",excerpt:"Wie eine Seite als Konfiguration beschrieben wird und wie Sie eine von Hand bearbeiten."},roles:{title:"Rollen & Berechtigungen",excerpt:"Viewer, Editor und Admin vergeben — und eigene Rollen aus der Berechtigungsmatrix bauen."},audit:{title:"Das Audit-Log lesen",excerpt:"Wer hat was geändert, wann und von wo."},secrets:{title:"Wie Adminium Ihre Geheimnisse speichert",excerpt:"Verbindungsdaten werden mit ADMINIUM_SECRET verschlüsselt gespeichert. API-Schlüssel werden gehasht."},docker:{title:"Self-Hosting mit Docker",excerpt:"Das offizielle Image, docker-compose und der Betrieb einer separaten Meta-Datenbank."},backup:{title:"Eine Instanz sichern und umziehen",excerpt:"export-zip bündelt Ihre Serverkonfiguration; beim Import wird dieselbe Einrichtung andernorts nachgespielt."},telemetry:{title:"Telemetrie und Update-Prüfungen",excerpt:"Beides ist opt-in und standardmäßig aus. Was gesendet wird, wenn Sie es einschalten."},connectionFails:{title:"Eine Datenbankverbindung schlägt fehl",excerpt:"Lesen Sie die Diagnosekarte: Host, Port, TLS — und die IP, die Ihre Datenbank zulassen muss."},missingTables:{title:"Nach der Introspektion fehlen Tabellen",excerpt:"Schema-Sichtbarkeit, ausgeschlossene Tabellen und ein erneuter Generierungslauf."}}},desktop:{menu:{file:"Datei",fileNewDatabase:"Neue lokale Datenbank…",fileOpenSqlite:"SQLite-Datei öffnen…",fileBackupNow:"Jetzt sichern…",fileRestore:"Aus Sicherung wiederherstellen…",edit:"Bearbeiten",view:"Ansicht",window:"Fenster",help:"Hilfe",helpDocs:"Adminium-Dokumentation",helpShortcuts:"Tastaturkürzel",helpLogs:"Protokolle anzeigen",helpCheckForUpdates:"Nach Updates suchen…",helpAbout:"Über Adminium"},settings:{explainer:"Diese Einstellungen gelten nur für die Adminium-App auf diesem Computer. Sie werden auf diesem Gerät gespeichert, nicht in Ihrem Workspace."},security:{heading:"Anmeldung"},requireLogin:{label:"Anmeldung auf diesem Gerät verlangen",description:"Adminium meldet Sie auf diesem Computer normalerweise automatisch an. Aktivieren Sie diese Option, um bei jedem Start nach Ihrem Passwort zu fragen — sinnvoll, wenn andere Personen diesen Computer nutzen können. Die Änderung gilt ab dem nächsten Start von Adminium.",savedOn:"Beim nächsten Start ist eine Anmeldung erforderlich",savedOff:"Adminium überspringt die Anmeldung auf diesem Computer",saveFailed:"Einstellung konnte nicht gespeichert werden. Bitte erneut versuchen."},chip:{local:"Lokal",lanShare:"Lokal · Im Netzwerk freigegeben",remoteDb:"Lokal + Remote-Datenbank",remoteDbOffline:"Remote-Datenbank offline",remoteDbOfflineDetail:"{names} ist nicht erreichbar. Seiten dieser Verbindungen zeigen einen Wiederverbindungs-Status."},lan:{heading:"Im lokalen Netzwerk freigeben",label:"Anderen Geräten in diesem Netzwerk die Nutzung von Adminium erlauben",description:"Andere Computer, Tablets und Telefone im selben Netzwerk können Adminium im Browser öffnen und sich mit ihrem eigenen Konto anmelden. Adminium muss auf diesem Computer geöffnet bleiben, damit sie es erreichen.",savedOn:"Im lokalen Netzwerk freigegeben",savedOff:"Freigabe beendet — Adminium läuft wieder nur auf diesem Computer",saveFailed:"Netzwerkfreigabe konnte nicht geändert werden",noUsers:"Sie sind die einzige Person mit einem Konto, deshalb kann sich sonst noch niemand anmelden. Die Freigabe funktioniert trotzdem — Sie müssen nur Personen einladen, bevor sie sie nutzen können.",usersUnknown:"Adminium konnte nicht prüfen, wer sonst noch ein Konto auf diesem Computer hat. Die Freigabe funktioniert weiterhin, und jede Person mit einem Konto kann sich anmelden — nur diese Prüfung ist fehlgeschlagen.",acknowledge:"Verstanden — ich lade als Nächstes Personen ein",port:"Port",portHelper:"Standard {port}",portInvalid:"Verwenden Sie eine Zahl zwischen 1024 und 65535.",applyPort:"Port ändern",portInUse:"Port {port} wird bereits von einem anderen Programm verwendet.",portInUseHint:"Es wurde nichts geändert — die Freigabe ist weiterhin aus.",portInUseNoSuggestion:"Es wurde nichts geändert. Versuchen Sie einen anderen Port.",tryPort:"{port} versuchen",urlsHeading:"Auf einem anderen Gerät öffnen",noUrls:"Dieser Computer ist gerade mit keinem Netzwerk verbunden, deshalb gibt es keine Adresse zum Teilen. Verbinden Sie sich mit dem WLAN oder stecken Sie ein Kabel ein, dann füllt sich diese Liste.",copyUrl:"Kopieren",sessions:"{count, plural, =0 {Keine Geräte aus diesem Netzwerk angemeldet} one {# Gerät aus diesem Netzwerk angemeldet} other {# Geräte aus diesem Netzwerk angemeldet}}",sessionsUnknown:"Verbundene Geräte werden geprüft…",pending:"Freigabe wird gestartet…",mismatch:"Adminium ist in diesem Netzwerk weiterhin erreichbar",mismatchBody:"Die Freigabe ist ausgeschaltet, aber der Server hat das Netzwerk noch nicht freigegeben. Starten Sie Adminium neu, um sie zu schließen.",transportTitle:"Der Datenverkehr in Ihrem lokalen Netzwerk ist nicht verschlüsselt.",transportBody:"Geben Sie nur in Netzwerken frei, denen Sie vertrauen. Nutzen Sie für den Fernzugriff Adminium self-host hinter HTTPS.",firewall:"Beim ersten Freigeben fragt Ihr Betriebssystem, ob eingehende Verbindungen erlaubt werden sollen — wählen Sie Zulassen, sonst können andere Geräte Adminium nicht erreichen."},setup:{title:"Willkommen bei Adminium",subtitle:"Vier kurze Schritte und Adminium hat aus Ihrer Datenbank eine Admin-App gebaut. Alles bleibt auf diesem Computer.",progress:"Einrichtungsfortschritt",back:"Zurück",continue:"Weiter",createAccount:"Konto erstellen und fortfahren",step:{location:"Willkommen",database:"Ihre erste Datenbank",account:"Ihr Konto",generate:"Generieren"},dataDir:{heading:"Wo soll Adminium Ihre Daten speichern?",description:"Ihre Datenbanken, Einstellungen und Backups liegen alle in diesem Ordner. Alles bleibt auf diesem Computer — nichts wird irgendwohin hochgeladen.",label:"Datenordner",loading:"Aktueller Speicherort wird gelesen…",pending:"Adminium startet beim Fortfahren neu, um in diesen Ordner zu wechseln.",change:"Ändern…",revert:"Rückgängig",dialogTitle:"Wählen Sie, wo Adminium Ihre Daten speichert",cloudSyncTitle:"Dieser Ordner wird mit der Cloud synchronisiert",cloudSyncWarning:"Adminium speichert seine Daten in SQLite-Dateien. {provider} synchronisiert Dateien in „{folder}“, indem es sie im Hintergrund kopiert — das kann eine geöffnete Datenbank beschädigen und ohne Warnung Daten vernichten. Wählen Sie einen Ordner außerhalb von {provider}.",chooseAnother:"Anderen Ordner wählen",useAnyway:"Trotzdem verwenden — ich akzeptiere das Risiko",unusableTitle:"Adminium kann diesen Ordner nicht verwenden",failed:"Adminium konnte diesen Ordner nicht verwenden."},source:{heading:"Woraus soll Adminium bauen?",description:"Adminium liest das Schema einer Datenbank und generiert daraus eine Admin-App. Weitere Datenbanken können Sie später hinzufügen.",groupLabel:"Datenbankquelle",local:{title:"Neue lokale Datenbank erstellen",description:"Beginnen Sie bei null oder mit einer Schemadatei, die Sie bereits haben. Die Datenbank wird in Ihrem Datenordner angelegt.",name:"Datenbankname",namePlaceholder:"Betrieb",nameUnusable:"Verwenden Sie mindestens einen Buchstaben oder eine Ziffer — daraus wird der Dateiname gebildet.",fileHelper:"Erstellt {file}",schemaLabel:"Beginnen mit",blank:"Leer",fromFile:"Einer Schemadatei",schemaFile:"Schemadatei",schemaFileHelper:".sql, pg_dump, Prisma, Drizzle, TypeORM, Sequelize, schema.rb, Django oder Adminium-JSON. Adminium übersetzt es nach SQLite.",placeholder:"Platzhaltereinträge automatisch erzeugen",placeholderHelper:"Sie haben ein Schema ohne Zeilen importiert. Befüllen Sie jede Tabelle mit realistischen Beispieldaten, damit Ihre Dashboards und Diagramme sofort etwas anzeigen."},openSqlite:{title:"Vorhandene SQLite-Datei öffnen",description:"Richten Sie Adminium auf eine .sqlite-Datei auf diesem Computer. Sie wird dort geöffnet, wo sie liegt — nichts wird kopiert oder verschoben.",browse:".sqlite-Datei auswählen…",change:"Andere Datei auswählen…",networkTitle:"Diese Datei liegt auf einer Netzwerkfreigabe",networkBody:"Die Sperrmechanik von SQLite ist über Netzwerkfreigaben unzuverlässig, und eine abbrechende Verbindung mitten im Schreibvorgang kann die Datenbank beschädigen. Eine Kopie auf der lokalen Festplatte dieses Computers ist sicherer."},remote:{title:"Mit einer Server-Datenbank verbinden",description:"PostgreSQL oder MySQL. Erfordert eine erreichbare Netzwerkdatenbank; Adminiums eigene Tabellen bleiben trotzdem auf diesem Computer.",networkNote:"Erfordert eine erreichbare Netzwerkdatenbank",metaNote:"Adminiums eigene Tabellen — Ihre Seiten, Einstellungen und Anmeldung — bleiben in jedem Fall im Datenordner auf diesem Computer.",engine:"Engine",name:"Verbindungsname",namePlaceholder:"Produktion",dsn:"Verbindungszeichenfolge",dsnHelper:"Adminium testet dies beim Verbinden. Verwenden Sie eine Nur-Lese-Rolle, wenn Sie nur Dashboards möchten."},demo:{title:"Demo-Datenbank erkunden",description:"Eine fertige Team-Betriebsdatenbank, damit Sie sehen, was Adminium baut, bevor Sie es auf Ihre eigenen Daten richten. Löschen Sie sie, wann immer Sie möchten.",unavailable:"Dieses Build enthält die Demodaten nicht, es gibt also nichts zu laden. Wählen Sie eine der Optionen oben."}},account:{heading:"Konto erstellen",description:"Dies ist das Administratorkonto für diese Adminium-Installation. Das Passwort schützt Ihre Backups und alle, mit denen Sie im Netzwerk teilen — bei jedem Start wird es nicht abgefragt.",name:"Ihr Name",email:"E-Mail",password:"Passwort",passwordHelper:"Mindestens {min} Zeichen.",confirm:"Passwort bestätigen",strength:"Passwortstärke",strengthLevels:{weak:"Schwach",fair:"Mittel",good:"Gut",strong:"Stark"},singleUser:"Anmeldung auf diesem Computer überspringen",singleUserHelper:"Adminium meldet Sie hier automatisch an. Schalten Sie dies aus, wenn andere Personen diesen Computer nutzen. Sie können es später unter Einstellungen → Desktop ändern.",locale:"Sprache",theme:"Darstellung",alreadyExists:"Diese Adminium-Installation hat bereits ein Konto. Melden Sie sich stattdessen damit an.",failed:"Adminium konnte dieses Konto nicht erstellen."},generate:{creating:"Ihre Datenbank wird eingerichtet…",introspecting:"Ihr Schema wird gelesen — Tabellen, Spalten und Beziehungen…",working:"Wird ausgeführt…",offlineNote:"All dies geschieht auf diesem Computer.",failedTitle:"Adminium konnte diese Datenbank nicht einrichten",failedBody:"Etwas ist schiefgelaufen. Versuchen Sie es erneut.",retry:"Erneut versuchen"}}},capabilities:{heading:"App-Berechtigungen",description:"Von Ihnen installierte Apps können den Zugriff auf die Hardware dieses Computers anfordern. Sie genehmigen jede einzeln und können den Zugriff jederzeit widerrufen.",grantedTo:"Erlaubt für {app}",status:{available:"Verfügbar",stub:"Noch nicht verfügbar",unavailable:"Nicht verfügbar"},allow:{action:"Erlauben…"},revoke:{action:"Widerrufen",saved:"Zugriff widerrufen",failed:"Zugriff konnte nicht widerrufen werden. Bitte erneut versuchen."},grant:{saved:"Zugriff erlaubt",failed:"Zugriff konnte nicht erlaubt werden. Bitte erneut versuchen."},catalog:{printerEscpos:{name:"Bondrucker (ESC/POS)",scope:"Auf Bondruckern drucken und eine angeschlossene Kassenschublade öffnen"}},consent:{title:"{app} erlauben?",subtitle:"{app} möchte die Hardware dieses Computers verwenden.",willAllow:"Dies erlaubt {app}:",revokeNote:"Sie können dies jederzeit unter Einstellungen → Desktop widerrufen. Erlauben Sie nur Apps, denen Sie vertrauen.",deny:"Nicht jetzt",approve:"Erlauben"}},emailTemplates:{title:"E-Mail-Vorlagen",subtitle:"Transaktions- und Lifecycle-E-Mails, die dieser Workspace versendet.",search:"Vorlagen durchsuchen…",loadFailed:"Vorlagen konnten nicht geladen werden",empty:"Noch keine E-Mail-Vorlagen",emptyBody:"Vorlagen erscheinen hier, sobald der Server welche anlegt oder Sie welche erstellen.",noMatches:"Keine passenden Vorlagen",noMatchesBody:"Versuchen Sie eine andere Suche.",live:"Aktiv",disabled:"Deaktiviert",name:"Vorlagenname",subject:"Betreff",enabled:"Aktiviert"},board:{addCard:"Karte hinzufügen",compose:{placeholder:"Kartentitel…",add:"Hinzufügen",cancel:"Abbrechen"},empty:{title:"Keine Board-Spalten",body:"Fügen Sie ein Statusfeld hinzu, um Karten in Spalten zu gruppieren."}},calendar:{dateRange:"Zeitraum",compose:{placeholder:"Termintitel…",add:"Hinzufügen",cancel:"Abbrechen",open:"Termin hinzufügen"},agenda:{empty:"Nichts geplant"}},scheduler:{prevWeek:"Vorherige Woche",nextWeek:"Nächste Woche",week:"Woche",month:"Monat",resource:"Ressource",coverage:"Abdeckung",addShift:"Schicht hinzufügen",shiftCount:"{n} Schichten"},planning:{drawer:{close:"Schließen",loading:"Datensatz wird geladen",error:"Dieser Datensatz konnte nicht geladen werden."}},files:{uploadsUnavailable:"Uploads sind auf dieser Seite noch nicht verfügbar."},chat:{messageSent:"Nachricht gesendet",sendFailed:"Die Nachricht konnte nicht gesendet werden."},templates:{crud:{title:"Datensätze"},dashboard:{title:"Dashboard"},board:{title:"Board"},calendar:{title:"Kalender"},scheduler:{title:"Dienstplan"},logViewer:{title:"Protokolle"},files:{title:"Dateien"},chat:{title:"Chat"},builder:{title:"Editor"},wizard:{title:"Assistent"},settings:{title:"Einstellungen"},directory:{title:"Verzeichnis",searchPlaceholder:"Personen suchen…",allFilter:"Alle",clearFilters:"Filter zurücksetzen",detailTitle:"Person",emptyTitle:"Noch keine Personen",emptyBody:"Personen erscheinen hier, sobald Zeilen in der Tabelle ankommen.",noMatchesTitle:"Keine passenden Personen",noMatchesBody:"Versuchen Sie eine andere Suche oder entfernen Sie einen Filter.",errorTitle:"Dieses Verzeichnis konnte nicht geladen werden",loading:"Personen werden geladen",memberCount:"{count} Personen"},masterDetail:{title:"Liste & Detail",allFilter:"Alle",clearFilters:"Filter zurücksetzen",emptyTitle:"Noch nichts vorhanden",emptyBody:"Datensätze erscheinen hier, sobald Zeilen in der Tabelle ankommen.",noMatchesTitle:"Keine passenden Datensätze",noMatchesBody:"Entfernen Sie einen Filter.",errorTitle:"Diese Liste konnte nicht geladen werden",loading:"Datensätze werden geladen",selectPrompt:"Datensatz auswählen"},queueInbox:{title:"Warteschlange",approve:"Genehmigen",reject:"Ablehnen",allSegment:"Alle",approvedToast:"{count} genehmigt.",rejectedToast:"{count} abgelehnt.",undoneToast:"Entscheidung rückgängig gemacht.",failedToast:"Entscheidung fehlgeschlagen.",bulkFailed:"{failed} von {total} ausgewählten Zeilen konnten nicht aktualisiert werden.",undoFailedToast:"Diese Entscheidung konnte nicht rückgängig gemacht werden.",rejectTitle:"Anfragen ablehnen",rejectCount:"Ausgewählt · {count}",rejectNote:"Der Antragsteller wird mit Ihrer Notiz benachrichtigt.",rejectPlaceholder:"Notiz für den Antragsteller hinzufügen…",rejectConfirm:"Ablehnen",emptyTitle:"Nichts in der Warteschlange",emptyBody:"Neue Anfragen erscheinen hier, sobald sie eintreffen.",caughtUpTitle:"Alles erledigt",caughtUpBody:"Derzeit keine Anfragen in diesem Tab.",errorTitle:"Diese Warteschlange konnte nicht geladen werden",loading:"Warteschlange wird geladen",selectPrompt:"Anfrage auswählen",daysUnit:"{count} Tage"}},dataio:{back:"Zurück",import:{title:"Daten importieren",stepUpload:"Hochladen",stepMap:"Spalten zuordnen",stepValidate:"Prüfen",stepRun:"Importieren & prüfen",targetLabel:"Zieltabelle",targetPlaceholder:"Tabellenseite wählen…",notATable:"Diese Seite ist keine Tabelle — wählen Sie eine Tabellenseite als Ziel.",dropTitle:"CSV-Datei zum Import hier ablegen",dropHint:"CSV bis 32 MB — die erste Zeile muss die Kopfzeile sein",skipTarget:"Nicht importieren",mapHint:"{count} Datenzeilen in {file} — wählen Sie für jede Spalte ein Ziel.",validating:"Wird geprüft…",toValidate:"Prüfen",validateFailed:"Prüfung fehlgeschlagen.",validationSummary:"{valid} von {total} Zeilen bereit zum Import — {invalid} werden übersprungen.",allValid:"Alle Zeilen haben die Prüfung bestanden",run:"Import starten",runSkipping:"{valid} Zeilen importieren ({invalid} überspringen)",progressLabel:"Importfortschritt",running:"Wird importiert…",kpiTotal:"Zeilen in der Datei",kpiCreated:"Erstellt",kpiUpdated:"Aktualisiert",kpiSkipped:"Übersprungen",inconsistent:"Importzahlen sind inkonsistent — Gesamt muss Erstellt + Aktualisiert + Übersprungen entsprechen.",downloadErrors:"Bericht der übersprungenen Zeilen herunterladen (CSV)",runFailed:"Der Import ist fehlgeschlagen."},exports:{title:"Datenexporte",tableLabel:"Tabelle",tablePlaceholder:"Tabelle wählen…",notATable:"Diese Seite ist keine Tabelle — wählen Sie eine Tabellenseite zum Export.",formatLabel:"Format",create:"Exportieren",createFailed:"Der Export konnte nicht angefordert werden.",retention:"Exporte werden 30 Tage aufbewahrt und laufen dann ab.",statusProcessing:"Wird verarbeitet…",statusReady:"Fertig — {rows} Zeilen · zum Herunterladen klicken",statusFailed:"Fehlgeschlagen — {error}",statusCancelled:"Abgebrochen",statusExpired:"Abgelaufen",emptyTitle:"Noch keine Exporte",emptyBody:"Oben einen anfordern — Artefakte erscheinen hier mit ihrem Status."}},reports:{title:"Geplante Berichte",subtitle:"Wiederkehrende Daten-Schnappschüsse einer Seite, zugestellt als In-App-Benachrichtigungen.",new:"Neuer Bericht",loadFailed:"Geplante Berichte konnten nicht geladen werden.",saveFailed:"Dieser Bericht konnte nicht gespeichert werden.",nextRun:"Nächste Ausführung",emptyTitle:"Noch keine geplanten Berichte",emptyBody:"Erstellen Sie einen, um wiederkehrende Daten-Schnappschüsse einer Tabellenseite zu erhalten.",createTitle:"Neuer geplanter Bericht",editTitle:"Geplanten Bericht bearbeiten",nameLabel:"Name",namePlaceholder:"z. B. Wöchentlicher Umsatz",pageLabel:"Seite",pagePlaceholder:"Seite wählen…",frequencyLabel:"Häufigkeit",frequency:{daily:"Täglich",weekly:"Wöchentlich",monthly:"Monatlich"},dayOfWeekLabel:"Tag",dayOfMonthLabel:"Tag im Monat",timeLabel:"Uhrzeit",timezoneLabel:"Zeitzone",formatLabel:"Zustellung",formatHint:"Daten-Schnappschuss (PDF/PNG-Rendering folgt in einer späteren Version) — jede Ausführung erzeugt einen CSV-Schnappschuss und eine In-App-Benachrichtigung.",recipientsLabel:"Empfänger",recipientsHint:"Wird mit dem Bericht gespeichert. E-Mail-Zustellung folgt in einer späteren Version — Ausführungen benachrichtigen vorerst in der App.",deliveryBadge:"CSV-Schnappschuss",delete:"Löschen",create:"Erstellen",cadence:{daily:"Täglich um {time} ({zone})",weekly:"Wöchentlich · {day} um {time} ({zone})",monthly:"Monatlich · Tag {day} um {time} ({zone})"}},notifications:{channel:{inApp:"In der App",email:"E-Mail",push:"Push"},event:{reportReady:"Geplanter Bericht fertig",reportFailed:"Geplanter Bericht fehlgeschlagen",backupCompleted:"Sicherung abgeschlossen"}}};export{e as default};
2
+ //# sourceMappingURL=common-BqqhgMgB.js.map