@adminiumjs/i18n 0.2.5 → 0.2.6

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 (430) hide show
  1. package/dist/a11y-keys.d.ts +1 -1
  2. package/dist/a11y-keys.d.ts.map +1 -1
  3. package/dist/a11y-keys.js +545 -18
  4. package/dist/a11y-keys.js.map +1 -1
  5. package/dist/format/index.d.ts +15 -3
  6. package/dist/format/index.d.ts.map +1 -1
  7. package/dist/format/index.js +15 -4
  8. package/dist/format/index.js.map +1 -1
  9. package/dist/resources/ar-eg/automations.d.ts +417 -0
  10. package/dist/resources/ar-eg/automations.d.ts.map +1 -0
  11. package/dist/resources/ar-eg/automations.js +417 -0
  12. package/dist/resources/ar-eg/automations.js.map +1 -0
  13. package/dist/resources/ar-eg/common.d.ts +23 -91
  14. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  15. package/dist/resources/ar-eg/common.js +25 -93
  16. package/dist/resources/ar-eg/common.js.map +1 -1
  17. package/dist/resources/ar-eg/dataio.d.ts +260 -0
  18. package/dist/resources/ar-eg/dataio.d.ts.map +1 -0
  19. package/dist/resources/ar-eg/dataio.js +260 -0
  20. package/dist/resources/ar-eg/dataio.js.map +1 -0
  21. package/dist/resources/ar-eg/email.d.ts +824 -0
  22. package/dist/resources/ar-eg/email.d.ts.map +1 -0
  23. package/dist/resources/ar-eg/email.js +824 -0
  24. package/dist/resources/ar-eg/email.js.map +1 -0
  25. package/dist/resources/ar-eg/files.d.ts +112 -0
  26. package/dist/resources/ar-eg/files.d.ts.map +1 -0
  27. package/dist/resources/ar-eg/files.js +112 -0
  28. package/dist/resources/ar-eg/files.js.map +1 -0
  29. package/dist/resources/ar-eg/invoices.d.ts +717 -0
  30. package/dist/resources/ar-eg/invoices.d.ts.map +1 -0
  31. package/dist/resources/ar-eg/invoices.js +717 -0
  32. package/dist/resources/ar-eg/invoices.js.map +1 -0
  33. package/dist/resources/ar-eg/onboarding.d.ts +190 -0
  34. package/dist/resources/ar-eg/onboarding.d.ts.map +1 -0
  35. package/dist/resources/ar-eg/onboarding.js +190 -0
  36. package/dist/resources/ar-eg/onboarding.js.map +1 -0
  37. package/dist/resources/ar-eg/reportBuilder.d.ts +415 -0
  38. package/dist/resources/ar-eg/reportBuilder.d.ts.map +1 -0
  39. package/dist/resources/ar-eg/reportBuilder.js +415 -0
  40. package/dist/resources/ar-eg/reportBuilder.js.map +1 -0
  41. package/dist/resources/ar-eg/studio.d.ts +1760 -1117
  42. package/dist/resources/ar-eg/studio.d.ts.map +1 -1
  43. package/dist/resources/ar-eg/studio.js +1782 -1139
  44. package/dist/resources/ar-eg/studio.js.map +1 -1
  45. package/dist/resources/ar-eg/ui.d.ts +45 -9
  46. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  47. package/dist/resources/ar-eg/ui.js +47 -11
  48. package/dist/resources/ar-eg/ui.js.map +1 -1
  49. package/dist/resources/cs-cz/automations.d.ts +417 -0
  50. package/dist/resources/cs-cz/automations.d.ts.map +1 -0
  51. package/dist/resources/cs-cz/automations.js +417 -0
  52. package/dist/resources/cs-cz/automations.js.map +1 -0
  53. package/dist/resources/cs-cz/common.d.ts +23 -91
  54. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  55. package/dist/resources/cs-cz/common.js +25 -93
  56. package/dist/resources/cs-cz/common.js.map +1 -1
  57. package/dist/resources/cs-cz/dataio.d.ts +260 -0
  58. package/dist/resources/cs-cz/dataio.d.ts.map +1 -0
  59. package/dist/resources/cs-cz/dataio.js +260 -0
  60. package/dist/resources/cs-cz/dataio.js.map +1 -0
  61. package/dist/resources/cs-cz/email.d.ts +824 -0
  62. package/dist/resources/cs-cz/email.d.ts.map +1 -0
  63. package/dist/resources/cs-cz/email.js +824 -0
  64. package/dist/resources/cs-cz/email.js.map +1 -0
  65. package/dist/resources/cs-cz/files.d.ts +112 -0
  66. package/dist/resources/cs-cz/files.d.ts.map +1 -0
  67. package/dist/resources/cs-cz/files.js +112 -0
  68. package/dist/resources/cs-cz/files.js.map +1 -0
  69. package/dist/resources/cs-cz/invoices.d.ts +717 -0
  70. package/dist/resources/cs-cz/invoices.d.ts.map +1 -0
  71. package/dist/resources/cs-cz/invoices.js +717 -0
  72. package/dist/resources/cs-cz/invoices.js.map +1 -0
  73. package/dist/resources/cs-cz/onboarding.d.ts +190 -0
  74. package/dist/resources/cs-cz/onboarding.d.ts.map +1 -0
  75. package/dist/resources/cs-cz/onboarding.js +190 -0
  76. package/dist/resources/cs-cz/onboarding.js.map +1 -0
  77. package/dist/resources/cs-cz/reportBuilder.d.ts +415 -0
  78. package/dist/resources/cs-cz/reportBuilder.d.ts.map +1 -0
  79. package/dist/resources/cs-cz/reportBuilder.js +415 -0
  80. package/dist/resources/cs-cz/reportBuilder.js.map +1 -0
  81. package/dist/resources/cs-cz/studio.d.ts +1759 -1116
  82. package/dist/resources/cs-cz/studio.d.ts.map +1 -1
  83. package/dist/resources/cs-cz/studio.js +1774 -1131
  84. package/dist/resources/cs-cz/studio.js.map +1 -1
  85. package/dist/resources/cs-cz/ui.d.ts +45 -9
  86. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  87. package/dist/resources/cs-cz/ui.js +47 -11
  88. package/dist/resources/cs-cz/ui.js.map +1 -1
  89. package/dist/resources/da-dk/automations.d.ts +417 -0
  90. package/dist/resources/da-dk/automations.d.ts.map +1 -0
  91. package/dist/resources/da-dk/automations.js +417 -0
  92. package/dist/resources/da-dk/automations.js.map +1 -0
  93. package/dist/resources/da-dk/common.d.ts +23 -91
  94. package/dist/resources/da-dk/common.d.ts.map +1 -1
  95. package/dist/resources/da-dk/common.js +25 -93
  96. package/dist/resources/da-dk/common.js.map +1 -1
  97. package/dist/resources/da-dk/dataio.d.ts +260 -0
  98. package/dist/resources/da-dk/dataio.d.ts.map +1 -0
  99. package/dist/resources/da-dk/dataio.js +260 -0
  100. package/dist/resources/da-dk/dataio.js.map +1 -0
  101. package/dist/resources/da-dk/email.d.ts +824 -0
  102. package/dist/resources/da-dk/email.d.ts.map +1 -0
  103. package/dist/resources/da-dk/email.js +824 -0
  104. package/dist/resources/da-dk/email.js.map +1 -0
  105. package/dist/resources/da-dk/files.d.ts +112 -0
  106. package/dist/resources/da-dk/files.d.ts.map +1 -0
  107. package/dist/resources/da-dk/files.js +112 -0
  108. package/dist/resources/da-dk/files.js.map +1 -0
  109. package/dist/resources/da-dk/invoices.d.ts +717 -0
  110. package/dist/resources/da-dk/invoices.d.ts.map +1 -0
  111. package/dist/resources/da-dk/invoices.js +717 -0
  112. package/dist/resources/da-dk/invoices.js.map +1 -0
  113. package/dist/resources/da-dk/onboarding.d.ts +190 -0
  114. package/dist/resources/da-dk/onboarding.d.ts.map +1 -0
  115. package/dist/resources/da-dk/onboarding.js +190 -0
  116. package/dist/resources/da-dk/onboarding.js.map +1 -0
  117. package/dist/resources/da-dk/reportBuilder.d.ts +415 -0
  118. package/dist/resources/da-dk/reportBuilder.d.ts.map +1 -0
  119. package/dist/resources/da-dk/reportBuilder.js +415 -0
  120. package/dist/resources/da-dk/reportBuilder.js.map +1 -0
  121. package/dist/resources/da-dk/studio.d.ts +1760 -1117
  122. package/dist/resources/da-dk/studio.d.ts.map +1 -1
  123. package/dist/resources/da-dk/studio.js +1771 -1128
  124. package/dist/resources/da-dk/studio.js.map +1 -1
  125. package/dist/resources/da-dk/ui.d.ts +45 -9
  126. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  127. package/dist/resources/da-dk/ui.js +47 -11
  128. package/dist/resources/da-dk/ui.js.map +1 -1
  129. package/dist/resources/de-de/automations.d.ts +417 -0
  130. package/dist/resources/de-de/automations.d.ts.map +1 -0
  131. package/dist/resources/de-de/automations.js +417 -0
  132. package/dist/resources/de-de/automations.js.map +1 -0
  133. package/dist/resources/de-de/common.d.ts +23 -91
  134. package/dist/resources/de-de/common.d.ts.map +1 -1
  135. package/dist/resources/de-de/common.js +25 -93
  136. package/dist/resources/de-de/common.js.map +1 -1
  137. package/dist/resources/de-de/dataio.d.ts +260 -0
  138. package/dist/resources/de-de/dataio.d.ts.map +1 -0
  139. package/dist/resources/de-de/dataio.js +260 -0
  140. package/dist/resources/de-de/dataio.js.map +1 -0
  141. package/dist/resources/de-de/email.d.ts +824 -0
  142. package/dist/resources/de-de/email.d.ts.map +1 -0
  143. package/dist/resources/de-de/email.js +824 -0
  144. package/dist/resources/de-de/email.js.map +1 -0
  145. package/dist/resources/de-de/files.d.ts +112 -0
  146. package/dist/resources/de-de/files.d.ts.map +1 -0
  147. package/dist/resources/de-de/files.js +112 -0
  148. package/dist/resources/de-de/files.js.map +1 -0
  149. package/dist/resources/de-de/invoices.d.ts +717 -0
  150. package/dist/resources/de-de/invoices.d.ts.map +1 -0
  151. package/dist/resources/de-de/invoices.js +717 -0
  152. package/dist/resources/de-de/invoices.js.map +1 -0
  153. package/dist/resources/de-de/onboarding.d.ts +190 -0
  154. package/dist/resources/de-de/onboarding.d.ts.map +1 -0
  155. package/dist/resources/de-de/onboarding.js +190 -0
  156. package/dist/resources/de-de/onboarding.js.map +1 -0
  157. package/dist/resources/de-de/reportBuilder.d.ts +415 -0
  158. package/dist/resources/de-de/reportBuilder.d.ts.map +1 -0
  159. package/dist/resources/de-de/reportBuilder.js +415 -0
  160. package/dist/resources/de-de/reportBuilder.js.map +1 -0
  161. package/dist/resources/de-de/studio.d.ts +1759 -1116
  162. package/dist/resources/de-de/studio.d.ts.map +1 -1
  163. package/dist/resources/de-de/studio.js +1770 -1127
  164. package/dist/resources/de-de/studio.js.map +1 -1
  165. package/dist/resources/de-de/ui.d.ts +45 -9
  166. package/dist/resources/de-de/ui.d.ts.map +1 -1
  167. package/dist/resources/de-de/ui.js +47 -11
  168. package/dist/resources/de-de/ui.js.map +1 -1
  169. package/dist/resources/en-us/automations.d.ts +417 -0
  170. package/dist/resources/en-us/automations.d.ts.map +1 -0
  171. package/dist/resources/en-us/automations.js +417 -0
  172. package/dist/resources/en-us/automations.js.map +1 -0
  173. package/dist/resources/en-us/common.d.ts +23 -91
  174. package/dist/resources/en-us/common.d.ts.map +1 -1
  175. package/dist/resources/en-us/common.js +25 -93
  176. package/dist/resources/en-us/common.js.map +1 -1
  177. package/dist/resources/en-us/dataio.d.ts +260 -0
  178. package/dist/resources/en-us/dataio.d.ts.map +1 -0
  179. package/dist/resources/en-us/dataio.js +260 -0
  180. package/dist/resources/en-us/dataio.js.map +1 -0
  181. package/dist/resources/en-us/email.d.ts +824 -0
  182. package/dist/resources/en-us/email.d.ts.map +1 -0
  183. package/dist/resources/en-us/email.js +824 -0
  184. package/dist/resources/en-us/email.js.map +1 -0
  185. package/dist/resources/en-us/files.d.ts +112 -0
  186. package/dist/resources/en-us/files.d.ts.map +1 -0
  187. package/dist/resources/en-us/files.js +112 -0
  188. package/dist/resources/en-us/files.js.map +1 -0
  189. package/dist/resources/en-us/invoices.d.ts +717 -0
  190. package/dist/resources/en-us/invoices.d.ts.map +1 -0
  191. package/dist/resources/en-us/invoices.js +717 -0
  192. package/dist/resources/en-us/invoices.js.map +1 -0
  193. package/dist/resources/en-us/onboarding.d.ts +190 -0
  194. package/dist/resources/en-us/onboarding.d.ts.map +1 -0
  195. package/dist/resources/en-us/onboarding.js +190 -0
  196. package/dist/resources/en-us/onboarding.js.map +1 -0
  197. package/dist/resources/en-us/reportBuilder.d.ts +415 -0
  198. package/dist/resources/en-us/reportBuilder.d.ts.map +1 -0
  199. package/dist/resources/en-us/reportBuilder.js +415 -0
  200. package/dist/resources/en-us/reportBuilder.js.map +1 -0
  201. package/dist/resources/en-us/studio.d.ts +1742 -1099
  202. package/dist/resources/en-us/studio.d.ts.map +1 -1
  203. package/dist/resources/en-us/studio.js +1769 -1126
  204. package/dist/resources/en-us/studio.js.map +1 -1
  205. package/dist/resources/en-us/ui.d.ts +37 -1
  206. package/dist/resources/en-us/ui.d.ts.map +1 -1
  207. package/dist/resources/en-us/ui.js +39 -3
  208. package/dist/resources/en-us/ui.js.map +1 -1
  209. package/dist/resources/fr-fr/automations.d.ts +417 -0
  210. package/dist/resources/fr-fr/automations.d.ts.map +1 -0
  211. package/dist/resources/fr-fr/automations.js +417 -0
  212. package/dist/resources/fr-fr/automations.js.map +1 -0
  213. package/dist/resources/fr-fr/common.d.ts +23 -91
  214. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  215. package/dist/resources/fr-fr/common.js +25 -93
  216. package/dist/resources/fr-fr/common.js.map +1 -1
  217. package/dist/resources/fr-fr/dataio.d.ts +260 -0
  218. package/dist/resources/fr-fr/dataio.d.ts.map +1 -0
  219. package/dist/resources/fr-fr/dataio.js +260 -0
  220. package/dist/resources/fr-fr/dataio.js.map +1 -0
  221. package/dist/resources/fr-fr/email.d.ts +824 -0
  222. package/dist/resources/fr-fr/email.d.ts.map +1 -0
  223. package/dist/resources/fr-fr/email.js +824 -0
  224. package/dist/resources/fr-fr/email.js.map +1 -0
  225. package/dist/resources/fr-fr/files.d.ts +112 -0
  226. package/dist/resources/fr-fr/files.d.ts.map +1 -0
  227. package/dist/resources/fr-fr/files.js +112 -0
  228. package/dist/resources/fr-fr/files.js.map +1 -0
  229. package/dist/resources/fr-fr/invoices.d.ts +717 -0
  230. package/dist/resources/fr-fr/invoices.d.ts.map +1 -0
  231. package/dist/resources/fr-fr/invoices.js +717 -0
  232. package/dist/resources/fr-fr/invoices.js.map +1 -0
  233. package/dist/resources/fr-fr/onboarding.d.ts +190 -0
  234. package/dist/resources/fr-fr/onboarding.d.ts.map +1 -0
  235. package/dist/resources/fr-fr/onboarding.js +190 -0
  236. package/dist/resources/fr-fr/onboarding.js.map +1 -0
  237. package/dist/resources/fr-fr/reportBuilder.d.ts +415 -0
  238. package/dist/resources/fr-fr/reportBuilder.d.ts.map +1 -0
  239. package/dist/resources/fr-fr/reportBuilder.js +415 -0
  240. package/dist/resources/fr-fr/reportBuilder.js.map +1 -0
  241. package/dist/resources/fr-fr/studio.d.ts +1759 -1116
  242. package/dist/resources/fr-fr/studio.d.ts.map +1 -1
  243. package/dist/resources/fr-fr/studio.js +1774 -1131
  244. package/dist/resources/fr-fr/studio.js.map +1 -1
  245. package/dist/resources/fr-fr/ui.d.ts +44 -8
  246. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  247. package/dist/resources/fr-fr/ui.js +46 -10
  248. package/dist/resources/fr-fr/ui.js.map +1 -1
  249. package/dist/resources/index.d.ts.map +1 -1
  250. package/dist/resources/index.js +14 -0
  251. package/dist/resources/index.js.map +1 -1
  252. package/dist/resources/lazy.d.ts.map +1 -1
  253. package/dist/resources/lazy.js +57 -1
  254. package/dist/resources/lazy.js.map +1 -1
  255. package/dist/resources/namespaces.d.ts +62 -3
  256. package/dist/resources/namespaces.d.ts.map +1 -1
  257. package/dist/resources/namespaces.js +84 -3
  258. package/dist/resources/namespaces.js.map +1 -1
  259. package/dist/resources/zh-cn/automations.d.ts +417 -0
  260. package/dist/resources/zh-cn/automations.d.ts.map +1 -0
  261. package/dist/resources/zh-cn/automations.js +417 -0
  262. package/dist/resources/zh-cn/automations.js.map +1 -0
  263. package/dist/resources/zh-cn/common.d.ts +23 -91
  264. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  265. package/dist/resources/zh-cn/common.js +25 -93
  266. package/dist/resources/zh-cn/common.js.map +1 -1
  267. package/dist/resources/zh-cn/dataio.d.ts +260 -0
  268. package/dist/resources/zh-cn/dataio.d.ts.map +1 -0
  269. package/dist/resources/zh-cn/dataio.js +260 -0
  270. package/dist/resources/zh-cn/dataio.js.map +1 -0
  271. package/dist/resources/zh-cn/email.d.ts +824 -0
  272. package/dist/resources/zh-cn/email.d.ts.map +1 -0
  273. package/dist/resources/zh-cn/email.js +824 -0
  274. package/dist/resources/zh-cn/email.js.map +1 -0
  275. package/dist/resources/zh-cn/files.d.ts +112 -0
  276. package/dist/resources/zh-cn/files.d.ts.map +1 -0
  277. package/dist/resources/zh-cn/files.js +112 -0
  278. package/dist/resources/zh-cn/files.js.map +1 -0
  279. package/dist/resources/zh-cn/invoices.d.ts +717 -0
  280. package/dist/resources/zh-cn/invoices.d.ts.map +1 -0
  281. package/dist/resources/zh-cn/invoices.js +717 -0
  282. package/dist/resources/zh-cn/invoices.js.map +1 -0
  283. package/dist/resources/zh-cn/onboarding.d.ts +190 -0
  284. package/dist/resources/zh-cn/onboarding.d.ts.map +1 -0
  285. package/dist/resources/zh-cn/onboarding.js +190 -0
  286. package/dist/resources/zh-cn/onboarding.js.map +1 -0
  287. package/dist/resources/zh-cn/reportBuilder.d.ts +415 -0
  288. package/dist/resources/zh-cn/reportBuilder.d.ts.map +1 -0
  289. package/dist/resources/zh-cn/reportBuilder.js +415 -0
  290. package/dist/resources/zh-cn/reportBuilder.js.map +1 -0
  291. package/dist/resources/zh-cn/studio.d.ts +1758 -1115
  292. package/dist/resources/zh-cn/studio.d.ts.map +1 -1
  293. package/dist/resources/zh-cn/studio.js +1764 -1121
  294. package/dist/resources/zh-cn/studio.js.map +1 -1
  295. package/dist/resources/zh-cn/ui.d.ts +45 -9
  296. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  297. package/dist/resources/zh-cn/ui.js +47 -11
  298. package/dist/resources/zh-cn/ui.js.map +1 -1
  299. package/dist/resources/zh-tw/automations.d.ts +417 -0
  300. package/dist/resources/zh-tw/automations.d.ts.map +1 -0
  301. package/dist/resources/zh-tw/automations.js +417 -0
  302. package/dist/resources/zh-tw/automations.js.map +1 -0
  303. package/dist/resources/zh-tw/common.d.ts +23 -91
  304. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  305. package/dist/resources/zh-tw/common.js +25 -93
  306. package/dist/resources/zh-tw/common.js.map +1 -1
  307. package/dist/resources/zh-tw/dataio.d.ts +260 -0
  308. package/dist/resources/zh-tw/dataio.d.ts.map +1 -0
  309. package/dist/resources/zh-tw/dataio.js +260 -0
  310. package/dist/resources/zh-tw/dataio.js.map +1 -0
  311. package/dist/resources/zh-tw/email.d.ts +824 -0
  312. package/dist/resources/zh-tw/email.d.ts.map +1 -0
  313. package/dist/resources/zh-tw/email.js +824 -0
  314. package/dist/resources/zh-tw/email.js.map +1 -0
  315. package/dist/resources/zh-tw/files.d.ts +112 -0
  316. package/dist/resources/zh-tw/files.d.ts.map +1 -0
  317. package/dist/resources/zh-tw/files.js +112 -0
  318. package/dist/resources/zh-tw/files.js.map +1 -0
  319. package/dist/resources/zh-tw/invoices.d.ts +717 -0
  320. package/dist/resources/zh-tw/invoices.d.ts.map +1 -0
  321. package/dist/resources/zh-tw/invoices.js +717 -0
  322. package/dist/resources/zh-tw/invoices.js.map +1 -0
  323. package/dist/resources/zh-tw/onboarding.d.ts +190 -0
  324. package/dist/resources/zh-tw/onboarding.d.ts.map +1 -0
  325. package/dist/resources/zh-tw/onboarding.js +190 -0
  326. package/dist/resources/zh-tw/onboarding.js.map +1 -0
  327. package/dist/resources/zh-tw/reportBuilder.d.ts +415 -0
  328. package/dist/resources/zh-tw/reportBuilder.d.ts.map +1 -0
  329. package/dist/resources/zh-tw/reportBuilder.js +415 -0
  330. package/dist/resources/zh-tw/reportBuilder.js.map +1 -0
  331. package/dist/resources/zh-tw/studio.d.ts +1759 -1116
  332. package/dist/resources/zh-tw/studio.d.ts.map +1 -1
  333. package/dist/resources/zh-tw/studio.js +1773 -1130
  334. package/dist/resources/zh-tw/studio.js.map +1 -1
  335. package/dist/resources/zh-tw/ui.d.ts +45 -9
  336. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  337. package/dist/resources/zh-tw/ui.js +47 -11
  338. package/dist/resources/zh-tw/ui.js.map +1 -1
  339. package/dist/review-status.js +7 -7
  340. package/dist/server.d.ts.map +1 -1
  341. package/dist/server.js +14 -1
  342. package/dist/server.js.map +1 -1
  343. package/locales/ar-EG/.meta.json +15999 -5979
  344. package/locales/ar-EG/automations.json +406 -0
  345. package/locales/ar-EG/common.json +25 -93
  346. package/locales/ar-EG/dataio.json +249 -0
  347. package/locales/ar-EG/email.json +813 -0
  348. package/locales/ar-EG/files.json +101 -0
  349. package/locales/ar-EG/invoices.json +706 -0
  350. package/locales/ar-EG/onboarding.json +179 -0
  351. package/locales/ar-EG/reportBuilder.json +404 -0
  352. package/locales/ar-EG/studio.json +1782 -1139
  353. package/locales/ar-EG/ui.json +47 -11
  354. package/locales/cs-CZ/.meta.json +16271 -6251
  355. package/locales/cs-CZ/automations.json +406 -0
  356. package/locales/cs-CZ/common.json +25 -93
  357. package/locales/cs-CZ/dataio.json +249 -0
  358. package/locales/cs-CZ/email.json +813 -0
  359. package/locales/cs-CZ/files.json +101 -0
  360. package/locales/cs-CZ/invoices.json +706 -0
  361. package/locales/cs-CZ/onboarding.json +179 -0
  362. package/locales/cs-CZ/reportBuilder.json +404 -0
  363. package/locales/cs-CZ/studio.json +1774 -1131
  364. package/locales/cs-CZ/ui.json +47 -11
  365. package/locales/da-DK/.meta.json +16245 -6225
  366. package/locales/da-DK/automations.json +406 -0
  367. package/locales/da-DK/common.json +25 -93
  368. package/locales/da-DK/dataio.json +249 -0
  369. package/locales/da-DK/email.json +813 -0
  370. package/locales/da-DK/files.json +101 -0
  371. package/locales/da-DK/invoices.json +706 -0
  372. package/locales/da-DK/onboarding.json +179 -0
  373. package/locales/da-DK/reportBuilder.json +404 -0
  374. package/locales/da-DK/studio.json +1771 -1128
  375. package/locales/da-DK/ui.json +47 -11
  376. package/locales/de-DE/.meta.json +16094 -6074
  377. package/locales/de-DE/automations.json +406 -0
  378. package/locales/de-DE/common.json +25 -93
  379. package/locales/de-DE/dataio.json +249 -0
  380. package/locales/de-DE/email.json +813 -0
  381. package/locales/de-DE/files.json +101 -0
  382. package/locales/de-DE/invoices.json +706 -0
  383. package/locales/de-DE/onboarding.json +179 -0
  384. package/locales/de-DE/reportBuilder.json +404 -0
  385. package/locales/de-DE/studio.json +1770 -1127
  386. package/locales/de-DE/ui.json +47 -11
  387. package/locales/en-US/automations.json +406 -0
  388. package/locales/en-US/common.json +25 -93
  389. package/locales/en-US/dataio.json +249 -0
  390. package/locales/en-US/email.json +813 -0
  391. package/locales/en-US/files.json +101 -0
  392. package/locales/en-US/invoices.json +706 -0
  393. package/locales/en-US/onboarding.json +179 -0
  394. package/locales/en-US/reportBuilder.json +404 -0
  395. package/locales/en-US/studio.json +1769 -1126
  396. package/locales/en-US/ui.json +39 -3
  397. package/locales/fr-FR/.meta.json +14117 -4097
  398. package/locales/fr-FR/automations.json +406 -0
  399. package/locales/fr-FR/common.json +25 -93
  400. package/locales/fr-FR/dataio.json +249 -0
  401. package/locales/fr-FR/email.json +813 -0
  402. package/locales/fr-FR/files.json +101 -0
  403. package/locales/fr-FR/invoices.json +706 -0
  404. package/locales/fr-FR/onboarding.json +179 -0
  405. package/locales/fr-FR/reportBuilder.json +404 -0
  406. package/locales/fr-FR/studio.json +1774 -1131
  407. package/locales/fr-FR/ui.json +46 -10
  408. package/locales/zh-CN/.meta.json +16223 -6203
  409. package/locales/zh-CN/automations.json +406 -0
  410. package/locales/zh-CN/common.json +25 -93
  411. package/locales/zh-CN/dataio.json +249 -0
  412. package/locales/zh-CN/email.json +813 -0
  413. package/locales/zh-CN/files.json +101 -0
  414. package/locales/zh-CN/invoices.json +706 -0
  415. package/locales/zh-CN/onboarding.json +179 -0
  416. package/locales/zh-CN/reportBuilder.json +404 -0
  417. package/locales/zh-CN/studio.json +1764 -1121
  418. package/locales/zh-CN/ui.json +47 -11
  419. package/locales/zh-TW/.meta.json +15999 -5979
  420. package/locales/zh-TW/automations.json +406 -0
  421. package/locales/zh-TW/common.json +25 -93
  422. package/locales/zh-TW/dataio.json +249 -0
  423. package/locales/zh-TW/email.json +813 -0
  424. package/locales/zh-TW/files.json +101 -0
  425. package/locales/zh-TW/invoices.json +706 -0
  426. package/locales/zh-TW/onboarding.json +179 -0
  427. package/locales/zh-TW/reportBuilder.json +404 -0
  428. package/locales/zh-TW/studio.json +1773 -1130
  429. package/locales/zh-TW/ui.json +47 -11
  430. package/package.json +1 -1
@@ -9,659 +9,835 @@
9
9
  * scripts/gen-resources.mjs.
10
10
  */
11
11
  export default {
12
- "title": "Studio",
13
- "settings": {
14
- "title": "Indstillinger",
15
- "workspaceSection": "Arbejdsområde",
16
- "globalDefaultsNav": "Globale standarder"
17
- },
18
- "source": {
19
- "engine": {
20
- "label": "Databasemotor",
21
- "postgres": "PostgreSQL",
22
- "mysql": "MySQL / MariaDB",
23
- "sqlite": "SQLite"
12
+ "addOns": {
13
+ "browse": {
14
+ "all": "Alle",
15
+ "bundled": "Included",
16
+ "categories": "Kategorier",
17
+ "discard": "Discard",
18
+ "download": "Download",
19
+ "emptyBody": "This build shipped none, and the online catalogue is off.",
20
+ "emptyOnlineBody": "Onlinekataloget er slået til, men sidste tjek fandt intet. Prøv at søge efter nyere.",
21
+ "emptyTitle": "No add-ons available",
22
+ "install": "Install",
23
+ "noMatchBody": "Ingen tilføjelse her matcher den søgning og kategori.",
24
+ "noMatchTitle": "Ingen match",
25
+ "offline": "Showing the add-ons that came with this build. Browsing online is switched off, and nothing here has contacted the internet.",
26
+ "online": "Includes add-ons from the online catalogue. Checking for newer versions is a separate action.",
27
+ "refresh": "Check for newer",
28
+ "search": "Søg efter tilføjelser",
29
+ "title": "Available",
30
+ "toggle": "Browse the online catalogue",
31
+ "upgrade": "v{version} available",
32
+ "upgradeAction": "Upgrade"
24
33
  },
25
- "format": {
26
- "label": "Skemaformat",
27
- "helper": "Lad automatisk registrering være slået til, medmindre den tager fejl.",
28
- "auto": "Registrér automatisk",
29
- "sql": "SQL DDL / pg_dump",
30
- "prisma": "Prisma-skema",
31
- "drizzle": "Drizzle ORM",
32
- "typeorm": "TypeORM-entiteter",
33
- "sequelize": "Sequelize-modeller",
34
- "rails": "Rails schema.rb",
35
- "django": "Django models.py",
36
- "json": "Adminium JSON"
34
+ "card": {
35
+ "needsApiKey": "Kræver en API-nøgle",
36
+ "needsOauth": "Forbinder med OAuth"
37
37
  },
38
- "sqlite": {
39
- "file": "Sti til databasefil",
40
- "helper": "SQLite er en fil, ikke en server — angiv den absolutte sti på den maskine, der kører Adminium."
38
+ "category": {
39
+ "artwork": "Design",
40
+ "data": "Data",
41
+ "delivery": "Levering",
42
+ "email": "E-mail",
43
+ "payments": "Betalinger"
41
44
  },
42
- "file": {
43
- "detectedAs": "Registreret: {format}",
44
- "moreWarnings": "+{count} flere advarsler — den fulde liste vises i analysetrinnet.",
45
- "dropTitle": "Slip din skemafil her, eller gennemse",
46
- "dropHint": "SQL DDL / pg_dump, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, Django-modeller, Adminium JSON",
47
- "pitch": "Ingen databaseforbindelse påkrævet — vi fortolker din skemafil og bygger de samme dashboards.",
48
- "parsing": "Læser den uploadede skemafil…",
49
- "tables": "tabeller",
50
- "columns": "kolonner",
51
- "warnings": "advarsler",
52
- "errorTitle": "Kunne ikke fortolke filen",
53
- "parseFailed": "Vi kunne ikke fortolke den fil. Hvis auto-genkendelsen gættede forkert, så vælg formatet eksplicit og prøv igen.",
54
- "unsupported": "Formatet blev ikke genkendt — SQL DDL, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, Django-modeller og Adminium JSON understøttes. Vælg ét eksplicit og prøv igen.",
55
- "requestFailed": "Upload mislykkedes — tjek din forbindelse og prøv igen."
45
+ "confirm": {
46
+ "cancel": "Cancel",
47
+ "close": "Close",
48
+ "discard": "Discard",
49
+ "discardBody": "The downloaded files are deleted. Nothing was installed, so nothing else changes — you can download it again whenever you like.",
50
+ "discardTitle": "Discard this download",
51
+ "disconnect": "Disconnect",
52
+ "disconnectBody": "Its keys are deleted and it stops making calls. Every table and every row it created stays exactly as it is, and you can reconnect at any time.",
53
+ "disconnectTitle": "Disconnect this add-on",
54
+ "uninstall": "Uninstall",
55
+ "uninstallBody": "Its keys are deleted and its files are removed from this server. Every table and every row it created stays exactly as it is. You can install it again later.",
56
+ "uninstallTitle": "Uninstall this add-on"
56
57
  },
57
- "title": "Forbind din database",
58
- "subtitle": "Peg Adminium mod en database, så genererer vi et admin-dashboard ud fra dens skema.",
59
- "name": "Forbindelsesnavn",
60
- "namePlaceholder": "Produktions-Postgres",
61
- "modeLabel": "Kildeinputtilstand",
62
- "mode": {
63
- "dsn": "Forbindelsesstreng",
64
- "fields": "Enkelte felter",
65
- "file": "Skemafil"
58
+ "connect": {
59
+ "apiKey": "API key",
60
+ "submit": "Connect"
66
61
  },
67
- "dsn": {
68
- "label": "Forbindelsesstreng",
69
- "helper": "postgres://bruger:kodeord@vaert:5432/database — mysql:// og sqlite: virker også.",
70
- "incomplete": "Tilføj vært og database, f.eks. postgres://user@host:5432/db",
71
- "invalidScheme": "Ukendt skema — forventede postgres://, mysql://, mariadb:// eller sqlite:",
72
- "quickFill": "Hurtig udfyldning:"
62
+ "consent": {
63
+ "cancel": "Cancel",
64
+ "close": "Close",
65
+ "confirm": "Install",
66
+ "hosts": "Attach to",
67
+ "loading": "Working out what this would do…",
68
+ "subtitle": "What this add-on will do, before it can do it.",
69
+ "title": "Install {name}"
73
70
  },
74
- "fields": {
75
- "host": "Vært",
76
- "port": "Port",
77
- "database": "Database",
78
- "user": "Bruger",
79
- "password": "Adgangskode",
80
- "ssl": "SSL-tilstand",
81
- "preview": "Forhåndsvisning af forbindelsesstreng:"
71
+ "error": "Something went wrong",
72
+ "installed": {
73
+ "connected": "Connected",
74
+ "disconnect": "Disconnect",
75
+ "egress": "May contact: {hosts}",
76
+ "emptyBody": "Install an add-on above and it will appear here with its hosts and connection.",
77
+ "emptyTitle": "Nothing installed yet",
78
+ "notConnected": "Not connected",
79
+ "off": "off",
80
+ "on": "on",
81
+ "title": "Installed",
82
+ "uninstall": "Uninstall"
82
83
  },
83
- "readOnlyRole": {
84
- "title": "Brug en skrivebeskyttet rolle",
85
- "body": "Adminium skriver aldrig til din database — opsætningen bruger kun skema-metadata. Vi anbefaler en dedikeret bruger med rene SELECT-rettigheder; hvor Adminium gemmer sine egne tabeller, beslutter du i metalagringstrinnet."
84
+ "job": {
85
+ "body": "Fetching and verifying. Nothing is installed until you say so.",
86
+ "failed": "The download did not finish. Nothing was installed.",
87
+ "title": "Downloading"
88
+ },
89
+ "plan": {
90
+ "blocked": "This cannot be installed here",
91
+ "needsColumns": "This add-on needs columns you do not have",
92
+ "needsColumnsBody": "Adminium will not add columns to tables you already own. Add them yourself, then install.",
93
+ "noData": "This add-on reads and writes no tables of its own.",
94
+ "reuse": "This add-on will use tables you already have:",
95
+ "willCreate": "This will create tables in your database",
96
+ "willCreateBody": "Installing creates these tables. Uninstalling later leaves them, and their data, alone."
97
+ },
98
+ "settings": {
99
+ "badJson": "Det er ikke gyldig JSON, så intet blev gemt.",
100
+ "save": "Gem indstillinger",
101
+ "title": "Indstillinger"
102
+ },
103
+ "sideload": {
104
+ "file": "Package file (.tgz)",
105
+ "hint": "For a server with no internet. It is checked exactly as a download would be, so it needs the hash that came with it.",
106
+ "key": "Add-on key",
107
+ "sha": "Integrity (sha512-…)",
108
+ "shaHint": "The `integrity` value `npm pack --json` printed. The upload is refused if the bytes do not match.",
109
+ "submit": "Upload",
110
+ "title": "Upload a package",
111
+ "version": "Version"
112
+ },
113
+ "subtitle": "Extra capabilities you can add to your apps — shipping, artwork, data. Each one says what it needs before you install it.",
114
+ "title": "Add-ons",
115
+ "upgradeNote": "Upgrading keeps the hosts an add-on is attached to and the connection it already has.",
116
+ "veto": {
117
+ "body": "The setting is saved, but network features are off for this server and that wins. Downloaded add-ons still work, and you can still upload one yourself.",
118
+ "title": "This deployment cannot browse online"
86
119
  }
87
120
  },
88
121
  "capability": {
122
+ "importNoLiveHealth": "Ingen live databaseforbindelse — sundhedstjek og registrering af skemadrift er ikke tilgængelige for denne kilde.",
123
+ "importNoRowCounts": "Skemafiler indeholder ingen rækkeantal — tabellisten viser — i stedet for opdigtede tal.",
89
124
  "mysqlApproxRows": "MySQL-rækkeantal er estimater fra lagringsmotoren (kan afvige op til ±40 %) — vises med ≈.",
90
125
  "mysqlFkEnum": "MySQL’s FK-/enum-metadata er svagere: MyISAM-tabeller deklarerer ingen fremmednøgler, enums er kolonnetyper som enum(…), og CHECK-begrænsninger kræver MySQL 8.0.16+ / MariaDB 10.2+.",
91
- "sqliteCheckEnums": "SQLite har ingen indbygget enum-type enums syntetiseres fra CHECK (col IN (…))-begrænsninger.",
92
- "sqliteNoComments": "SQLite har ingen kolonnekommentarer — brug skema-remap-editoren til at tilføje etiketter.",
93
- "importNoRowCounts": "Skemafiler indeholder ingen rækkeantal — tabellisten viser — i stedet for opdigtede tal.",
94
- "importNoLiveHealth": "Ingen live databaseforbindelse — sundhedstjek og registrering af skemadrift er ikke tilgængelige for denne kilde.",
95
- "rowsUnavailable": "Skemafiler har ingen live database — rækkeantal er ukendte, indtil du forbinder en.",
96
- "rowsRunAnalyze": "Intet estimat endnu — kør ANALYZE på databasen for at få rækkeantal.",
126
+ "rowsApproximate": "Estimat fra lagringsmotoren kan afvige op til ±40 % InnoDB.",
97
127
  "rowsNoEstimate": "Motoren rapporterede intet estimat for denne tabel.",
98
- "rowsApproximate": "Estimat fra lagringsmotorenkan afvige op til ±40 % InnoDB."
99
- },
100
- "test": {
101
- "log": {
102
- "moreWarnings": "+{count} flere parser-advarsler",
103
- "connecting": "Etablerer sikker forbindelse…",
104
- "connected": "Forbundet ({latency} ms) · skrivebeskyttet introspektion",
105
- "connectFailed": "Forbindelsen mislykkedes.",
106
- "readingSchema": "Læser skema: public",
107
- "readingFile": "Læser den uploadede skemafil…",
108
- "parsingFile": "Fortolker {file}…",
109
- "detected": "Registrerede {tables} tabeller · {columns} kolonner",
110
- "found": "Fandt {tables} tabeller · {columns} kolonner",
111
- "mapping": "Kortlægger kolonnetyper → inputwidgets",
112
- "relations": "Registrerer relationer…",
113
- "piiScan": "Scanner efter PII-kolonner…",
114
- "piiDone": "PII-scanning fuldført — {count} kolonner maskeret som standard",
115
- "piiDoneUnknown": "PII-scanning fuldført",
116
- "jobFailed": "Introspektion mislykkedes.",
117
- "networkFailed": "Anmodningen mislykkedes — tjek din forbindelse og prøv igen.",
118
- "ready": "Klar"
119
- },
120
- "title": "Analyserer dit skema",
121
- "subtitle": "Introspekterer tabeller, kolonner og relationer. Det tager et par sekunder.",
122
- "trust": "Vi læser kun dit skema og dine data. Intet ændres.",
123
- "errorTitle": "Forbindelsen mislykkedes",
124
- "retry": "Prøv igen",
125
- "logLabel": "Introspektionslog",
126
- "hint": {
127
- "auth": "Godkendelse mislykkedes — tjek brugernavn og adgangskode i din DSN.",
128
- "hostUnreachable": "Vært utilgængelig — tjek værtsnavn og port, og at databasen accepterer forbindelser fra denne maskine (tilføj vores IP'er til tilladelseslisten).",
129
- "metaPlacement": "Denne kilde kan ikke huse Adminiums metatabeller — fortsæt med en separat metadatabase.",
130
- "permission": "Rollen fik forbindelse, men mangler skema-læserettigheder — giv USAGE på skemaet til din introspektionsrolle.",
131
- "timeout": "Databasen svarede ikke i tide — tjek netværkssti og belastning, og prøv igen.",
132
- "tls": "TLS-forhandling mislykkedes — prøv sslmode=require, eller upload det CA-certifikat din server forventer.",
133
- "unknown": "Forbindelsen mislykkedes — kontrollér DSN'en og prøv igen."
134
- }
135
- },
136
- "tables": {
137
- "importNoCounts": "Skemafiler indeholder ingen rækkeantal — kolonnen viser —, indtil en live database er forbundet.",
138
- "title": "Vælg dine tabeller",
139
- "subtitle": "Vælg hvilke der skal med. Du kan altid ændre det.",
140
- "search": "Filtrér tabeller…",
141
- "listLabel": "Tabeller der kan medtages",
142
- "emptyFilter": "Ingen tabeller matcher dit filter.",
143
- "pii": "PII",
144
- "highVolume": "stor volumen",
145
- "highVolumeNote": "Tabeller med over 100.000 rækker starter fravalgt — driftstabeller hører sjældent hjemme i et dashboard.",
146
- "joinHidden": "{count} join-/systemtabeller er skjult på forhånd — de driver stadig mange-til-mange-relationer."
128
+ "rowsRunAnalyze": "Intet estimat endnukør ANALYZE databasen for at rækkeantal.",
129
+ "rowsUnavailable": "Skemafiler har ingen live database — rækkeantal er ukendte, indtil du forbinder en.",
130
+ "sqliteCheckEnums": "SQLite har ingen indbygget enum-type — enums syntetiseres fra CHECK (col IN (…))-begrænsninger.",
131
+ "sqliteNoComments": "SQLite har ingen kolonnekommentarer — brug skema-remap-editoren til at tilføje etiketter."
147
132
  },
148
- "hub": {
149
- "title": "Dataforbindelser",
150
- "subtitle": "{healthy, number} af {total, plural, one {# forbindelse} other {# forbindelser}} sunde",
151
- "connectNew": "Ny forbindelse",
152
- "stats": {
153
- "connections": "Forbindelser",
154
- "healthy": "Sunde",
155
- "tables": "Inkluderede tabeller",
156
- "pages": "Genererede sider"
157
- },
158
- "status": {
159
- "connected": "Forbundet",
160
- "error": "Fejl",
161
- "unconfigured": "Kladde",
162
- "testing": "Tester…",
163
- "paused": "Sat pause"
133
+ "design": {
134
+ "adopt": {
135
+ "action": "Tilføj til min app",
136
+ "done": "{created} sider oprettet, {updated} opdateret, {unchanged} allerede aktuelle.",
137
+ "everything": "Denne forbindelse viser allerede alle tabeller, så intet skulle inkluderes.",
138
+ "forbidden": "Din rolle kan ændre skemaet, men ikke generere sider. Bed en administrator med forbindelsesstyring om at tilføje disse tabeller til appen.",
139
+ "grants": "Ingen rolle får adgang automatisk — tildel den under Indstillinger → Roller.",
140
+ "offer": "En ny tabel gør ingenting, før den har en side. Vil du tilføje {tables} til din app?",
141
+ "skippedEdited": "Efterladt urørt, fordi du har redigeret dem: {pages}."
142
+ },
143
+ "apply": "Anvend",
144
+ "ceiling": {
145
+ "authorise": "Godkend denne omskrivning",
146
+ "body": "{table} har over {rows} rækker — mere, end Adminium omskriver af sig selv. Kun en Super Admin kan godkende det, og tabellen er låst, så længe omskrivningen varer.",
147
+ "hint": "Skriv tabelnavnet præcis som det står ovenfor.",
148
+ "notYours": "{table} har over {rows} rækker. Kun en Super Admin kan godkende en omskrivning af den størrelse — spørg en, eller kør ændringen i et servicevindue med dine egne værktøjer.",
149
+ "prompt": "Skriv {table} igen for at godkende omskrivningen"
164
150
  },
165
- "card": {
166
- "readOnly": "Skrivebeskyttet",
167
- "tables": "Tabeller",
168
- "pages": "Sider",
169
- "latency": "Latenstid",
170
- "latencyMs": "{latency, number} ms",
171
- "lastIntrospected": "Senest introspiceret",
172
- "never": "Aldrig",
173
- "timezone": "Tidszone",
174
- "timezoneGuessed": "fra denne server",
175
- "paused": "Adminium opretter ikke forbindelse til denne database. Dens sider indlæses igen, når du genoptager den.",
176
- "pausedSince": "Sat på pause {when} – Adminium opretter ikke forbindelse til denne database. Dens sider indlæses igen, når du genoptager den."
151
+ "column": {
152
+ "help": "Hvad betyder disse indstillinger?",
153
+ "key": "Nøgle",
154
+ "length": "Længde",
155
+ "link": "Linker til",
156
+ "linkHelp": "Forbind dette til en række i en anden tabel.",
157
+ "linkTypeNote": "Typen matcher den linkede tabels nøgle.",
158
+ "name": "Navn",
159
+ "namePlaceholder": "client_id",
160
+ "noLink": "Ingenting",
161
+ "onDelete": "Hvis den linkede række slettes",
162
+ "precision": "Præcision",
163
+ "primaryKey": "Primærnøgle",
164
+ "remove": "Fjern {name}",
165
+ "required": "Påkrævet",
166
+ "type": "Type",
167
+ "unique": "Unik"
177
168
  },
178
- "action": {
179
- "test": "Test",
180
- "reintrospect": "Introspicer igen",
181
- "reintrospectFile": "Skemafil-kilder har ingen aktiv database — upload filen igen i stedet.",
182
- "remap": "Ommap skema",
183
- "delete": "Slet",
184
- "regional": "Regionale indstillinger",
185
- "pause": "Sæt på pause",
186
- "resume": "Genoptag",
187
- "pausedHint": "Denne forbindelse er sat på pause – genoptag den for at nå databasen.",
188
- "rename": "Omdøb"
169
+ "confirm": {
170
+ "body": "Denne ændring kasserer data eller fjerner et objekt. Adminium kan ikke fortryde den.",
171
+ "cancel": "Annullér",
172
+ "close": "Luk",
173
+ "confirm": "Anvend ændringer",
174
+ "prompt": "Skriv {word} for at bekræfte",
175
+ "title": "Anvend en destruktiv ændring"
189
176
  },
190
- "regional": {
191
- "title": "Regionale indstillinger",
192
- "intro": "De beskriver den virksomhed, databasen tilhører — ikke den, der læser. Apps, der leveres af Adminium, henter dem her.",
193
- "timezone": "Tidszone",
194
- "timezoneHelper": "Datoer og klokkeslæt vises i denne tidszone. Uden en falder Adminium-hostede apps tilbage til UTC og skriver det på skærmen.",
195
- "guessedTitle": "Denne tidszone kom fra serveren",
196
- "guessedBody": "Adminium hentede den fra den maskine, det kører på — ingen her har valgt den. Gem for at bekræfte den, eller vælg den tidszone, virksomheden faktisk arbejder i.",
197
- "timezonePlaceholder": "Region/By",
198
- "currency": "Valuta",
199
- "currencyHelper": "Bruges til at formatere beløb. Valgfri — undlader du den, påvirker det kun formateringen.",
200
- "currencyPlaceholder": "ISO-4217-kode",
201
- "notSet": "Ikke angivet",
202
- "noMatch": "Ingen matchende zone",
203
- "noMatchCurrency": "Ingen matchende valuta",
204
- "save": "Gem",
205
- "failed": "De regionale indstillinger kunne ikke gemmes",
206
- "saved": "Regionale indstillinger opdateret"
177
+ "designer": "Tabeldesigner",
178
+ "discard": "Kassér ændringer",
179
+ "dropping": "Markeret til sletning",
180
+ "empty": {
181
+ "body": "Opret en tabel, eller vælg en at redigere. Intet når din database, før du har gennemgået sætningerne og anvendt dem.",
182
+ "title": "Design dit skema"
183
+ },
184
+ "error": {
185
+ "atColumn": "Kolonne {n}, {field}",
186
+ "atTable": "Tabel {field}",
187
+ "empty": "Et navn er påkrævet.",
188
+ "identifier": "Brug små bogstaver, tal og understregninger, og start med et bogstav.",
189
+ "tooLong": "For langt — {dialect} tillader {max} tegn."
190
+ },
191
+ "existing": "Eksisterende tabeller",
192
+ "hazard": {
193
+ "irreversible": "Kan ikke fortrydes",
194
+ "locking": "Holder en lås",
195
+ "lossy": "Kasserer data",
196
+ "refused": "Afvist",
197
+ "rewrite": "Omskriver tabellen",
198
+ "safe": "Sikker"
199
+ },
200
+ "help": {
201
+ "close": "Luk",
202
+ "link": {
203
+ "example": "En reservation linker til en klient. Adminium viser så klienten på reservationen og reservationerne på klienten.",
204
+ "term": "Link til en anden tabel",
205
+ "what": "Forbinder denne række med en række i en anden tabel og beder databasen om at holde linket ærligt — du kan ikke pege på noget, der ikke findes."
206
+ },
207
+ "primaryKey": {
208
+ "example": "Uden en primærnøgle kan Adminium vise rækkerne på en liste, men ikke redigere eller slette en enkelt af dem.",
209
+ "term": "Primærnøgle",
210
+ "what": "Feltet, der identificerer hver række — det, Adminium bruger til at skelne én række fra en anden. Hver tabel bør have præcis ét, og det er næsten altid det \"id\"-felt, der blev oprettet for dig."
211
+ },
212
+ "required": {
213
+ "example": "En ordre skal have en kunde, så det felt er påkrævet. En leveringsbemærkning er valgfri, så det er den ikke.",
214
+ "term": "Påkrævet",
215
+ "what": "Feltet skal udfyldes. En række kan ikke gemmes, så længe det er tomt."
216
+ },
217
+ "subtitle": "Beskrivelser i almindeligt sprog af hver indstilling, og hvad den ændrer for dem, der bruger din app.",
218
+ "title": "Hvad disse felter betyder",
219
+ "type": {
220
+ "example": "Et telefonnummer er som regel tekst, ikke et tal — tal taber nuller i starten.",
221
+ "term": "Type",
222
+ "what": "Hvilken slags oplysning feltet indeholder — ord, hele tal, penge, en dato, et ja/nej-svar. Det er valget af den rigtige, der gør, at Adminium kan vise en datovælger i stedet for et tekstfelt og lægge en kolonne med penge sammen."
223
+ },
224
+ "unique": {
225
+ "example": "To kunder bør ikke dele den samme e-mailadresse — marker feltet som unikt, og så kan de ikke.",
226
+ "term": "Unik",
227
+ "what": "To rækker må ikke indeholde den samme værdi. Databasen afviser den anden."
228
+ }
207
229
  },
208
- "test": {
209
- "ok": "Forbindelsen er sund · {latency, number} ms",
210
- "failed": "Forbindelsestest mislykkedes"
230
+ "keepTable": "Behold {table}",
231
+ "newTable": "Ny tabel",
232
+ "onDelete": {
233
+ "cascade": "Slet også denne række",
234
+ "restrict": "Forhindr sletningen",
235
+ "setNull": "Lad feltet være tomt"
211
236
  },
212
- "introspect": {
213
- "noChanges": "Skemaet er uændret — intet nyt snapshot.",
214
- "updated": "Skemaet er introspiceret igen",
215
- "masksProposed": "{count, plural, one {# kolonne} other {# kolonner}} foreslået til maskering — gennemgå i ommapnings-editoren.",
216
- "failed": "Introspektion mislykkedes. Prøv igen."
237
+ "plan": "Gennemgå ændringer",
238
+ "result": {
239
+ "applied": "Anvendt. Adminium har genindlæst dit skema.",
240
+ "failed": "Intet blev anvendt din database er uændret. {error}",
241
+ "partial": "Delvist anvendt: {done} af {total} trin blev kørt. Anvend de samme ændringer igen for at fuldføre dem.",
242
+ "repaired": "Omdøbningen blev ført videre til {pages, plural, one {# side} other {# sider}}, {grants, plural, one {# rolletilladelse} other {# rolletilladelser}} og {overrides, plural, one {# skemaoverstyring} other {# skemaoverstyringer}}."
217
243
  },
218
- "delete": {
219
- "title": "Slet forbindelse",
220
- "body": "Dette sletter “{name}” og de genererede sider. Selve din database røres aldrig.",
221
- "prompt": "Skriv {name} for at bekræfte",
222
- "confirm": "Slet forbindelse",
223
- "cancel": "Annuller",
224
- "close": "Luk",
225
- "success": "Forbindelsen “{name}” er slettet",
226
- "failed": "Forbindelsen kunne ikke slettes. Prøv igen."
244
+ "review": {
245
+ "noChanges": "Ingen skemaændringer endnu.",
246
+ "pending": "Gennemgå dine ændringer for at se de præcise sætninger, Adminium vil køre.",
247
+ "steps": "Planlagte trin",
248
+ "superAdmin": "Superadministrator",
249
+ "unfinished": "En tidligere anvendelse på denne forbindelse rapporterede aldrig et resultat. Dens skema er måske halvvejs mellem to former — tjek ændringshistorikken, før du anvender flere."
227
250
  },
228
- "empty": {
229
- "title": "Ingen datakilder endnu",
230
- "body": "Forbind en database, så genererer Adminium dit adminpanel ud fra dens skema.",
231
- "cta": "Forbind en database"
251
+ "reviewPane": "Gennemgang",
252
+ "table": {
253
+ "addColumn": "Tilføj kolonne",
254
+ "columns": "Kolonner",
255
+ "drop": "Slet denne tabel",
256
+ "dropHelp": "Tabellen og alle dens rækker destrueres. Du får se præcis hvad der går i stykker, før noget køres.",
257
+ "name": "Tabelnavn",
258
+ "nameHelp": "Små bogstaver, tal og understregninger.",
259
+ "namePlaceholder": "reservations",
260
+ "noKey": "Denne tabel har ingen primærnøgle, så Adminium behandler den som skrivebeskyttet — rækker kan vises, men ikke redigeres.",
261
+ "renameHelp": "Ændrer du dette, omdøbes tabellen i din database.",
262
+ "uuidKeyUnavailable": "På denne motor skal en nøgle være et genereret heltal: en databasegenereret uuid kan ikke læses tilbage efter en indsættelse."
263
+ },
264
+ "unnamed": "Navngiv hver tabel og kolonne for at gennemgå ændringerne.",
265
+ "unrepresentableDefaults": "Disse kolonner beholder en databasegenereret standardværdi, som Adminium ikke kan redigere her, og den efterlades som den er: {columns}"
266
+ },
267
+ "diagram": {
268
+ "ceiling": "Viser de {shown} mest forbundne tabeller. {omitted} flere er skjult — søg for at hente en frem.",
269
+ "legend": {
270
+ "declared": "Fremmednøgle",
271
+ "inferred": "Udledt",
272
+ "virtual": "Tilføjet i Adminium"
273
+ },
274
+ "legendLabel": "Signaturforklaring",
275
+ "node": {
276
+ "foreignKey": "Fremmednøgle",
277
+ "more": "+{count} mere",
278
+ "primaryKey": "Primærnøgle"
279
+ },
280
+ "outline": {
281
+ "intro": "{tables} tabeller og {relations} relationer, som en liste.",
282
+ "more": " og {count} mere",
283
+ "referencedBy": "Refereret af: {list}",
284
+ "references": "Refererer: {list}"
285
+ },
286
+ "saveLayout": "Gem layout",
287
+ "search": "Find en tabel eller kolonne",
288
+ "showDiagram": "Vis diagram",
289
+ "showList": "Vis som liste"
290
+ },
291
+ "documents": {
292
+ "cancel": "Annullér",
293
+ "connectionLabel": "Forbindelse",
294
+ "delete": "Slet",
295
+ "delivery": {
296
+ "email": "Send til",
297
+ "noEmail": "Ingen — behold det på posten",
298
+ "noEmailSlot": "Denne bilagstype har ikke noget adressefelt og kan derfor ikke sendes.",
299
+ "noSmtp": "Dette Adminium har endnu ingen e-mailserver, så der kan ikke sendes noget. Opsæt en under Studio → Indstillinger → E-mail.",
300
+ "stored": "Bliver altid på posten."
301
+ },
302
+ "disabled": "slået fra",
303
+ "edit": "Rediger",
304
+ "empty": "Ingen tilknytninger endnu.",
305
+ "grants": {
306
+ "refused": "Denne tilknytning læser {tables}, som I ikke må læse. Bilag herfra vil fejle for jer.",
307
+ "title": "I må ikke læse det hele"
308
+ },
309
+ "intro": "En tilknytning siger, hvilke kolonner i hvilken tabel der udgør én slags bilag, hvad der tegner det, og hvor det går hen.",
310
+ "name": "Navngiv denne tilknytning",
311
+ "newFrom": "Ny tilknytning til:",
312
+ "noProvider": "Intet installeret add-on kan endnu tegne bilag. Installér et under Add-ons, så vises de mulige tilknytninger her.",
313
+ "pickTable": "Vælg en tabel…",
314
+ "prefix": "Nummerforstavelse",
315
+ "render": {
316
+ "failedRow": "Der blev ikke tegnet noget: {reason}",
317
+ "intro": "Tegn et nu, ud fra en række, du vælger. Intet sendes nogen steder hen — det bliver på posten som alle andre.",
318
+ "noRows": "Ingen rækker at tegne ud fra endnu.",
319
+ "open": "Åbn",
320
+ "pending": "Tegner…",
321
+ "pick": "Tegn denne",
322
+ "ready": "Tegnet.",
323
+ "saveFirst": "Gem tilknytningen først. Et bilag tegnes ud fra en gemt, så du kan se, hvad den laver, før andre gør.",
324
+ "search": "Søg i rækker",
325
+ "slow": "Der er endnu ikke dukket et bilag op. Det venter måske på tur, eller denne installation kører ingen baggrundsopgaver — der tegnes ikke noget, før den gør.",
326
+ "slowTitle": "Stadig ingenting"
327
+ },
328
+ "save": "Gem tilknytning",
329
+ "slot": {
330
+ "byDefault": "Udfyldes af Adminium",
331
+ "lineColumnOf": "{column} for hver linje",
332
+ "lineColumns": "Hvad der udfylder hver kolonne i en linje",
333
+ "looksLikeLines": "ligner linjer",
334
+ "noChildren": "Intet i din database peger på denne tabel, så der er ingen linjer at tegne. Et bilag har brug for en underordnet tabel med en fremmednøgle tilbage til denne.",
335
+ "noLines": "Ingen linjer",
336
+ "pii": "skjulte data",
337
+ "typed": "En værdi, jeg skriver",
338
+ "typedHint": "Skrevet her, ikke læst fra dine data — hvert bilag fra denne tilknytning får den samme værdi.",
339
+ "typedValue": "Værdi for {slot}",
340
+ "unmapped": "Ikke udfyldt"
232
341
  },
233
- "hostedApps": "Hostede apps",
234
- "subtitlePaused": "{healthy, number} af {total, plural, one {# forbindelse} other {# forbindelser}} sunde · {paused, number} sat på pause",
235
- "pause": {
236
- "title": "Sæt denne forbindelse pause?",
237
- "body": "Adminium åbner ikke længere nogen forbindelse til “{name}”. {pages, plural, one {# side} other {# sider}}, planlagte rapporter og hostede apps holder op med at indlæse data, indtil du genoptager den.",
238
- "keeps": "Intet slettes forbindelsen, dens skema og {pages, plural, one {dens # side} other {dens # sider}} bevares alle, og ét klik henter dem tilbage.",
239
- "confirm": "Sæt forbindelsen på pause",
240
- "pausedToast": "Forbindelsen “{name}” er sat på pause",
241
- "resumedToast": "Forbindelsen “{name}” er genoptaget",
242
- "pauseFailed": "Forbindelsen kunne ikke sættes på pause. Prøv igen.",
243
- "resumeFailed": "Forbindelsen kunne ikke genoptages. Prøv igen."
342
+ "step": {
343
+ "delivery": "Hvor det går hen",
344
+ "kind": "Slags",
345
+ "mapping": "Hvad der udfylder hvert felt",
346
+ "mappingHelp": "Hvert felt læser en kolonne eller tager en værdi, du skriver her.",
347
+ "render": "Prøv den en række",
348
+ "table": "Forbindelse og tabel",
349
+ "trigger": "Hvad der tegner det"
350
+ },
351
+ "tableLabel": "Tabel",
352
+ "title": "Bilagstilknytninger",
353
+ "trigger": {
354
+ "created": "Når en række kommer til",
355
+ "manual": "Kun når nogen beder om det",
356
+ "manualShort": "på anmodning",
357
+ "note": "Rækker fra en import eller skrevet direkte i databasen tegner intet — kun skrivninger gennem Adminium gør.",
358
+ "noteTitle": "Hvad der tæller som en ændring",
359
+ "updated": "Når en række ændres"
360
+ },
361
+ "unbound": "Mangler stadig: {slots}"
362
+ },
363
+ "enrich": {
364
+ "byo": {
365
+ "cardDescription": "Kopiér en selvstændig prompt ind i Claude Code, ChatGPT, hvad som helst — og indsæt så JSON’en tilbage. Ingen nøgle nødvendig, intet forlader denne maskine automatisk.",
366
+ "cardTitle": "Kopiér en prompt til mit eget AI-værktøj",
367
+ "cardTitleRecommended": "Kopiér en prompt til mit eget AI-værktøj — anbefalet",
368
+ "chunkTab": "Prompt {index}",
369
+ "chunkTabs": "Prompt-dele",
370
+ "chunkValid": "Del {index} valideret",
371
+ "continueReview": "Fortsæt til gennemgang",
372
+ "copyErrors": "Kopiér fejl til dit AI-værktøj",
373
+ "copyErrorsDone": "Fejl kopieret",
374
+ "copyErrorsHint": "Indsæt dette tilbage i dit AI-værktøj for at få et rettet svar.",
375
+ "copyPrompt": "Kopiér prompt",
376
+ "copyPromptDone": "Prompt kopieret",
377
+ "download": "Download .md",
378
+ "droppedItems": "{count} forslag blev frasorteret under valideringen — gennemgangen viser resten.",
379
+ "errorsTitle": "Valideringen fandt {count} problemer",
380
+ "guidance": "Kør dette i et hvilket som helst AI-værktøj — Claude Code, ChatGPT, hvad som helst. Indsæt den returnerede JSON nedenfor.",
381
+ "mergedBody": "Forslagene er klar til gennemgang mod det heuristiske grundlag.",
382
+ "mergedTitle": "Alle {count} dele valideret og flettet",
383
+ "mergedTitleSingle": "Svar valideret",
384
+ "pasteLabel": "Indsæt JSON-svaret",
385
+ "pastePlaceholder": "Indsæt JSON-svaret her…",
386
+ "pendingBody": "Indsæt JSON-svaret ovenfor og validér det for at fortsætte til gennemgang.",
387
+ "pendingBodyChunked": "Hver del skal valideres, før forslagene flettes. Indsæt og validér hver prompt ovenfor.",
388
+ "pendingTitle": "Validér hver prompt for at fortsætte",
389
+ "promptLabel": "Berigelsesprompt",
390
+ "promptLabelN": "Berigelsesprompt {index} af {total}",
391
+ "requestFailed": "Kunne ikke nå serveren for at validere — prøv igen.",
392
+ "tokenChip": "≈ {tokens} tokens",
393
+ "valid": "Svar valideret",
394
+ "validate": "Validér",
395
+ "wholeDocument": "hele dokumentet"
244
396
  },
245
- "rename": {
246
- "title": "Omdøb forbindelse",
247
- "label": "Navn",
248
- "helper": "Hvad denne database hedder i hele Adminium — kortet, sidepanelgruppen over dens sider og hver vælger, der tilbyder den. Selve databasen omdøbes ikke.",
249
- "save": "Omdøb",
250
- "saved": "Forbindelse omdøbt",
251
- "failed": "Forbindelsen kunne ikke omdøbes"
252
- }
397
+ "copied": "Kopieret",
398
+ "createFailed": "Berigelsesprompten kunne ikke bygges — prøv igen.",
399
+ "createFailedTitle": "Kunne ikke starte",
400
+ "direct": {
401
+ "back": "Tilbage til valg",
402
+ "building": "Bygger prompt…",
403
+ "cancel": "Annullér",
404
+ "continueReview": "Fortsæt til gennemgang",
405
+ "done": "Berigelse fuldført — gennemgå forslagene.",
406
+ "errorTitle": "Berigelse mislykkedes",
407
+ "failed": "Udbyderkørslen mislykkedes. Tjek dine AI-indstillinger, og prøv igen.",
408
+ "jobFailed": "Berigelseskørslen blev ikke fuldført.",
409
+ "logLabel": "Berigelseslog",
410
+ "retry": "Prøv igen",
411
+ "startFailed": "Kunne ikke starte kørslen — prøv igen.",
412
+ "subtitle": "Sender dit skema til",
413
+ "title": "Beriger med AI"
414
+ },
415
+ "fileBody": "Skemafil-kilder har endnu ikke et snapshot at berige. Forbind en live-database for at bruge AI-berigelse, eller fortsæt — det heuristiske grundlag genererer stadig en komplet app.",
416
+ "fileTitle": "AI-berigelse kræver en live-database",
417
+ "generatePrompt": "Generér prompt",
418
+ "intentLabel": "Hvordan vil du berige?",
419
+ "localeLocked": "(påkrævet)",
420
+ "localesLegend": "Oversæt etiketter til",
421
+ "noSections": "Vælg mindst én beslutningsgruppe at berige.",
422
+ "provider": {
423
+ "configError": "Udbyderindstillingerne kunne ikke indlæses — konfigurér en udbyder i Indstillinger → AI, og kom tilbage til dette trin.",
424
+ "description": "Kør berigelsen nu mod din konfigurerede udbyder. Du gennemgår hvert forslag som en diff.",
425
+ "networkDisabled": "Dette Adminium har ingen udgående internetadgang og kan ikke nå en udbyder-API. Brug kopier-indsæt-turen i stedet — samme prompt, samme gennemgang.",
426
+ "readyBody": "Vælg “Brug min AI-udbyder” ovenfor for at køre berigelsen på denne forbindelse nu.",
427
+ "readyTitle": "AI-udbyder konfigureret",
428
+ "setUpHere": "Konfigurér en udbyder her",
429
+ "setUpHide": "Skjul udbyderopsætning",
430
+ "settingsHint": "Vil du køre den direkte?",
431
+ "settingsLink": "Konfigurér en udbyder i Indstillinger → AI",
432
+ "title": "Brug min AI-udbyder",
433
+ "unconfigured": "Der er endnu ikke konfigureret nogen AI-udbyder — konfigurér en nedenfor, eller kopiér en prompt til dit eget AI-værktøj."
434
+ },
435
+ "providerFallback": "din AI-udbyder",
436
+ "samplingHint": "Inkluderer op til 20 rigtige værdier pr. ikke-PII-kolonne i prompten.",
437
+ "samplingPreviewBody": "Op til 20 hyppigste værdier pr. ikke-PII-kolonne, plus min/maks for numeriske og datokolonner. PII-markerede kolonner udtages aldrig. Alt andet forbliver kun aggregeret. Gennemgå den præcise prompt før kopiering (BYO) — intet sendes uden din handling.",
438
+ "samplingPreviewTitle": "Hvad forlader denne maskine",
439
+ "samplingTitle": "Inkludér eksempelværdier",
440
+ "section": {
441
+ "enums": "Enum-semantik",
442
+ "groups": "Navigationsgrupper",
443
+ "icons": "Ikoner",
444
+ "keys": "Nøglekolonner",
445
+ "labels": "Etiketter og beskrivelser",
446
+ "microcopy": "Mikrotekst",
447
+ "pii": "PII og maskering",
448
+ "relations": "Relationer",
449
+ "templates": "Sideskabeloner",
450
+ "widgets": "Dashboard-widgets"
451
+ },
452
+ "sectionsLegend": "Hvad skal AI’en beslutte?",
453
+ "skip": {
454
+ "confirmBody": "Den genererede app vil bruge de heuristiske etiketter, grupper og dashboards. Fortsæt for at generere — du kan køre AI-berigelse når som helst fra Indstillinger → AI.",
455
+ "confirmTitle": "Fortsætter med heuristik",
456
+ "description": "Generér fra det heuristiske grundlag. Du kan berige senere fra Indstillinger → AI — at springe over straffes aldrig.",
457
+ "title": "Spring over — brug kun heuristik"
458
+ },
459
+ "startOver": "Start forfra",
460
+ "startProvider": "Start berigelse",
461
+ "subtitle": "Forfin eventuelt de genererede etiketter, grupper, enums og dashboards med en LLM. Det heuristiske grundlag fungerer uden — dette tilføjer kun forslag, som du gennemgår, før noget anvendes.",
462
+ "title": "Berig med AI"
253
463
  },
254
- "settingsHub": {
255
- "title": "Arbejdsområdeindstillinger",
256
- "subtitle": "Identitet, sikkerhed og destruktive handlinger for dette arbejdsområde.",
257
- "save": "Gem ændringer",
258
- "saved": "Arbejdsområdeindstillinger opdateret",
259
- "saveFailed": "Arbejdsområdeindstillingerne kunne ikke gemmes. Prøv igen.",
260
- "superAdminOnlyTitle": "Superadmin påkrævet",
261
- "superAdminOnly": "Kun en superadmin kan ændre arbejdsområdets identitet og sikkerhedsindstillinger.",
262
- "identity": {
263
- "heading": "Arbejdsområdets identitet",
264
- "appName": {
265
- "label": "Applikationsnavn",
266
- "helper": "Vises i sidepanelet, browsertitlen og e-mails.",
267
- "error": "Angiv et navn på højst 60 tegn."
268
- },
269
- "logo": {
270
- "label": "Logo",
271
- "drop": "Slip et billede her",
272
- "helper": "PNG, JPEG, WebP, GIF eller SVG på op til 1 MB. Erstatter det indbyggede mærke overalt.",
273
- "upload": "Upload logo",
274
- "replace": "Erstat logo",
275
- "remove": "Fjern",
276
- "uploaded": "Logo opdateret",
277
- "removed": "Logo fjernet",
278
- "tooLarge": "Billedet er større end 1 MB.",
279
- "badType": "Vælg et PNG-, JPEG-, WebP-, GIF- eller SVG-billede.",
280
- "undo": "Fortryd"
281
- },
282
- "showVersion": {
283
- "label": "Version i sidepanelet",
284
- "helper": "Buildnummeret ved siden af logoet. Slået fra skjuler, hvilken version du kører."
285
- }
464
+ "generate": {
465
+ "errorTitle": "Generering mislykkedes",
466
+ "failed": "Generering mislykkedes prøv igen, eller kør introspektionen igen først.",
467
+ "fileBody": "Dit skema blev fortolket rent, og forhåndsvisningen ovenfor er ægte. Generering af en kørende app direkte fra en skemafil (med pladsholderrækker) er ikke tilgængelig endnu — forbind en live database for at generere i dag.",
468
+ "fileTitle": "Skemafil fortolket — generering kræver en live database",
469
+ "log": {
470
+ "classifying": "Klassificerer skema…",
471
+ "composing": "Sammensætter skabeloner…",
472
+ "done": "{pages} sider genereret på tværs af {groups} navigationsgrupper",
473
+ "writing": "Skriver sider…"
286
474
  },
287
- "security": {
288
- "heading": "Sikkerhed",
289
- "require2fa": {
290
- "label": "Kræv tofaktorgodkendelse",
291
- "desc": "Alle medlemmer skal aktivere 2FA for at logge ind.",
292
- "note": "Vejledende, ikke en spærring: medlemmer uden 2FA sendes til opsætningen og kan ikke slå den fra igen, men deres login blokeres aldrig, og API-nøgler er ikke omfattet."
293
- },
294
- "allowSignup": {
295
- "label": "Tillad selvregistrering",
296
- "desc": "Alle kan oprette en konto — slået fra er arbejdsområdet kun på invitation."
297
- },
298
- "sessionTtl": {
299
- "label": "Sessionslevetid (timer)",
300
- "error": "Mellem {min, number} og {max, number} timer."
301
- },
302
- "passwordMin": {
303
- "label": "Minimal adgangskodelængde",
304
- "error": "Mellem {min, number} og {max, number} tegn."
305
- }
475
+ "logLabel": "Genereringslog",
476
+ "openApp": "Åbn din app",
477
+ "run": "Generér dashboard",
478
+ "subtitle": "Én side pr. medtaget tabel plus dashboards pr. domæne — formål:",
479
+ "successBody": "{pages} sider i {groups} navigationsgrupper genereret fra dit skema, redigerbare i Studio.",
480
+ "successTitle": "Dit dashboard er klar",
481
+ "title": "Generér din app"
482
+ },
483
+ "hostedApps": {
484
+ "domains": {
485
+ "add": "Tilknyt et domæne",
486
+ "hostLabel": "Vært",
487
+ "instanceLabel": "Instans",
488
+ "instanceOwn": "Appens egen",
489
+ "issuesTitle": "Domænekortet blev afvist",
490
+ "none": "Ingen domæner er tilknyttet.",
491
+ "remove": "Fjern",
492
+ "save": "Gem domæner",
493
+ "savedBody": "Tilknytninger træder i kraft inden for få sekunder. En vært svarer først, når dens DNS og din proxy faktisk når denne instans.",
494
+ "savedTitle": "Gemt",
495
+ "subtitle": "Peg et domænes DNS på din proxy, send Host-headeren videre til Adminium, og tilknyt det her — værten serverer så fladen i stedet for dette dashboard. Certifikater bliver på din proxy.",
496
+ "surfaceLabel": "Flade",
497
+ "title": "Domæner"
306
498
  },
307
- "email": {
308
- "heading": "E-mail (SMTP)",
309
- "unconfigured": "Der er ikke opsat nogen mailserver, så Adminium kan ikke sende nulstilling af adgangskode, invitationer eller planlagte rapporter.",
310
- "host": {
311
- "label": "SMTP-vært",
312
- "error": "Kun et værtsnavn eller en IP-adresse — uden skema, port eller loginoplysninger."
313
- },
314
- "port": {
315
- "label": "Port",
316
- "error": "Mellem {min, number} og {max, number}."
499
+ "emptyBody": "Peg ADMINIUM_SURFACES_DIR på en mappe med byggede flader — én mappe pr. app og side, hver med sin index.html — og genstart. De serveres derefter under /apps/ og vises her.",
500
+ "emptyTitle": "Der serveres ingen app-flader",
501
+ "error": "Noget gik galt",
502
+ "instances": {
503
+ "add": "Tilføj en instans",
504
+ "appLabel": "App",
505
+ "body": "Server den samme app over flere databaser. Hver instans er tilgængelig på /apps/<app>/<segment>/<side>/ og læser kun den forbindelse, du giver den.",
506
+ "empty": "Ingen ekstra instanser.",
507
+ "failed": "Instanserne blev ikke gemt",
508
+ "readsLabel": "Læser",
509
+ "remove": "Fjern",
510
+ "save": "Gem instanser",
511
+ "slugLabel": "URL-segment",
512
+ "title": "Instanser"
513
+ },
514
+ "subtitle": "De app-flader denne instans serverer — hvor hver enkelt vises, og hvilke domæner der peger på dem.",
515
+ "surfaces": {
516
+ "boundKey": "Serverer nøgle",
517
+ "connectionLabel": "Læser",
518
+ "connectionUnset": "Den der kører",
519
+ "customer": "Kunde",
520
+ "mintLink": "Opret en under Offentligt API",
521
+ "noKey": "Ingen nøgle tilknyttet — denne flade kan ikke læse data, før der oprettes en til den.",
522
+ "noNav": "Intern placering utilgængelig — byg denne flade igen med det aktuelle toolkit, så den udsender surface.json.",
523
+ "placementExternal": "Ekstern (kun egen URL)",
524
+ "placementInternal": "I sidepanelet (indlejret)",
525
+ "placementLabel": "Placering",
526
+ "staff": "Medarbejder",
527
+ "subtitle": "En medarbejderflade kan glide ind i dette dashboards sidepanel eller stå for sig selv; en kundeflade er offentlig og læser gennem sin tilknyttede nøgle.",
528
+ "title": "Flader"
529
+ },
530
+ "title": "Hostede apps",
531
+ "install": {
532
+ "steps": {
533
+ "bundle": "Pakke",
534
+ "database": "Database",
535
+ "plan": "Skemaplan",
536
+ "done": "Færdig"
317
537
  },
318
- "user": {
319
- "label": "Brugernavn",
320
- "helper": "Lad feltet stå tomt, hvis relayet ikke kræver login."
538
+ "progress": "Installationsforløb",
539
+ "failed": "Installationen mislykkedes",
540
+ "bundle": {
541
+ "title": "Upload app-pakken",
542
+ "hint": "Den .tgz, som `npm pack` laver af en bygget flade — den indeholder manifest.json og en staff/- eller customer/-mappe.",
543
+ "file": "Pakkefil (.tgz)",
544
+ "fileHint": "Der oprettes intet, før du bekræfter på skemaplan-trinnet.",
545
+ "key": "App-nøgle",
546
+ "version": "Version",
547
+ "integrity": "Integritet (valgfrit)",
548
+ "integrityHint": "Indsæt sha512-værdien fra `npm pack --json`, så serveren kontrollerer netop disse bytes. Står feltet tomt, beregnes den her."
321
549
  },
322
- "pass": {
323
- "label": "Adgangskode",
324
- "helper": "Gemmes krypteret og vises aldrig igen. Lad feltet stå tomt for at beholde den nuværende.",
325
- "error": "Dette brugernavn kræver en adgangskode."
550
+ "database": {
551
+ "title": "Hvilken database skal den installeres i?",
552
+ "hint": "Vælg en forbindelse med skriveadgang. Det er her, tabellerne oprettes, og det er den, appen læser fra bagefter.",
553
+ "tables": "Tabeller: {count}",
554
+ "readOnly": "Skrivebeskyttet",
555
+ "writable": "Skrivbar",
556
+ "noWritable": "Ingen skrivbar forbindelse",
557
+ "allReadOnly": "Alle forbindelser her bruger en skrivebeskyttet rolle, så ingen app kan oprette sine tabeller. Tilslut først en, der må køre DDL."
326
558
  },
327
- "from": {
328
- "label": "Afsenderadresse",
329
- "helper": "Kun adressen, eller et visningsnavn foran den.",
330
- "error": "Indtast en e-mailadresse."
559
+ "plan": {
560
+ "title": "Gennemgå skemaplanen",
561
+ "hint": "Præcis det, der bliver oprettet i din database. Der er endnu ikke skrevet noget.",
562
+ "refused": "Denne app kan ikke installeres her",
563
+ "create": "Opret",
564
+ "reuse": "Genbrug eksisterende",
565
+ "toggleDdl": "Vis DDL-forhåndsvisning",
566
+ "ddl": "DDL-forhåndsvisning",
567
+ "ddlNote": "Vejledende. Serveren danner den præcise sætning til din motor, inklusive fremmednøgler.",
568
+ "summary": "{created} oprettet · {reused} genbrugt"
331
569
  },
332
- "secure": {
333
- "label": "Implicit TLS",
334
- "helper": "Til port 465. Fra starter i klartekst og skifter med STARTTLS, som port 587 forventer."
570
+ "done": {
571
+ "title": "Installeret",
572
+ "body": "{key} serveres nu. Vælg nedenfor, hvor medarbejdersiden skal vises.",
573
+ "schema": "Tabeller oprettet: {created} · genbrugt: {reused}"
335
574
  },
336
- "remove": "Fjern mailserver",
337
- "review": {
338
- "removed": "Fjernet",
339
- "password": "Erstattet"
575
+ "cancel": "Annullér",
576
+ "back": "Tilbage",
577
+ "upload": "Upload",
578
+ "continue": "Fortsæt",
579
+ "confirm": "Installér",
580
+ "finish": "Administrér apps",
581
+ "staged": "Udpakkede filer: {files}",
582
+ "footerStep": "Trin {n} af {total}",
583
+ "footerStepApp": "Trin {n} af {total} · {app}",
584
+ "chosen": {
585
+ "title": "Installér {app}",
586
+ "hint": "Denne app fulgte med dit build og ligger allerede på disken. Der oprettes intet, før du bekræfter skemaplanen."
340
587
  }
341
588
  },
342
- "review": {
343
- "title": "Gem arbejdsområdeindstillinger",
344
- "subtitle": "Gennemgå dine ændringer, før du gemmer.",
345
- "confirm": "Gem ændringer",
589
+ "installed": {
590
+ "title": "Installerede apps",
591
+ "install": "Installér en app",
592
+ "emptyTitle": "Ingen apps installeret endnu",
593
+ "emptyBody": "Upload en bygget fladepakke for at installere en. Apps installeret her serveres med det samme — uden genstart, i modsætning til en mappe.",
594
+ "uninstall": "Afinstallér",
595
+ "confirmTitle": "Afinstallér denne app?",
596
+ "confirmBody": "Dens flader serveres ikke længere, og pakken slettes. Tabeller, den har oprettet i din database, røres ikke.",
597
+ "confirmPrompt": "Skriv {key} for at bekræfte",
598
+ "confirmCancel": "Annullér",
599
+ "confirmClose": "Luk",
600
+ "stagedTitle": "Uploadet, men ikke installeret",
601
+ "stagedHint": "Kassér den, du har fravalgt, eller upload den samme nøgle igen for at erstatte den.",
602
+ "discard": "Kassér",
603
+ "installedAt": "installeret {when}"
604
+ },
605
+ "browse": {
606
+ "title": "Apps du kan installere",
607
+ "subtitle": "Færdige apps, der fulgte med dette build. En installation opretter de nødvendige tabeller og serverer appens skærme — der sker intet, før du bekræfter planen.",
608
+ "search": "Søg efter apps…",
609
+ "clear": "Ryd søgningen",
610
+ "all": "Alle",
611
+ "by": "af {publisher}",
612
+ "install": "Installér",
613
+ "installed": "Installeret",
614
+ "noMatch": "Ingen apps matcher den søgning",
615
+ "noMatchBody": "Prøv et andet ord eller en anden kategori.",
616
+ "emptyTitle": "Ingen apps er tilgængelige",
617
+ "emptyBody": "Apps, der følger med dette build, vises her. Lad ADMINIUM_BUNDLED_APPS pege på en mappe med app-pakker, eller upload selv en.",
618
+ "unreadable": "Pakkens manifest kunne ikke læses. Den kan ikke installeres — kassér den nedenfor."
619
+ }
620
+ },
621
+ "hub": {
622
+ "action": {
623
+ "delete": "Slet",
624
+ "pause": "Sæt på pause",
625
+ "pausedHint": "Denne forbindelse er sat på pause – genoptag den for at nå databasen.",
626
+ "regional": "Regionale indstillinger",
627
+ "reintrospect": "Introspicer igen",
628
+ "reintrospectFile": "Skemafil-kilder har ingen aktiv database — upload filen igen i stedet.",
629
+ "remap": "Ommap skema",
630
+ "rename": "Omdøb",
631
+ "resume": "Genoptag",
632
+ "test": "Test"
633
+ },
634
+ "card": {
635
+ "lastIntrospected": "Senest introspiceret",
636
+ "latency": "Latenstid",
637
+ "latencyMs": "{latency, number} ms",
638
+ "never": "Aldrig",
639
+ "pages": "Sider",
640
+ "paused": "Adminium opretter ikke forbindelse til denne database. Dens sider indlæses igen, når du genoptager den.",
641
+ "pausedSince": "Sat på pause {when} – Adminium opretter ikke forbindelse til denne database. Dens sider indlæses igen, når du genoptager den.",
642
+ "readOnly": "Skrivebeskyttet",
643
+ "tables": "Tabeller",
644
+ "timezone": "Tidszone",
645
+ "timezoneGuessed": "fra denne server"
646
+ },
647
+ "connectNew": "Ny forbindelse",
648
+ "delete": {
649
+ "body": "Dette sletter “{name}” og de genererede sider. Selve din database røres aldrig.",
346
650
  "cancel": "Annuller",
347
651
  "close": "Luk",
348
- "on": "Til",
349
- "off": "Fra",
350
- "shown": "Vist",
351
- "hidden": "Skjult",
352
- "change": "{before} → {after}"
652
+ "confirm": "Slet forbindelse",
653
+ "failed": "Forbindelsen kunne ikke slettes. Prøv igen.",
654
+ "prompt": "Skriv {name} for at bekræfte",
655
+ "success": "Forbindelsen “{name}” er slettet",
656
+ "title": "Slet forbindelse"
353
657
  },
354
- "defaultsCard": {
355
- "heading": "Standarder for udseende og sprog",
356
- "body": "Tema, accentfarve, tæthed og sprog for hele arbejdsområdet findes under globale standarder.",
357
- "cta": "Åbn globale standarder"
658
+ "empty": {
659
+ "body": "Forbind en database, genererer Adminium dit adminpanel ud fra dens skema.",
660
+ "cta": "Forbind en database",
661
+ "title": "Ingen datakilder endnu"
358
662
  },
359
- "danger": {
360
- "heading": "Farezone",
361
- "subtitle": "Uigenkaldelige handlinger.",
362
- "empty": "Intet at sletteingen forbindelser endnu.",
363
- "deleteDesc": "Sletter forbindelsen og de genererede sider. Din database røres ikke. Kan ikke fortrydes.",
364
- "deleteCta": "Slet forbindelse"
365
- },
366
- "aiCard": {
367
- "heading": "AI-berigelse",
368
- "body": "Konfigurér en AI-udbyder (eller kopiér-indsæt-turen) for at berige etiketter, grupper og relationer.",
369
- "cta": "Åbn AI-indstillinger"
663
+ "hostedApps": "Hostede apps",
664
+ "introspect": {
665
+ "failed": "Introspektion mislykkedes. Prøv igen.",
666
+ "masksProposed": "{count, plural, one {# kolonne} other {# kolonner}} foreslået til maskering gennemgå i ommapnings-editoren.",
667
+ "noChanges": "Skemaet er uændret intet nyt snapshot.",
668
+ "updated": "Skemaet er introspiceret igen"
370
669
  },
371
- "pagesCard": {
372
- "heading": "Sider",
373
- "body": "Tilføj, rediger og slet sider, skift hvad hver enkelt viser, og omarranger sidepanelet.",
374
- "cta": "Administrer sider"
670
+ "pause": {
671
+ "body": "Adminium åbner ikke længere nogen forbindelse til “{name}”. {pages, plural, one {# side} other {# sider}}, planlagte rapporter og hostede apps holder op med at indlæse data, indtil du genoptager den.",
672
+ "confirm": "Sæt forbindelsen pause",
673
+ "keeps": "Intet slettes – forbindelsen, dens skema og {pages, plural, one {dens # side} other {dens # sider}} bevares alle, og ét klik henter dem tilbage.",
674
+ "pauseFailed": "Forbindelsen kunne ikke sættes på pause. Prøv igen.",
675
+ "pausedToast": "Forbindelsen “{name}” er sat på pause",
676
+ "resumeFailed": "Forbindelsen kunne ikke genoptages. Prøv igen.",
677
+ "resumedToast": "Forbindelsen “{name}” er genoptaget",
678
+ "title": "Sæt denne forbindelse på pause?"
375
679
  },
376
- "translationsCard": {
377
- "heading": "Sprog og oversættelser",
378
- "body": "Omformulér hvad som helst i Adminium, vælg hvilke sprog folk kan vælge, og tilføj dine egne.",
379
- "cta": "Åbn oversættelser"
380
- }
381
- },
382
- "settingsAi": {
383
- "title": "AI-berigelse",
384
- "subtitle": "Forbind en model, så Adminium kan foreslå etiketter, grupper, relationer og mere — altid gennemgået som en diff, før noget anvendes.",
385
- "saved": "AI-udbyder gemt",
386
- "saveFailed": "AI-udbyderen kunne ikke gemmes. Prøv igen.",
387
- "save": "Gem udbyder",
388
- "test": "Test forbindelse",
389
- "testHintDirty": "Gem dine ændringer, før du tester.",
390
- "testing": "Kontakter udbyderen…",
391
- "testError": "Testen mislykkedes",
392
- "testErrorBody": "Kunne ikke nå udbyderen. Tjek nøglen og basis-URL.",
393
- "testOk": "Forbundet til {model} på {latency} ms",
394
- "testUnknownModel": "udbyderen",
395
- "provider": {
396
- "heading": "AI-udbyder",
397
- "subtitle": "Vælg, hvordan Adminium når en model til at berige dit skema. Nøgler gemmes krypteret og vises aldrig igen.",
398
- "active": "Aktiv",
399
- "anthropic": {
400
- "label": "Anthropic",
401
- "desc": "Claude-modeller via Anthropic-API’en."
402
- },
403
- "openai": {
404
- "label": "OpenAI",
405
- "desc": "GPT-modeller via OpenAI-API’en."
406
- },
407
- "openaiCompatible": {
408
- "label": "OpenAI-kompatibel",
409
- "desc": "Ethvert endpoint, der taler OpenAI-formatet — Groq, Together, vLLM, LM Studio."
410
- },
411
- "ollama": {
412
- "label": "Ollama (lokal)",
413
- "desc": "Modeller kører lokalt via Ollama — ingen nøgle, ingen sky."
414
- },
415
- "requiresNetwork": "Kræver internet og en API-nøgle",
416
- "networkDisabledTitle": "Direkte AI-udbydere er slået fra i denne installation",
417
- "networkDisabledBody": "Dette Adminium er konfigureret uden udgående internetadgang og kan ikke nå en udbyder-API. Brug kopier-indsæt-turen nedenfor — den kræver hverken nøgle eller netværk."
680
+ "regional": {
681
+ "currency": "Valuta",
682
+ "currencyHelper": "Bruges til at formatere beløb. Valgfri undlader du den, påvirker det kun formateringen.",
683
+ "currencyPlaceholder": "ISO-4217-kode",
684
+ "failed": "De regionale indstillinger kunne ikke gemmes",
685
+ "guessedBody": "Adminium hentede den fra den maskine, det kører på — ingen her har valgt den. Gem for at bekræfte den, eller vælg den tidszone, virksomheden faktisk arbejder i.",
686
+ "guessedTitle": "Denne tidszone kom fra serveren",
687
+ "intro": "De beskriver den virksomhed, databasen tilhører — ikke den, der læser. Apps, der leveres af Adminium, henter dem her.",
688
+ "noMatch": "Ingen matchende zone",
689
+ "noMatchCurrency": "Ingen matchende valuta",
690
+ "notSet": "Ikke angivet",
691
+ "save": "Gem",
692
+ "saved": "Regionale indstillinger opdateret",
693
+ "timezone": "Tidszone",
694
+ "timezoneHelper": "Datoer og klokkeslæt vises i denne tidszone. Uden en falder Adminium-hostede apps tilbage til UTC og skriver det på skærmen.",
695
+ "timezonePlaceholder": "Region/By",
696
+ "title": "Regionale indstillinger"
418
697
  },
419
- "configure": {
420
- "heading": "Konfigurér {provider}"
698
+ "rename": {
699
+ "failed": "Forbindelsen kunne ikke omdøbes",
700
+ "helper": "Hvad denne database hedder i hele Adminium — kortet, sidepanelgruppen over dens sider og hver vælger, der tilbyder den. Selve databasen omdøbes ikke.",
701
+ "label": "Navn",
702
+ "save": "Omdøb",
703
+ "saved": "Forbindelse omdøbt",
704
+ "title": "Omdøb forbindelse"
421
705
  },
422
- "field": {
423
- "baseUrl": "Basis-URL",
424
- "baseUrlOptional": "Lad stå, medmindre Ollama kører på en anden vært.",
425
- "baseUrlHelper": "Endpoint-roden, der leverer /chat/completions.",
426
- "model": "Model",
427
- "modelFreeText": "Indtast det præcise model-id, dit endpoint leverer.",
428
- "modelLive": "Indlæst live fra udbyderen.",
429
- "modelStatic": "En gennemprøvet liste; skriv et brugerdefineret id efter at have gemt for at opdatere den.",
430
- "modelLoading": "Indlæser…",
431
- "modelPlaceholder": "Vælg en model…",
432
- "key": "API-nøgle",
433
- "keyStored": "Gemt krypteret. Erstat den for at bruge en anden nøgle.",
434
- "keyMask": "sk-…{last4}",
435
- "keyReplace": "Erstat nøgle",
436
- "keyOptional": "Valgfri — nogle endpoints kræver ingen nøgle.",
437
- "keyWriteOnly": "Kun skrivning: når den er gemt, vises den aldrig igen.",
438
- "noKeyTitle": "Ingen API-nøgle nødvendig",
439
- "noKeyBody": "Ollama kører lokalt, så intet forlader denne maskine."
706
+ "stats": {
707
+ "connections": "Forbindelser",
708
+ "healthy": "Sunde",
709
+ "pages": "Genererede sider",
710
+ "tables": "Inkluderede tabeller"
440
711
  },
441
- "runStatus": {
442
- "draft": "Kladde",
443
- "running": "Kører",
444
- "awaitingResponse": "Afventer svar",
445
- "validated": "Valideret",
446
- "applied": "Anvendt",
447
- "partiallyApplied": "Delvist anvendt",
448
- "failed": "Mislykkedes",
449
- "discarded": "Kasseret"
712
+ "status": {
713
+ "connected": "Forbundet",
714
+ "error": "Fejl",
715
+ "paused": "Sat på pause",
716
+ "testing": "Tester…",
717
+ "unconfigured": "Kladde"
450
718
  },
451
- "byo": {
452
- "heading": "Ingen nøgle? Brug dit eget AI-værktøj",
453
- "subtitle": "Kopiér-indsæt-turen — intet forlader denne maskine.",
454
- "body": "Studio kan generere en selvstændig prompt ud fra dit skema. Kør den i Claude Code, ChatGPT eller et hvilket som helst værktøj, og indsæt derefter den returnerede JSON tilbage i forbindelsesguiden. Samme validering, samme gennemgang, samme resultat som den direkte vej.",
455
- "guaranteeTitle": "Telemetrifri garanti",
456
- "guarantee1": "Prompten indeholder kun dit skema og aggregeret statistik — aldrig rækkedata som standard.",
457
- "guarantee2": "Ingen legitimationsoplysninger, instans-URL eller identifikatorer er indlejret.",
458
- "guarantee3": "BYO-kørsler foretager ingen netværkskald.",
459
- "promptVersion": "Prompt {version}",
460
- "schemaVersion": "Skema {version}",
461
- "headingRecommended": "Brug dit eget AI-værktøj — ingen nøgle nødvendig",
462
- "recommended": "Anbefalet"
719
+ "subtitle": "{healthy, number} af {total, plural, one {# forbindelse} other {# forbindelser}} sunde",
720
+ "subtitlePaused": "{healthy, number} af {total, plural, one {# forbindelse} other {# forbindelser}} sunde · {paused, number} sat på pause",
721
+ "test": {
722
+ "failed": "Forbindelsestest mislykkedes",
723
+ "ok": "Forbindelsen er sund · {latency, number} ms"
463
724
  },
464
- "history": {
465
- "heading": "Kørselshistorik",
466
- "subtitle": "Tidligere berigelseskørsler. Åbn en for at gennemgå dens forslag.",
467
- "tableLabel": "Berigelseskørsler",
468
- "colDate": "Dato",
469
- "colSource": "Kilde",
470
- "colStatus": "Status",
471
- "colChunks": "Blokke",
472
- "openReview": "Åbn gennemgang for kørslen fra {date}",
473
- "connection": "Forbindelse",
474
- "empty": "Ingen berigelseskørsler endnu. Berig et skema fra forbindelsesguiden for at se historik her.",
475
- "errorTitle": "Kunne ikke indlæse kørsler",
476
- "errorBody": "Genindlæs siden for at prøve igen.",
477
- "noConnections": "Forbind først en database — berigelseskørsler registreres pr. forbindelse.",
478
- "byo": "BYO",
479
- "directPath": "Direkte"
480
- }
725
+ "title": "Dataforbindelser"
481
726
  },
482
- "enrich": {
483
- "title": "Berig med AI",
484
- "subtitle": "Forfin eventuelt de genererede etiketter, grupper, enums og dashboards med en LLM. Det heuristiske grundlag fungerer uden dette tilføjer kun forslag, som du gennemgår, før noget anvendes.",
485
- "intentLabel": "Hvordan vil du berige?",
486
- "sectionsLegend": "Hvad skal AI’en beslutte?",
487
- "localesLegend": "Oversæt etiketter til",
488
- "localeLocked": "(påkrævet)",
489
- "samplingTitle": "Inkludér eksempelværdier",
490
- "samplingHint": "Inkluderer op til 20 rigtige værdier pr. ikke-PII-kolonne i prompten.",
491
- "samplingPreviewTitle": "Hvad forlader denne maskine",
492
- "samplingPreviewBody": "Op til 20 hyppigste værdier pr. ikke-PII-kolonne, plus min/maks for numeriske og datokolonner. PII-markerede kolonner udtages aldrig. Alt andet forbliver kun aggregeret. Gennemgå den præcise prompt før kopiering (BYO) — intet sendes uden din handling.",
493
- "noSections": "Vælg mindst én beslutningsgruppe at berige.",
494
- "generatePrompt": "Generér prompt",
495
- "startProvider": "Start berigelse",
496
- "startOver": "Start forfra",
497
- "copied": "Kopieret",
498
- "createFailed": "Berigelsesprompten kunne ikke bygges — prøv igen.",
499
- "createFailedTitle": "Kunne ikke starte",
500
- "providerFallback": "din AI-udbyder",
501
- "fileTitle": "AI-berigelse kræver en live-database",
502
- "fileBody": "Skemafil-kilder har endnu ikke et snapshot at berige. Forbind en live-database for at bruge AI-berigelse, eller fortsæt — det heuristiske grundlag genererer stadig en komplet app.",
503
- "section": {
504
- "labels": "Etiketter og beskrivelser",
505
- "groups": "Navigationsgrupper",
506
- "enums": "Enum-semantik",
507
- "relations": "Relationer",
508
- "keys": "Nøglekolonner",
509
- "templates": "Sideskabeloner",
510
- "widgets": "Dashboard-widgets",
511
- "pii": "PII og maskering",
512
- "icons": "Ikoner",
513
- "microcopy": "Mikrotekst"
727
+ "intent": {
728
+ "analytics": {
729
+ "description": "Dashboards, diagrammer og skrivebeskyttede tabeller. Ingen formularer, ingen skrivningerhver rolle begrænset til Fremviser.",
730
+ "title": "Skrivebeskyttet analyse"
514
731
  },
515
- "provider": {
516
- "title": "Brug min AI-udbyder",
517
- "description": "Kør berigelsen nu mod din konfigurerede udbyder. Du gennemgår hvert forslag som en diff.",
518
- "unconfigured": "Der er endnu ikke konfigureret nogen AI-udbyder — kopiér en prompt til dit eget værktøj nedenfor, eller konfigurér først en udbyder.",
519
- "settingsHint": "Vil du køre den direkte?",
520
- "settingsLink": "Konfigurér en udbyder i Indstillinger → AI",
521
- "networkDisabled": "Dette Adminium har ingen udgående internetadgang og kan ikke nå en udbyder-API. Brug kopier-indsæt-turen i stedet — samme prompt, samme gennemgang."
732
+ "crud": {
733
+ "description": "Én redigeringsside pr. tabel plus søgning og import/eksport — et minimalt hjem, ingen dashboards.",
734
+ "title": "CRUD-tabeller"
522
735
  },
523
- "byo": {
524
- "cardTitle": "Kopiér en prompt til mit eget AI-værktøj",
525
- "cardDescription": "Kopiér en selvstændig prompt ind i Claude Code, ChatGPT, hvad som helst — og indsæt så JSON’en tilbage. Ingen nøgle nødvendig, intet forlader denne maskine automatisk.",
526
- "guidance": "Kør dette i et hvilket som helst AI-værktøj — Claude Code, ChatGPT, hvad som helst. Indsæt den returnerede JSON nedenfor.",
527
- "promptLabel": "Berigelsesprompt",
528
- "promptLabelN": "Berigelsesprompt {index} af {total}",
529
- "tokenChip": "≈ {tokens} tokens",
530
- "copyPrompt": "Kopiér prompt",
531
- "copyPromptDone": "Prompt kopieret",
532
- "download": "Download .md",
533
- "chunkTabs": "Prompt-dele",
534
- "chunkTab": "Prompt {index}",
535
- "chunkValid": "Del {index} valideret",
536
- "pasteLabel": "Indsæt JSON-svaret",
537
- "pastePlaceholder": "Indsæt JSON-svaret her…",
538
- "validate": "Validér",
539
- "valid": "Svar valideret",
540
- "mergedTitle": "Alle {count} dele valideret og flettet",
541
- "mergedTitleSingle": "Svar valideret",
542
- "mergedBody": "Forslagene er klar til gennemgang mod det heuristiske grundlag.",
543
- "errorsTitle": "Valideringen fandt {count} problemer",
544
- "copyErrors": "Kopiér fejl til dit AI-værktøj",
545
- "copyErrorsDone": "Fejl kopieret",
546
- "copyErrorsHint": "Indsæt dette tilbage i dit AI-værktøj for at få et rettet svar.",
547
- "droppedItems": "{count} forslag blev frasorteret under valideringen — gennemgangen viser resten.",
548
- "pendingTitle": "Validér hver prompt for at fortsætte",
549
- "pendingBody": "Indsæt JSON-svaret ovenfor og validér det for at fortsætte til gennemgang.",
550
- "pendingBodyChunked": "Hver del skal valideres, før forslagene flettes. Indsæt og validér hver prompt ovenfor.",
551
- "requestFailed": "Kunne ikke nå serveren for at validere — prøv igen.",
552
- "continueReview": "Fortsæt til gennemgang",
553
- "wholeDocument": "hele dokumentet",
554
- "cardTitleRecommended": "Kopiér en prompt til mit eget AI-værktøj — anbefalet"
736
+ "fullAdmin": {
737
+ "description": "Dashboards, CRUD-sider, søgning, import og eksport — alt hvad dit skema understøtter.",
738
+ "title": "Fuldt adminpanel"
555
739
  },
556
- "direct": {
557
- "title": "Beriger med AI",
558
- "subtitle": "Sender dit skema til",
559
- "building": "Bygger prompt…",
560
- "logLabel": "Berigelseslog",
561
- "cancel": "Annullér",
562
- "back": "Tilbage til valg",
563
- "retry": "Prøv igen",
564
- "done": "Berigelse fuldført — gennemgå forslagene.",
565
- "continueReview": "Fortsæt til gennemgang",
566
- "failed": "Udbyderkørslen mislykkedes. Tjek dine AI-indstillinger, og prøv igen.",
567
- "jobFailed": "Berigelseskørslen blev ikke fuldført.",
568
- "startFailed": "Kunne ikke starte kørslen — prøv igen.",
569
- "errorTitle": "Berigelse mislykkedes"
740
+ "subtitle": "Formålet afgør, hvilke sider der genereres. Du kan ændre det senere — en ændring foreslår en regenerering, aldrig en stille omskrivning.",
741
+ "support": {
742
+ "description": "Køer, ticket- og kundedetaljesider først. Sletning slået fra som standard. (Kø-skabeloner lander i M7 — v1-sidesættet svarer til fuldt admin.)",
743
+ "title": "Supportkonsol"
570
744
  },
571
- "skip": {
572
- "title": "Spring overbrug kun heuristik",
573
- "description": "Generér fra det heuristiske grundlag. Du kan berige senere fra Indstillinger → AI — at springe over straffes aldrig.",
574
- "confirmTitle": "Fortsætter med heuristik",
575
- "confirmBody": "Den genererede app vil bruge de heuristiske etiketter, grupper og dashboards. Fortsæt for at generere — du kan køre AI-berigelse når som helst fra Indstillinger → AI."
576
- }
577
- },
578
- "review": {
579
- "unavailableTitle": "Gennemgangsskærm ikke tilgængelig",
580
- "unavailableBody": "Denne build indeholder endnu ikke berigelsens gennemgangsskærm (06-T14). Den kommer med diff-og-anvend-flowet."
745
+ "title": "Hvad har du brug for?",
746
+ "trust": "Vi læser kun dit skema aldrig dine rækkedata under opsætningen."
581
747
  },
582
748
  "llmRuns": {
583
749
  "review": {
584
- "header": {
585
- "title": "Gennemgå AI-forslag",
586
- "model": "Model",
587
- "snapshot": "Øjebliksbillede",
588
- "byo": "BYO",
589
- "pathDirect": "Direkte API",
590
- "pathByo": "Kopiér-indsæt",
591
- "agree": "{n} enige",
592
- "conflict": "{n} konflikt",
593
- "new": "{n} nye",
594
- "rejects": "{n} afvisninger",
595
- "countsAria": "Antal forslag"
750
+ "applied": {
751
+ "body": "De accepterede forslag nedenfor er skrivebeskyttede.",
752
+ "title": "Denne kørsel er blevet anvendt"
753
+ },
754
+ "apply": {
755
+ "confirm": "Anvend ændringer",
756
+ "empty": "Intet valgt at anvende.",
757
+ "subtitle": "Disse ændringer skrives i én transaktion og kan fortrydes.",
758
+ "title": "Anvend {n} forslag"
596
759
  },
760
+ "applyFailed": "Intet blev anvendt",
761
+ "applyUnknown": "Serveren sagde ikke hvorfor.",
597
762
  "bulk": {
598
- "thresholdLabel": "Tillidstærskel",
599
- "thresholdAria": "Tillidstærskel for “Accepter alle”",
600
763
  "acceptAll": "Accepter alle ≥ {pct}%",
601
- "clear": "Ryd markering"
764
+ "clear": "Ryd markering",
765
+ "thresholdAria": "Tillidstærskel for “Accepter alle”",
766
+ "thresholdLabel": "Tillidstærskel"
602
767
  },
603
- "section": {
604
- "selectAllAria": "Vælg alle i {group}",
605
- "acceptedCount": "{n} accepteret"
768
+ "cat": {
769
+ "copy": "mikrotekst",
770
+ "dashboard": "dashboard",
771
+ "enum": "enum",
772
+ "group": "navigationsgruppe",
773
+ "key": "nøglekolonner",
774
+ "label": "etiket",
775
+ "pii": "personoplysninger",
776
+ "relation": "relation",
777
+ "template": "sideskabelon",
778
+ "widget": "widget"
779
+ },
780
+ "empty": {
781
+ "body": "Denne kørsel gav ingen forslag til gennemgang.",
782
+ "title": "Ingen forslag"
783
+ },
784
+ "error": {
785
+ "title": "Kunne ikke indlæse denne kørsel"
786
+ },
787
+ "footer": {
788
+ "apply": "Anvend {n} accepterede forslag",
789
+ "count": "{n} forslag valgt",
790
+ "failed": "Anvendelse mislykkedes"
606
791
  },
607
792
  "group": {
608
- "labels": "Etiketter og oversættelser",
609
- "navigation": "Navigation og domæner",
793
+ "dashboards": "Dashboards og widgets",
610
794
  "enums": "Enum-semantik",
611
- "relations": "Relationer",
795
+ "icons": "Ikoner",
612
796
  "keys": "Nøglekolonner",
613
- "templates": "Sideskabeloner",
614
- "dashboards": "Dashboards og widgets",
797
+ "labels": "Etiketter og oversættelser",
798
+ "microcopy": "Mikrotekst",
799
+ "navigation": "Navigation og domæner",
615
800
  "pii": "Personoplysninger og maskering",
616
- "icons": "Ikoner",
617
- "microcopy": "Mikrotekst"
801
+ "relations": "Relationer",
802
+ "templates": "Sideskabeloner"
618
803
  },
619
- "status": {
620
- "agree": "Stemmer overens",
621
- "conflict": "Konflikt",
622
- "new": "Ny",
623
- "heuristicOnly": "Kun heuristik",
624
- "rejects": "Afviser heuristik",
625
- "locked": "Låst"
804
+ "header": {
805
+ "agree": "{n} enige",
806
+ "byo": "BYO",
807
+ "conflict": "{n} konflikt",
808
+ "countsAria": "Antal forslag",
809
+ "model": "Model",
810
+ "new": "{n} nye",
811
+ "pathByo": "Kopiér-indsæt",
812
+ "pathDirect": "Direkte API",
813
+ "rejects": "{n} afvisninger",
814
+ "snapshot": "Øjebliksbillede",
815
+ "title": "Gennemgå AI-forslag"
816
+ },
817
+ "notReady": {
818
+ "body": "En kørsel skal være valideret, før dens forslag kan gennemgås. Generér eller indsæt et svar først.",
819
+ "title": "Denne kørsel har endnu ingen forslag til gennemgang"
626
820
  },
627
821
  "row": {
628
822
  "acceptAria": "Accepter {noun}-forslag for {target}",
823
+ "confidenceAria": "Tillid {pct}%",
824
+ "hideTranslations": "Skjul oversættelser",
629
825
  "keptEdited": "bevaret – redigeret af dig",
826
+ "noAi": "Intet AI-forslag",
630
827
  "rejectsCallout": "AI’en afviser en heuristisk beslutning – bekræft før accept.",
631
- "showTranslations": "Vis oversættelser",
632
- "hideTranslations": "Skjul oversættelser",
633
- "confidenceAria": "Tillid {pct}%",
634
- "noAi": "Intet AI-forslag"
635
- },
636
- "value": {
637
- "none": "Ingen værdi",
638
- "absent": "Ingen",
639
- "dash": "—",
640
- "display": "Visning",
641
- "key": "Nøgle",
642
- "rank": "rang {n}",
643
- "span": "bredde {n}",
644
- "tableCount": "{n} tabeller",
645
- "widgetCount": "{n} widgets",
646
- "enumWorkflow": "Arbejdsgang",
647
- "enumCategory": "Kategori",
648
- "notPii": "Ikke personoplysninger",
649
- "label": "Etiket",
650
- "description": "Beskrivelse",
651
- "subtitle": "Sideundertekst",
652
- "headline": "Overskrift for tom tilstand",
653
- "guidance": "Vejledning for tom tilstand"
828
+ "showTranslations": "Vis oversættelser"
654
829
  },
655
- "apply": {
656
- "title": "Anvend {n} forslag",
657
- "subtitle": "Disse ændringer skrives i én transaktion og kan fortrydes.",
658
- "empty": "Intet valgt at anvende.",
659
- "confirm": "Anvend ændringer"
830
+ "section": {
831
+ "acceptedCount": "{n} accepteret",
832
+ "selectAllAria": "Vælg alle i {group}"
660
833
  },
661
- "footer": {
662
- "count": "{n} forslag valgt",
663
- "apply": "Anvend {n} accepterede forslag",
664
- "failed": "Anvendelse mislykkedes"
834
+ "status": {
835
+ "agree": "Stemmer overens",
836
+ "conflict": "Konflikt",
837
+ "heuristicOnly": "Kun heuristik",
838
+ "locked": "Låst",
839
+ "new": "Ny",
840
+ "rejects": "Afviser heuristik"
665
841
  },
666
842
  "toast": {
667
843
  "applied": "Anvendte {n} forslag",
@@ -669,630 +845,1097 @@ export default {
669
845
  "applyFailed": "Kunne ikke anvende forslag",
670
846
  "undoFailed": "Kunne ikke fortryde denne ændring"
671
847
  },
672
- "error": {
673
- "title": "Kunne ikke indlæse denne kørsel"
674
- },
675
- "notReady": {
676
- "title": "Denne kørsel har endnu ingen forslag til gennemgang",
677
- "body": "En kørsel skal være valideret, før dens forslag kan gennemgås. Generér eller indsæt et svar først."
678
- },
679
- "applied": {
680
- "title": "Denne kørsel er blevet anvendt",
681
- "body": "De accepterede forslag nedenfor er skrivebeskyttede."
682
- },
683
- "empty": {
684
- "title": "Ingen forslag",
685
- "body": "Denne kørsel gav ingen forslag til gennemgang."
686
- },
687
- "cat": {
688
- "label": "etiket",
689
- "key": "nøglekolonner",
690
- "enum": "enum",
691
- "relation": "relation",
692
- "pii": "personoplysninger",
693
- "template": "sideskabelon",
694
- "group": "navigationsgruppe",
695
- "dashboard": "dashboard",
696
- "widget": "widget",
697
- "copy": "mikrotekst"
848
+ "value": {
849
+ "absent": "Ingen",
850
+ "dash": "—",
851
+ "description": "Beskrivelse",
852
+ "display": "Visning",
853
+ "enumCategory": "Kategori",
854
+ "enumWorkflow": "Arbejdsgang",
855
+ "guidance": "Vejledning for tom tilstand",
856
+ "headline": "Overskrift for tom tilstand",
857
+ "key": "Nøgle",
858
+ "label": "Etiket",
859
+ "none": "Ingen værdi",
860
+ "notPii": "Ikke personoplysninger",
861
+ "rank": "rang {n}",
862
+ "span": "bredde {n}",
863
+ "subtitle": "Sideundertekst",
864
+ "tableCount": "{n} tabeller",
865
+ "widgetCount": "{n} widgets"
698
866
  }
699
867
  }
700
868
  },
701
- "wizard": {
702
- "title": "Ny forbindelse",
703
- "back": "Tilbage",
704
- "continue": "Fortsæt",
705
- "progress": "Opsætningsforløb",
706
- "persistFailed": "Dit tabelvalg kunne ikke gemmes — prøv igen.",
707
- "persistFailedTitle": "Kunne ikke gemme",
708
- "bridgeAppliedTitle": "Forbindelsesstreng modtaget",
709
- "bridgeAppliedBody": "Overdraget fra adminium.dev af din browser — den gik direkte til denne maskine og blev aldrig uploadet. Tjek den nedenfor, og fortsæt.",
710
- "bridgeFailedTitle": "Denne overdragelse kunne ikke bruges",
711
- "bridgeFailedBody": "Den er allerede brugt eller udløbet. Indsæt i stedet din forbindelsesstreng nedenfor.",
712
- "step": {
713
- "source": "Kilde",
714
- "test": "Analysér",
715
- "tables": "Tabeller",
716
- "meta": "Metalagring",
717
- "intent": "Formål",
718
- "enrich": "Berig",
719
- "generate": "Generér"
720
- }
721
- },
722
869
  "meta": {
723
- "title": "Hvor skal Adminium gemme sine egne tabeller?",
724
- "subtitle": "Sider, roller, auditlog og indstillinger bor i tabeller med adminium_-præfiks — aldrig blandet med dine data.",
870
+ "move": {
871
+ "copying": "Flytter Adminiums tabeller ",
872
+ "copyingBody": "Kopierer hver adminium_-tabel til den nye database. Dine kildedata røres ikke, og der skiftes først over, når kopien er verificeret.",
873
+ "failed": "Kunne ikke flytte Adminiums tabeller — prøv igen.",
874
+ "restarting": "Genstarter …",
875
+ "restartingBody": "Kopien er færdig. Adminium genstarter på den nye database — denne side fortsætter af sig selv om få sekunder.",
876
+ "timeout": "Adminium flyttede sine tabeller, men er ikke kommet tilbage endnu. Dine data er sikre i den nye database — genindlæs siden om et øjeblik.",
877
+ "title": "Flytter Adminiums tabeller"
878
+ },
725
879
  "sameDb": {
726
- "title": "Samme database",
727
880
  "description": "adminium_*-tabeller oprettes ved siden af dine kildetabeller. Enkleste opsætning — kræver en rolle med skrive- og CREATE TABLE-rettigheder.",
728
- "disabledReadOnly": "Din rolle er skrivebeskyttet Adminium skriver aldrig til denne database. Vælg en separat database til Adminiums egne tabeller.",
881
+ "disabledFile": "En skemafil har ingen live database vælg en separat database til Adminiums egne tabeller.",
729
882
  "disabledNoDdl": "Denne rolle kan ikke køre DDL — Adminium-migreringer kræver CREATE TABLE. Vælg en separat database til Adminiums egne tabeller.",
730
- "disabledFile": "En skemafil har ingen live database vælg en separat database til Adminiums egne tabeller."
883
+ "disabledReadOnly": "Din rolle er skrivebeskyttet Adminium skriver aldrig til denne database. Vælg en separat database til Adminiums egne tabeller.",
884
+ "title": "Samme database"
731
885
  },
732
886
  "separate": {
733
- "title": "Separat database",
734
887
  "description": "Adminium holder sine tabeller i en anden database. Din kilde forbliver urørt — påkrævet for skrivebeskyttede kilder.",
735
888
  "dsn": "Forbindelsesstreng til metadatabasen",
889
+ "errorTitle": "Metalager ikke kompatibelt",
736
890
  "helper": "Kræver skrive- + DDL-rettigheder — Adminium kører sine egne migreringer dér.",
737
- "test": "Test forbindelse",
738
- "ok": "Kompatibel — skrivning ✓ · DDL ✓",
739
891
  "insufficient": "Denne rolle kan ikke huse metalageret — Adminium behøver skrive- og CREATE TABLE-rettigheder dér.",
740
- "errorTitle": "Metalager ikke kompatibelt"
892
+ "ok": "Kompatibel skrivning ✓ · DDL ✓",
893
+ "test": "Test forbindelse",
894
+ "title": "Separat database"
741
895
  },
896
+ "subtitle": "Sider, roller, auditlog og indstillinger bor i tabeller med adminium_-præfiks — aldrig blandet med dine data.",
742
897
  "testFailed": "Forbindelsen mislykkedes.",
898
+ "title": "Hvor skal Adminium gemme sine egne tabeller?",
743
899
  "v1Note": {
744
- "title": "Om denne installation",
745
- "body": "Denne server gemmer allerede sine egne tabeller i en konfigureret database, og dette trin flytter dem ikke. Det validerer, at dit valg er kompatibelt med denne forbindelse — serveren håndhæver den samme regel uafhængigt (409 META_PLACEMENT_INVALID)."
746
- },
747
- "move": {
748
- "title": "Flytter Adminiums tabeller",
749
- "copying": "Flytter Adminiums tabeller …",
750
- "restarting": "Genstarter …",
751
- "copyingBody": "Kopierer hver adminium_-tabel til den nye database. Dine kildedata røres ikke, og der skiftes først over, når kopien er verificeret.",
752
- "restartingBody": "Kopien er færdig. Adminium genstarter på den nye database — denne side fortsætter af sig selv om få sekunder.",
753
- "failed": "Kunne ikke flytte Adminiums tabeller — prøv igen.",
754
- "timeout": "Adminium flyttede sine tabeller, men er ikke kommet tilbage endnu. Dine data er sikre i den nye database — genindlæs siden om et øjeblik."
900
+ "body": "Denne server gemmer allerede sine egne tabeller i en konfigureret database, og dette trin flytter dem ikke. Det validerer, at dit valg er kompatibelt med denne forbindelse — serveren håndhæver den samme regel uafhængigt (409 META_PLACEMENT_INVALID).",
901
+ "title": "Om denne installation"
755
902
  },
756
903
  "willMove": {
757
- "title": "Dette flytter Adminiums tabeller",
758
- "body": "Adminium bruger i øjeblikket sit indbyggede SQLite-lager. Fortsæt kopierer det lager til den valgte database og genstarter på den — konti, sider og indstillinger følger med, så du forbliver logget ind."
904
+ "body": "Adminium bruger i øjeblikket sit indbyggede SQLite-lager. Fortsæt kopierer det lager til den valgte database og genstarter på den — konti, sider og indstillinger følger med, så du forbliver logget ind.",
905
+ "title": "Dette flytter Adminiums tabeller"
759
906
  }
760
907
  },
761
- "intent": {
762
- "title": "Hvad har du brug for?",
763
- "subtitle": "Formålet afgør, hvilke sider der genereres. Du kan ændre det senere — en ændring foreslår en regenerering, aldrig en stille omskrivning.",
764
- "trust": "Vi læser kun dit skema — aldrig dine rækkedata under opsætningen.",
765
- "fullAdmin": {
766
- "title": "Fuldt adminpanel",
767
- "description": "Dashboards, CRUD-sider, søgning, import og eksport — alt hvad dit skema understøtter."
768
- },
769
- "analytics": {
770
- "title": "Skrivebeskyttet analyse",
771
- "description": "Dashboards, diagrammer og skrivebeskyttede tabeller. Ingen formularer, ingen skrivninger hver rolle begrænset til Fremviser."
908
+ "pages": {
909
+ "action": {
910
+ "delete": "Slet side",
911
+ "duplicate": "Dupliker",
912
+ "edit": "Rediger side",
913
+ "hide": "Skjul fra sidepanelet",
914
+ "show": "Vis i sidepanelet"
915
+ },
916
+ "attachments": {
917
+ "accept": "Accepterede filtyper",
918
+ "acceptHint": "Vælger du ingen, accepteres alt, hvad dette arbejdsområde tillader. Et valg her kan kun indsnævre listen, aldrig udvide den.",
919
+ "column": {
920
+ "adoptHint": "Denne tabel har allerede kolonnen, så der oprettes ikke noget — den bruges, som den er.",
921
+ "bound": "Filer gemmes i denne tabels {column}-kolonne.",
922
+ "boundHint": "Slår du vedhæftninger fra senere, frakobles kun denne side. Kolonnen og filerne i den røres ikke.",
923
+ "confirm": "Kør den",
924
+ "create": "Opret kolonnen",
925
+ "createHint": "Adminium tilføjer én tekstkolonne til denne tabel. Du ser den præcise sætning, før noget kører.",
926
+ "createdHint": "Kolonnen findes nu. Gem denne side for at gøre koblingen færdig.",
927
+ "failed": "Det virkede ikke",
928
+ "invalid": "Et kolonnenavn skal starte med et bogstav og må kun indeholde små bogstaver, cifre og understregninger.",
929
+ "label": "Kolonne der indeholder filerne",
930
+ "required": "Giv kolonnen et navn.",
931
+ "tooLong": "Det navn er for langt til en kolonne.",
932
+ "use": "Brug denne kolonne",
933
+ "wrongType": "Tabellen har allerede en kolonne med det navn, og den kan ikke rumme en filreference. Vælg et andet navn."
934
+ },
935
+ "destination": "Hvor filerne havner",
936
+ "destinationDefault": "Standarddestinationen",
937
+ "destinationHint": "Lad den stå på standarden, medmindre denne tabels filer hører hjemme et andet sted.",
938
+ "destinationIsDefault": "{name} (standarden)",
939
+ "destinationLocal": "Denne servers disk",
940
+ "enable": "Tillad vedhæftede filer på denne tabels poster",
941
+ "enableHint": "Filerne knyttes til på Adminiums side, så denne tabel behøver ingen ny kolonne — det virker på en skrivebeskyttet forbindelse og på en tabel, du helst ikke vil ændre.",
942
+ "enableHintColumn": "Filer gemmes i én kolonne på denne tabel, så de vises både i dialogerne Ny og Rediger og på hver post.",
943
+ "enableHintSidecar": "Filer kobles i stedet på Adminiums side. De vises på hver posts side, ikke i dialogen Ny.",
944
+ "maxBytes": "Største fil (MB)",
945
+ "maxBytesHint": "Lad feltet stå tomt for at følge arbejdsområdets grænse. Et tal her kan kun sænke den.",
946
+ "maxCount": "Flest filer pr. post",
947
+ "maxCountHint": "Lad feltet stå tomt for at acceptere så mange, som en post har brug for.",
948
+ "sidecar": {
949
+ "noPrivilege": "Denne forbindelses rolle kan ikke ændre tabeller, så Adminium kan ikke tilføje en kolonne til den.",
950
+ "readOnlyIntent": "Denne forbindelse er sat op til skrivebeskyttet analyse, så Adminium kan ikke tilføje en kolonne til den.",
951
+ "readOnlyRole": "Denne forbindelse logger på med en skrivebeskyttet rolle, så Adminium kan ikke tilføje en kolonne til den.",
952
+ "schemaFile": "Denne forbindelse blev oprettet ud fra en skemafil, så Adminium kan ikke tilføje en kolonne til den."
953
+ },
954
+ "type": {
955
+ "office": "Office-dokumenter",
956
+ "text": "Almindelig tekst"
957
+ }
772
958
  },
773
- "crud": {
774
- "title": "CRUD-tabeller",
775
- "description": "Én redigeringsside pr. tabel plus søgning og import/eksport — et minimalt hjem, ingen dashboards."
959
+ "columns": {
960
+ "addFromLinked": "Fra linkede tabeller",
961
+ "addFromTable": "Fra {table}",
962
+ "addLinkedFrom": "Tabeller, der linker hertil",
963
+ "addLinkedFromHelp": "Tæl rækkerne, der peger på hver post, eller læg et af deres tal sammen.",
964
+ "addLinkedHelp": "Vis en værdi fra den tabel, som en linkkolonne peger på.",
965
+ "addNoMatches": "Ingen kolonner matcher “{query}”.",
966
+ "addOpen": "Tilføj kolonne",
967
+ "addSearch": "Søg i kolonner…",
968
+ "addTitle": "Tilføj en kolonne",
969
+ "addVia": "via {column}",
970
+ "avatar": "Avatar",
971
+ "avatarToggle": "Vis et monogram ved siden af {name}",
972
+ "countBadge": "Antal",
973
+ "dragHandle": "Flyt {name}",
974
+ "empty": "Ingen kolonner endnu — tilføj dem nedenfor.",
975
+ "file": {
976
+ "acceptHelp": "Lad alle typer være slået fra for at acceptere det, dette arbejdsområde accepterer. Vælger du typer, kan det kun indsnævre listen — en kolonne kan aldrig acceptere en type, arbejdsområdet afviser.",
977
+ "acceptLabel": "Accepterede typer",
978
+ "badge": "Fil",
979
+ "destinationDefault": "Standarddestinationen",
980
+ "destinationHelp": "Hvor de bytes, der uploades gennem denne kolonne, opbevares.",
981
+ "destinationLabel": "Destination",
982
+ "inlineHelp": "Kun billeder tegnes i cellen. Alt andet forbliver et mærke med sit navn og sin størrelse, uanset hvad der er valgt her.",
983
+ "inlineLabel": "Vis den i tabellen",
984
+ "maxCountHelp": "Lad feltet stå tomt for at acceptere så mange, som en post har brug for.",
985
+ "maxCountLabel": "Højst antal filer pr. post",
986
+ "maxCountToggle": "Højst antal filer for {name}",
987
+ "maxHelp": "Lad feltet stå tomt for at bruge arbejdsområdets grænse. En kolonne kan kun bede om mindre.",
988
+ "maxLabel": "Største fil (MB)",
989
+ "maxToggle": "Største fil, {name} accepterer, i MB",
990
+ "multipleHelp": "Kolonnen gemmer en liste af filer i stedet for én. Eksisterende enkeltværdier virker fortsat — de læses som en liste med ét element.",
991
+ "multipleLabel": "Rumme mere end én fil",
992
+ "ref": {
993
+ "id": "Adminiums fil-id",
994
+ "key": "Nøglen i destinationen",
995
+ "url": "Et link til filen"
996
+ },
997
+ "refHelp": "Det, der skrives i denne kolonne, når en fil uploades. Værdier, der allerede er gemt, virker fortsat — dette ændrer kun den næste.",
998
+ "refLabel": "Gemt værdi",
999
+ "refTooNarrow": "Denne kolonne er for kort til at rumme den værdi. Vælg en, den kan rumme, eller gør kolonnen bredere i databasen.",
1000
+ "refWidth": "{shape} — kræver {needs} tegn, denne kolonne rummer {holds}",
1001
+ "switch": "Fil",
1002
+ "switchToggle": "{name} gemmer en fil",
1003
+ "type": {
1004
+ "csv": "CSV",
1005
+ "gif": "GIF",
1006
+ "heic": "HEIC",
1007
+ "jpeg": "JPEG",
1008
+ "json": "JSON",
1009
+ "markdown": "Markdown",
1010
+ "mp3": "MP3-lyd",
1011
+ "mp4": "MP4-video",
1012
+ "office": "Office-dokumenter",
1013
+ "ogg": "Ogg",
1014
+ "pdf": "PDF",
1015
+ "png": "PNG",
1016
+ "svg": "SVG",
1017
+ "text": "Almindelig tekst",
1018
+ "wav": "WAV-lyd",
1019
+ "webm": "WebM",
1020
+ "webp": "WebP",
1021
+ "zip": "ZIP"
1022
+ }
1023
+ },
1024
+ "fold": {
1025
+ "avg": "Gennemsnit",
1026
+ "max": "Maks",
1027
+ "min": "Min",
1028
+ "sum": "Sum"
1029
+ },
1030
+ "foldAdd": "Tilføj",
1031
+ "foldLabel": "Aggregering",
1032
+ "followColumn": "Følg {name}",
1033
+ "header": "Overskrift for {name}",
1034
+ "help": "Træk for at omarrangere kolonner, omdøb deres overskrifter, og vælg hvilke der vises i tabellen.",
1035
+ "lookupBack": "Tilbage",
1036
+ "lookupBadge": "Sammenkædet",
1037
+ "lookupBroken": "Kæden kan ikke længere følges",
1038
+ "lookupBrokenBody": "Skemaet ændrede sig undervejs. Start kæden forfra.",
1039
+ "lookupBrowse": "Vælg hvad der skal vises fra {table}",
1040
+ "mask": "Maskér",
1041
+ "maskHelp": "Maskering skjuler en værdi bag en vis-knap for læsere, der må se den. Om data overhovedet forlader databasen, indstilles på forbindelsen, ikke her.",
1042
+ "maskToggle": "Skjul {name} bag en vis-knap",
1043
+ "masked": "Maskeret",
1044
+ "none": {
1045
+ "body": "Kolonner læses fra tabellen, når siden genereres. Knyt siden til en tabel og generer igen for at udfylde dem.",
1046
+ "title": "Denne side har ingen kolonner endnu"
1047
+ },
1048
+ "pk": "Nøgle",
1049
+ "remove": "Fjern {name}",
1050
+ "schemaUnavailable": "Databasens kolonner kunne ikke hentes, så kolonner kan ikke tilføjes her.",
1051
+ "shown": "Vist",
1052
+ "toggle": "Vis {name} i tabellen"
776
1053
  },
777
- "support": {
778
- "title": "Supportkonsol",
779
- "description": "Køer, ticket- og kundedetaljesider først. Sletning slået fra som standard. (Kø-skabeloner lander i M7 — v1-sidesættet svarer til fuldt admin.)"
780
- }
781
- },
782
- "generate": {
783
- "title": "Generér din app",
784
- "subtitle": "Én side pr. medtaget tabel plus dashboards pr. domæne — formål:",
785
- "run": "Generér dashboard",
786
- "openApp": "Åbn din app",
787
- "logLabel": "Genereringslog",
788
- "log": {
789
- "classifying": "Klassificerer skema…",
790
- "composing": "Sammensætter skabeloner…",
791
- "writing": "Skriver sider…",
792
- "done": "{pages} sider genereret på tværs af {groups} navigationsgrupper"
1054
+ "create": {
1055
+ "failed": "Siden kunne ikke oprettes",
1056
+ "submit": "Opret side",
1057
+ "subtitle": "Vælg hvad siden viser, og hvordan den ser ud. Forhåndsvisningen følger dine valg.",
1058
+ "title": "Ny side"
793
1059
  },
794
- "successTitle": "Dit dashboard er klar",
795
- "successBody": "{pages} sider i {groups} navigationsgrupper — genereret fra dit skema, redigerbare i Studio.",
796
- "errorTitle": "Generering mislykkedes",
797
- "failed": "Generering mislykkedes prøv igen, eller kør introspektionen igen først.",
798
- "fileTitle": "Skemafil fortolket — generering kræver en live database",
799
- "fileBody": "Dit skema blev fortolket rent, og forhåndsvisningen ovenfor er ægte. Generering af en kørende app direkte fra en skemafil (med pladsholderrækker) er ikke tilgængelig endnu — forbind en live database for at generere i dag."
800
- },
801
- "remap": {
802
- "column": {
803
- "nullable": "kan være NULL",
804
- "labelOverride": "Visningsetiket",
805
- "labelHelper": "Udledt: {name}",
806
- "logicalType": "Logisk type",
807
- "logicalTypeHelper": "Udledt: {type} (fra {dbType}) — kortlagt af adapteren; kan ikke tilsidesættes i v1.",
808
- "semantic": "Semantisk type",
809
- "unclassified": "Endnu ikke klassificeret.",
810
- "semanticHelper": "Klassifikator: {tag} · {confidence}% tillid · kilde: {source}",
811
- "semanticInferred": "udledt: {tag}",
812
- "currency": "Valuta",
813
- "currencyHelper": "ISO 4217-kode anvendt på beløbsformatering.",
814
- "pii": "Maskér som standard",
815
- "piiHelper": "Maskerede værdier vises slørede; afmaskering kræver tilladelsen data.unmask_pii og logges i auditloggen.",
816
- "enum": "Enum-semantik",
817
- "enumKind": "Enum-art",
818
- "enumWorkflow": "Arbejdsgang",
819
- "enumCategory": "Kategori",
820
- "enumLabelFor": "Etiket for {value}",
821
- "enumToneFor": "Tone for {value}",
822
- "enumToneAuto": "auto",
823
- "enumHelper": "Arbejdsgangs-enums driver statusmærker og tavlekolonner; toner knytter værdierne til den semantiske farvetoneskala."
1060
+ "createButton": "Ny side",
1061
+ "delete": {
1062
+ "body": "Dette kan ikke fortrydes. Gemte visninger og personlige layouts på denne side slettes for alle.",
1063
+ "bodyGenerated": "Denne side stammer fra skemagenerering, den kommer igen næste gang du genererer. Gemte visninger og personlige layouts slettes for alle.",
1064
+ "confirm": "Slet side",
1065
+ "prompt": "Skriv {slug} for at bekræfte",
1066
+ "title": "Slet denne side?"
824
1067
  },
825
- "diff": {
826
- "one": "1 ændring",
827
- "count": "{count} ændringer",
828
- "saved": "Tilsidesættelser gemt.",
829
- "revertOne": "Fortryd {change}",
830
- "regenerate": "Regenerér sider",
831
- "revertAll": "Fortryd alle",
832
- "save": "Gem tilsidesættelser"
1068
+ "derived": {
1069
+ "add": "Tilføj kolonne",
1070
+ "atLeast": "er mindst",
1071
+ "cancel": "Annuller",
1072
+ "emptyBody": "Opsummer først en forbundet tabel i Kolonner-kortet — reglerne her bygger på de tal.",
1073
+ "emptyTitle": "Ingen beregnede tal endnu",
1074
+ "fieldBadge": "Beregnet",
1075
+ "foldBadge": "Opsummering",
1076
+ "help": "Beregn tal ud fra oversigterne ovenfor og denne posts egne kolonner. De beregnes, når siden indlæses, og kan ikke sorteres.",
1077
+ "label": "Kolonneoverskrift",
1078
+ "minus": "minus",
1079
+ "numberHelp": "Tal er almindelige decimaler — 500 eller 12.50, aldrig 1,000 eller 5e3.",
1080
+ "operandA": "Tal",
1081
+ "operandB": "Tal",
1082
+ "operator": "Operator",
1083
+ "otherwise": "ellers",
1084
+ "percentOf": "procent fra denne post",
1085
+ "plus": "plus",
1086
+ "preset": {
1087
+ "combine": "Læg to tal sammen eller træk fra",
1088
+ "percent": "Procent af et tal",
1089
+ "rule": "Regel med en tærskel"
1090
+ },
1091
+ "previewHelp": "Eksempelværdier, beregnet af den samme kode, som siden bruger.",
1092
+ "previewTitle": "Forhåndsvisning",
1093
+ "remove": "Fjern {name}",
1094
+ "thenShow": "så vis"
833
1095
  },
834
- "table": {
835
- "iconPicker": "Tabelikon",
836
- "system": "System",
837
- "labelOverride": "Visningsetiket",
838
- "labelHelper": "Udledt: {name}",
839
- "icon": "Ikon",
840
- "navGroup": "Navigationsgruppe",
841
- "navGroupHelper": "Navigationsplaceringen bestemmes af generatoren — en table.navGroup-tilsidesættelse er ikke en del af v1-vokabularet.",
842
- "include": "Medtag i den genererede app",
843
- "includeHelper": "Udeladte tabeller får ingen sider og forsvinder fra navigationen.",
844
- "shape": "Tabelform (klassificeret)",
845
- "role": "Rolle",
846
- "unclassified": "Ikke klassificeret",
847
- "kind": "Art",
848
- "hierarchy": "Hierarki",
849
- "selfFk": "Selvreference via {column}",
850
- "polymorphic": "Polymorfe par",
851
- "rows": "Rækkeestimat",
852
- "shapeHelper": "Klassificeringen genberegnes ved hver introspektion; tilsidesættelser lægges ovenpå og overlever regenerering."
1096
+ "duplicate": {
1097
+ "failed": "Siden kunne ikke duplikeres",
1098
+ "submit": "Dupliker",
1099
+ "title": "Dupliker side"
853
1100
  },
854
- "relations": {
855
- "declared": "Deklarerede fremmednøgler",
856
- "noneDeclared": "Ingen deklarerede fremmednøgler berører denne tabel.",
857
- "inferred": "Udledte relationer",
858
- "noneInferred": "Intet udledt for denne tabel.",
859
- "confidence": "udledt · {pct}%",
860
- "accepted": "Accepteret",
861
- "suppressed": "Undertrykt",
1101
+ "editor": {
1102
+ "appearance": "Udseende",
1103
+ "attachments": "Vedhæftede filer",
1104
+ "columns": "Kolonner",
1105
+ "contentInvalid": "Denne sides konfiguration kan ikke læses",
1106
+ "contentInvalidBody": "Den er skrevet af en nyere version, eller den er ugyldig. Generer siden igen, eller slet den.",
1107
+ "contentUnavailable": "Sidens indhold kunne ikke indlæses",
1108
+ "contentUnavailableBody": "Oplysningerne ovenfor kan stadig gemmes.",
1109
+ "data": "Data",
1110
+ "derived": "Afledte tal",
1111
+ "details": "Detaljer",
1112
+ "generated": {
1113
+ "body": "Dine ændringer bevares, når du genererer igen — siden markeres som redigeret og røres ikke. En sletning holder derimod kun, indtil næste generering opretter den på ny.",
1114
+ "title": "Denne side blev genereret ud fra dit skema"
1115
+ },
1116
+ "itemsPending": "Gem først ændringen ovenfor — sidens indhold bygges op igen ud fra den nye skabelon og tabel.",
1117
+ "missing": "Denne side findes ikke længere",
1118
+ "missingBody": "Den er måske slettet eller fjernet af en generering.",
1119
+ "notBindable": "Denne skabelon er ikke knyttet til én tabel",
1120
+ "notBindableBody": "Dens indhold bygges widget for widget i stedet. Åbn siden, og brug “Rediger” til at tilføje dem.",
1121
+ "openPage": "Åbn side",
1122
+ "recompose": "Denne side bliver bygget om",
1123
+ "recomposeBody": "Når du gemmer, erstattes indholdet af et nyt layout for skabelonen og tabellen ovenfor. Kolonnetilpasninger og widget-ændringer på siden går tabt.",
1124
+ "save": "Gem ændringer",
1125
+ "saveFailed": "Ændringerne kunne ikke gemmes",
1126
+ "schemaFailed": "Tabellerne kunne ikke vises",
1127
+ "schemaFailedBody": "Denne forbindelse er måske ikke analyseret endnu. Kør introspektion fra Studio → Dataforbindelser.",
1128
+ "title": "Rediger side"
1129
+ },
1130
+ "empty": {
1131
+ "body": "Forbind en database for at generere sider automatisk, eller opret en i hånden.",
1132
+ "title": "Ingen sider endnu"
1133
+ },
1134
+ "field": {
1135
+ "connection": "Datakilde",
1136
+ "connectionNone": "Ingen",
1137
+ "group": "Gruppe i sidepanelet",
1138
+ "groupHint": "Hvilken del af sidepanelet den vises i.",
1139
+ "icon": "Ikon",
1140
+ "iconHint": "Vises ved siden af sidens navn i sidepanelet.",
1141
+ "iconPick": "Vælg sidens ikon",
1142
+ "newRowLabel": "Tilføj-knap",
1143
+ "newRowLabelHint": "Hvad der står på knappen, der tilføjer en post. Lad feltet stå tomt for at bruge standardteksten, som er oversat.",
1144
+ "padding": "Sidemargen",
1145
+ "slug": "Sideadresse",
1146
+ "slugHint": "Små bogstaver, tal og bindestreger. Kun den sidste del — resten af adressen tilføjer vi.",
1147
+ "slugTaken": "En anden side bruger allerede denne adresse.",
1148
+ "slugWarning": "Ændrer du adressen, går eksisterende links og bogmærker til siden i stykker.",
1149
+ "table": "Tabel",
1150
+ "tableCreateHint": "Tabellen som denne side læser fra. Vælg en nu, så er siden klar til brug; lad den stå tom, og du kan knytte den senere.",
1151
+ "tableNeedsConnection": "Vælg en datakilde først.",
1152
+ "tableNone": "Ikke knyttet",
1153
+ "template": "Skabelon",
1154
+ "templateHint": "Afgør hvad siden kan indeholde. Kan ændres senere.",
1155
+ "title": "Titel",
1156
+ "titleHint": "Vises i sidepanelet og i sidens overskrift.",
1157
+ "visible": "Vis i sidepanelet",
1158
+ "visibleHint": "En skjult side kan stadig tilgås på sin URL af alle med linket.",
1159
+ "width": "Indholdsbredde",
1160
+ "widthHint": "Hvor bred sidens indholdskolonne må blive på en stor skærm."
1161
+ },
1162
+ "icon": {
1163
+ "noMatches": "Ingen ikoner matcher den søgning.",
1164
+ "none": "Vælg et ikon",
1165
+ "search": "Søg efter ikoner"
1166
+ },
1167
+ "list": {
1168
+ "count": "{count, plural, one {# side} other {# sider}}",
1169
+ "title": "Sider"
1170
+ },
1171
+ "loadFailed": {
1172
+ "body": "Sidestyring kræver tilladelsen “Administrer sider”. Bed en administrator om at give den til en af dine roller.",
1173
+ "title": "Siderne kunne ikke indlæses"
1174
+ },
1175
+ "origin": {
1176
+ "generated": "Genereret",
1177
+ "llm": "Assistent",
1178
+ "manifest": "Tilføjelse",
1179
+ "system": "System",
1180
+ "user": "Egen"
1181
+ },
1182
+ "padding": {
1183
+ "custom": "Tilpasset…",
1184
+ "default": "Standard for denne skabelon",
1185
+ "none": "Ingen",
1186
+ "standard": "Standard (28 × 24)",
1187
+ "x": "Sider (px)",
1188
+ "y": "Top og bund (px)"
1189
+ },
1190
+ "preview": {
1191
+ "note": "En illustration af layoutet, ikke dine data. Den rigtige side fyldes ud, når den er gemt.",
1192
+ "untitled": "Side uden titel"
1193
+ },
1194
+ "row": {
1195
+ "menu": "Handlinger for {title}"
1196
+ },
1197
+ "sidebar": {
1198
+ "discard": "Kassér",
1199
+ "emptyGroup": "Ingen sider i denne gruppe.",
1200
+ "help": "Omarranger sider inden for en gruppe, eller flyt en til en anden gruppe. Ændringerne gælder for alle.",
1201
+ "moveDown": "Flyt {title} ned",
1202
+ "moveTo": "Flyt {title} til en gruppe",
1203
+ "moveUp": "Flyt {title} op",
1204
+ "save": "Gem rækkefølge",
1205
+ "saveFailed": "Den nye rækkefølge kunne ikke gemmes",
1206
+ "ungrouped": {
1207
+ "body": "Siderne virker på deres URL, men vises ingen steder i sidepanelet. Åbn hver enkelt og vælg en gruppe.",
1208
+ "title": "Nogle sider hører ikke til nogen gruppe"
1209
+ }
1210
+ },
1211
+ "status": {
1212
+ "hidden": "Skjult",
1213
+ "live": "Aktiv"
1214
+ },
1215
+ "subtitle": "Tilføj, rediger og organiser din apps sider — og den rækkefølge de vises i sidepanelet.",
1216
+ "tab": {
1217
+ "pages": "Alle sider",
1218
+ "sidebar": "Rækkefølge i sidepanelet"
1219
+ },
1220
+ "title": "Sider",
1221
+ "width": {
1222
+ "content": "Indhold (900 px)",
1223
+ "dash": "Dashboard (1320 px)",
1224
+ "default": "Standard for denne skabelon",
1225
+ "full": "Fuld bredde (ingen grænse)",
1226
+ "narrow": "Smal (720 px)",
1227
+ "page": "Side (1080 px)",
1228
+ "wide": "Bred (1800 px)"
1229
+ }
1230
+ },
1231
+ "publicApi": {
1232
+ "cancel": "Annuller",
1233
+ "close": "Luk",
1234
+ "error": "Noget gik galt",
1235
+ "keys": {
1236
+ "appHint": "Appens kundeflade serverer så selv denne nøgle — rotation kræver ingen ny build.",
1237
+ "appLabel": "Tilknyt en hostet app-flade (valgfrit)",
1238
+ "appNone": "Ikke tilknyttet",
1239
+ "create": "Opret nøgle",
1240
+ "emptyBody": "Opret først et scope, og opret så en nøgle til det.",
1241
+ "emptyTitle": "Ingen nøgler endnu",
1242
+ "formLabel": "Opret en nøgle",
1243
+ "nameLabel": "Navn",
1244
+ "reveal": "Vis nøgle",
1245
+ "revoke": "Tilbagekald",
1246
+ "rotate": "Rotér",
1247
+ "scopeIsAuthBody": "En nøgle kan nå præcis det, der står i dens scope, og intet andet. Den bruger hverken roller eller tabeltilladelser, og den kan ikke læse noget gennem resten af API’et.",
1248
+ "scopeIsAuthTitle": "Scopet er den eneste tilladelse",
1249
+ "scopeLabel": "Scope",
1250
+ "scopePlaceholder": "Vælg et scope",
1251
+ "subtitle": "De ligger i din sides JavaScript, så alle kan læse dem. Sådan skal det være — en nøgle kan aldrig gøre andet end det, dens scope tillader.",
1252
+ "title": "Nøgler"
1253
+ },
1254
+ "notRegistered": {
1255
+ "body": "Sæt ADMINIUM_PUBLIC_API_ORIGINS til de præcise origins, der må kalde det, og genstart så. Indtil da serveres disse ruter slet ikke.",
1256
+ "title": "Ikke slået til på denne server"
1257
+ },
1258
+ "origins": {
1259
+ "label": "Origins, der må kalde det"
1260
+ },
1261
+ "scopes": {
1262
+ "connectionLabel": "Forbindelses-id",
1263
+ "create": "Opret scope",
1264
+ "delete": "Slet",
1265
+ "deleteBody": "Enhver side, der bruger en nøgle tilknyttet dette scope, holder op med at indlæse data. Nøgler slettes ikke — tilbagekald dem først, hvis det var det, du mente.",
1266
+ "deleteConfirm": "Slet scope",
1267
+ "deletePrompt": "Skriv scopets navn for at bekræfte",
1268
+ "deleteTitle": "Slet dette scope",
1269
+ "documentHint": "Kompileres mod dit skema, når du gemmer. Hver eneste kolonne, en kalder kan nå, står her og ingen andre steder. En standardværdi kan være '{'\"$generate\": \"uuid\"'}' eller '{'\"$generate\": \"now\"'}' — serveren udfylder dem ved oprettelse, så en besøgende kan tilføje en række uden at vælge dens id.",
1270
+ "documentLabel": "Scope-dokument",
1271
+ "emptyBody": "Opret et nedenfor. Det tjekkes mod dit aktuelle skema, før det gemmes.",
1272
+ "emptyTitle": "Ingen scopes endnu",
1273
+ "formLabel": "Opret et scope",
1274
+ "issuesTitle": "Dette scope kunne ikke kompileres",
1275
+ "keyCount": "{count, plural, =0 {ingen nøgler} one {# nøgle} other {# nøgler}}",
1276
+ "nameLabel": "Navn",
1277
+ "subtitle": "Et scope er alt det, en nøgle må nå — tabellerne, de præcise kolonner og et filter, som kalderen kan indsnævre, men aldrig fjerne.",
1278
+ "title": "Scopes"
1279
+ },
1280
+ "status": {
1281
+ "heading": "Status"
1282
+ },
1283
+ "subtitle": "Lad dine egne kunde- eller medarbejdervendte sider læse denne database gennem et scope, du definerer.",
1284
+ "title": "Offentligt API",
1285
+ "toggle": {
1286
+ "hint": "Slår du dette fra, stopper enhver offentlig forespørgsel med det samme. Intet slettes — nøgler, scopes og data bevares alle.",
1287
+ "label": "Servér det offentlige API"
1288
+ }
1289
+ },
1290
+ "remap": {
1291
+ "badge": {
1292
+ "fk": "FK",
1293
+ "masked": "Maskeret",
1294
+ "pii": "PII",
1295
+ "pk": "PK",
1296
+ "unique": "UNIK"
1297
+ },
1298
+ "column": {
1299
+ "currency": "Valuta",
1300
+ "currencyHelper": "ISO 4217-kode anvendt på beløbsformatering.",
1301
+ "enum": "Enum-semantik",
1302
+ "enumCategory": "Kategori",
1303
+ "enumHelper": "Arbejdsgangs-enums driver statusmærker og tavlekolonner; toner knytter værdierne til den semantiske farvetoneskala.",
1304
+ "enumKind": "Enum-art",
1305
+ "enumLabelFor": "Etiket for {value}",
1306
+ "enumToneAuto": "auto",
1307
+ "enumToneFor": "Tone for {value}",
1308
+ "enumWorkflow": "Arbejdsgang",
1309
+ "labelHelper": "Udledt: {name}",
1310
+ "labelOverride": "Visningsetiket",
1311
+ "logicalType": "Logisk type",
1312
+ "logicalTypeHelper": "Udledt: {type} (fra {dbType}) — kortlagt af adapteren; kan ikke tilsidesættes i v1.",
1313
+ "nullable": "kan være NULL",
1314
+ "pii": "Maskér som standard",
1315
+ "piiHelper": "Maskerede værdier vises slørede; afmaskering kræver tilladelsen data.unmask_pii og logges i auditloggen.",
1316
+ "semantic": "Semantisk type",
1317
+ "semanticHelper": "Klassifikator: {tag} · {confidence}% tillid · kilde: {source}",
1318
+ "semanticInferred": "udledt: {tag}",
1319
+ "unclassified": "Endnu ikke klassificeret."
1320
+ },
1321
+ "diff": {
1322
+ "count": "{count} ændringer",
1323
+ "one": "1 ændring",
1324
+ "regenerate": "Regenerér sider",
1325
+ "revertAll": "Fortryd alle",
1326
+ "revertOne": "Fortryd {change}",
1327
+ "save": "Gem tilsidesættelser",
1328
+ "saved": "Tilsidesættelser gemt."
1329
+ },
1330
+ "empty": {
1331
+ "description": "Vælg noget i skematræet for at ommappe dets etiket, type, relationer eller maskering.",
1332
+ "title": "Vælg en tabel eller kolonne"
1333
+ },
1334
+ "inspector": "Inspektør",
1335
+ "loadFailed": "Kunne ikke indlæse skemaet for denne forbindelse.",
1336
+ "mode": {
1337
+ "design": "Design",
1338
+ "diagram": "Diagram",
1339
+ "remap": "Etiketter og relationer"
1340
+ },
1341
+ "modeLabel": "Redigeringstilstand",
1342
+ "noDesign": {
1343
+ "noPrivilege": "Denne forbindelses rolle kan ikke oprette eller ændre tabeller. Giv den skemarettigheder, eller forbind en rolle, der har dem.",
1344
+ "readOnlyIntent": "Denne forbindelse blev sat op til skrivebeskyttet analyse. Skift dens formål i Indstillinger for at redigere dens skema.",
1345
+ "readOnlyRole": "Denne forbindelse logger på med en skrivebeskyttet rolle, så Adminium kan ikke ændre dens skema.",
1346
+ "schemaFile": "Denne forbindelse blev oprettet ud fra en skemafil, så der er ingen database at ændre. Etiketter og relationer virker fortsat."
1347
+ },
1348
+ "relations": {
862
1349
  "accept": "Accepter",
863
- "suppress": "Undertryk",
864
- "overrides": "Relationer fra tilsidesættelser (anvendt)",
865
- "overrideBadge": "tilsidesættelse",
1350
+ "accepted": "Accepteret",
866
1351
  "add": "Tilføj virtuel relation",
1352
+ "addButton": "Tilføj relation",
1353
+ "cardinality": "Kardinalitet",
1354
+ "confidence": "udledt · {pct}%",
1355
+ "declared": "Deklarerede fremmednøgler",
867
1356
  "fromColumn": "Fra kolonne",
868
- "noColumns": "Ingen matchende kolonne",
869
1357
  "fromPlaceholder": "customer_id",
870
- "toTable": "Til tabel",
1358
+ "inferred": "Udledte relationer",
1359
+ "noColumns": "Ingen matchende kolonne",
871
1360
  "noTables": "Ingen matchende tabel",
1361
+ "noneDeclared": "Ingen deklarerede fremmednøgler berører denne tabel.",
1362
+ "noneInferred": "Intet udledt for denne tabel.",
1363
+ "overrideBadge": "tilsidesættelse",
1364
+ "overrides": "Relationer fra tilsidesættelser (anvendt)",
1365
+ "suppress": "Undertryk",
1366
+ "suppressed": "Undertrykt",
872
1367
  "toColumn": "Til kolonne",
873
- "cardinality": "Kardinalitet",
874
- "addButton": "Tilføj relation"
875
- },
876
- "toast": {
877
- "saved": "Skema-tilsidesættelser gemt",
878
- "savedDetail": "Det anvendte skema nedenfor afspejler dine ændringer.",
879
- "regenerated": "{created} oprettet · {updated} opdateret · {unchanged} uændret",
880
- "regeneratedDetail": "Sider, du har redigeret i hånden, bevares — kun sider med en urørt generated_hash blev regenereret på stedet.",
881
- "regenerateFailed": "Regenerering mislykkedes"
1368
+ "toTable": "Til tabel"
882
1369
  },
883
- "title": "Skema-ommapning",
884
- "subtitle": "{tables} tabeller · {applied} tilsidesættelser anvendt",
885
1370
  "saveFailed": "Lagring mislykkedes: {message}",
886
- "loadFailed": "Kunne ikke indlæse skemaet for denne forbindelse.",
887
- "inspector": "Inspektør",
888
- "empty": {
889
- "title": "Vælg en tabel eller kolonne",
890
- "description": "Vælg noget i skematræet for at ommappe dets etiket, type, relationer eller maskering."
1371
+ "subtitle": "{tables} tabeller · {applied} tilsidesættelser anvendt",
1372
+ "table": {
1373
+ "hierarchy": "Hierarki",
1374
+ "icon": "Ikon",
1375
+ "iconPicker": "Tabelikon",
1376
+ "include": "Medtag i den genererede app",
1377
+ "includeHelper": "Udeladte tabeller får ingen sider og forsvinder fra navigationen.",
1378
+ "kind": "Art",
1379
+ "labelHelper": "Udledt: {name}",
1380
+ "labelOverride": "Visningsetiket",
1381
+ "navGroup": "Navigationsgruppe",
1382
+ "navGroupHelper": "Navigationsplaceringen bestemmes af generatoren — en table.navGroup-tilsidesættelse er ikke en del af v1-vokabularet.",
1383
+ "polymorphic": "Polymorfe par",
1384
+ "role": "Rolle",
1385
+ "rows": "Rækkeestimat",
1386
+ "selfFk": "Selvreference via {column}",
1387
+ "shape": "Tabelform (klassificeret)",
1388
+ "shapeHelper": "Klassificeringen genberegnes ved hver introspektion; tilsidesættelser lægges ovenpå og overlever regenerering.",
1389
+ "system": "System",
1390
+ "unclassified": "Ikke klassificeret"
891
1391
  },
892
1392
  "tabs": {
893
1393
  "details": "Detaljer",
894
1394
  "relations": "Relationer"
895
1395
  },
1396
+ "title": "Skema",
1397
+ "toast": {
1398
+ "regenerateFailed": "Regenerering mislykkedes",
1399
+ "regenerated": "{created} oprettet · {updated} opdateret · {unchanged} uændret",
1400
+ "regeneratedDetail": "Sider, du har redigeret i hånden, bevares — kun sider med en urørt generated_hash blev regenereret på stedet.",
1401
+ "saved": "Skema-tilsidesættelser gemt",
1402
+ "savedDetail": "Det anvendte skema nedenfor afspejler dine ændringer."
1403
+ },
896
1404
  "tree": {
1405
+ "collapse": "Fold tabel sammen",
1406
+ "excluded": "Udeladt",
1407
+ "expand": "Fold tabel ud",
897
1408
  "label": "Skema",
1409
+ "noMatches": "Ingen tabeller matcher din søgning.",
898
1410
  "search": "Søg i tabeller og kolonner",
899
1411
  "searchPlaceholder": "Søg i tabeller…",
900
- "noMatches": "Ingen tabeller matcher din søgning.",
901
- "collapse": "Fold tabel sammen",
902
- "expand": "Fold tabel ud",
903
- "unsaved": "Ugemt ændring",
904
- "excluded": "Udeladt"
905
- },
906
- "badge": {
907
- "pk": "PK",
908
- "fk": "FK",
909
- "unique": "UNIK",
910
- "pii": "PII",
911
- "masked": "Maskeret"
1412
+ "unsaved": "Ugemt ændring"
912
1413
  },
913
- "unavailableTitle": "Editor til skema-ommapning ikke tilgængelig",
914
- "unavailableBody": "Dette build indeholder endnu ikke ommapnings-editoren (09-T12). Kør genereringen igen, når den er kommet, for at ommappe etiketter, typer og relationer."
1414
+ "unavailableBody": "Dette build indeholder endnu ikke ommapnings-editoren (09-T12). Kør genereringen igen, når den er kommet, for at ommappe etiketter, typer og relationer.",
1415
+ "unavailableTitle": "Editor til skema-ommapning ikke tilgængelig"
915
1416
  },
916
- "publicApi": {
917
- "error": "Something went wrong",
918
- "scopes": {
919
- "deleteTitle": "Delete this scope",
920
- "deleteBody": "Any page using a key bound to this scope stops loading data. Keys are not deleted — revoke them first if that is what you meant.",
921
- "deletePrompt": "Type the scope name to confirm",
922
- "deleteConfirm": "Delete scope",
923
- "issuesTitle": "This scope did not compile",
924
- "title": "Scopes",
925
- "subtitle": "A scope is the whole of what a key may reach — the tables, the exact columns, and a filter the caller can narrow but never remove.",
926
- "emptyTitle": "No scopes yet",
927
- "emptyBody": "Create one below. It is checked against your live schema before it is saved.",
928
- "keyCount": "{count, plural, =0 {no keys} one {# key} other {# keys}}",
929
- "delete": "Delete",
930
- "nameLabel": "Name",
931
- "connectionLabel": "Connection ID",
932
- "documentLabel": "Scope document",
933
- "documentHint": "Compiled against your schema when you save. Every column a caller can reach is listed here and nowhere else.",
934
- "create": "Create scope",
935
- "formLabel": "Create a scope"
936
- },
937
- "cancel": "Cancel",
938
- "close": "Close",
939
- "title": "Public API",
940
- "subtitle": "Let your own customer- or staff-facing pages read this database, through a scope you define.",
941
- "notRegistered": {
942
- "title": "Not enabled on this server",
943
- "body": "Set ADMINIUM_PUBLIC_API_ORIGINS to the exact origins allowed to call it, then restart. Until then these routes are not served at all."
1417
+ "review": {
1418
+ "unavailableBody": "Denne build indeholder endnu ikke berigelsens gennemgangsskærm (06-T14). Den kommer med diff-og-anvend-flowet.",
1419
+ "unavailableTitle": "Gennemgangsskærm ikke tilgængelig"
1420
+ },
1421
+ "settings": {
1422
+ "globalDefaultsNav": "Globale standarder",
1423
+ "title": "Indstillinger",
1424
+ "workspaceSection": "Arbejdsområde"
1425
+ },
1426
+ "settingsAi": {
1427
+ "byo": {
1428
+ "body": "Studio kan generere en selvstændig prompt ud fra dit skema. Kør den i Claude Code, ChatGPT eller et hvilket som helst værktøj, og indsæt derefter den returnerede JSON tilbage i forbindelsesguiden. Samme validering, samme gennemgang, samme resultat som den direkte vej.",
1429
+ "guarantee1": "Prompten indeholder kun dit skema og aggregeret statistik aldrig rækkedata som standard.",
1430
+ "guarantee2": "Ingen legitimationsoplysninger, instans-URL eller identifikatorer er indlejret.",
1431
+ "guarantee3": "BYO-kørsler foretager ingen netværkskald.",
1432
+ "guaranteeTitle": "Telemetrifri garanti",
1433
+ "heading": "Ingen nøgle? Brug dit eget AI-værktøj",
1434
+ "headingRecommended": "Brug dit eget AI-værktøj ingen nøgle nødvendig",
1435
+ "promptVersion": "Prompt {version}",
1436
+ "recommended": "Anbefalet",
1437
+ "schemaVersion": "Skema {version}",
1438
+ "subtitle": "Kopiér-indsæt-turen — intet forlader denne maskine."
944
1439
  },
945
- "toggle": {
946
- "label": "Serve the public API",
947
- "hint": "Turning this off stops every public request immediately. Nothing is deleted — keys, scopes and data all survive."
1440
+ "configure": {
1441
+ "heading": "Konfigurér {provider}"
948
1442
  },
949
- "origins": {
950
- "label": "Origins allowed to call it"
1443
+ "field": {
1444
+ "baseUrl": "Basis-URL",
1445
+ "baseUrlHelper": "Endpoint-roden, der leverer /chat/completions.",
1446
+ "baseUrlOptional": "Lad stå, medmindre Ollama kører på en anden vært.",
1447
+ "key": "API-nøgle",
1448
+ "keyMask": "sk-…{last4}",
1449
+ "keyOptional": "Valgfri — nogle endpoints kræver ingen nøgle.",
1450
+ "keyReplace": "Erstat nøgle",
1451
+ "keyStored": "Gemt krypteret. Erstat den for at bruge en anden nøgle.",
1452
+ "keyWriteOnly": "Kun skrivning: når den er gemt, vises den aldrig igen.",
1453
+ "model": "Model",
1454
+ "modelFreeText": "Indtast det præcise model-id, dit endpoint leverer.",
1455
+ "modelLive": "Indlæst live fra udbyderen.",
1456
+ "modelLoading": "Indlæser…",
1457
+ "modelPlaceholder": "Vælg en model…",
1458
+ "modelStatic": "En gennemprøvet liste; skriv et brugerdefineret id efter at have gemt for at opdatere den.",
1459
+ "noKeyBody": "Ollama kører lokalt, så intet forlader denne maskine.",
1460
+ "noKeyTitle": "Ingen API-nøgle nødvendig"
951
1461
  },
952
- "keys": {
953
- "title": "Keys",
954
- "subtitle": "These go in your page’s JavaScript, so anyone can read them. That is expected — a key can only ever do what its scope allows.",
955
- "emptyTitle": "No keys yet",
956
- "emptyBody": "Create a scope first, then mint a key for it.",
957
- "reveal": "Show key",
958
- "rotate": "Rotate",
959
- "revoke": "Revoke",
960
- "nameLabel": "Name",
961
- "scopeLabel": "Scope",
962
- "scopePlaceholder": "Choose a scope",
963
- "create": "Create key",
964
- "formLabel": "Create a key",
965
- "scopeIsAuthTitle": "The scope is the only permission",
966
- "scopeIsAuthBody": "A key can reach exactly what its scope lists and nothing else. It does not use roles or table permissions, and it cannot read anything through the rest of the API.",
967
- "appLabel": "Tilknyt en hostet app-flade (valgfrit)",
968
- "appHint": "Appens kundeflade serverer så selv denne nøgle — rotation kræver ingen ny build.",
969
- "appNone": "Ikke tilknyttet"
1462
+ "history": {
1463
+ "byo": "BYO",
1464
+ "colChunks": "Blokke",
1465
+ "colDate": "Dato",
1466
+ "colSource": "Kilde",
1467
+ "colStatus": "Status",
1468
+ "connection": "Forbindelse",
1469
+ "directPath": "Direkte",
1470
+ "empty": "Ingen berigelseskørsler endnu. Berig et skema fra forbindelsesguiden for at se historik her.",
1471
+ "errorBody": "Genindlæs siden for at prøve igen.",
1472
+ "errorTitle": "Kunne ikke indlæse kørsler",
1473
+ "heading": "Kørselshistorik",
1474
+ "noConnections": "Forbind først en database — berigelseskørsler registreres pr. forbindelse.",
1475
+ "openReview": "Åbn gennemgang for kørslen fra {date}",
1476
+ "subtitle": "Tidligere berigelseskørsler. Åbn en for at gennemgå dens forslag.",
1477
+ "tableLabel": "Berigelseskørsler"
970
1478
  },
971
- "status": {
972
- "heading": "Status"
973
- }
974
- },
975
- "hostedApps": {
976
- "title": "Hostede apps",
977
- "subtitle": "De app-flader denne instans serverer — hvor hver enkelt vises, og hvilke domæner der peger på dem.",
978
- "error": "Noget gik galt",
979
- "emptyTitle": "Der serveres ingen app-flader",
980
- "emptyBody": "Peg ADMINIUM_SURFACES_DIR på en mappe med byggede flader — én mappe pr. app og side, hver med sin index.html — og genstart. De serveres derefter under /apps/ og vises her.",
981
- "surfaces": {
982
- "title": "Flader",
983
- "subtitle": "En medarbejderflade kan glide ind i dette dashboards sidepanel eller stå for sig selv; en kundeflade er offentlig og læser gennem sin tilknyttede nøgle.",
984
- "staff": "Medarbejder",
985
- "customer": "Kunde",
986
- "noNav": "Intern placering utilgængelig — byg denne flade igen med det aktuelle toolkit, så den udsender surface.json.",
987
- "noKey": "Ingen nøgle tilknyttet — denne flade kan ikke læse data, før der oprettes en til den.",
988
- "mintLink": "Opret en under Offentligt API",
989
- "boundKey": "Serverer nøgle",
990
- "placementLabel": "Placering",
991
- "placementInternal": "I sidepanelet (indlejret)",
992
- "placementExternal": "Ekstern (kun egen URL)",
993
- "connectionLabel": "Læser",
994
- "connectionUnset": "Den der kører"
1479
+ "provider": {
1480
+ "active": "Aktiv",
1481
+ "anthropic": {
1482
+ "desc": "Claude-modeller via Anthropic-API’en.",
1483
+ "label": "Anthropic"
1484
+ },
1485
+ "heading": "AI-udbyder",
1486
+ "networkDisabledBody": "Dette Adminium er konfigureret uden udgående internetadgang og kan ikke nå en udbyder-API. Brug kopier-indsæt-turen nedenfor — den kræver hverken nøgle eller netværk.",
1487
+ "networkDisabledTitle": "Direkte AI-udbydere er slået fra i denne installation",
1488
+ "ollama": {
1489
+ "desc": "Modeller kører lokalt via Ollama — ingen nøgle, ingen sky.",
1490
+ "label": "Ollama (lokal)"
1491
+ },
1492
+ "openai": {
1493
+ "desc": "GPT-modeller via OpenAI-API’en.",
1494
+ "label": "OpenAI"
1495
+ },
1496
+ "openaiCompatible": {
1497
+ "desc": "Ethvert endpoint, der taler OpenAI-formatet — Groq, Together, vLLM, LM Studio.",
1498
+ "label": "OpenAI-kompatibel"
1499
+ },
1500
+ "requiresNetwork": "Kræver internet og en API-nøgle",
1501
+ "subtitle": "Vælg, hvordan Adminium når en model til at berige dit skema. Nøgler gemmes krypteret og vises aldrig igen."
995
1502
  },
996
- "domains": {
997
- "title": "Domæner",
998
- "subtitle": "Peg et domænes DNS på din proxy, send Host-headeren videre til Adminium, og tilknyt det her — værten serverer så fladen i stedet for dette dashboard. Certifikater bliver på din proxy.",
999
- "issuesTitle": "Domænekortet blev afvist",
1000
- "savedTitle": "Gemt",
1001
- "savedBody": "Tilknytninger træder i kraft inden for få sekunder. En vært svarer først, når dens DNS og din proxy faktisk når denne instans.",
1002
- "none": "Ingen domæner er tilknyttet.",
1003
- "hostLabel": "Vært",
1004
- "surfaceLabel": "Flade",
1005
- "remove": "Fjern",
1006
- "add": "Tilknyt et domæne",
1007
- "save": "Gem domæner",
1008
- "instanceLabel": "Instans",
1009
- "instanceOwn": "Appens egen"
1503
+ "runStatus": {
1504
+ "applied": "Anvendt",
1505
+ "awaitingResponse": "Afventer svar",
1506
+ "discarded": "Kasseret",
1507
+ "draft": "Kladde",
1508
+ "failed": "Mislykkedes",
1509
+ "partiallyApplied": "Delvist anvendt",
1510
+ "running": "Kører",
1511
+ "validated": "Valideret"
1010
1512
  },
1011
- "instances": {
1012
- "title": "Instanser",
1013
- "body": "Server den samme app over flere databaser. Hver instans er tilgængelig på /apps/<app>/<segment>/<side>/ og læser kun den forbindelse, du giver den.",
1014
- "appLabel": "App",
1015
- "slugLabel": "URL-segment",
1016
- "readsLabel": "Læser",
1017
- "add": "Tilføj en instans",
1018
- "save": "Gem instanser",
1019
- "remove": "Fjern",
1020
- "empty": "Ingen ekstra instanser.",
1021
- "failed": "Instanserne blev ikke gemt"
1022
- }
1513
+ "save": "Gem udbyder",
1514
+ "saveFailed": "AI-udbyderen kunne ikke gemmes. Prøv igen.",
1515
+ "saved": "AI-udbyder gemt",
1516
+ "subtitle": "Forbind en model, så Adminium kan foreslå etiketter, grupper, relationer og mere — altid gennemgået som en diff, før noget anvendes.",
1517
+ "test": "Test forbindelse",
1518
+ "testError": "Testen mislykkedes",
1519
+ "testErrorBody": "Kunne ikke nå udbyderen. Tjek nøglen og basis-URL.",
1520
+ "testHintDirty": "Gem dine ændringer, før du tester.",
1521
+ "testOk": "Forbundet til {model} på {latency} ms",
1522
+ "testUnknownModel": "udbyderen",
1523
+ "testing": "Kontakter udbyderen…",
1524
+ "title": "AI-berigelse"
1023
1525
  },
1024
- "addOns": {
1025
- "plan": {
1026
- "blocked": "This cannot be installed here",
1027
- "needsColumns": "This add-on needs columns you do not have",
1028
- "needsColumnsBody": "Adminium will not add columns to tables you already own. Add them yourself, then install.",
1029
- "willCreate": "This will create tables in your database",
1030
- "willCreateBody": "Installing creates these tables. Uninstalling later leaves them, and their data, alone.",
1031
- "noData": "This add-on reads and writes no tables of its own.",
1032
- "reuse": "This add-on will use tables you already have:"
1526
+ "settingsHub": {
1527
+ "addOnsCard": {
1528
+ "body": "Gennemse, installer og forbind tilføjelser — ekstra blokke, datapakker og integrationer — eller upload selv en.",
1529
+ "cta": "Åbn tilføjelser",
1530
+ "heading": "Tilføjelser"
1033
1531
  },
1034
- "consent": {
1035
- "title": "Install {name}",
1036
- "subtitle": "What this add-on will do, before it can do it.",
1037
- "close": "Close",
1038
- "loading": "Working out what this would do…",
1039
- "hosts": "Attach to",
1040
- "cancel": "Cancel",
1041
- "confirm": "Install"
1532
+ "aiCard": {
1533
+ "body": "Konfigurér en AI-udbyder (eller kopiér-indsæt-turen) for at berige etiketter, grupper og relationer.",
1534
+ "cta": "Åbn AI-indstillinger",
1535
+ "heading": "AI-berigelse"
1042
1536
  },
1043
- "connect": {
1044
- "apiKey": "API key",
1045
- "submit": "Connect"
1537
+ "danger": {
1538
+ "deleteCta": "Slet forbindelse",
1539
+ "deleteDesc": "Sletter forbindelsen og de genererede sider. Din database røres ikke. Kan ikke fortrydes.",
1540
+ "empty": "Intet at slette — ingen forbindelser endnu.",
1541
+ "heading": "Farezone",
1542
+ "subtitle": "Uigenkaldelige handlinger."
1046
1543
  },
1047
- "title": "Add-ons",
1048
- "subtitle": "Extra capabilities you can add to your apps — shipping, artwork, data. Each one says what it needs before you install it.",
1049
- "error": "Something went wrong",
1050
- "browse": {
1051
- "title": "Available",
1052
- "online": "Includes add-ons from the online catalogue. Checking for newer versions is a separate action.",
1053
- "offline": "Showing the add-ons that came with this build. Browsing online is switched off, and nothing here has contacted the internet.",
1054
- "refresh": "Check for newer",
1055
- "emptyTitle": "No add-ons available",
1056
- "emptyBody": "This build shipped none, and the online catalogue is off.",
1057
- "bundled": "Included",
1058
- "upgrade": "v{version} available",
1059
- "download": "Download",
1060
- "install": "Install",
1061
- "discard": "Discard",
1062
- "upgradeAction": "Upgrade",
1063
- "toggle": "Browse the online catalogue"
1544
+ "defaultsCard": {
1545
+ "body": "Tema, accentfarve, tæthed og sprog for hele arbejdsområdet findes under globale standarder.",
1546
+ "cta": "Åbn globale standarder",
1547
+ "heading": "Standarder for udseende og sprog"
1064
1548
  },
1065
- "installed": {
1066
- "title": "Installed",
1067
- "emptyTitle": "Nothing installed yet",
1068
- "emptyBody": "Install an add-on above and it will appear here with its hosts and connection.",
1069
- "connected": "Connected",
1070
- "notConnected": "Not connected",
1071
- "egress": "May contact: {hosts}",
1072
- "on": "on",
1073
- "off": "off",
1074
- "disconnect": "Disconnect",
1075
- "uninstall": "Uninstall"
1549
+ "email": {
1550
+ "attachmentCap": {
1551
+ "error": "Mellem {min, number} og {max, number} MB.",
1552
+ "helper": "Det meste, én besked indeholde af vedhæftninger.",
1553
+ "label": "Grænse for vedhæftninger (MB)"
1554
+ },
1555
+ "from": {
1556
+ "error": "Indtast en e-mailadresse.",
1557
+ "helper": "Kun adressen, eller et visningsnavn foran den.",
1558
+ "label": "Afsenderadresse"
1559
+ },
1560
+ "heading": "E-mail (SMTP)",
1561
+ "host": {
1562
+ "error": "Kun et værtsnavn eller en IP-adresse — uden skema, port eller loginoplysninger.",
1563
+ "label": "SMTP-vært"
1564
+ },
1565
+ "pass": {
1566
+ "error": "Dette brugernavn kræver en adgangskode.",
1567
+ "helper": "Gemmes krypteret og vises aldrig igen. Lad feltet stå tomt for at beholde den nuværende.",
1568
+ "label": "Adgangskode"
1569
+ },
1570
+ "port": {
1571
+ "error": "Mellem {min, number} og {max, number}.",
1572
+ "label": "Port"
1573
+ },
1574
+ "remove": "Fjern mailserver",
1575
+ "review": {
1576
+ "password": "Erstattet",
1577
+ "removed": "Fjernet"
1578
+ },
1579
+ "secure": {
1580
+ "helper": "Til på port 465. Fra starter i klartekst og skifter med STARTTLS, som port 587 forventer.",
1581
+ "label": "Implicit TLS"
1582
+ },
1583
+ "senders": {
1584
+ "add": "Tilføj afsender",
1585
+ "address": "Adresse",
1586
+ "error": "Indtast en e-mailadresse.",
1587
+ "heading": "Afsendere",
1588
+ "helper": "Adresser, en e-mail må sendes fra. SMTP-afsenderadressen er altid tilgængelig.",
1589
+ "implicit": "SMTP-afsenderadresse",
1590
+ "name": "Visningsnavn",
1591
+ "remove": "Fjern afsender",
1592
+ "review": "Afsendere"
1593
+ },
1594
+ "unconfigured": "Der er ikke opsat nogen mailserver, så Adminium kan ikke sende nulstilling af adgangskode, invitationer eller planlagte rapporter.",
1595
+ "user": {
1596
+ "helper": "Lad feltet stå tomt, hvis relayet ikke kræver login.",
1597
+ "label": "Brugernavn"
1598
+ }
1076
1599
  },
1077
- "confirm": {
1078
- "close": "Close",
1079
- "disconnectTitle": "Disconnect this add-on",
1080
- "uninstallTitle": "Uninstall this add-on",
1081
- "discardTitle": "Discard this download",
1082
- "disconnectBody": "Its keys are deleted and it stops making calls. Every table and every row it created stays exactly as it is, and you can reconnect at any time.",
1083
- "uninstallBody": "Its keys are deleted and its files are removed from this server. Every table and every row it created stays exactly as it is. You can install it again later.",
1084
- "discardBody": "The downloaded files are deleted. Nothing was installed, so nothing else changes — you can download it again whenever you like.",
1085
- "cancel": "Cancel",
1086
- "disconnect": "Disconnect",
1087
- "uninstall": "Uninstall",
1088
- "discard": "Discard"
1600
+ "identity": {
1601
+ "appName": {
1602
+ "error": "Angiv et navn på højst 60 tegn.",
1603
+ "helper": "Vises i sidepanelet, browsertitlen og e-mails.",
1604
+ "label": "Applikationsnavn"
1605
+ },
1606
+ "heading": "Arbejdsområdets identitet",
1607
+ "logo": {
1608
+ "badType": "Vælg et PNG-, JPEG-, WebP-, GIF- eller SVG-billede.",
1609
+ "drop": "Slip et billede her",
1610
+ "helper": "PNG, JPEG, WebP, GIF eller SVG på op til 1 MB. Erstatter det indbyggede mærke overalt.",
1611
+ "label": "Logo",
1612
+ "remove": "Fjern",
1613
+ "removed": "Logo fjernet",
1614
+ "replace": "Erstat logo",
1615
+ "tooLarge": "Billedet er større end 1 MB.",
1616
+ "undo": "Fortryd",
1617
+ "upload": "Upload logo",
1618
+ "uploaded": "Logo opdateret"
1619
+ },
1620
+ "showVersion": {
1621
+ "helper": "Buildnummeret ved siden af logoet. Slået fra skjuler, hvilken version du kører.",
1622
+ "label": "Version i sidepanelet"
1623
+ }
1089
1624
  },
1090
- "upgradeNote": "Upgrading keeps the hosts an add-on is attached to and the connection it already has.",
1091
- "job": {
1092
- "title": "Downloading",
1093
- "body": "Fetching and verifying. Nothing is installed until you say so.",
1094
- "failed": "The download did not finish. Nothing was installed."
1625
+ "pagesCard": {
1626
+ "body": "Tilføj, rediger og slet sider, skift hvad hver enkelt viser, og omarranger sidepanelet.",
1627
+ "cta": "Administrer sider",
1628
+ "heading": "Sider"
1095
1629
  },
1096
- "veto": {
1097
- "title": "This deployment cannot browse online",
1098
- "body": "The setting is saved, but network features are off for this server and that wins. Downloaded add-ons still work, and you can still upload one yourself."
1630
+ "publicApiCard": {
1631
+ "body": "Lad dine egne kunde- eller medarbejdervendte sider læse denne database gennem et scope, du definerer.",
1632
+ "cta": "Åbn offentligt API",
1633
+ "heading": "Offentligt API"
1099
1634
  },
1100
- "sideload": {
1101
- "title": "Upload a package",
1102
- "hint": "For a server with no internet. It is checked exactly as a download would be, so it needs the hash that came with it.",
1103
- "file": "Package file (.tgz)",
1104
- "key": "Add-on key",
1105
- "version": "Version",
1106
- "sha": "Integrity (sha512-…)",
1107
- "shaHint": "The `integrity` value `npm pack --json` printed. The upload is refused if the bytes do not match.",
1108
- "submit": "Upload"
1109
- }
1110
- },
1111
- "pages": {
1112
- "title": "Sider",
1113
- "subtitle": "Tilføj, rediger og organiser din apps sider — og den rækkefølge de vises i sidepanelet.",
1114
- "createButton": "Ny side",
1115
- "loadFailed": {
1116
- "title": "Siderne kunne ikke indlæses",
1117
- "body": "Sidestyring kræver tilladelsen “Administrer sider”. Bed en administrator om at give den til en af dine roller."
1635
+ "review": {
1636
+ "cancel": "Annuller",
1637
+ "change": "{before} {after}",
1638
+ "close": "Luk",
1639
+ "confirm": "Gem ændringer",
1640
+ "hidden": "Skjult",
1641
+ "off": "Fra",
1642
+ "on": "Til",
1643
+ "shown": "Vist",
1644
+ "subtitle": "Gennemgå dine ændringer, før du gemmer.",
1645
+ "title": "Gem arbejdsområdeindstillinger"
1646
+ },
1647
+ "save": "Gem ændringer",
1648
+ "saveFailed": "Arbejdsområdeindstillingerne kunne ikke gemmes. Prøv igen.",
1649
+ "saved": "Arbejdsområdeindstillinger opdateret",
1650
+ "security": {
1651
+ "allowSignup": {
1652
+ "desc": "Alle kan oprette en konto slået fra er arbejdsområdet kun invitation.",
1653
+ "label": "Tillad selvregistrering"
1654
+ },
1655
+ "heading": "Sikkerhed",
1656
+ "passwordMin": {
1657
+ "error": "Mellem {min, number} og {max, number} tegn.",
1658
+ "label": "Minimal adgangskodelængde"
1659
+ },
1660
+ "require2fa": {
1661
+ "desc": "Alle medlemmer skal aktivere 2FA for at logge ind.",
1662
+ "label": "Kræv tofaktorgodkendelse",
1663
+ "note": "Vejledende, ikke en spærring: medlemmer uden 2FA sendes til opsætningen og kan ikke slå den fra igen, men deres login blokeres aldrig, og API-nøgler er ikke omfattet."
1664
+ },
1665
+ "sessionTtl": {
1666
+ "error": "Mellem {min, number} og {max, number} timer.",
1667
+ "label": "Sessionslevetid (timer)"
1668
+ }
1118
1669
  },
1119
- "tab": {
1120
- "pages": "Alle sider",
1121
- "sidebar": "Rækkefølge i sidepanelet"
1670
+ "storageCard": {
1671
+ "body": "Vælg hvor uploadede filer, eksporter og andre gemte bytes bor — denne server, en bucket eller din egen server.",
1672
+ "cta": "Åbn lagring",
1673
+ "heading": "Lagring"
1122
1674
  },
1123
- "list": {
1124
- "title": "Sider",
1125
- "count": "{count, plural, one {# side} other {# sider}}"
1675
+ "subtitle": "Identitet, sikkerhed og destruktive handlinger for dette arbejdsområde.",
1676
+ "superAdminOnly": "Kun en superadmin kan ændre arbejdsområdets identitet og sikkerhedsindstillinger.",
1677
+ "superAdminOnlyTitle": "Superadmin påkrævet",
1678
+ "title": "Arbejdsområdeindstillinger",
1679
+ "translationsCard": {
1680
+ "body": "Omformulér hvad som helst i Adminium, vælg hvilke sprog folk kan vælge, og tilføj dine egne.",
1681
+ "cta": "Åbn oversættelser",
1682
+ "heading": "Sprog og oversættelser"
1683
+ }
1684
+ },
1685
+ "source": {
1686
+ "dsn": {
1687
+ "helper": "postgres://bruger:kodeord@vaert:5432/database — mysql:// og sqlite: virker også.",
1688
+ "incomplete": "Tilføj vært og database, f.eks. postgres://user@host:5432/db",
1689
+ "invalidScheme": "Ukendt skema — forventede postgres://, mysql://, mariadb:// eller sqlite:",
1690
+ "label": "Forbindelsesstreng",
1691
+ "quickFill": "Hurtig udfyldning:"
1126
1692
  },
1127
- "empty": {
1128
- "title": "Ingen sider endnu",
1129
- "body": "Forbind en database for at generere sider automatisk, eller opret en i hånden."
1693
+ "engine": {
1694
+ "label": "Databasemotor",
1695
+ "mysql": "MySQL / MariaDB",
1696
+ "postgres": "PostgreSQL",
1697
+ "sqlite": "SQLite"
1130
1698
  },
1131
- "status": {
1132
- "live": "Aktiv",
1133
- "hidden": "Skjult"
1699
+ "fields": {
1700
+ "database": "Database",
1701
+ "host": "Vært",
1702
+ "password": "Adgangskode",
1703
+ "port": "Port",
1704
+ "preview": "Forhåndsvisning af forbindelsesstreng:",
1705
+ "ssl": "SSL-tilstand",
1706
+ "user": "Bruger"
1134
1707
  },
1135
- "origin": {
1136
- "generated": "Genereret",
1137
- "manifest": "Tilføjelse",
1138
- "llm": "Assistent",
1139
- "system": "System",
1140
- "user": "Egen"
1708
+ "file": {
1709
+ "columns": "kolonner",
1710
+ "detectedAs": "Registreret: {format}",
1711
+ "dropHint": "SQL DDL / pg_dump, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, Django-modeller, Adminium JSON",
1712
+ "dropTitle": "Slip din skemafil her, eller gennemse",
1713
+ "errorTitle": "Kunne ikke fortolke filen",
1714
+ "moreWarnings": "+{count} flere advarsler — den fulde liste vises i analysetrinnet.",
1715
+ "parseFailed": "Vi kunne ikke fortolke den fil. Hvis auto-genkendelsen gættede forkert, så vælg formatet eksplicit og prøv igen.",
1716
+ "parsing": "Læser den uploadede skemafil…",
1717
+ "pitch": "Ingen databaseforbindelse påkrævet — vi fortolker din skemafil og bygger de samme dashboards.",
1718
+ "requestFailed": "Upload mislykkedes — tjek din forbindelse og prøv igen.",
1719
+ "tables": "tabeller",
1720
+ "unsupported": "Formatet blev ikke genkendt — SQL DDL, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, Django-modeller og Adminium JSON understøttes. Vælg ét eksplicit og prøv igen.",
1721
+ "warnings": "advarsler"
1141
1722
  },
1142
- "row": {
1143
- "menu": "Handlinger for {title}"
1723
+ "format": {
1724
+ "auto": "Registrér automatisk",
1725
+ "django": "Django models.py",
1726
+ "drizzle": "Drizzle ORM",
1727
+ "helper": "Lad automatisk registrering være slået til, medmindre den tager fejl.",
1728
+ "json": "Adminium JSON",
1729
+ "label": "Skemaformat",
1730
+ "prisma": "Prisma-skema",
1731
+ "rails": "Rails schema.rb",
1732
+ "sequelize": "Sequelize-modeller",
1733
+ "sql": "SQL DDL / pg_dump",
1734
+ "typeorm": "TypeORM-entiteter"
1144
1735
  },
1145
- "action": {
1146
- "edit": "Rediger side",
1147
- "duplicate": "Dupliker",
1148
- "hide": "Skjul fra sidepanelet",
1149
- "show": "Vis i sidepanelet",
1150
- "delete": "Slet side"
1736
+ "mode": {
1737
+ "dsn": "Forbindelsesstreng",
1738
+ "fields": "Enkelte felter",
1739
+ "file": "Skemafil"
1151
1740
  },
1152
- "create": {
1153
- "title": "Ny side",
1154
- "failed": "Siden kunne ikke oprettes",
1155
- "submit": "Opret side",
1156
- "subtitle": "Vælg hvad siden viser, og hvordan den ser ud. Forhåndsvisningen følger dine valg."
1741
+ "modeLabel": "Kildeinputtilstand",
1742
+ "name": "Forbindelsesnavn",
1743
+ "namePlaceholder": "Produktions-Postgres",
1744
+ "readOnlyRole": {
1745
+ "body": "Under opsætningen læser Adminium kun skemametadata aldrig dine rækker. Vi anbefaler en dedikeret bruger med kun SELECT-rettigheder; hvor Adminium gemmer sine egne tabeller, bestemmer du i trinnet om metadatalagring.",
1746
+ "title": "Brug en skrivebeskyttet rolle"
1157
1747
  },
1158
- "duplicate": {
1159
- "title": "Dupliker side",
1160
- "failed": "Siden kunne ikke duplikeres",
1161
- "submit": "Dupliker"
1748
+ "sqlite": {
1749
+ "file": "Sti til databasefil",
1750
+ "helper": "SQLite er en fil, ikke en server — angiv den absolutte sti på den maskine, der kører Adminium."
1162
1751
  },
1752
+ "subtitle": "Peg Adminium mod en database, så genererer vi et admin-dashboard ud fra dens skema.",
1753
+ "title": "Forbind din database"
1754
+ },
1755
+ "storage": {
1756
+ "actionFailed": "Det virkede ikke",
1757
+ "add": "Tilføj en destination",
1758
+ "availableOnDisk": "{size} tilgængelig på denne disk",
1759
+ "default": "Standard",
1760
+ "defaultBlockedByDisabled": "En destination, der er slået fra, kan ikke være standard. Slå den til først.",
1163
1761
  "delete": {
1164
- "title": "Slet denne side?",
1165
- "body": "Dette kan ikke fortrydes. Gemte visninger og personlige layouts på denne side slettes for alle.",
1166
- "bodyGenerated": "Denne side stammer fra skemagenerering, den kommer igen næste gang du genererer. Gemte visninger og personlige layouts slettes for alle.",
1167
- "prompt": "Skriv {slug} for at bekræfte",
1168
- "confirm": "Slet side"
1762
+ "blockedBody": "{name} indeholder stadig {count, plural, one {# fil} other {# filer}}. Flyt først indholdet til en anden destination, og slet så denne.",
1763
+ "blockedTitle": "Denne destination indeholder stadig filer",
1764
+ "body": "Adminium glemmer {name} og dens loginoplysninger. Intet af det, der er gemt i den, røres selve bucketen eller serveren er din, og filer, der stadig er registreret på den, afviser sletningen.",
1765
+ "confirm": "Slet destination",
1766
+ "title": "Slet denne destination"
1767
+ },
1768
+ "deleteButton": "Slet",
1769
+ "disable": "Slå fra",
1770
+ "disabled": "Slået fra",
1771
+ "driver": {
1772
+ "local": "En sti på denne maskine",
1773
+ "s3": "S3-kompatibel bucket",
1774
+ "webdav": "WebDAV-server"
1775
+ },
1776
+ "edit": "Rediger",
1777
+ "editor": {
1778
+ "createTitle": "Tilføj en destination",
1779
+ "editTitle": "Rediger destination",
1780
+ "subtitle": "Adminium læser og skriver gennem denne destination på dine vegne; det er infrastruktur, du selv styrer."
1169
1781
  },
1782
+ "enable": "Slå til",
1170
1783
  "field": {
1171
- "title": "Titel",
1172
- "titleHint": "Vises i sidepanelet og i sidens overskrift.",
1173
- "slug": "Sideadresse",
1174
- "slugHint": "Små bogstaver, tal og bindestreger. Kun den sidste del resten af adressen tilføjer vi.",
1175
- "slugTaken": "En anden side bruger allerede denne adresse.",
1176
- "slugWarning": "Ændrer du adressen, går eksisterende links og bogmærker til siden i stykker.",
1177
- "template": "Skabelon",
1178
- "templateHint": "Afgør hvad siden kan indeholde. Kan ændres senere.",
1179
- "group": "Gruppe i sidepanelet",
1180
- "groupHint": "Hvilken del af sidepanelet den vises i.",
1181
- "icon": "Ikon",
1182
- "iconHint": "Vises ved siden af sidens navn i sidepanelet.",
1183
- "visible": "Vis i sidepanelet",
1184
- "visibleHint": "En skjult side kan stadig tilgås på sin URL af alle med linket.",
1185
- "table": "Tabel",
1186
- "tableCreateHint": "Tabellen som denne side læser fra. Vælg en nu, så er siden klar til brug; lad den stå tom, og du kan knytte den senere.",
1187
- "tableNone": "Ikke knyttet",
1188
- "tableNeedsConnection": "Vælg en datakilde først.",
1189
- "connection": "Datakilde",
1190
- "connectionNone": "Ingen",
1191
- "iconPick": "Vælg sidens ikon",
1192
- "padding": "Sidemargen",
1193
- "width": "Indholdsbredde",
1194
- "widthHint": "Hvor bred sidens indholdskolonne blive en stor skærm."
1784
+ "accessKeyId": "Adgangsnøgle-id",
1785
+ "bucket": "Bucket",
1786
+ "driver": "Type",
1787
+ "driverLocked": "Ændrer du typen en destination, der allerede indeholder filer, kan de filer ikke længere nås.",
1788
+ "endpoint": "Endpoint",
1789
+ "endpointDerived": "Lad feltet stå tomt for AWS selv endpointet følger af regionen.",
1790
+ "name": "Navn",
1791
+ "namePlaceholder": "Bucket til uploads",
1792
+ "password": "Adgangskode",
1793
+ "pathStyle": "Stibaseret adressering",
1794
+ "pathStyleToggle": "Adressér bucketen som en sti frem for et værtsnavn",
1795
+ "prefix": "Præfiks",
1796
+ "prefixHelper": "En mappe inde i destinationen. To destinationer på samme bucket, der kun adskiller sig her, deler bucketen uden at dele navnerum.",
1797
+ "preset": "Udbyder",
1798
+ "presetHelper": "Udfylder endpoint, region og adresseringsform. Alt, hvad udbyderen ikke kan vide om din konto, står tomt, så du selv kan skrive det.",
1799
+ "publicBaseUrl": "Offentlig basis-URL",
1800
+ "publicBaseUrlHelper": "Valgfri. Hvor disse objekter kan læses uden Adminium — et CDN foran en offentlig bucket. Bruges kun, når en kolonne gemmer et link.",
1801
+ "region": "Region",
1802
+ "root": "Mappe",
1803
+ "rootHelper": "En absolut sti, som denne server kan skrive til — et monteret drev eller et netværksdrev. Ikke standardmappen, som allerede er den første i listen.",
1804
+ "secretAccessKey": "Hemmelig adgangsnøgle",
1805
+ "secretKept": "Der er gemt en nøgle. Lad begge felter stå tomme for at beholde den; udfyld begge for at erstatte den.",
1806
+ "url": "Samlings-URL",
1807
+ "urlHelper": "Den samling, Adminium skriver i, sådan som din server offentliggør den.",
1808
+ "username": "Brugernavn"
1809
+ },
1810
+ "fileCount": "{count, plural, one {# fil} other {# filer}}",
1811
+ "kind": {
1812
+ "archive": "Arkiverede batches fra auditloggen",
1813
+ "branding": "Arbejdsområdets logo",
1814
+ "export": "Filer fra dataeksporter",
1815
+ "import": "Uploadede CSV-filer og deres fejlrapporter",
1816
+ "schema": "Importerede skemafiler",
1817
+ "upload": "Filer vedhæftet poster"
1195
1818
  },
1196
- "editor": {
1197
- "title": "Rediger side",
1198
- "save": "Gem ændringer",
1199
- "saveFailed": "Ændringerne kunne ikke gemmes",
1200
- "openPage": "Åbn side",
1201
- "generated": {
1202
- "title": "Denne side blev genereret ud fra dit skema",
1203
- "body": "Dine ændringer bevares, når du genererer igen — siden markeres som redigeret og røres ikke. En sletning holder derimod kun, indtil næste generering opretter den på ny."
1204
- },
1205
- "contentUnavailable": "Sidens indhold kunne ikke indlæses",
1206
- "contentUnavailableBody": "Oplysningerne ovenfor kan stadig gemmes.",
1207
- "contentInvalid": "Denne sides konfiguration kan ikke læses",
1208
- "contentInvalidBody": "Den er skrevet af en nyere version, eller den er ugyldig. Generer siden igen, eller slet den.",
1209
- "data": "Data",
1210
- "schemaFailed": "Tabellerne kunne ikke vises",
1211
- "schemaFailedBody": "Denne forbindelse er måske ikke analyseret endnu. Kør introspektion fra Studio → Dataforbindelser.",
1212
- "notBindable": "Denne skabelon er ikke knyttet til én tabel",
1213
- "notBindableBody": "Dens indhold bygges widget for widget i stedet. Åbn siden, og brug “Rediger” til at tilføje dem.",
1214
- "recompose": "Denne side bliver bygget om",
1215
- "recomposeBody": "Når du gemmer, erstattes indholdet af et nyt layout for skabelonen og tabellen ovenfor. Kolonnetilpasninger og widget-ændringer på siden går tabt.",
1216
- "missing": "Denne side findes ikke længere",
1217
- "missingBody": "Den er måske slettet eller fjernet af en generering.",
1218
- "details": "Detaljer",
1219
- "itemsPending": "Gem først ændringen ovenfor — sidens indhold bygges op igen ud fra den nye skabelon og tabel.",
1220
- "columns": "Kolonner",
1221
- "appearance": "Udseende"
1819
+ "list": {
1820
+ "subtitle": "Nye filer havner i standarddestinationen. Eksisterende filer bliver, hvor de er, indtil du flytter dem.",
1821
+ "title": "Destinationer"
1222
1822
  },
1223
- "sidebar": {
1224
- "help": "Omarranger sider inden for en gruppe, eller flyt en til en anden gruppe. Ændringerne gælder for alle.",
1225
- "discard": "Kassér",
1226
- "save": "Gem rækkefølge",
1227
- "saveFailed": "Den nye rækkefølge kunne ikke gemmes",
1228
- "emptyGroup": "Ingen sider i denne gruppe.",
1229
- "moveUp": "Flyt {title} op",
1230
- "moveDown": "Flyt {title} ned",
1231
- "moveTo": "Flyt {title} til en gruppe",
1232
- "ungrouped": {
1233
- "title": "Nogle sider hører ikke til nogen gruppe",
1234
- "body": "Siderne virker på deres URL, men vises ingen steder i sidepanelet. Åbn hver enkelt og vælg en gruppe."
1235
- }
1823
+ "loadFailed": {
1824
+ "forbidden": "At ændre hvor filer gemmes kræver tilladelsen “Administrer lagring”. Bed en administrator om at give den til en af dine roller.",
1825
+ "title": "Destinationerne kunne ikke indlæses"
1236
1826
  },
1237
- "columns": {
1238
- "help": "Træk for at omarrangere kolonner, omdøb deres overskrifter, og vælg hvilke der vises i tabellen.",
1239
- "empty": "Ingen kolonner endnu — tilføj dem nedenfor.",
1240
- "pk": "Nøgle",
1241
- "pii": "PII",
1242
- "header": "Overskrift for {name}",
1243
- "shown": "Vist",
1244
- "toggle": "Vis {name} i tabellen",
1245
- "dragHandle": "Flyt {name}",
1246
- "remove": "Fjern {name}",
1247
- "addOpen": "Tilføj kolonne",
1248
- "addTitle": "Tilføj en kolonne",
1249
- "addSearch": "Søg i kolonner…",
1250
- "addFromTable": "Fra {table}",
1251
- "addFromLinked": "Fra linkede tabeller",
1252
- "addLinkedHelp": "Vis en værdi fra den tabel, som en linkkolonne peger på.",
1253
- "addVia": "via {column}",
1254
- "addNoMatches": "Ingen kolonner matcher “{query}”.",
1255
- "followColumn": "Følg {name}",
1256
- "addLinkedFrom": "Tabeller, der linker hertil",
1257
- "addLinkedFromHelp": "Tilføj et antal af de rækker, der peger på hver post.",
1258
- "countBadge": "Antal",
1259
- "lookupBadge": "Sammenkædet",
1260
- "lookupBack": "Tilbage",
1261
- "lookupBrowse": "Vælg hvad der skal vises fra {table}",
1262
- "lookupBroken": "Kæden kan ikke længere følges",
1263
- "lookupBrokenBody": "Skemaet ændrede sig undervejs. Start kæden forfra.",
1264
- "schemaUnavailable": "Databasens kolonner kunne ikke hentes, så kolonner kan ikke tilføjes her.",
1265
- "none": {
1266
- "title": "Denne side har ingen kolonner endnu",
1267
- "body": "Kolonner læses fra tabellen, når siden genereres. Knyt siden til en tabel og generer igen for at udfylde dem."
1268
- }
1827
+ "localDisk": "Denne servers disk",
1828
+ "move": {
1829
+ "from": "Fra",
1830
+ "kinds": "Begræns til",
1831
+ "kindsHelp": "Lad alt være uafkrydset for at flytte dem alle. Uploads er de filer, folk vedhæfter; resten er artefakter, Adminium selv har lavet.",
1832
+ "open": "Flyt filer…",
1833
+ "start": "Start flytningen",
1834
+ "startedBody": "Den kører i baggrunden som job {jobId} og fortsætter, selvom du forlader siden. Tallene nedenfor ændrer sig, efterhånden som filerne ankommer — genindlæs for at se dem.",
1835
+ "startedTitle": "Flytningen er gået i gang",
1836
+ "subtitle": "Kopierer hver fil fra én destination til en anden og glemmer så den gamle kopi. Downloads virker hele vejen igennem.",
1837
+ "title": "Flyt filer",
1838
+ "to": "Til"
1839
+ },
1840
+ "preset": {
1841
+ "aws": "AWS S3",
1842
+ "b2": "Backblaze B2",
1843
+ "minio": "MinIO eller en anden S3-kompatibel server",
1844
+ "r2": "Cloudflare R2",
1845
+ "spaces": "DigitalOcean Spaces",
1846
+ "tigris": "Tigris",
1847
+ "wasabi": "Wasabi"
1848
+ },
1849
+ "save": "Gem destination",
1850
+ "secret": {
1851
+ "partialBody": "Udfyld begge felter for at erstatte de gemte loginoplysninger, eller ryd begge for at beholde dem. Gemmer du kun det ene, bliver de gamle stiltiende stående.",
1852
+ "partialTitle": "Halve loginoplysninger duer ikke"
1853
+ },
1854
+ "setDefault": "Gør til standard",
1855
+ "status": {
1856
+ "error": "Kan ikke nås",
1857
+ "ok": "Kan nås",
1858
+ "untested": "Ikke testet"
1269
1859
  },
1270
- "icon": {
1271
- "none": "Vælg et ikon",
1272
- "search": "Søg efter ikoner",
1273
- "noMatches": "Ingen ikoner matcher den søgning."
1860
+ "subtitle": "Hvor denne instans opbevarer uploadede filer, eksporter og andre gemte bytes.",
1861
+ "test": {
1862
+ "button": "Test",
1863
+ "failed": "Denne destination kunne ikke nås",
1864
+ "ok": "Nået på {ms} ms",
1865
+ "unreachable": "Testen kunne ikke køres"
1274
1866
  },
1275
- "preview": {
1276
- "untitled": "Side uden titel",
1277
- "note": "En illustration af layoutet, ikke dine data. Den rigtige side fyldes ud, når den er gemt."
1867
+ "title": "Lagring",
1868
+ "usedBytes": "{size} brugt"
1869
+ },
1870
+ "tables": {
1871
+ "emptyFilter": "Ingen tabeller matcher dit filter.",
1872
+ "highVolume": "stor volumen",
1873
+ "highVolumeNote": "Tabeller med over 100.000 rækker starter fravalgt — driftstabeller hører sjældent hjemme i et dashboard.",
1874
+ "importNoCounts": "Skemafiler indeholder ingen rækkeantal — kolonnen viser —, indtil en live database er forbundet.",
1875
+ "joinHidden": "{count} join-/systemtabeller er skjult på forhånd — de driver stadig mange-til-mange-relationer.",
1876
+ "listLabel": "Tabeller der kan medtages",
1877
+ "pii": "PII",
1878
+ "search": "Filtrér tabeller…",
1879
+ "subtitle": "Vælg hvilke der skal med. Du kan altid ændre det.",
1880
+ "title": "Vælg dine tabeller"
1881
+ },
1882
+ "test": {
1883
+ "errorTitle": "Forbindelsen mislykkedes",
1884
+ "hint": {
1885
+ "auth": "Godkendelse mislykkedes — tjek brugernavn og adgangskode i din DSN.",
1886
+ "hostUnreachable": "Vært utilgængelig — tjek værtsnavn og port, og at databasen accepterer forbindelser fra denne maskine (tilføj vores IP'er til tilladelseslisten).",
1887
+ "metaPlacement": "Denne kilde kan ikke huse Adminiums metatabeller — fortsæt med en separat metadatabase.",
1888
+ "permission": "Rollen fik forbindelse, men mangler skema-læserettigheder — giv USAGE på skemaet til din introspektionsrolle.",
1889
+ "timeout": "Databasen svarede ikke i tide — tjek netværkssti og belastning, og prøv igen.",
1890
+ "tls": "TLS-forhandling mislykkedes — prøv sslmode=require, eller upload det CA-certifikat din server forventer.",
1891
+ "unknown": "Forbindelsen mislykkedes — kontrollér DSN'en og prøv igen."
1278
1892
  },
1279
- "padding": {
1280
- "default": "Standard for denne skabelon",
1281
- "none": "Ingen",
1282
- "standard": "Standard (28 × 24)",
1283
- "custom": "Tilpasset…",
1284
- "x": "Sider (px)",
1285
- "y": "Top og bund (px)"
1893
+ "log": {
1894
+ "connectFailed": "Forbindelsen mislykkedes.",
1895
+ "connected": "Forbundet ({latency} ms) · skrivebeskyttet introspektion",
1896
+ "connecting": "Etablerer sikker forbindelse…",
1897
+ "detected": "Registrerede {tables} tabeller · {columns} kolonner",
1898
+ "found": "Fandt {tables} tabeller · {columns} kolonner",
1899
+ "jobFailed": "Introspektion mislykkedes.",
1900
+ "mapping": "Kortlægger kolonnetyper → inputwidgets",
1901
+ "moreWarnings": "+{count} flere parser-advarsler",
1902
+ "networkFailed": "Anmodningen mislykkedes — tjek din forbindelse og prøv igen.",
1903
+ "parsingFile": "Fortolker {file}…",
1904
+ "piiDone": "PII-scanning fuldført — {count} kolonner maskeret som standard",
1905
+ "piiDoneUnknown": "PII-scanning fuldført",
1906
+ "piiScan": "Scanner efter PII-kolonner…",
1907
+ "readingFile": "Læser den uploadede skemafil…",
1908
+ "readingSchema": "Læser skema: public",
1909
+ "ready": "Klar",
1910
+ "relations": "Registrerer relationer…"
1286
1911
  },
1287
- "width": {
1288
- "default": "Standard for denne skabelon",
1289
- "narrow": "Smal (720 px)",
1290
- "content": "Indhold (900 px)",
1291
- "page": "Side (1080 px)",
1292
- "dash": "Dashboard (1320 px)",
1293
- "wide": "Bred (1800 px)",
1294
- "full": "Fuld bredde (ingen grænse)"
1295
- }
1912
+ "logLabel": "Introspektionslog",
1913
+ "retry": "Prøv igen",
1914
+ "subtitle": "Introspekterer tabeller, kolonner og relationer. Det tager et par sekunder.",
1915
+ "title": "Analyserer dit skema",
1916
+ "trust": "Vi læser kun dit skema og dine data. Intet ændres."
1917
+ },
1918
+ "title": "Studio",
1919
+ "wizard": {
1920
+ "back": "Tilbage",
1921
+ "bridgeAppliedBody": "Overdraget fra adminium.dev af din browser — den gik direkte til denne maskine og blev aldrig uploadet. Tjek den nedenfor, og fortsæt.",
1922
+ "bridgeAppliedTitle": "Forbindelsesstreng modtaget",
1923
+ "bridgeFailedBody": "Den er allerede brugt eller udløbet. Indsæt i stedet din forbindelsesstreng nedenfor.",
1924
+ "bridgeFailedTitle": "Denne overdragelse kunne ikke bruges",
1925
+ "continue": "Fortsæt",
1926
+ "persistFailed": "Dit tabelvalg kunne ikke gemmes — prøv igen.",
1927
+ "persistFailedTitle": "Kunne ikke gemme",
1928
+ "progress": "Opsætningsforløb",
1929
+ "step": {
1930
+ "enrich": "Berig",
1931
+ "generate": "Generér",
1932
+ "intent": "Formål",
1933
+ "meta": "Metalagring",
1934
+ "source": "Kilde",
1935
+ "tables": "Tabeller",
1936
+ "test": "Analysér"
1937
+ },
1938
+ "title": "Ny forbindelse"
1296
1939
  }
1297
1940
  };
1298
1941
  //# sourceMappingURL=studio.js.map