@adminiumjs/i18n 0.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/LICENSE +661 -0
  2. package/dist/create-i18n.d.ts +48 -0
  3. package/dist/create-i18n.d.ts.map +1 -0
  4. package/dist/create-i18n.js +98 -0
  5. package/dist/create-i18n.js.map +1 -0
  6. package/dist/format/index.d.ts +70 -0
  7. package/dist/format/index.d.ts.map +1 -0
  8. package/dist/format/index.js +217 -0
  9. package/dist/format/index.js.map +1 -0
  10. package/dist/icu-format.d.ts +17 -0
  11. package/dist/icu-format.d.ts.map +1 -0
  12. package/dist/icu-format.js +52 -0
  13. package/dist/icu-format.js.map +1 -0
  14. package/dist/index.d.ts +16 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +12 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/locales.d.ts +99 -0
  19. package/dist/locales.d.ts.map +1 -0
  20. package/dist/locales.js +55 -0
  21. package/dist/locales.js.map +1 -0
  22. package/dist/react.d.ts +26 -0
  23. package/dist/react.d.ts.map +1 -0
  24. package/dist/react.js +61 -0
  25. package/dist/react.js.map +1 -0
  26. package/dist/resources/ar-eg/common.d.ts +1964 -0
  27. package/dist/resources/ar-eg/common.d.ts.map +1 -0
  28. package/dist/resources/ar-eg/common.js +1963 -0
  29. package/dist/resources/ar-eg/common.js.map +1 -0
  30. package/dist/resources/ar-eg/errors.d.ts +45 -0
  31. package/dist/resources/ar-eg/errors.d.ts.map +1 -0
  32. package/dist/resources/ar-eg/errors.js +44 -0
  33. package/dist/resources/ar-eg/errors.js.map +1 -0
  34. package/dist/resources/ar-eg/generated.d.ts +20 -0
  35. package/dist/resources/ar-eg/generated.d.ts.map +1 -0
  36. package/dist/resources/ar-eg/generated.js +19 -0
  37. package/dist/resources/ar-eg/generated.js.map +1 -0
  38. package/dist/resources/ar-eg/studio.d.ts +18 -0
  39. package/dist/resources/ar-eg/studio.d.ts.map +1 -0
  40. package/dist/resources/ar-eg/studio.js +17 -0
  41. package/dist/resources/ar-eg/studio.js.map +1 -0
  42. package/dist/resources/ar-eg/ui.d.ts +996 -0
  43. package/dist/resources/ar-eg/ui.d.ts.map +1 -0
  44. package/dist/resources/ar-eg/ui.js +995 -0
  45. package/dist/resources/ar-eg/ui.js.map +1 -0
  46. package/dist/resources/cs-cz/common.d.ts +1964 -0
  47. package/dist/resources/cs-cz/common.d.ts.map +1 -0
  48. package/dist/resources/cs-cz/common.js +1963 -0
  49. package/dist/resources/cs-cz/common.js.map +1 -0
  50. package/dist/resources/cs-cz/errors.d.ts +45 -0
  51. package/dist/resources/cs-cz/errors.d.ts.map +1 -0
  52. package/dist/resources/cs-cz/errors.js +44 -0
  53. package/dist/resources/cs-cz/errors.js.map +1 -0
  54. package/dist/resources/cs-cz/generated.d.ts +20 -0
  55. package/dist/resources/cs-cz/generated.d.ts.map +1 -0
  56. package/dist/resources/cs-cz/generated.js +19 -0
  57. package/dist/resources/cs-cz/generated.js.map +1 -0
  58. package/dist/resources/cs-cz/studio.d.ts +18 -0
  59. package/dist/resources/cs-cz/studio.d.ts.map +1 -0
  60. package/dist/resources/cs-cz/studio.js +17 -0
  61. package/dist/resources/cs-cz/studio.js.map +1 -0
  62. package/dist/resources/cs-cz/ui.d.ts +996 -0
  63. package/dist/resources/cs-cz/ui.d.ts.map +1 -0
  64. package/dist/resources/cs-cz/ui.js +995 -0
  65. package/dist/resources/cs-cz/ui.js.map +1 -0
  66. package/dist/resources/da-dk/common.d.ts +1964 -0
  67. package/dist/resources/da-dk/common.d.ts.map +1 -0
  68. package/dist/resources/da-dk/common.js +1963 -0
  69. package/dist/resources/da-dk/common.js.map +1 -0
  70. package/dist/resources/da-dk/errors.d.ts +45 -0
  71. package/dist/resources/da-dk/errors.d.ts.map +1 -0
  72. package/dist/resources/da-dk/errors.js +44 -0
  73. package/dist/resources/da-dk/errors.js.map +1 -0
  74. package/dist/resources/da-dk/generated.d.ts +20 -0
  75. package/dist/resources/da-dk/generated.d.ts.map +1 -0
  76. package/dist/resources/da-dk/generated.js +19 -0
  77. package/dist/resources/da-dk/generated.js.map +1 -0
  78. package/dist/resources/da-dk/studio.d.ts +18 -0
  79. package/dist/resources/da-dk/studio.d.ts.map +1 -0
  80. package/dist/resources/da-dk/studio.js +17 -0
  81. package/dist/resources/da-dk/studio.js.map +1 -0
  82. package/dist/resources/da-dk/ui.d.ts +996 -0
  83. package/dist/resources/da-dk/ui.d.ts.map +1 -0
  84. package/dist/resources/da-dk/ui.js +995 -0
  85. package/dist/resources/da-dk/ui.js.map +1 -0
  86. package/dist/resources/de-de/common.d.ts +1964 -0
  87. package/dist/resources/de-de/common.d.ts.map +1 -0
  88. package/dist/resources/de-de/common.js +1963 -0
  89. package/dist/resources/de-de/common.js.map +1 -0
  90. package/dist/resources/de-de/errors.d.ts +45 -0
  91. package/dist/resources/de-de/errors.d.ts.map +1 -0
  92. package/dist/resources/de-de/errors.js +44 -0
  93. package/dist/resources/de-de/errors.js.map +1 -0
  94. package/dist/resources/de-de/generated.d.ts +20 -0
  95. package/dist/resources/de-de/generated.d.ts.map +1 -0
  96. package/dist/resources/de-de/generated.js +19 -0
  97. package/dist/resources/de-de/generated.js.map +1 -0
  98. package/dist/resources/de-de/studio.d.ts +18 -0
  99. package/dist/resources/de-de/studio.d.ts.map +1 -0
  100. package/dist/resources/de-de/studio.js +17 -0
  101. package/dist/resources/de-de/studio.js.map +1 -0
  102. package/dist/resources/de-de/ui.d.ts +996 -0
  103. package/dist/resources/de-de/ui.d.ts.map +1 -0
  104. package/dist/resources/de-de/ui.js +995 -0
  105. package/dist/resources/de-de/ui.js.map +1 -0
  106. package/dist/resources/en-us/common.d.ts +1964 -0
  107. package/dist/resources/en-us/common.d.ts.map +1 -0
  108. package/dist/resources/en-us/common.js +1963 -0
  109. package/dist/resources/en-us/common.js.map +1 -0
  110. package/dist/resources/en-us/errors.d.ts +45 -0
  111. package/dist/resources/en-us/errors.d.ts.map +1 -0
  112. package/dist/resources/en-us/errors.js +44 -0
  113. package/dist/resources/en-us/errors.js.map +1 -0
  114. package/dist/resources/en-us/generated.d.ts +20 -0
  115. package/dist/resources/en-us/generated.d.ts.map +1 -0
  116. package/dist/resources/en-us/generated.js +19 -0
  117. package/dist/resources/en-us/generated.js.map +1 -0
  118. package/dist/resources/en-us/studio.d.ts +18 -0
  119. package/dist/resources/en-us/studio.d.ts.map +1 -0
  120. package/dist/resources/en-us/studio.js +17 -0
  121. package/dist/resources/en-us/studio.js.map +1 -0
  122. package/dist/resources/en-us/ui.d.ts +996 -0
  123. package/dist/resources/en-us/ui.d.ts.map +1 -0
  124. package/dist/resources/en-us/ui.js +995 -0
  125. package/dist/resources/en-us/ui.js.map +1 -0
  126. package/dist/resources/fr-fr/common.d.ts +1964 -0
  127. package/dist/resources/fr-fr/common.d.ts.map +1 -0
  128. package/dist/resources/fr-fr/common.js +1963 -0
  129. package/dist/resources/fr-fr/common.js.map +1 -0
  130. package/dist/resources/fr-fr/errors.d.ts +45 -0
  131. package/dist/resources/fr-fr/errors.d.ts.map +1 -0
  132. package/dist/resources/fr-fr/errors.js +44 -0
  133. package/dist/resources/fr-fr/errors.js.map +1 -0
  134. package/dist/resources/fr-fr/generated.d.ts +20 -0
  135. package/dist/resources/fr-fr/generated.d.ts.map +1 -0
  136. package/dist/resources/fr-fr/generated.js +19 -0
  137. package/dist/resources/fr-fr/generated.js.map +1 -0
  138. package/dist/resources/fr-fr/studio.d.ts +18 -0
  139. package/dist/resources/fr-fr/studio.d.ts.map +1 -0
  140. package/dist/resources/fr-fr/studio.js +17 -0
  141. package/dist/resources/fr-fr/studio.js.map +1 -0
  142. package/dist/resources/fr-fr/ui.d.ts +996 -0
  143. package/dist/resources/fr-fr/ui.d.ts.map +1 -0
  144. package/dist/resources/fr-fr/ui.js +995 -0
  145. package/dist/resources/fr-fr/ui.js.map +1 -0
  146. package/dist/resources/index.d.ts +8 -0
  147. package/dist/resources/index.d.ts.map +1 -0
  148. package/dist/resources/index.js +21 -0
  149. package/dist/resources/index.js.map +1 -0
  150. package/dist/resources/lazy.d.ts +20 -0
  151. package/dist/resources/lazy.d.ts.map +1 -0
  152. package/dist/resources/lazy.js +49 -0
  153. package/dist/resources/lazy.js.map +1 -0
  154. package/dist/resources/zh-cn/common.d.ts +1964 -0
  155. package/dist/resources/zh-cn/common.d.ts.map +1 -0
  156. package/dist/resources/zh-cn/common.js +1963 -0
  157. package/dist/resources/zh-cn/common.js.map +1 -0
  158. package/dist/resources/zh-cn/errors.d.ts +45 -0
  159. package/dist/resources/zh-cn/errors.d.ts.map +1 -0
  160. package/dist/resources/zh-cn/errors.js +44 -0
  161. package/dist/resources/zh-cn/errors.js.map +1 -0
  162. package/dist/resources/zh-cn/generated.d.ts +20 -0
  163. package/dist/resources/zh-cn/generated.d.ts.map +1 -0
  164. package/dist/resources/zh-cn/generated.js +19 -0
  165. package/dist/resources/zh-cn/generated.js.map +1 -0
  166. package/dist/resources/zh-cn/studio.d.ts +18 -0
  167. package/dist/resources/zh-cn/studio.d.ts.map +1 -0
  168. package/dist/resources/zh-cn/studio.js +17 -0
  169. package/dist/resources/zh-cn/studio.js.map +1 -0
  170. package/dist/resources/zh-cn/ui.d.ts +996 -0
  171. package/dist/resources/zh-cn/ui.d.ts.map +1 -0
  172. package/dist/resources/zh-cn/ui.js +995 -0
  173. package/dist/resources/zh-cn/ui.js.map +1 -0
  174. package/dist/resources/zh-tw/common.d.ts +1964 -0
  175. package/dist/resources/zh-tw/common.d.ts.map +1 -0
  176. package/dist/resources/zh-tw/common.js +1963 -0
  177. package/dist/resources/zh-tw/common.js.map +1 -0
  178. package/dist/resources/zh-tw/errors.d.ts +45 -0
  179. package/dist/resources/zh-tw/errors.d.ts.map +1 -0
  180. package/dist/resources/zh-tw/errors.js +44 -0
  181. package/dist/resources/zh-tw/errors.js.map +1 -0
  182. package/dist/resources/zh-tw/generated.d.ts +20 -0
  183. package/dist/resources/zh-tw/generated.d.ts.map +1 -0
  184. package/dist/resources/zh-tw/generated.js +19 -0
  185. package/dist/resources/zh-tw/generated.js.map +1 -0
  186. package/dist/resources/zh-tw/studio.d.ts +18 -0
  187. package/dist/resources/zh-tw/studio.d.ts.map +1 -0
  188. package/dist/resources/zh-tw/studio.js +17 -0
  189. package/dist/resources/zh-tw/studio.js.map +1 -0
  190. package/dist/resources/zh-tw/ui.d.ts +996 -0
  191. package/dist/resources/zh-tw/ui.d.ts.map +1 -0
  192. package/dist/resources/zh-tw/ui.js +995 -0
  193. package/dist/resources/zh-tw/ui.js.map +1 -0
  194. package/locales/ar-EG/common.json +1954 -0
  195. package/locales/ar-EG/errors.json +35 -0
  196. package/locales/ar-EG/generated.json +10 -0
  197. package/locales/ar-EG/studio.json +8 -0
  198. package/locales/ar-EG/ui.json +986 -0
  199. package/locales/cs-CZ/common.json +1954 -0
  200. package/locales/cs-CZ/errors.json +35 -0
  201. package/locales/cs-CZ/generated.json +10 -0
  202. package/locales/cs-CZ/studio.json +8 -0
  203. package/locales/cs-CZ/ui.json +986 -0
  204. package/locales/da-DK/common.json +1954 -0
  205. package/locales/da-DK/errors.json +35 -0
  206. package/locales/da-DK/generated.json +10 -0
  207. package/locales/da-DK/studio.json +8 -0
  208. package/locales/da-DK/ui.json +986 -0
  209. package/locales/de-DE/common.json +1954 -0
  210. package/locales/de-DE/errors.json +35 -0
  211. package/locales/de-DE/generated.json +10 -0
  212. package/locales/de-DE/studio.json +8 -0
  213. package/locales/de-DE/ui.json +986 -0
  214. package/locales/en-US/common.json +1954 -0
  215. package/locales/en-US/errors.json +35 -0
  216. package/locales/en-US/generated.json +10 -0
  217. package/locales/en-US/studio.json +8 -0
  218. package/locales/en-US/ui.json +986 -0
  219. package/locales/fr-FR/common.json +1954 -0
  220. package/locales/fr-FR/errors.json +35 -0
  221. package/locales/fr-FR/generated.json +10 -0
  222. package/locales/fr-FR/studio.json +8 -0
  223. package/locales/fr-FR/ui.json +986 -0
  224. package/locales/zh-CN/common.json +1954 -0
  225. package/locales/zh-CN/errors.json +35 -0
  226. package/locales/zh-CN/generated.json +10 -0
  227. package/locales/zh-CN/studio.json +8 -0
  228. package/locales/zh-CN/ui.json +986 -0
  229. package/locales/zh-TW/common.json +1954 -0
  230. package/locales/zh-TW/errors.json +35 -0
  231. package/locales/zh-TW/generated.json +10 -0
  232. package/locales/zh-TW/studio.json +8 -0
  233. package/locales/zh-TW/ui.json +986 -0
  234. package/package.json +51 -0
@@ -0,0 +1,1954 @@
1
+ {
2
+ "common": {
3
+ "dismiss": "Luk",
4
+ "notifications": "Notifikationer",
5
+ "retry": "Prøv igen",
6
+ "undo": "Fortryd",
7
+ "close": "Luk",
8
+ "cancel": "Annuller",
9
+ "back": "Tilbage",
10
+ "loading": "Indlæser",
11
+ "clearSearch": "Ryd søgning",
12
+ "clear": "Ryd",
13
+ "save": "Gem"
14
+ },
15
+ "auth": {
16
+ "headline": "Forvandl enhver database til et dashboard.",
17
+ "trust": "AGPL-kerne · Selvhostet · Dine data forbliver dine",
18
+ "signIn": {
19
+ "title": "Velkommen tilbage",
20
+ "subtitle": "Log ind på dit Adminium-arbejdsområde.",
21
+ "email": "E-mail",
22
+ "emailInvalid": "Indtast en gyldig e-mailadresse.",
23
+ "password": "Adgangskode",
24
+ "passwordRequired": "Indtast din adgangskode.",
25
+ "showPassword": "Vis adgangskode",
26
+ "hidePassword": "Skjul adgangskode",
27
+ "remember": "Forbliv logget ind",
28
+ "forgot": "Glemt?",
29
+ "submit": "Log ind",
30
+ "invalid": "Ugyldig e-mail eller adgangskode.",
31
+ "rateLimited": "For mange forsøg — prøv igen om et minut.",
32
+ "failed": "Login mislykkedes. Tjek din forbindelse, og prøv igen."
33
+ },
34
+ "forgot": {
35
+ "title": "Nulstil din adgangskode",
36
+ "email": "E-mail",
37
+ "emailInvalid": "Indtast en gyldig e-mailadresse.",
38
+ "submit": "Send nulstillingslink",
39
+ "sentTitle": "Tjek din e-mail",
40
+ "resend": "Send igen",
41
+ "back": "Tilbage til login",
42
+ "done": "Tilbage til login",
43
+ "rateLimited": "For mange anmodninger — prøv igen senere.",
44
+ "failed": "Noget gik galt. Prøv igen.",
45
+ "smtpUnconfigured": "Dette Adminium har ingen mailserver konfigureret og kan derfor ikke sende et nulstillingslink. Bed en administrator om at nulstille din adgangskode."
46
+ },
47
+ "reset": {
48
+ "title": "Vælg en ny adgangskode",
49
+ "subtitle": "Skal være på mindst 8 tegn.",
50
+ "password": "Ny adgangskode",
51
+ "confirm": "Bekræft adgangskode",
52
+ "showPassword": "Vis adgangskode",
53
+ "hidePassword": "Skjul adgangskode",
54
+ "strength": "Adgangskodens styrke",
55
+ "weak": "Svag",
56
+ "fair": "Rimelig",
57
+ "good": "God",
58
+ "strong": "Stærk",
59
+ "tooShort": "Brug mindst 8 tegn.",
60
+ "submit": "Nulstil adgangskode",
61
+ "failed": "Nulstilling mislykkedes. Prøv igen."
62
+ },
63
+ "otp": {
64
+ "title": "Tofaktorgodkendelse",
65
+ "subtitle": "Indtast den 6-cifrede kode fra din godkendelsesapp.",
66
+ "code": "Engangskode",
67
+ "recoveryCode": "Gendannelseskode",
68
+ "useRecovery": "Mistet din enhed? Brug en gendannelseskode",
69
+ "useAuthenticator": "Brug din godkendelsesapp i stedet",
70
+ "submit": "Bekræft",
71
+ "invalid": "Koden virkede ikke. Prøv igen.",
72
+ "failed": "Bekræftelse mislykkedes. Tjek din forbindelse, og prøv igen."
73
+ }
74
+ },
75
+ "nav": {
76
+ "home": "Hjem",
77
+ "primary": "Primær",
78
+ "account": "Konto",
79
+ "signOut": "Log ud",
80
+ "empty": "Sider vises her, når en database er forbundet.",
81
+ "connection": {
82
+ "shared": "Delt",
83
+ "unnamed": "Forbindelse"
84
+ },
85
+ "imports": "Importér data",
86
+ "exports": "Dataeksporter",
87
+ "emailTemplates": "E-mailskabeloner",
88
+ "notificationSettings": "Notifikationsindstillinger",
89
+ "scheduledReports": "Planlagte rapporter",
90
+ "group": {
91
+ "workspace": "Arbejdsområde",
92
+ "library": "Bibliotek",
93
+ "planning": "Planlægning",
94
+ "people": "Personer",
95
+ "account": "Konto"
96
+ }
97
+ },
98
+ "topbar": {
99
+ "search": "Søg…",
100
+ "notifications": "Notifikationer",
101
+ "notificationsLoading": "Indlæser notifikationer",
102
+ "notificationsError": "Notifikationerne kunne ikke indlæses.",
103
+ "notificationsEmpty": "Du er helt ajour.",
104
+ "theme": "Skift mellem lys / mørk",
105
+ "userMenu": "Kontomenu",
106
+ "profile": "Profil",
107
+ "preferences": "Præferencer",
108
+ "signOut": "Log ud"
109
+ },
110
+ "palette": {
111
+ "dialog": "Kommandopalet",
112
+ "placeholder": "Skriv en kommando, eller søg…",
113
+ "navigate": "Naviger",
114
+ "actions": "Handlinger",
115
+ "askAi": "Spørg AI",
116
+ "shortcuts": "Tastaturgenveje",
117
+ "signOut": "Log ud",
118
+ "themeDark": "Skift til mørkt tema",
119
+ "themeLight": "Skift til lyst tema",
120
+ "footerNavigate": "naviger",
121
+ "footerOpen": "vælg",
122
+ "footerClose": "luk"
123
+ },
124
+ "shortcuts": {
125
+ "title": "Tastaturgenveje",
126
+ "subtitle": "Arbejd hurtigere i hele Adminium",
127
+ "close": "Luk",
128
+ "dismiss": "Luk eller afvis",
129
+ "palette": "Åbn kommandopaletten",
130
+ "panel": "Vis genvejspanelet",
131
+ "search": "Fokusér søgning",
132
+ "sidebar": "Slå sidepanelet til/fra",
133
+ "theme": "Skift mellem lys / mørk",
134
+ "then": "derefter",
135
+ "footerPre": "Tryk på",
136
+ "footerPost": "når som helst for at åbne dette panel."
137
+ },
138
+ "states": {
139
+ "checked": "tjekket for 8 sek. siden",
140
+ "diagnostics": "Diagnostik"
141
+ },
142
+ "notFound": {
143
+ "title": "Denne side er forsvundet",
144
+ "errorLine": "Fejl 404",
145
+ "searchPlaceholder": "Søg efter en side…",
146
+ "matches": "Matchende sider",
147
+ "popular": "Populære destinationer",
148
+ "goBack": "Gå tilbage",
149
+ "backToDashboard": "Tilbage til dashboardet"
150
+ },
151
+ "page": {
152
+ "invalid": {
153
+ "title": "Denne sides konfiguration er ugyldig",
154
+ "body": "Det gemte sidedokument bestod ikke valideringen og kan ikke vises."
155
+ },
156
+ "renderError": {
157
+ "title": "Denne side kunne ikke vises"
158
+ },
159
+ "tooNew": {
160
+ "title": "Denne side kræver et nyere Adminium"
161
+ },
162
+ "unknownTemplate": {
163
+ "title": "Ukendt sideskabelon"
164
+ }
165
+ },
166
+ "mutation": {
167
+ "created": "Post oprettet",
168
+ "updated": "Post opdateret",
169
+ "deleted": "Post slettet"
170
+ },
171
+ "undo": {
172
+ "done": "Ændring fortrudt",
173
+ "failed": "Ændringen kunne ikke fortrydes"
174
+ },
175
+ "prefs": {
176
+ "theme": {
177
+ "label": "Tema",
178
+ "light": "Lys",
179
+ "dark": "Mørk",
180
+ "system": "System"
181
+ },
182
+ "accent": {
183
+ "label": "Accentfarve",
184
+ "indigo": "Indigo",
185
+ "blue": "Blå",
186
+ "teal": "Blågrøn",
187
+ "violet": "Violet",
188
+ "rose": "Rosa",
189
+ "red": "Rød",
190
+ "orange": "Orange",
191
+ "black": "Sort"
192
+ },
193
+ "density": {
194
+ "label": "Tæthed",
195
+ "comfortable": "Komfortabel",
196
+ "compact": "Kompakt"
197
+ },
198
+ "locale": {
199
+ "label": "Sprog",
200
+ "directionNote": "Tekstretning: højre mod venstre (indstilles automatisk af sproget)"
201
+ }
202
+ },
203
+ "account": {
204
+ "title": "Konto",
205
+ "subtitle": "Identiteten for din aktuelle session. Visningspræferencer og notifikationsindstillinger administreres på deres egne sider.",
206
+ "preferencesLink": "Præferencer",
207
+ "notificationsLink": "Notifikationsindstillinger",
208
+ "name": "Navn",
209
+ "email": "E-mail",
210
+ "roles": "Roller",
211
+ "twoFactor": "Tofaktor",
212
+ "on": "Slået til",
213
+ "off": "Slået fra",
214
+ "preferences": {
215
+ "title": "Præferencer",
216
+ "subtitle": "Hvordan Adminium ser ud og læses for dig — på denne og alle andre enheder, du logger ind fra.",
217
+ "workspaceDefault": "Arbejdsområdets standard",
218
+ "personal": "Personlig",
219
+ "usingDefault": "Bruger arbejdsområdets standard ({value})",
220
+ "reset": "Nulstil til arbejdsområdets standard",
221
+ "resetFailed": "Denne præference kunne ikke nulstilles. Prøv igen.",
222
+ "appliesInstantly": "Ændringer træder i kraft med det samme og gemmes i din profil."
223
+ }
224
+ },
225
+ "settings": {
226
+ "defaults": {
227
+ "title": "Globale standarder",
228
+ "subtitle": "Standarder for udseende og sprog for hele arbejdsområdet.",
229
+ "explainer": "Disse standarder gælder for alle brugere, medmindre de tilsidesætter dem. Alle kan vælge deres egne præferencer under Profil → Præferencer — personlige præferencer vinder altid for den bruger.",
230
+ "appearanceHeading": "Standarder for udseende",
231
+ "languageHeading": "Standarder for sprog og region",
232
+ "adoption": "{following, number} af {total, plural, one {# bruger} other {# brugere}} følger denne standard.",
233
+ "weekStartNote": "Ugens første dag og talformater følger sproget.",
234
+ "save": "Gem standarder",
235
+ "saved": "Arbejdsområdets standarder er opdateret",
236
+ "saveFailed": "Arbejdsområdets standarder kunne ikke gemmes. Prøv igen.",
237
+ "liveNote": "Når du gemmer, udsendes ændringen live — loggede brugere, der følger en standard, ser den uden at genindlæse."
238
+ },
239
+ "notifications": {
240
+ "subtitle": "Vælg, hvad du får besked om, og hvordan",
241
+ "matrixLabel": "Giv mig besked om",
242
+ "rowHeader": "Hændelse",
243
+ "saving": "Gemmer…",
244
+ "saved": "Gemt",
245
+ "unavailable": "Ikke tilgængelig endnu",
246
+ "loading": "Indlæser præferencer",
247
+ "errorTitle": "Disse indstillinger kunne ikke indlæses",
248
+ "emptyTitle": "Intet at konfigurere endnu",
249
+ "emptyBody": "Notifikationshændelser vises her, efterhånden som producenterne udgives.",
250
+ "saveFailed": "Denne ændring kunne ikke gemmes."
251
+ }
252
+ },
253
+ "studio": {
254
+ "source": {
255
+ "engine": {
256
+ "label": "Databasemotor",
257
+ "postgres": "PostgreSQL",
258
+ "mysql": "MySQL / MariaDB",
259
+ "sqlite": "SQLite"
260
+ },
261
+ "format": {
262
+ "label": "Skemaformat",
263
+ "helper": "Lad automatisk registrering være slået til, medmindre den tager fejl.",
264
+ "auto": "Registrér automatisk",
265
+ "sql": "SQL DDL / pg_dump",
266
+ "prisma": "Prisma-skema",
267
+ "drizzle": "Drizzle ORM",
268
+ "typeorm": "TypeORM-entiteter",
269
+ "sequelize": "Sequelize-modeller",
270
+ "rails": "Rails schema.rb",
271
+ "django": "Django models.py",
272
+ "json": "Adminium JSON"
273
+ },
274
+ "sqlite": {
275
+ "file": "Sti til databasefil",
276
+ "helper": "SQLite er en fil, ikke en server — angiv den absolutte sti på den maskine, der kører Adminium."
277
+ },
278
+ "file": {
279
+ "detectedAs": "Registreret: {format}",
280
+ "moreWarnings": "+{count} flere advarsler — den fulde liste vises i analysetrinnet.",
281
+ "dropTitle": "Slip din skemafil her, eller gennemse",
282
+ "dropHint": "SQL DDL / pg_dump, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, Django-modeller, Adminium JSON",
283
+ "pitch": "Ingen databaseforbindelse påkrævet — vi fortolker din skemafil og bygger de samme dashboards.",
284
+ "parsing": "Læser den uploadede skemafil…",
285
+ "tables": "tabeller",
286
+ "columns": "kolonner",
287
+ "warnings": "advarsler",
288
+ "errorTitle": "Kunne ikke fortolke filen",
289
+ "parseFailed": "Vi kunne ikke fortolke den fil. Hvis auto-genkendelsen gættede forkert, så vælg formatet eksplicit og prøv igen.",
290
+ "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.",
291
+ "requestFailed": "Upload mislykkedes — tjek din forbindelse og prøv igen."
292
+ },
293
+ "title": "Forbind din database",
294
+ "subtitle": "Peg Adminium mod en database, så genererer vi et admin-dashboard ud fra dens skema.",
295
+ "name": "Forbindelsesnavn",
296
+ "namePlaceholder": "Produktions-Postgres",
297
+ "modeLabel": "Kildeinputtilstand",
298
+ "mode": {
299
+ "dsn": "Forbindelsesstreng",
300
+ "fields": "Enkelte felter",
301
+ "file": "Skemafil"
302
+ },
303
+ "dsn": {
304
+ "label": "Forbindelsesstreng",
305
+ "helper": "postgres://bruger:kodeord@vaert:5432/database — mysql:// og sqlite: virker også.",
306
+ "incomplete": "Tilføj vært og database, f.eks. postgres://user@host:5432/db",
307
+ "invalidScheme": "Ukendt skema — forventede postgres://, mysql://, mariadb:// eller sqlite:",
308
+ "quickFill": "Hurtig udfyldning:"
309
+ },
310
+ "fields": {
311
+ "host": "Vært",
312
+ "port": "Port",
313
+ "database": "Database",
314
+ "user": "Bruger",
315
+ "password": "Adgangskode",
316
+ "ssl": "SSL-tilstand",
317
+ "preview": "Forhåndsvisning af forbindelsesstreng:"
318
+ },
319
+ "readOnlyRole": {
320
+ "title": "Brug en skrivebeskyttet rolle",
321
+ "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."
322
+ }
323
+ },
324
+ "capability": {
325
+ "mysqlApproxRows": "MySQL-rækkeantal er estimater fra lagringsmotoren (kan afvige op til ±40 %) — vises med ≈.",
326
+ "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+.",
327
+ "sqliteCheckEnums": "SQLite har ingen indbygget enum-type — enums syntetiseres fra CHECK (col IN (…))-begrænsninger.",
328
+ "sqliteNoComments": "SQLite har ingen kolonnekommentarer — brug skema-remap-editoren til at tilføje etiketter.",
329
+ "importNoRowCounts": "Skemafiler indeholder ingen rækkeantal — tabellisten viser — i stedet for opdigtede tal.",
330
+ "importNoLiveHealth": "Ingen live databaseforbindelse — sundhedstjek og registrering af skemadrift er ikke tilgængelige for denne kilde.",
331
+ "rowsUnavailable": "Skemafiler har ingen live database — rækkeantal er ukendte, indtil du forbinder en.",
332
+ "rowsRunAnalyze": "Intet estimat endnu — kør ANALYZE på databasen for at få rækkeantal.",
333
+ "rowsNoEstimate": "Motoren rapporterede intet estimat for denne tabel.",
334
+ "rowsApproximate": "Estimat fra lagringsmotoren — kan afvige op til ±40 % på InnoDB."
335
+ },
336
+ "test": {
337
+ "log": {
338
+ "moreWarnings": "+{count} flere parser-advarsler",
339
+ "connecting": "Etablerer sikker forbindelse…",
340
+ "connected": "Forbundet ({latency} ms) · skrivebeskyttet introspektion",
341
+ "connectFailed": "Forbindelsen mislykkedes.",
342
+ "readingSchema": "Læser skema: public",
343
+ "readingFile": "Læser den uploadede skemafil…",
344
+ "parsingFile": "Fortolker {file}…",
345
+ "detected": "Registrerede {tables} tabeller · {columns} kolonner",
346
+ "found": "Fandt {tables} tabeller · {columns} kolonner",
347
+ "mapping": "Kortlægger kolonnetyper → inputwidgets",
348
+ "relations": "Registrerer relationer…",
349
+ "piiScan": "Scanner efter PII-kolonner…",
350
+ "piiDone": "PII-scanning fuldført — {count} kolonner maskeret som standard",
351
+ "piiDoneUnknown": "PII-scanning fuldført",
352
+ "jobFailed": "Introspektion mislykkedes.",
353
+ "networkFailed": "Anmodningen mislykkedes — tjek din forbindelse og prøv igen.",
354
+ "ready": "Klar"
355
+ },
356
+ "title": "Analyserer dit skema",
357
+ "subtitle": "Introspekterer tabeller, kolonner og relationer. Det tager et par sekunder.",
358
+ "trust": "Vi læser kun dit skema og dine data. Intet ændres.",
359
+ "errorTitle": "Forbindelsen mislykkedes",
360
+ "retry": "Prøv igen",
361
+ "logLabel": "Introspektionslog",
362
+ "hint": {
363
+ "auth": "Godkendelse mislykkedes — tjek brugernavn og adgangskode i din DSN.",
364
+ "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).",
365
+ "metaPlacement": "Denne kilde kan ikke huse Adminiums metatabeller — fortsæt med en separat metadatabase.",
366
+ "permission": "Rollen fik forbindelse, men mangler skema-læserettigheder — giv USAGE på skemaet til din introspektionsrolle.",
367
+ "timeout": "Databasen svarede ikke i tide — tjek netværkssti og belastning, og prøv igen.",
368
+ "tls": "TLS-forhandling mislykkedes — prøv sslmode=require, eller upload det CA-certifikat din server forventer.",
369
+ "unknown": "Forbindelsen mislykkedes — kontrollér DSN'en og prøv igen."
370
+ }
371
+ },
372
+ "tables": {
373
+ "importNoCounts": "Skemafiler indeholder ingen rækkeantal — kolonnen viser —, indtil en live database er forbundet.",
374
+ "title": "Vælg dine tabeller",
375
+ "subtitle": "Vælg hvilke der skal med. Du kan altid ændre det.",
376
+ "search": "Filtrér tabeller…",
377
+ "listLabel": "Tabeller der kan medtages",
378
+ "emptyFilter": "Ingen tabeller matcher dit filter.",
379
+ "pii": "PII",
380
+ "highVolume": "stor volumen",
381
+ "highVolumeNote": "Tabeller med over 100.000 rækker starter fravalgt — driftstabeller hører sjældent hjemme i et dashboard.",
382
+ "joinHidden": "{count} join-/systemtabeller er skjult på forhånd — de driver stadig mange-til-mange-relationer."
383
+ },
384
+ "hub": {
385
+ "title": "Dataforbindelser",
386
+ "subtitle": "{healthy, number} af {total, plural, one {# forbindelse} other {# forbindelser}} sunde",
387
+ "connectNew": "Ny forbindelse",
388
+ "stats": {
389
+ "connections": "Forbindelser",
390
+ "healthy": "Sunde",
391
+ "tables": "Inkluderede tabeller",
392
+ "pages": "Genererede sider"
393
+ },
394
+ "status": {
395
+ "connected": "Forbundet",
396
+ "error": "Fejl",
397
+ "unconfigured": "Kladde",
398
+ "testing": "Tester…"
399
+ },
400
+ "card": {
401
+ "readOnly": "Skrivebeskyttet",
402
+ "tables": "Tabeller",
403
+ "pages": "Sider",
404
+ "latency": "Latenstid",
405
+ "latencyMs": "{latency, number} ms",
406
+ "lastIntrospected": "Senest introspiceret",
407
+ "never": "Aldrig"
408
+ },
409
+ "action": {
410
+ "test": "Test",
411
+ "reintrospect": "Introspicer igen",
412
+ "reintrospectFile": "Skemafil-kilder har ingen aktiv database — upload filen igen i stedet.",
413
+ "remap": "Ommap skema",
414
+ "delete": "Slet"
415
+ },
416
+ "test": {
417
+ "ok": "Forbindelsen er sund · {latency, number} ms",
418
+ "failed": "Forbindelsestest mislykkedes"
419
+ },
420
+ "introspect": {
421
+ "noChanges": "Skemaet er uændret — intet nyt snapshot.",
422
+ "updated": "Skemaet er introspiceret igen",
423
+ "masksProposed": "{count, plural, one {# kolonne} other {# kolonner}} foreslået til maskering — gennemgå i ommapnings-editoren.",
424
+ "failed": "Introspektion mislykkedes. Prøv igen."
425
+ },
426
+ "delete": {
427
+ "title": "Slet forbindelse",
428
+ "body": "Dette sletter “{name}” og de genererede sider. Selve din database røres aldrig.",
429
+ "prompt": "Skriv {name} for at bekræfte",
430
+ "confirm": "Slet forbindelse",
431
+ "cancel": "Annuller",
432
+ "close": "Luk",
433
+ "success": "Forbindelsen “{name}” er slettet",
434
+ "failed": "Forbindelsen kunne ikke slettes. Prøv igen."
435
+ },
436
+ "empty": {
437
+ "title": "Ingen datakilder endnu",
438
+ "body": "Forbind en database, så genererer Adminium dit adminpanel ud fra dens skema.",
439
+ "cta": "Forbind en database"
440
+ }
441
+ },
442
+ "settingsHub": {
443
+ "title": "Arbejdsområdeindstillinger",
444
+ "subtitle": "Identitet, sikkerhed og destruktive handlinger for dette arbejdsområde.",
445
+ "save": "Gem ændringer",
446
+ "saved": "Arbejdsområdeindstillinger opdateret",
447
+ "saveFailed": "Arbejdsområdeindstillingerne kunne ikke gemmes. Prøv igen.",
448
+ "superAdminOnlyTitle": "Superadmin påkrævet",
449
+ "superAdminOnly": "Kun en superadmin kan ændre arbejdsområdets identitet og sikkerhedsindstillinger.",
450
+ "identity": {
451
+ "heading": "Arbejdsområdets identitet",
452
+ "appName": {
453
+ "label": "Applikationsnavn",
454
+ "helper": "Vises i sidepanelet, browsertitlen og e-mails.",
455
+ "error": "Angiv et navn på højst 60 tegn."
456
+ }
457
+ },
458
+ "security": {
459
+ "heading": "Sikkerhed",
460
+ "require2fa": {
461
+ "label": "Kræv tofaktorgodkendelse",
462
+ "desc": "Alle medlemmer skal aktivere 2FA for at logge ind."
463
+ },
464
+ "allowSignup": {
465
+ "label": "Tillad selvregistrering",
466
+ "desc": "Alle kan oprette en konto — slået fra er arbejdsområdet kun på invitation."
467
+ },
468
+ "sessionTtl": {
469
+ "label": "Sessionslevetid (timer)",
470
+ "error": "Mellem {min, number} og {max, number} timer."
471
+ },
472
+ "passwordMin": {
473
+ "label": "Minimal adgangskodelængde",
474
+ "error": "Mellem {min, number} og {max, number} tegn."
475
+ }
476
+ },
477
+ "review": {
478
+ "title": "Gem arbejdsområdeindstillinger",
479
+ "subtitle": "Gennemgå dine ændringer, før du gemmer.",
480
+ "confirm": "Gem ændringer",
481
+ "cancel": "Annuller",
482
+ "close": "Luk",
483
+ "on": "Til",
484
+ "off": "Fra",
485
+ "change": "{before} → {after}"
486
+ },
487
+ "defaultsCard": {
488
+ "heading": "Standarder for udseende og sprog",
489
+ "body": "Tema, accentfarve, tæthed og sprog for hele arbejdsområdet findes under globale standarder.",
490
+ "cta": "Åbn globale standarder"
491
+ },
492
+ "danger": {
493
+ "heading": "Farezone",
494
+ "subtitle": "Uigenkaldelige handlinger.",
495
+ "empty": "Intet at slette — ingen forbindelser endnu.",
496
+ "deleteDesc": "Sletter forbindelsen og de genererede sider. Din database røres ikke. Kan ikke fortrydes.",
497
+ "deleteCta": "Slet forbindelse"
498
+ },
499
+ "aiCard": {
500
+ "heading": "AI-berigelse",
501
+ "body": "Konfigurér en AI-udbyder (eller kopiér-indsæt-turen) for at berige etiketter, grupper og relationer.",
502
+ "cta": "Åbn AI-indstillinger"
503
+ }
504
+ },
505
+ "settingsAi": {
506
+ "title": "AI-berigelse",
507
+ "subtitle": "Forbind en model, så Adminium kan foreslå etiketter, grupper, relationer og mere — altid gennemgået som en diff, før noget anvendes.",
508
+ "saved": "AI-udbyder gemt",
509
+ "saveFailed": "AI-udbyderen kunne ikke gemmes. Prøv igen.",
510
+ "save": "Gem udbyder",
511
+ "test": "Test forbindelse",
512
+ "testHintDirty": "Gem dine ændringer, før du tester.",
513
+ "testing": "Kontakter udbyderen…",
514
+ "testError": "Testen mislykkedes",
515
+ "testErrorBody": "Kunne ikke nå udbyderen. Tjek nøglen og basis-URL.",
516
+ "testOk": "Forbundet til {model} på {latency} ms",
517
+ "testUnknownModel": "udbyderen",
518
+ "provider": {
519
+ "heading": "AI-udbyder",
520
+ "subtitle": "Vælg, hvordan Adminium når en model til at berige dit skema. Nøgler gemmes krypteret og vises aldrig igen.",
521
+ "active": "Aktiv",
522
+ "anthropic": {
523
+ "label": "Anthropic",
524
+ "desc": "Claude-modeller via Anthropic-API’en."
525
+ },
526
+ "openai": {
527
+ "label": "OpenAI",
528
+ "desc": "GPT-modeller via OpenAI-API’en."
529
+ },
530
+ "openaiCompatible": {
531
+ "label": "OpenAI-kompatibel",
532
+ "desc": "Ethvert endpoint, der taler OpenAI-formatet — Groq, Together, vLLM, LM Studio."
533
+ },
534
+ "ollama": {
535
+ "label": "Ollama (lokal)",
536
+ "desc": "Modeller kører lokalt via Ollama — ingen nøgle, ingen sky."
537
+ },
538
+ "requiresNetwork": "Kræver internet og en API-nøgle",
539
+ "networkDisabledTitle": "Direkte AI-udbydere er slået fra i denne installation",
540
+ "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."
541
+ },
542
+ "configure": {
543
+ "heading": "Konfigurér {provider}"
544
+ },
545
+ "field": {
546
+ "baseUrl": "Basis-URL",
547
+ "baseUrlOptional": "Lad stå, medmindre Ollama kører på en anden vært.",
548
+ "baseUrlHelper": "Endpoint-roden, der leverer /chat/completions.",
549
+ "model": "Model",
550
+ "modelFreeText": "Indtast det præcise model-id, dit endpoint leverer.",
551
+ "modelLive": "Indlæst live fra udbyderen.",
552
+ "modelStatic": "En gennemprøvet liste; skriv et brugerdefineret id efter at have gemt for at opdatere den.",
553
+ "modelLoading": "Indlæser…",
554
+ "modelPlaceholder": "Vælg en model…",
555
+ "key": "API-nøgle",
556
+ "keyStored": "Gemt krypteret. Erstat den for at bruge en anden nøgle.",
557
+ "keyMask": "sk-…{last4}",
558
+ "keyReplace": "Erstat nøgle",
559
+ "keyOptional": "Valgfri — nogle endpoints kræver ingen nøgle.",
560
+ "keyWriteOnly": "Kun skrivning: når den er gemt, vises den aldrig igen.",
561
+ "noKeyTitle": "Ingen API-nøgle nødvendig",
562
+ "noKeyBody": "Ollama kører lokalt, så intet forlader denne maskine."
563
+ },
564
+ "runStatus": {
565
+ "draft": "Kladde",
566
+ "running": "Kører",
567
+ "awaitingResponse": "Afventer svar",
568
+ "validated": "Valideret",
569
+ "applied": "Anvendt",
570
+ "partiallyApplied": "Delvist anvendt",
571
+ "failed": "Mislykkedes",
572
+ "discarded": "Kasseret"
573
+ },
574
+ "byo": {
575
+ "heading": "Ingen nøgle? Brug dit eget AI-værktøj",
576
+ "subtitle": "Kopiér-indsæt-turen — intet forlader denne maskine.",
577
+ "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.",
578
+ "guaranteeTitle": "Telemetrifri garanti",
579
+ "guarantee1": "Prompten indeholder kun dit skema og aggregeret statistik — aldrig rækkedata som standard.",
580
+ "guarantee2": "Ingen legitimationsoplysninger, instans-URL eller identifikatorer er indlejret.",
581
+ "guarantee3": "BYO-kørsler foretager ingen netværkskald.",
582
+ "promptVersion": "Prompt {version}",
583
+ "schemaVersion": "Skema {version}",
584
+ "headingRecommended": "Brug dit eget AI-værktøj — ingen nøgle nødvendig",
585
+ "recommended": "Anbefalet"
586
+ },
587
+ "history": {
588
+ "heading": "Kørselshistorik",
589
+ "subtitle": "Tidligere berigelseskørsler. Åbn en for at gennemgå dens forslag.",
590
+ "tableLabel": "Berigelseskørsler",
591
+ "colDate": "Dato",
592
+ "colSource": "Kilde",
593
+ "colStatus": "Status",
594
+ "colChunks": "Blokke",
595
+ "openReview": "Åbn gennemgang for kørslen fra {date}",
596
+ "connection": "Forbindelse",
597
+ "empty": "Ingen berigelseskørsler endnu. Berig et skema fra forbindelsesguiden for at se historik her.",
598
+ "errorTitle": "Kunne ikke indlæse kørsler",
599
+ "errorBody": "Genindlæs siden for at prøve igen.",
600
+ "noConnections": "Forbind først en database — berigelseskørsler registreres pr. forbindelse.",
601
+ "byo": "BYO",
602
+ "directPath": "Direkte"
603
+ }
604
+ },
605
+ "enrich": {
606
+ "title": "Berig med AI",
607
+ "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.",
608
+ "intentLabel": "Hvordan vil du berige?",
609
+ "sectionsLegend": "Hvad skal AI’en beslutte?",
610
+ "localesLegend": "Oversæt etiketter til",
611
+ "localeLocked": "(påkrævet)",
612
+ "samplingTitle": "Inkludér eksempelværdier",
613
+ "samplingHint": "Inkluderer op til 20 rigtige værdier pr. ikke-PII-kolonne i prompten.",
614
+ "samplingPreviewTitle": "Hvad forlader denne maskine",
615
+ "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.",
616
+ "noSections": "Vælg mindst én beslutningsgruppe at berige.",
617
+ "generatePrompt": "Generér prompt",
618
+ "startProvider": "Start berigelse",
619
+ "startOver": "Start forfra",
620
+ "copied": "Kopieret",
621
+ "createFailed": "Berigelsesprompten kunne ikke bygges — prøv igen.",
622
+ "createFailedTitle": "Kunne ikke starte",
623
+ "providerFallback": "din AI-udbyder",
624
+ "fileTitle": "AI-berigelse kræver en live-database",
625
+ "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.",
626
+ "section": {
627
+ "labels": "Etiketter og beskrivelser",
628
+ "groups": "Navigationsgrupper",
629
+ "enums": "Enum-semantik",
630
+ "relations": "Relationer",
631
+ "keys": "Nøglekolonner",
632
+ "templates": "Sideskabeloner",
633
+ "widgets": "Dashboard-widgets",
634
+ "pii": "PII og maskering",
635
+ "icons": "Ikoner",
636
+ "microcopy": "Mikrotekst"
637
+ },
638
+ "provider": {
639
+ "title": "Brug min AI-udbyder",
640
+ "description": "Kør berigelsen nu mod din konfigurerede udbyder. Du gennemgår hvert forslag som en diff.",
641
+ "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.",
642
+ "settingsHint": "Vil du køre den direkte?",
643
+ "settingsLink": "Konfigurér en udbyder i Indstillinger → AI",
644
+ "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."
645
+ },
646
+ "byo": {
647
+ "cardTitle": "Kopiér en prompt til mit eget AI-værktøj",
648
+ "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.",
649
+ "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.",
650
+ "promptLabel": "Berigelsesprompt",
651
+ "promptLabelN": "Berigelsesprompt {index} af {total}",
652
+ "tokenChip": "≈ {tokens} tokens",
653
+ "copyPrompt": "Kopiér prompt",
654
+ "copyPromptDone": "Prompt kopieret",
655
+ "download": "Download .md",
656
+ "chunkTabs": "Prompt-dele",
657
+ "chunkTab": "Prompt {index}",
658
+ "chunkValid": "Del {index} valideret",
659
+ "pasteLabel": "Indsæt JSON-svaret",
660
+ "pastePlaceholder": "Indsæt JSON-svaret her…",
661
+ "validate": "Validér",
662
+ "valid": "Svar valideret",
663
+ "mergedTitle": "Alle {count} dele valideret og flettet",
664
+ "mergedTitleSingle": "Svar valideret",
665
+ "mergedBody": "Forslagene er klar til gennemgang mod det heuristiske grundlag.",
666
+ "errorsTitle": "Valideringen fandt {count} problemer",
667
+ "copyErrors": "Kopiér fejl til dit AI-værktøj",
668
+ "copyErrorsDone": "Fejl kopieret",
669
+ "copyErrorsHint": "Indsæt dette tilbage i dit AI-værktøj for at få et rettet svar.",
670
+ "droppedItems": "{count} forslag blev frasorteret under valideringen — gennemgangen viser resten.",
671
+ "pendingTitle": "Validér hver prompt for at fortsætte",
672
+ "pendingBody": "Indsæt JSON-svaret ovenfor og validér det for at fortsætte til gennemgang.",
673
+ "pendingBodyChunked": "Hver del skal valideres, før forslagene flettes. Indsæt og validér hver prompt ovenfor.",
674
+ "requestFailed": "Kunne ikke nå serveren for at validere — prøv igen.",
675
+ "continueReview": "Fortsæt til gennemgang",
676
+ "wholeDocument": "hele dokumentet",
677
+ "cardTitleRecommended": "Kopiér en prompt til mit eget AI-værktøj — anbefalet"
678
+ },
679
+ "direct": {
680
+ "title": "Beriger med AI",
681
+ "subtitle": "Sender dit skema til",
682
+ "building": "Bygger prompt…",
683
+ "logLabel": "Berigelseslog",
684
+ "cancel": "Annullér",
685
+ "back": "Tilbage til valg",
686
+ "retry": "Prøv igen",
687
+ "done": "Berigelse fuldført — gennemgå forslagene.",
688
+ "continueReview": "Fortsæt til gennemgang",
689
+ "failed": "Udbyderkørslen mislykkedes. Tjek dine AI-indstillinger, og prøv igen.",
690
+ "jobFailed": "Berigelseskørslen blev ikke fuldført.",
691
+ "startFailed": "Kunne ikke starte kørslen — prøv igen.",
692
+ "errorTitle": "Berigelse mislykkedes"
693
+ },
694
+ "skip": {
695
+ "title": "Spring over — brug kun heuristik",
696
+ "description": "Generér fra det heuristiske grundlag. Du kan berige senere fra Indstillinger → AI — at springe over straffes aldrig.",
697
+ "confirmTitle": "Fortsætter med heuristik",
698
+ "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."
699
+ }
700
+ },
701
+ "review": {
702
+ "unavailableTitle": "Gennemgangsskærm ikke tilgængelig",
703
+ "unavailableBody": "Denne build indeholder endnu ikke berigelsens gennemgangsskærm (06-T14). Den kommer med diff-og-anvend-flowet."
704
+ },
705
+ "llmRuns": {
706
+ "review": {
707
+ "header": {
708
+ "title": "Gennemgå AI-forslag",
709
+ "model": "Model",
710
+ "snapshot": "Øjebliksbillede",
711
+ "byo": "BYO",
712
+ "pathDirect": "Direkte API",
713
+ "pathByo": "Kopiér-indsæt",
714
+ "agree": "{n} enige",
715
+ "conflict": "{n} konflikt",
716
+ "new": "{n} nye",
717
+ "rejects": "{n} afvisninger",
718
+ "countsAria": "Antal forslag"
719
+ },
720
+ "bulk": {
721
+ "thresholdLabel": "Tillidstærskel",
722
+ "thresholdAria": "Tillidstærskel for “Accepter alle”",
723
+ "acceptAll": "Accepter alle ≥ {pct}%",
724
+ "clear": "Ryd markering"
725
+ },
726
+ "section": {
727
+ "selectAllAria": "Vælg alle i {group}",
728
+ "acceptedCount": "{n} accepteret"
729
+ },
730
+ "group": {
731
+ "labels": "Etiketter og oversættelser",
732
+ "navigation": "Navigation og domæner",
733
+ "enums": "Enum-semantik",
734
+ "relations": "Relationer",
735
+ "keys": "Nøglekolonner",
736
+ "templates": "Sideskabeloner",
737
+ "dashboards": "Dashboards og widgets",
738
+ "pii": "Personoplysninger og maskering",
739
+ "icons": "Ikoner",
740
+ "microcopy": "Mikrotekst"
741
+ },
742
+ "status": {
743
+ "agree": "Stemmer overens",
744
+ "conflict": "Konflikt",
745
+ "new": "Ny",
746
+ "heuristicOnly": "Kun heuristik",
747
+ "rejects": "Afviser heuristik",
748
+ "locked": "Låst"
749
+ },
750
+ "row": {
751
+ "acceptAria": "Accepter {noun}-forslag for {target}",
752
+ "keptEdited": "bevaret – redigeret af dig",
753
+ "rejectsCallout": "AI’en afviser en heuristisk beslutning – bekræft før accept.",
754
+ "showTranslations": "Vis oversættelser",
755
+ "hideTranslations": "Skjul oversættelser",
756
+ "confidenceAria": "Tillid {pct}%",
757
+ "noAi": "Intet AI-forslag"
758
+ },
759
+ "value": {
760
+ "none": "Ingen værdi",
761
+ "absent": "Ingen",
762
+ "dash": "—",
763
+ "display": "Visning",
764
+ "key": "Nøgle",
765
+ "rank": "rang {n}",
766
+ "span": "bredde {n}",
767
+ "tableCount": "{n} tabeller",
768
+ "widgetCount": "{n} widgets",
769
+ "enumWorkflow": "Arbejdsgang",
770
+ "enumCategory": "Kategori",
771
+ "notPii": "Ikke personoplysninger",
772
+ "label": "Etiket",
773
+ "description": "Beskrivelse",
774
+ "subtitle": "Sideundertekst",
775
+ "headline": "Overskrift for tom tilstand",
776
+ "guidance": "Vejledning for tom tilstand"
777
+ },
778
+ "apply": {
779
+ "title": "Anvend {n} forslag",
780
+ "subtitle": "Disse ændringer skrives i én transaktion og kan fortrydes.",
781
+ "empty": "Intet valgt at anvende.",
782
+ "confirm": "Anvend ændringer"
783
+ },
784
+ "footer": {
785
+ "count": "{n} forslag valgt",
786
+ "apply": "Anvend {n} accepterede forslag",
787
+ "failed": "Anvendelse mislykkedes"
788
+ },
789
+ "toast": {
790
+ "applied": "Anvendte {n} forslag",
791
+ "appliedPartial": "Anvendte {n} forslag (nogle sprunget over)",
792
+ "applyFailed": "Kunne ikke anvende forslag",
793
+ "undoFailed": "Kunne ikke fortryde denne ændring"
794
+ },
795
+ "error": {
796
+ "title": "Kunne ikke indlæse denne kørsel"
797
+ },
798
+ "notReady": {
799
+ "title": "Denne kørsel har endnu ingen forslag til gennemgang",
800
+ "body": "En kørsel skal være valideret, før dens forslag kan gennemgås. Generér eller indsæt et svar først."
801
+ },
802
+ "applied": {
803
+ "title": "Denne kørsel er blevet anvendt",
804
+ "body": "De accepterede forslag nedenfor er skrivebeskyttede."
805
+ },
806
+ "empty": {
807
+ "title": "Ingen forslag",
808
+ "body": "Denne kørsel gav ingen forslag til gennemgang."
809
+ },
810
+ "cat": {
811
+ "label": "etiket",
812
+ "key": "nøglekolonner",
813
+ "enum": "enum",
814
+ "relation": "relation",
815
+ "pii": "personoplysninger",
816
+ "template": "sideskabelon",
817
+ "group": "navigationsgruppe",
818
+ "dashboard": "dashboard",
819
+ "widget": "widget",
820
+ "copy": "mikrotekst"
821
+ }
822
+ }
823
+ },
824
+ "wizard": {
825
+ "title": "Ny forbindelse",
826
+ "back": "Tilbage",
827
+ "continue": "Fortsæt",
828
+ "progress": "Opsætningsforløb",
829
+ "persistFailed": "Dit tabelvalg kunne ikke gemmes — prøv igen.",
830
+ "persistFailedTitle": "Kunne ikke gemme",
831
+ "step": {
832
+ "source": "Kilde",
833
+ "test": "Analysér",
834
+ "tables": "Tabeller",
835
+ "meta": "Metalagring",
836
+ "intent": "Formål",
837
+ "enrich": "Berig",
838
+ "generate": "Generér"
839
+ }
840
+ },
841
+ "meta": {
842
+ "title": "Hvor skal Adminium gemme sine egne tabeller?",
843
+ "subtitle": "Sider, roller, auditlog og indstillinger bor i tabeller med adminium_-præfiks — aldrig blandet med dine data.",
844
+ "sameDb": {
845
+ "title": "Samme database",
846
+ "description": "adminium_*-tabeller oprettes ved siden af dine kildetabeller. Enkleste opsætning — kræver en rolle med skrive- og CREATE TABLE-rettigheder.",
847
+ "disabledReadOnly": "Din rolle er skrivebeskyttet — Adminium skriver aldrig til denne database. Vælg en separat database til Adminiums egne tabeller.",
848
+ "disabledNoDdl": "Denne rolle kan ikke køre DDL — Adminium-migreringer kræver CREATE TABLE. Vælg en separat database til Adminiums egne tabeller.",
849
+ "disabledFile": "En skemafil har ingen live database — vælg en separat database til Adminiums egne tabeller."
850
+ },
851
+ "separate": {
852
+ "title": "Separat database",
853
+ "description": "Adminium holder sine tabeller i en anden database. Din kilde forbliver urørt — påkrævet for skrivebeskyttede kilder.",
854
+ "dsn": "Forbindelsesstreng til metadatabasen",
855
+ "helper": "Kræver skrive- + DDL-rettigheder — Adminium kører sine egne migreringer dér.",
856
+ "test": "Test forbindelse",
857
+ "ok": "Kompatibel — skrivning ✓ · DDL ✓",
858
+ "insufficient": "Denne rolle kan ikke huse metalageret — Adminium behøver skrive- og CREATE TABLE-rettigheder dér.",
859
+ "errorTitle": "Metalager ikke kompatibelt"
860
+ },
861
+ "testFailed": "Forbindelsen mislykkedes.",
862
+ "v1Note": {
863
+ "title": "Om denne installation",
864
+ "body": "Denne server valgte sit metalager ved første opstart. Dette trin validerer, at dit valg er kompatibelt med denne forbindelse, og registrerer det — serveren håndhæver samme regel uafhængigt (409 META_PLACEMENT_INVALID). Flytning af et eksisterende metalager er en driftsopgave (M10)."
865
+ }
866
+ },
867
+ "intent": {
868
+ "title": "Hvad har du brug for?",
869
+ "subtitle": "Formålet afgør, hvilke sider der genereres. Du kan ændre det senere — en ændring foreslår en regenerering, aldrig en stille omskrivning.",
870
+ "trust": "Vi læser kun dit skema — aldrig dine rækkedata under opsætningen.",
871
+ "fullAdmin": {
872
+ "title": "Fuldt adminpanel",
873
+ "description": "Dashboards, CRUD-sider, søgning, import og eksport — alt hvad dit skema understøtter."
874
+ },
875
+ "analytics": {
876
+ "title": "Skrivebeskyttet analyse",
877
+ "description": "Dashboards, diagrammer og skrivebeskyttede tabeller. Ingen formularer, ingen skrivninger — hver rolle begrænset til Fremviser."
878
+ },
879
+ "crud": {
880
+ "title": "CRUD-tabeller",
881
+ "description": "Én redigeringsside pr. tabel plus søgning og import/eksport — et minimalt hjem, ingen dashboards."
882
+ },
883
+ "support": {
884
+ "title": "Supportkonsol",
885
+ "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.)"
886
+ }
887
+ },
888
+ "generate": {
889
+ "title": "Generér din app",
890
+ "subtitle": "Én side pr. medtaget tabel plus dashboards pr. domæne — formål:",
891
+ "run": "Generér dashboard",
892
+ "openApp": "Åbn din app",
893
+ "logLabel": "Genereringslog",
894
+ "log": {
895
+ "classifying": "Klassificerer skema…",
896
+ "composing": "Sammensætter skabeloner…",
897
+ "writing": "Skriver sider…",
898
+ "done": "{pages} sider genereret på tværs af {groups} navigationsgrupper"
899
+ },
900
+ "successTitle": "Dit dashboard er klar",
901
+ "successBody": "{pages} sider i {groups} navigationsgrupper — genereret fra dit skema, redigerbare i Studio.",
902
+ "errorTitle": "Generering mislykkedes",
903
+ "failed": "Generering mislykkedes — prøv igen, eller kør introspektionen igen først.",
904
+ "fileTitle": "Skemafil fortolket — generering kræver en live database",
905
+ "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."
906
+ },
907
+ "remap": {
908
+ "column": {
909
+ "nullable": "nullable",
910
+ "labelOverride": "Visningsetiket",
911
+ "labelHelper": "Udledt: {name}",
912
+ "logicalType": "Logisk type",
913
+ "logicalTypeHelper": "Udledt: {type} (fra {dbType}) — kortlagt af adapteren; kan ikke tilsidesættes i v1.",
914
+ "semantic": "Semantisk type",
915
+ "unclassified": "Endnu ikke klassificeret.",
916
+ "semanticHelper": "Klassifikator: {tag} · {confidence}% tillid · kilde: {source}",
917
+ "semanticInferred": "udledt: {tag}",
918
+ "currency": "Valuta",
919
+ "currencyHelper": "ISO 4217-kode anvendt på beløbsformatering.",
920
+ "pii": "Maskér som standard",
921
+ "piiHelper": "Maskerede værdier vises slørede; afmaskering kræver tilladelsen data.unmask_pii og logges i auditloggen.",
922
+ "enum": "Enum-semantik",
923
+ "enumKind": "Enum-art",
924
+ "enumWorkflow": "Arbejdsgang",
925
+ "enumCategory": "Kategori",
926
+ "enumLabelFor": "Etiket for {value}",
927
+ "enumToneFor": "Tone for {value}",
928
+ "enumToneAuto": "auto",
929
+ "enumHelper": "Arbejdsgangs-enums driver statusmærker og tavlekolonner; toner knytter værdierne til den semantiske farvetoneskala."
930
+ },
931
+ "diff": {
932
+ "one": "1 ændring",
933
+ "count": "{count} ændringer",
934
+ "saved": "Tilsidesættelser gemt.",
935
+ "revertOne": "Fortryd {change}",
936
+ "regenerate": "Regenerér sider",
937
+ "revertAll": "Fortryd alle",
938
+ "save": "Gem tilsidesættelser"
939
+ },
940
+ "table": {
941
+ "iconPicker": "Tabelikon",
942
+ "system": "System",
943
+ "labelOverride": "Visningsetiket",
944
+ "labelHelper": "Udledt: {name}",
945
+ "icon": "Ikon",
946
+ "navGroup": "Navigationsgruppe",
947
+ "navGroupHelper": "Navigationsplaceringen bestemmes af generatoren — en table.navGroup-tilsidesættelse er ikke en del af v1-vokabularet.",
948
+ "include": "Medtag i den genererede app",
949
+ "includeHelper": "Udeladte tabeller får ingen sider og forsvinder fra navigationen.",
950
+ "shape": "Tabelform (klassificeret)",
951
+ "role": "Rolle",
952
+ "unclassified": "Ikke klassificeret",
953
+ "kind": "Art",
954
+ "hierarchy": "Hierarki",
955
+ "selfFk": "Selvreference via {column}",
956
+ "polymorphic": "Polymorfe par",
957
+ "rows": "Rækkeestimat",
958
+ "shapeHelper": "Klassificeringen genberegnes ved hver introspektion; tilsidesættelser lægges ovenpå og overlever regenerering."
959
+ },
960
+ "relations": {
961
+ "declared": "Deklarerede fremmednøgler",
962
+ "noneDeclared": "Ingen deklarerede fremmednøgler berører denne tabel.",
963
+ "inferred": "Udledte relationer",
964
+ "noneInferred": "Intet udledt for denne tabel.",
965
+ "confidence": "udledt · {pct}%",
966
+ "accepted": "Accepteret",
967
+ "suppressed": "Undertrykt",
968
+ "accept": "Accepter",
969
+ "suppress": "Undertryk",
970
+ "overrides": "Relationer fra tilsidesættelser (anvendt)",
971
+ "overrideBadge": "tilsidesættelse",
972
+ "add": "Tilføj virtuel relation",
973
+ "fromColumn": "Fra kolonne",
974
+ "noColumns": "Ingen matchende kolonne",
975
+ "fromPlaceholder": "customer_id",
976
+ "toTable": "Til tabel",
977
+ "noTables": "Ingen matchende tabel",
978
+ "toColumn": "Til kolonne",
979
+ "cardinality": "Kardinalitet",
980
+ "addButton": "Tilføj relation"
981
+ },
982
+ "toast": {
983
+ "saved": "Skema-tilsidesættelser gemt",
984
+ "savedDetail": "Det anvendte skema nedenfor afspejler dine ændringer.",
985
+ "regenerated": "{created} oprettet · {updated} opdateret · {unchanged} uændret",
986
+ "regeneratedDetail": "Sider, du har redigeret i hånden, bevares — kun sider med en urørt generated_hash blev regenereret på stedet.",
987
+ "regenerateFailed": "Regenerering mislykkedes"
988
+ },
989
+ "title": "Skema-ommapning",
990
+ "subtitle": "{tables} tabeller · {applied} tilsidesættelser anvendt",
991
+ "saveFailed": "Lagring mislykkedes: {message}",
992
+ "loadFailed": "Kunne ikke indlæse skemaet for denne forbindelse.",
993
+ "inspector": "Inspektør",
994
+ "empty": {
995
+ "title": "Vælg en tabel eller kolonne",
996
+ "description": "Vælg noget i skematræet for at ommappe dets etiket, type, relationer eller maskering."
997
+ },
998
+ "tabs": {
999
+ "details": "Detaljer",
1000
+ "relations": "Relationer"
1001
+ },
1002
+ "tree": {
1003
+ "label": "Skema",
1004
+ "search": "Søg i tabeller og kolonner",
1005
+ "searchPlaceholder": "Søg i tabeller…",
1006
+ "noMatches": "Ingen tabeller matcher din søgning.",
1007
+ "collapse": "Fold tabel sammen",
1008
+ "expand": "Fold tabel ud",
1009
+ "unsaved": "Ugemt ændring",
1010
+ "excluded": "Udeladt"
1011
+ },
1012
+ "badge": {
1013
+ "pk": "PK",
1014
+ "fk": "FK",
1015
+ "unique": "UNIK",
1016
+ "pii": "PII",
1017
+ "masked": "Maskeret"
1018
+ }
1019
+ }
1020
+ },
1021
+ "onboarding": {
1022
+ "title": "Kom godt i gang",
1023
+ "subtitle": "Nogle få trin for at gøre dit arbejdsområde klar.",
1024
+ "loading": "Indlæser din tjekliste…",
1025
+ "welcome": "Velkommen til Adminium, {name} 👋",
1026
+ "progressBody": "Du har gennemført {done} af {total} opsætningstrin. Gennemfør resten for at låse hele arbejdsområdet op.",
1027
+ "completeBody": "Alt er klar — dit arbejdsområde er fuldt konfigureret.",
1028
+ "ringLabel": "{done} af {total} trin gennemført",
1029
+ "done": "Færdig",
1030
+ "skip": "Spring over for nu",
1031
+ "goToWorkspace": "Gå til arbejdsområde",
1032
+ "help": {
1033
+ "title": "Brug for hjælp?",
1034
+ "body": "Vi er her for at hjælpe dig hurtigt i gang."
1035
+ },
1036
+ "steps": {
1037
+ "connectDatabase": {
1038
+ "title": "Forbind en database",
1039
+ "desc": "Peg Adminium mod din Postgres, MySQL eller SQLite — en skrivebeskyttet rolle er nok.",
1040
+ "time": "5 min",
1041
+ "action": "Forbind"
1042
+ },
1043
+ "chooseTables": {
1044
+ "title": "Vælg dine tabeller",
1045
+ "desc": "Vælg hvilke tabeller der bliver til sider — personlige data maskeres som standard.",
1046
+ "time": "2 min",
1047
+ "action": "Vælg"
1048
+ },
1049
+ "inviteTeammates": {
1050
+ "title": "Inviter holdkammerater",
1051
+ "desc": "Få dit team med til at udforske og samarbejde.",
1052
+ "time": "2 min",
1053
+ "action": "Inviter"
1054
+ },
1055
+ "workspaceDefaults": {
1056
+ "title": "Angiv standarder",
1057
+ "desc": "Tema, accent, tæthed og sprog for alle.",
1058
+ "time": "1 min",
1059
+ "action": "Angiv"
1060
+ }
1061
+ },
1062
+ "entry": {
1063
+ "wayBack": "Kom godt i gang · {done}/{total}",
1064
+ "dismiss": "Skjul tjeklisten",
1065
+ "continue": "Fortsæt opsætning",
1066
+ "banner": "Færdiggør opsætningen af dit arbejdsområde — {done} af {total} trin klaret."
1067
+ }
1068
+ },
1069
+ "views": {
1070
+ "baseView": "Alle poster",
1071
+ "menuLabel": "Gemte visninger",
1072
+ "saveAs": "Gem aktuel som visning…",
1073
+ "updateActive": "Opdater „{name}“",
1074
+ "rename": "Omdøb…",
1075
+ "setDefault": "Angiv som standard",
1076
+ "delete": "Slet…",
1077
+ "saveTitle": "Gem visning",
1078
+ "save": "Gem visning",
1079
+ "renameTitle": "Omdøb visning",
1080
+ "saveName": "Gem navn",
1081
+ "nameLabel": "Visningsnavn",
1082
+ "namePlaceholder": "f.eks. Aktive denne måned",
1083
+ "nameRequired": "Angiv et navn til denne visning.",
1084
+ "saveFailed": "Visningen kunne ikke gemmes.",
1085
+ "deleteTitle": "Slet visning",
1086
+ "deleteBody": "Dette fjerner den gemte visning. Dine data påvirkes ikke.",
1087
+ "deletePrompt": "Skriv visningens navn for at bekræfte",
1088
+ "deleteConfirm": "Slet visning",
1089
+ "savedToast": "Visning „{name}“ gemt.",
1090
+ "updatedToast": "Visning „{name}“ opdateret.",
1091
+ "defaultToast": "„{name}“ er nu standardvisningen.",
1092
+ "deletedToast": "Visning „{name}“ slettet."
1093
+ },
1094
+ "builder": {
1095
+ "view": "Vis",
1096
+ "edit": "Rediger",
1097
+ "done": "Færdig",
1098
+ "addWidget": "Tilføj widget",
1099
+ "saveLayout": "Gem layout",
1100
+ "saving": "Gemmer…",
1101
+ "savedShort": "Gemt",
1102
+ "options": "Dashboard-indstillinger",
1103
+ "resetLayout": "Nulstil layout",
1104
+ "resetTitle": "Nulstil til det delte layout?",
1105
+ "resetBody": "Dette fjerner dine personlige ændringer og gendanner det dashboard, alle ser. Dine data påvirkes ikke.",
1106
+ "resetConfirm": "Nulstil layout",
1107
+ "resetDone": "Layout nulstillet til den delte standard.",
1108
+ "sharedNote": "Du redigerer det delte dashboard, som alle ser.",
1109
+ "personalNote": "Du redigerer dit personlige layout — kun du ser disse ændringer.",
1110
+ "savedShared": "Dashboard gemt for alle med adgang.",
1111
+ "empty": "Dette dashboard har endnu ingen widgets.",
1112
+ "emptyAction": "Tilføj widget",
1113
+ "palette": {
1114
+ "title": "Tilføj widget",
1115
+ "count": "{count} widgets",
1116
+ "searchLabel": "Søg widgets",
1117
+ "searchPlaceholder": "Søg widgets…",
1118
+ "clear": "Ryd søgning",
1119
+ "noResults": "Ingen widgets matcher “{query}”.",
1120
+ "add": "Tilføj {name}",
1121
+ "added": "{name} tilføjet."
1122
+ },
1123
+ "inspector": {
1124
+ "title": "Konfigurer widget",
1125
+ "empty": "Denne widget har ingen indstillinger at konfigurere.",
1126
+ "locked": "Låst",
1127
+ "lockedHint": "Dette felt er angivet af kilden og kan ikke redigeres her.",
1128
+ "selectPlaceholder": "Vælg…",
1129
+ "increment": "Forøg",
1130
+ "decrement": "Formindsk",
1131
+ "done": "Færdig"
1132
+ },
1133
+ "item": {
1134
+ "configure": "Konfigurer {name}",
1135
+ "duplicate": "Dupliker {name}",
1136
+ "remove": "Fjern {name}",
1137
+ "removed": "{name} fjernet.",
1138
+ "duplicated": "{name} duplikeret."
1139
+ },
1140
+ "families": {
1141
+ "kpi": "KPI’er",
1142
+ "charts": "Diagrammer",
1143
+ "tables": "Tabeller",
1144
+ "feeds": "Feeds",
1145
+ "calendar": "Kalender",
1146
+ "boards": "Tavler",
1147
+ "geo": "Kort",
1148
+ "media": "Medier",
1149
+ "communication": "Kommunikation",
1150
+ "forms": "Formularer",
1151
+ "chrome": "Navigation",
1152
+ "system": "System",
1153
+ "domain": "Domæne"
1154
+ },
1155
+ "versions": "Versioner",
1156
+ "versionsEmpty": "Ingen gemte versioner endnu",
1157
+ "saveAsVersion": "Gem som version",
1158
+ "saveVersionTitle": "Gem en version",
1159
+ "saveVersionBody": "Tager et øjebliksbillede af det aktuelle dokument. Gendan det når som helst fra Versioner.",
1160
+ "versionName": "Versionsnavn",
1161
+ "versionNamePlaceholder": "f.eks. Før Q3-satsændringen"
1162
+ },
1163
+ "setup": {
1164
+ "title": "Konfigurer Adminium",
1165
+ "subtitle": "Opret den første administrator. Det sker kun én gang.",
1166
+ "progress": "Opsætningsforløb",
1167
+ "steps": {
1168
+ "account": "Administratorkonto",
1169
+ "consent": "Privatliv"
1170
+ },
1171
+ "account": {
1172
+ "name": "Dit navn",
1173
+ "email": "E-mail",
1174
+ "emailInvalid": "Indtast en gyldig e-mailadresse.",
1175
+ "password": "Adgangskode",
1176
+ "passwordHelper": "Mindst {min} tegn.",
1177
+ "passwordTooShort": "Brug mindst {min} tegn.",
1178
+ "confirm": "Bekræft adgangskode",
1179
+ "passwordMismatch": "Adgangskoderne er ikke ens.",
1180
+ "continue": "Fortsæt",
1181
+ "strength": "Adgangskodens styrke",
1182
+ "strengthLevels": {
1183
+ "weak": "Svag",
1184
+ "fair": "Nogenlunde",
1185
+ "good": "God",
1186
+ "strong": "Stærk"
1187
+ }
1188
+ },
1189
+ "consent": {
1190
+ "telemetry": {
1191
+ "title": "Del anonyme brugsdata",
1192
+ "description": "Hjælper os med at se, hvilke databasemotorer vi skal prioritere. Slået fra, indtil du slår det til."
1193
+ },
1194
+ "updates": {
1195
+ "title": "Søg efter nye udgivelser",
1196
+ "description": "Viser en besked, når en ny version — også en sikkerhedsrettelse — er tilgængelig. Det spørger GitHub om den nyeste udgivelse, hvilket afslører denne instans’ IP-adresse og version over for GitHub. Der sendes ikke andet."
1197
+ },
1198
+ "sentTitle": "Præcis hvad der sendes:",
1199
+ "sent": {
1200
+ "instanceId": "Et tilfældigt instans-id (en UUID genereret her; ikke udledt af dit navn, din vært eller din database)",
1201
+ "version": "Den Adminium-version, denne instans kører",
1202
+ "engines": "Hvilke typer databasemotorer der er forbundet (f.eks. “postgres”) — kun typerne"
1203
+ },
1204
+ "neverTitle": "Sendes aldrig:",
1205
+ "never": {
1206
+ "schema": "Dit skema — ingen tabel-, kolonne- eller enum-navne",
1207
+ "rows": "Dine data — ikke en eneste række, aldrig",
1208
+ "connections": "Forbindelsesstrenge, værtsnavne eller legitimationsoplysninger",
1209
+ "people": "Brugeres e-mails, navne eller id’er",
1210
+ "llm": "AI-prompter eller kørselsindhold"
1211
+ },
1212
+ "reversible": "Begge dele er slået fra som standard, og du kan ændre dem senere under Indstillinger.",
1213
+ "back": "Tilbage",
1214
+ "finish": "Opret administratorkonto"
1215
+ },
1216
+ "error": {
1217
+ "alreadyCompleted": "Denne instans er allerede sat op. Log ind med den eksisterende administratorkonto.",
1218
+ "rejected": "Serveren afviste de oplysninger. Tjek e-mail og adgangskode, og prøv igen.",
1219
+ "failed": "Opsætningen mislykkedes. Tjek din forbindelse, og prøv igen."
1220
+ }
1221
+ },
1222
+ "about": {
1223
+ "title": "Om Adminium",
1224
+ "subtitle": "Version, licens og hvor denne instans’ kildekode findes.",
1225
+ "version": "Version",
1226
+ "license": "Licens",
1227
+ "metaStore": "Metalager",
1228
+ "node": "Node.js",
1229
+ "engine": {
1230
+ "postgres": "PostgreSQL",
1231
+ "mysql": "MySQL / MariaDB",
1232
+ "sqlite": "SQLite"
1233
+ },
1234
+ "licenseCard": {
1235
+ "title": "Frit og open source",
1236
+ "body": "Adminium er licenseret under GNU Affero General Public License v3.0. Du må frit køre, studere, ændre og dele det. Hvis du tilbyder en ændret version til andre over et netværk, beder AGPL dig om også at tilbyde dem kildekoden."
1237
+ },
1238
+ "viewLicense": "Læs licensen",
1239
+ "viewSource": "Hent kildekoden",
1240
+ "updates": {
1241
+ "title": "Opdateringer",
1242
+ "description": "Om denne instans søger efter nye udgivelser."
1243
+ },
1244
+ "update": {
1245
+ "disabled": "Opdateringstjek er slået fra, så denne instans kontakter aldrig GitHub. Slå det til under Indstillinger for at høre om nye udgivelser.",
1246
+ "current": "Du kører den nyeste udgivelse.",
1247
+ "available": "Adminium {version} er tilgængelig",
1248
+ "availableBody": "Du kører {version}.",
1249
+ "viewRelease": "Se udgivelsesnoter"
1250
+ },
1251
+ "desktop": {
1252
+ "unknown": "Ukendt",
1253
+ "appVersion": "App-version",
1254
+ "serverVersion": "Serverversion",
1255
+ "migration": "Meta-store-migrering",
1256
+ "electron": "Electron",
1257
+ "chromium": "Chromium",
1258
+ "runtimeNode": "Node-runtime",
1259
+ "system": {
1260
+ "title": "System"
1261
+ },
1262
+ "dataDir": "Datamappe",
1263
+ "reveal": "Vis i mappe",
1264
+ "secret": {
1265
+ "title": "Hemmelighedslager",
1266
+ "safe": "Krypteret af dit operativsystem",
1267
+ "plainWarning": "Denne computer har ingen tilgængelig systemnøglering, så din Adminium-hemmelighed gemmes ukrypteret på disken. Alle, der kan læse denne maskines filer, kan læse den. Opret en login-nøglering (eller en Linux-secret-service), og genstart Adminium for at beskytte den."
1268
+ },
1269
+ "updates": {
1270
+ "title": "Opdateringer",
1271
+ "mode": {
1272
+ "notify": "Underret mig om nye versioner",
1273
+ "manual": "Kun når jeg tjekker",
1274
+ "disabled": "Fra (offline)"
1275
+ },
1276
+ "disabledBody": "Automatiske opdateringer er slået fra (offline). Installér nye versioner manuelt.",
1277
+ "check": "Søg efter opdateringer",
1278
+ "checking": "Tjekker…",
1279
+ "lastChecked": "Sidst tjekket {when}",
1280
+ "available": "Version {version} er tilgængelig",
1281
+ "none": "Du har den nyeste version.",
1282
+ "unavailable": "Opdateringer er slået fra i denne installation.",
1283
+ "error": "Kunne ikke søge efter opdateringer.",
1284
+ "download": "Hent opdatering",
1285
+ "downloading": "Henter… {percent} %",
1286
+ "downloaded": "Version {version} er klar til installation",
1287
+ "restart": "Genstart for at installere",
1288
+ "downloadError": "Overførslen blev ikke gennemført. Du kan prøve igen.",
1289
+ "toast": {
1290
+ "available": "En ny version af Adminium er tilgængelig",
1291
+ "view": "Vis",
1292
+ "downloaded": "Opdateringen er klar til installation",
1293
+ "restart": "Genstart nu"
1294
+ }
1295
+ },
1296
+ "legal": {
1297
+ "title": "Licenser",
1298
+ "agpl": "Adminium Desktop er fri software under GNU Affero General Public License v3.0.",
1299
+ "viewLicense": "Vis licens",
1300
+ "licenseTitle": "GNU Affero General Public License v3.0",
1301
+ "licenseUnavailable": "Den medfølgende licensfil er ikke tilgængelig i denne build.",
1302
+ "viewNotices": "Tredjepartslicenser",
1303
+ "noticesTitle": "Tredjepartsmeddelelser",
1304
+ "noticesUnavailable": "Tredjepartsmeddelelser genereres, når appen pakkes, og er ikke tilgængelige i denne build.",
1305
+ "source": "Kildekode",
1306
+ "close": "Luk"
1307
+ },
1308
+ "telemetry": {
1309
+ "title": "Anonyme brugsdata",
1310
+ "label": "Del anonyme brugsdata",
1311
+ "description": "Hjælper os med at beslutte, hvilke databasemotorer vi skal prioritere. Slået fra, medmindre du slår det til; der sendes aldrig skema, data eller personlige oplysninger.",
1312
+ "saveFailed": "Indstillingen kunne ikke gemmes. Prøv igen."
1313
+ },
1314
+ "diagnostics": {
1315
+ "title": "Diagnostik",
1316
+ "description": "Oplysninger, der hjælper, når du rapporterer et problem. Der medtages intet skema eller data.",
1317
+ "copy": "Kopiér diagnostiske oplysninger",
1318
+ "copied": "Kopieret",
1319
+ "showLogs": "Vis logfiler",
1320
+ "dataSize": "Datastørrelse: {size}"
1321
+ }
1322
+ }
1323
+ },
1324
+ "apiKeys": {
1325
+ "title": "API-nøgler og tokens",
1326
+ "subtitle": "Administrér programmatisk adgang til dit workspace.",
1327
+ "createButton": "Opret nøgle",
1328
+ "copy": "Kopiér",
1329
+ "copied": "Kopieret",
1330
+ "revoke": "Tilbagekald nøgle",
1331
+ "neverUsed": "Aldrig brugt",
1332
+ "lastUsed": "Sidst brugt {since}",
1333
+ "scopesOverflow": "+{count} mere",
1334
+ "status": {
1335
+ "active": "Aktiv",
1336
+ "revoked": "Tilbagekaldt",
1337
+ "expired": "Udløbet"
1338
+ },
1339
+ "list": {
1340
+ "title": "Nøgler",
1341
+ "activeCount": "{count, plural, one {# aktiv nøgle} other {# aktive nøgler}}"
1342
+ },
1343
+ "empty": {
1344
+ "title": "Ingen API-nøgler endnu",
1345
+ "body": "Opret en for at kalde Adminiums API fra din egen kode."
1346
+ },
1347
+ "revealed": {
1348
+ "title": "Ny nøgle oprettet",
1349
+ "body": "Kopiér den nu — du får den aldrig at se igen."
1350
+ },
1351
+ "rolesUnavailable": {
1352
+ "title": "Roller er ikke synlige for dig",
1353
+ "body": "At oprette en nøgle er at vælge den rolle, den handler som, og din konto må ikke læse rollelisten. Bed en administrator om rettigheden „Administrér roller“."
1354
+ },
1355
+ "quickStart": {
1356
+ "title": "Kom hurtigt i gang",
1357
+ "body": "Godkend forespørgsler med din nøgle i Authorization-headeren."
1358
+ },
1359
+ "create": {
1360
+ "title": "Opret API-nøgle",
1361
+ "description": "Nøglen handler med rettighederne fra den rolle, du vælger.",
1362
+ "name": "Navn",
1363
+ "namePlaceholder": "f.eks. Analytics-pipeline",
1364
+ "role": "Rolle",
1365
+ "roleHelper": "Vælg den mindst privilegerede rolle, der kan klare opgaven.",
1366
+ "expires": "Udløber",
1367
+ "expiresHelper": "Lad feltet stå tomt for en nøgle, der aldrig udløber.",
1368
+ "submit": "Opret nøgle",
1369
+ "failed": "Nøglen kunne ikke oprettes"
1370
+ },
1371
+ "revokeConfirm": {
1372
+ "title": "Tilbagekald API-nøgle",
1373
+ "body": "Al kode, der stadig kalder API’et med „{name}“, begynder straks at fejle. Det kan ikke fortrydes.",
1374
+ "prompt": "Skriv „{name}“ for at bekræfte",
1375
+ "confirm": "Tilbagekald nøgle"
1376
+ }
1377
+ },
1378
+ "changelog": {
1379
+ "title": "Ændringslog",
1380
+ "subtitle": "Produktnyheder og udgivelser.",
1381
+ "allReleases": "Alle udgivelser",
1382
+ "tag": {
1383
+ "new": "Nyt",
1384
+ "improved": "Forbedret",
1385
+ "fixed": "Rettet",
1386
+ "security": "Sikkerhed"
1387
+ },
1388
+ "filter": {
1389
+ "all": "Alle",
1390
+ "label": "Filtrér ændringer efter type"
1391
+ },
1392
+ "empty": {
1393
+ "title": "Intet under dette filter",
1394
+ "body": "Ingen udgivelse har endnu indeholdt en ændring af den slags.",
1395
+ "clear": "Vis alle ændringer"
1396
+ }
1397
+ },
1398
+ "kb": {
1399
+ "title": "Vidensbase",
1400
+ "subtitle": "{count, plural, one {# guide} other {# guides}} · fuld dokumentation på docs.adminium.dev",
1401
+ "openDocs": "Åbn dokumentationen",
1402
+ "browse": "Gennemse efter emne",
1403
+ "hero": {
1404
+ "title": "Hvad kan vi hjælpe med?",
1405
+ "subtitle": "Søg i guides, API-dokumentation og fejlfinding.",
1406
+ "placeholder": "Søg i vidensbasen…",
1407
+ "label": "Søg i vidensbasen",
1408
+ "clear": "Ryd søgning"
1409
+ },
1410
+ "category": {
1411
+ "start": "Kom godt i gang",
1412
+ "connect": "Forbind data",
1413
+ "api": "API og udvikling",
1414
+ "security": "Sikkerhed og adgang",
1415
+ "selfhost": "Selv-hosting",
1416
+ "trouble": "Fejlfinding",
1417
+ "count": "{count, plural, one {# artikel} other {# artikler}}",
1418
+ "selected": "Filtreret"
1419
+ },
1420
+ "list": {
1421
+ "all": "Alle guides",
1422
+ "clear": "Ryd filter"
1423
+ },
1424
+ "empty": {
1425
+ "title": "Ingen guides matcher din søgning",
1426
+ "body": "Prøv et andet ord, eller søg i den fulde dokumentation på docs.adminium.dev.",
1427
+ "openDocs": "Åbn dokumentationen"
1428
+ },
1429
+ "article": {
1430
+ "install": {
1431
+ "title": "Installér Adminium",
1432
+ "excerpt": "Kør fra et kildekode-checkout eller med docker run, og nå førstegangsguiden på et minut."
1433
+ },
1434
+ "firstAdmin": {
1435
+ "title": "Opret din første superadministrator",
1436
+ "excerpt": "Hvad førstegangsguiden spørger om, og hvorfor den kun kan køre én gang."
1437
+ },
1438
+ "connectDb": {
1439
+ "title": "Forbind din første database",
1440
+ "excerpt": "Peg Adminium mod PostgreSQL, MySQL eller SQLite og generér en adminapp."
1441
+ },
1442
+ "schemaFile": {
1443
+ "title": "Generér ud fra en skemafil",
1444
+ "excerpt": "Upload et Prisma-skema, en Django-models.py, en Rails-schema.rb eller et .sql-dump — uden forbindelse."
1445
+ },
1446
+ "readOnly": {
1447
+ "title": "Brug en skrivebeskyttet rolle",
1448
+ "excerpt": "Introspektion læser kun skemametadata. Giv Adminium færrest mulige rettigheder."
1449
+ },
1450
+ "apiKeys": {
1451
+ "title": "Godkendelse med API-nøgler",
1452
+ "excerpt": "Opret og tilbagekald nøgler — og hvorfor en nøgle kun vises for dig én gang."
1453
+ },
1454
+ "rest": {
1455
+ "title": "REST API-reference",
1456
+ "excerpt": "Hvert endpoint den genererede app udstiller, med request- og responseformater."
1457
+ },
1458
+ "manifest": {
1459
+ "title": "Sidemanifestet",
1460
+ "excerpt": "Hvordan en side beskrives som konfiguration, og hvordan du redigerer en i hånden."
1461
+ },
1462
+ "roles": {
1463
+ "title": "Roller og rettigheder",
1464
+ "excerpt": "Tildel Læser, Redaktør og Admin, og byg dine egne roller ud fra rettighedsmatricen."
1465
+ },
1466
+ "audit": {
1467
+ "title": "Læs revisionsloggen",
1468
+ "excerpt": "Hvem ændrede hvad, hvornår og hvorfra."
1469
+ },
1470
+ "secrets": {
1471
+ "title": "Sådan opbevarer Adminium dine hemmeligheder",
1472
+ "excerpt": "Forbindelsesoplysninger krypteres med ADMINIUM_SECRET. API-nøgler hashes."
1473
+ },
1474
+ "docker": {
1475
+ "title": "Selv-hosting med Docker",
1476
+ "excerpt": "Det officielle image, docker-compose og drift af en separat metadatabase."
1477
+ },
1478
+ "backup": {
1479
+ "title": "Sikkerhedskopiér og flyt en instans",
1480
+ "excerpt": "export-zip samler din serverkonfiguration; importér den for at genskabe samme opsætning et andet sted."
1481
+ },
1482
+ "telemetry": {
1483
+ "title": "Telemetri og opdateringstjek",
1484
+ "excerpt": "Begge er tilvalg og slået fra som standard. Hvad der sendes, hvis du slår dem til."
1485
+ },
1486
+ "connectionFails": {
1487
+ "title": "En databaseforbindelse fejler",
1488
+ "excerpt": "Læs diagnosekortet: vært, port, TLS og den IP, din database skal tillade."
1489
+ },
1490
+ "missingTables": {
1491
+ "title": "Tabeller mangler efter introspektion",
1492
+ "excerpt": "Skemasynlighed, udeladte tabeller og en ny generering."
1493
+ }
1494
+ }
1495
+ },
1496
+ "desktop": {
1497
+ "menu": {
1498
+ "file": "Fil",
1499
+ "fileNewDatabase": "Ny lokal database…",
1500
+ "fileOpenSqlite": "Åbn SQLite-fil…",
1501
+ "fileBackupNow": "Sikkerhedskopiér nu…",
1502
+ "fileRestore": "Gendan fra sikkerhedskopi…",
1503
+ "edit": "Rediger",
1504
+ "view": "Vis",
1505
+ "window": "Vindue",
1506
+ "help": "Hjælp",
1507
+ "helpDocs": "Adminium-dokumentation",
1508
+ "helpShortcuts": "Tastaturgenveje",
1509
+ "helpLogs": "Vis logfiler",
1510
+ "helpCheckForUpdates": "Søg efter opdateringer…",
1511
+ "helpAbout": "Om Adminium"
1512
+ },
1513
+ "settings": {
1514
+ "explainer": "Disse indstillinger gælder kun for Adminium-appen på denne computer. De gemmes på denne maskine, ikke i dit workspace."
1515
+ },
1516
+ "security": {
1517
+ "heading": "Login"
1518
+ },
1519
+ "requireLogin": {
1520
+ "label": "Kræv login på denne enhed",
1521
+ "description": "Adminium logger dig normalt ind automatisk på denne computer. Slå dette til for at blive bedt om din adgangskode ved hver opstart — en god idé, hvis andre kan bruge maskinen. Det træder i kraft, næste gang du åbner Adminium.",
1522
+ "savedOn": "Der kræves login ved næste opstart",
1523
+ "savedOff": "Adminium springer login over på denne computer",
1524
+ "saveFailed": "Indstillingen kunne ikke gemmes. Prøv igen."
1525
+ },
1526
+ "chip": {
1527
+ "local": "Lokal",
1528
+ "lanShare": "Lokal · Deles på netværket",
1529
+ "remoteDb": "Lokal + fjerndatabase",
1530
+ "remoteDbOffline": "Fjerndatabase offline",
1531
+ "remoteDbOfflineDetail": "Kan ikke nå {names}. Sider for disse forbindelser viser en genforbindelsestilstand."
1532
+ },
1533
+ "lan": {
1534
+ "heading": "Del på lokalt netværk",
1535
+ "label": "Lad andre enheder på dette netværk bruge Adminium",
1536
+ "description": "Andre computere, tablets og telefoner på samme netværk kan åbne Adminium i en browser og logge ind med deres egen konto. Adminium skal blive ved med at være åbent på denne computer, for at de kan nå det.",
1537
+ "savedOn": "Deler på dit lokale netværk",
1538
+ "savedOff": "Deling stoppet — Adminium er tilbage på kun denne computer",
1539
+ "saveFailed": "Kunne ikke ændre netværksdeling",
1540
+ "noUsers": "Du er den eneste med en konto, så ingen andre kan logge ind endnu. Deling virker alligevel — du skal bare invitere folk, før de kan bruge det.",
1541
+ "usersUnknown": "Adminium kunne ikke tjekke, hvem der ellers har en konto på denne computer. Deling virker stadig, og alle med en konto kan logge ind — det er kun dette tjek, der fejlede.",
1542
+ "acknowledge": "Forstået — jeg inviterer folk bagefter",
1543
+ "port": "Port",
1544
+ "portHelper": "Standard {port}",
1545
+ "portInvalid": "Brug et tal mellem 1024 og 65535.",
1546
+ "applyPort": "Skift port",
1547
+ "portInUse": "Port {port} bruges allerede af et andet program.",
1548
+ "portInUseHint": "Intet blev ændret — deling er stadig slået fra.",
1549
+ "portInUseNoSuggestion": "Intet blev ændret. Prøv en anden port.",
1550
+ "tryPort": "Prøv {port}",
1551
+ "urlsHeading": "Åbn dette på en anden enhed",
1552
+ "noUrls": "Denne computer er ikke forbundet til et netværk lige nu, så der er ingen adresse at dele. Forbind til Wi-Fi eller sæt et kabel i, så udfyldes listen.",
1553
+ "copyUrl": "Kopiér",
1554
+ "sessions": "{count, plural, =0 {Ingen enheder er logget ind fra dette netværk} one {# enhed logget ind fra dette netværk} other {# enheder logget ind fra dette netværk}}",
1555
+ "sessionsUnknown": "Tjekker hvem der er forbundet…",
1556
+ "pending": "Starter deling…",
1557
+ "mismatch": "Adminium kan stadig nås på dette netværk",
1558
+ "mismatchBody": "Deling er slået fra, men serveren har endnu ikke frigivet netværket. Genstart Adminium for at lukke det.",
1559
+ "transportTitle": "Trafik på dit lokale netværk er ikke krypteret.",
1560
+ "transportBody": "Del kun på netværk, du stoler på. Brug Adminium self-host bag HTTPS til fjernadgang.",
1561
+ "firewall": "Første gang du deler, spørger dit styresystem, om indgående forbindelser skal tillades — vælg Tillad, ellers kan andre enheder ikke nå Adminium."
1562
+ },
1563
+ "setup": {
1564
+ "title": "Velkommen til Adminium",
1565
+ "subtitle": "Fire korte trin, og Adminium har bygget en administrationsapp ud fra din database. Alt bliver på denne computer.",
1566
+ "progress": "Opsætningsforløb",
1567
+ "back": "Tilbage",
1568
+ "continue": "Fortsæt",
1569
+ "createAccount": "Opret konto og fortsæt",
1570
+ "step": {
1571
+ "location": "Velkommen",
1572
+ "database": "Din første database",
1573
+ "account": "Din konto",
1574
+ "generate": "Generér"
1575
+ },
1576
+ "dataDir": {
1577
+ "heading": "Hvor skal Adminium gemme dine data?",
1578
+ "description": "Dine databaser, indstillinger og sikkerhedskopier ligger alle i denne mappe. Alt bliver på denne computer — intet uploades nogen steder.",
1579
+ "label": "Datamappe",
1580
+ "loading": "Læser den nuværende placering…",
1581
+ "pending": "Adminium genstarter, når du fortsætter, så det kan flytte til denne mappe.",
1582
+ "change": "Skift…",
1583
+ "revert": "Fortryd",
1584
+ "dialogTitle": "Vælg, hvor Adminium gemmer dine data",
1585
+ "cloudSyncTitle": "Denne mappe synkroniseres til skyen",
1586
+ "cloudSyncWarning": "Adminium gemmer sine data i SQLite-filer. {provider} synkroniserer filer i “{folder}” ved at kopiere dem i baggrunden, hvilket kan ødelægge en database, der er åben — og miste data uden varsel. Vælg en mappe uden for {provider}.",
1587
+ "chooseAnother": "Vælg en anden mappe",
1588
+ "useAnyway": "Brug den alligevel — jeg accepterer risikoen",
1589
+ "unusableTitle": "Adminium kan ikke bruge den mappe",
1590
+ "failed": "Adminium kunne ikke bruge den mappe."
1591
+ },
1592
+ "source": {
1593
+ "heading": "Hvad skal Adminium bygge ud fra?",
1594
+ "description": "Adminium læser en databases skema og genererer en administrationsapp ud fra det. Du kan tilføje flere databaser senere.",
1595
+ "groupLabel": "Databasekilde",
1596
+ "local": {
1597
+ "title": "Opret en ny lokal database",
1598
+ "description": "Start fra ingenting, eller fra en skemafil du allerede har. Databasen oprettes inde i din datamappe.",
1599
+ "name": "Databasenavn",
1600
+ "namePlaceholder": "Drift",
1601
+ "nameUnusable": "Brug mindst ét bogstav eller tal — filnavnet bygges ud fra dette.",
1602
+ "fileHelper": "Opretter {file}",
1603
+ "schemaLabel": "Start fra",
1604
+ "blank": "Tom",
1605
+ "fromFile": "En skemafil",
1606
+ "schemaFile": "Skemafil",
1607
+ "schemaFileHelper": ".sql, pg_dump, Prisma, Drizzle, TypeORM, Sequelize, schema.rb, Django eller Adminium-JSON. Adminium oversætter det til SQLite.",
1608
+ "placeholder": "Generér pladsholderposter automatisk",
1609
+ "placeholderHelper": "Du importerede et skema uden rækker. Fyld hver tabel med realistiske eksempeldata, så dine dashboards og diagrammer vises med det samme."
1610
+ },
1611
+ "openSqlite": {
1612
+ "title": "Åbn en eksisterende SQLite-fil",
1613
+ "description": "Peg Adminium mod en .sqlite-fil på denne computer. Den åbnes, hvor den ligger — intet kopieres eller flyttes.",
1614
+ "browse": "Vælg en .sqlite-fil…",
1615
+ "change": "Vælg en anden fil…",
1616
+ "networkTitle": "Den fil ligger på et netværksdrev",
1617
+ "networkBody": "SQLite-låsning er upålidelig over netværksdrev, og en afbrudt forbindelse midt i en skrivning kan ødelægge databasen. En kopi på denne computers egen disk er sikrere."
1618
+ },
1619
+ "remote": {
1620
+ "title": "Forbind til en serverdatabase",
1621
+ "description": "PostgreSQL eller MySQL. Kræver en database, der kan nås på netværket; Adminiums egne tabeller bliver stadig på denne computer.",
1622
+ "networkNote": "Kræver en database, der kan nås på netværket",
1623
+ "metaNote": "Adminiums egne tabeller — dine sider, indstillinger og login — bliver i datamappen på denne computer under alle omstændigheder.",
1624
+ "engine": "Motor",
1625
+ "name": "Forbindelsesnavn",
1626
+ "namePlaceholder": "Produktion",
1627
+ "dsn": "Forbindelsesstreng",
1628
+ "dsnHelper": "Adminium tester den, når det forbinder. Brug en skrivebeskyttet rolle, hvis du kun vil have dashboards."
1629
+ },
1630
+ "demo": {
1631
+ "title": "Udforsk demodatabasen",
1632
+ "description": "En færdig database over teamdrift, så du kan se, hvad Adminium bygger, før du peger det mod dine egne data. Slet den, når du vil.",
1633
+ "unavailable": "Denne udgave indeholder ikke demodataene, så der er intet at indlæse. Vælg en af mulighederne ovenfor."
1634
+ }
1635
+ },
1636
+ "account": {
1637
+ "heading": "Opret din konto",
1638
+ "description": "Dette er administratorkontoen for denne kopi af Adminium. Adgangskoden beskytter dine sikkerhedskopier og alle, du deler med på dit netværk — du bliver ikke spurgt om den ved hver opstart.",
1639
+ "name": "Dit navn",
1640
+ "email": "E-mail",
1641
+ "password": "Adgangskode",
1642
+ "passwordHelper": "Mindst {min} tegn.",
1643
+ "confirm": "Bekræft adgangskode",
1644
+ "strength": "Adgangskodens styrke",
1645
+ "strengthLevels": {
1646
+ "weak": "Svag",
1647
+ "fair": "Nogenlunde",
1648
+ "good": "God",
1649
+ "strong": "Stærk"
1650
+ },
1651
+ "singleUser": "Spring login over på denne computer",
1652
+ "singleUserHelper": "Adminium logger dig automatisk ind, når du åbner det her. Slå dette fra, hvis andre bruger denne maskine. Du kan ændre det senere under Indstillinger → Skrivebord.",
1653
+ "locale": "Sprog",
1654
+ "theme": "Udseende",
1655
+ "alreadyExists": "Denne kopi af Adminium har allerede en konto. Log ind med den i stedet.",
1656
+ "failed": "Adminium kunne ikke oprette den konto."
1657
+ },
1658
+ "generate": {
1659
+ "creating": "Sætter din database op…",
1660
+ "introspecting": "Læser dit skema — tabeller, kolonner og relationer…",
1661
+ "working": "Arbejder…",
1662
+ "offlineNote": "Alt dette sker på denne computer.",
1663
+ "failedTitle": "Adminium kunne ikke sætte den database op",
1664
+ "failedBody": "Noget gik galt. Prøv igen.",
1665
+ "retry": "Prøv igen"
1666
+ }
1667
+ }
1668
+ },
1669
+ "capabilities": {
1670
+ "heading": "App-tilladelser",
1671
+ "description": "Apps, du installerer, kan bede om at bruge denne computers hardware. Du godkender hver enkelt og kan tilbagekalde adgang når som helst.",
1672
+ "grantedTo": "Tilladt for {app}",
1673
+ "status": {
1674
+ "available": "Tilgængelig",
1675
+ "stub": "Ikke tilgængelig endnu",
1676
+ "unavailable": "Utilgængelig"
1677
+ },
1678
+ "allow": {
1679
+ "action": "Tillad…"
1680
+ },
1681
+ "revoke": {
1682
+ "action": "Tilbagekald",
1683
+ "saved": "Adgang tilbagekaldt",
1684
+ "failed": "Kunne ikke tilbagekalde adgang. Prøv igen."
1685
+ },
1686
+ "grant": {
1687
+ "saved": "Adgang tilladt",
1688
+ "failed": "Kunne ikke tillade adgang. Prøv igen."
1689
+ },
1690
+ "catalog": {
1691
+ "printerEscpos": {
1692
+ "name": "Kvitteringsprinter (ESC/POS)",
1693
+ "scope": "Udskriv på kvitteringsprintere og åbn en tilsluttet kasseskuffe"
1694
+ }
1695
+ },
1696
+ "consent": {
1697
+ "title": "Tillad {app}?",
1698
+ "subtitle": "{app} beder om at bruge denne computers hardware.",
1699
+ "willAllow": "Dette vil tillade {app} at:",
1700
+ "revokeNote": "Du kan tilbagekalde dette når som helst under Indstillinger → Skrivebord. Tillad kun apps, du stoler på.",
1701
+ "deny": "Ikke nu",
1702
+ "approve": "Tillad"
1703
+ }
1704
+ },
1705
+ "emailTemplates": {
1706
+ "title": "E-mailskabeloner",
1707
+ "subtitle": "Transaktions- og livscyklus-e-mails, som dit arbejdsområde sender.",
1708
+ "search": "Søg i skabeloner…",
1709
+ "loadFailed": "Skabelonerne kunne ikke indlæses",
1710
+ "empty": "Ingen e-mailskabeloner endnu",
1711
+ "emptyBody": "Skabeloner vises her, når serveren opretter dem, eller du selv opretter en.",
1712
+ "noMatches": "Ingen matchende skabeloner",
1713
+ "noMatchesBody": "Prøv en anden søgning.",
1714
+ "live": "Aktiv",
1715
+ "disabled": "Deaktiveret",
1716
+ "name": "Skabelonnavn",
1717
+ "subject": "Emne",
1718
+ "enabled": "Aktiveret"
1719
+ },
1720
+ "board": {
1721
+ "addCard": "Tilføj kort",
1722
+ "compose": {
1723
+ "placeholder": "Korttitel…",
1724
+ "add": "Tilføj",
1725
+ "cancel": "Annuller"
1726
+ },
1727
+ "empty": {
1728
+ "title": "Ingen tavlekolonner",
1729
+ "body": "Tilføj et statusfelt for at gruppere kort i kolonner."
1730
+ }
1731
+ },
1732
+ "calendar": {
1733
+ "dateRange": "Datointerval",
1734
+ "compose": {
1735
+ "placeholder": "Begivenhedstitel…",
1736
+ "add": "Tilføj",
1737
+ "cancel": "Annuller",
1738
+ "open": "Tilføj begivenhed"
1739
+ },
1740
+ "agenda": {
1741
+ "empty": "Intet planlagt"
1742
+ }
1743
+ },
1744
+ "scheduler": {
1745
+ "prevWeek": "Forrige uge",
1746
+ "nextWeek": "Næste uge",
1747
+ "week": "Uge",
1748
+ "month": "Måned",
1749
+ "resource": "Ressource",
1750
+ "coverage": "Dækning",
1751
+ "addShift": "Tilføj vagt",
1752
+ "shiftCount": "{n} vagter"
1753
+ },
1754
+ "planning": {
1755
+ "drawer": {
1756
+ "close": "Luk",
1757
+ "loading": "Indlæser post",
1758
+ "error": "Denne post kunne ikke indlæses."
1759
+ }
1760
+ },
1761
+ "files": {
1762
+ "uploadsUnavailable": "Upload er ikke tilgængeligt på denne side endnu."
1763
+ },
1764
+ "chat": {
1765
+ "messageSent": "Besked sendt",
1766
+ "sendFailed": "Beskeden kunne ikke sendes."
1767
+ },
1768
+ "templates": {
1769
+ "crud": {
1770
+ "title": "Poster"
1771
+ },
1772
+ "dashboard": {
1773
+ "title": "Dashboard"
1774
+ },
1775
+ "board": {
1776
+ "title": "Tavle"
1777
+ },
1778
+ "calendar": {
1779
+ "title": "Kalender"
1780
+ },
1781
+ "scheduler": {
1782
+ "title": "Vagtplan"
1783
+ },
1784
+ "logViewer": {
1785
+ "title": "Logfiler"
1786
+ },
1787
+ "files": {
1788
+ "title": "Filer"
1789
+ },
1790
+ "chat": {
1791
+ "title": "Chat"
1792
+ },
1793
+ "builder": {
1794
+ "title": "Editor"
1795
+ },
1796
+ "wizard": {
1797
+ "title": "Guide"
1798
+ },
1799
+ "settings": {
1800
+ "title": "Indstillinger"
1801
+ },
1802
+ "directory": {
1803
+ "title": "Katalog",
1804
+ "searchPlaceholder": "Søg efter personer…",
1805
+ "allFilter": "Alle",
1806
+ "clearFilters": "Ryd filtre",
1807
+ "detailTitle": "Person",
1808
+ "emptyTitle": "Ingen personer endnu",
1809
+ "emptyBody": "Personer vises her, efterhånden som rækker lander i tabellen.",
1810
+ "noMatchesTitle": "Ingen matchende personer",
1811
+ "noMatchesBody": "Prøv en anden søgning, eller fjern et filter.",
1812
+ "errorTitle": "Dette katalog kunne ikke indlæses",
1813
+ "loading": "Indlæser personer",
1814
+ "memberCount": "{count} personer"
1815
+ },
1816
+ "masterDetail": {
1817
+ "title": "Liste og detaljer",
1818
+ "allFilter": "Alle",
1819
+ "clearFilters": "Ryd filtre",
1820
+ "emptyTitle": "Intet her endnu",
1821
+ "emptyBody": "Poster vises her, efterhånden som rækker lander i tabellen.",
1822
+ "noMatchesTitle": "Ingen matchende poster",
1823
+ "noMatchesBody": "Prøv at fjerne et filter.",
1824
+ "errorTitle": "Denne liste kunne ikke indlæses",
1825
+ "loading": "Indlæser poster",
1826
+ "selectPrompt": "Vælg en post"
1827
+ },
1828
+ "queueInbox": {
1829
+ "title": "Kø",
1830
+ "approve": "Godkend",
1831
+ "reject": "Afvis",
1832
+ "allSegment": "Alle",
1833
+ "approvedToast": "{count} godkendt.",
1834
+ "rejectedToast": "{count} afvist.",
1835
+ "undoneToast": "Beslutning fortrudt.",
1836
+ "failedToast": "Beslutningen mislykkedes.",
1837
+ "bulkFailed": "{failed} af {total} valgte rækker kunne ikke opdateres.",
1838
+ "undoFailedToast": "Beslutningen kunne ikke fortrydes.",
1839
+ "rejectTitle": "Afvis anmodninger",
1840
+ "rejectCount": "Valgt · {count}",
1841
+ "rejectNote": "Anmoderen får besked sammen med din note.",
1842
+ "rejectPlaceholder": "Tilføj en note til anmoderen…",
1843
+ "rejectConfirm": "Afvis",
1844
+ "emptyTitle": "Intet i køen",
1845
+ "emptyBody": "Nye anmodninger vises her, når de ankommer.",
1846
+ "caughtUpTitle": "Du er helt ajour",
1847
+ "caughtUpBody": "Ingen anmodninger under denne fane lige nu.",
1848
+ "errorTitle": "Denne kø kunne ikke indlæses",
1849
+ "loading": "Indlæser kø",
1850
+ "selectPrompt": "Vælg en anmodning",
1851
+ "daysUnit": "{count} dage"
1852
+ }
1853
+ },
1854
+ "dataio": {
1855
+ "back": "Tilbage",
1856
+ "import": {
1857
+ "title": "Importér data",
1858
+ "stepUpload": "Upload",
1859
+ "stepMap": "Tilknyt kolonner",
1860
+ "stepValidate": "Validér",
1861
+ "stepRun": "Importér og gennemgå",
1862
+ "targetLabel": "Måltabel",
1863
+ "targetPlaceholder": "Vælg en tabelside…",
1864
+ "notATable": "Den side er ikke en tabel — vælg en tabelside at importere til.",
1865
+ "dropTitle": "Slip en CSV-fil for at importere",
1866
+ "dropHint": "CSV op til 32 MB — første række skal være headeren",
1867
+ "skipTarget": "Importér ikke",
1868
+ "mapHint": "{count} datarækker i {file} — vælg et mål for hver kolonne.",
1869
+ "validating": "Validerer…",
1870
+ "toValidate": "Validér",
1871
+ "validateFailed": "Validering mislykkedes.",
1872
+ "validationSummary": "{valid} af {total} rækker klar til import — {invalid} springes over.",
1873
+ "allValid": "Alle rækker bestod valideringen",
1874
+ "run": "Kør import",
1875
+ "runSkipping": "Importér {valid} rækker (spring {invalid} over)",
1876
+ "progressLabel": "Importfremdrift",
1877
+ "running": "Importerer…",
1878
+ "kpiTotal": "Rækker i filen",
1879
+ "kpiCreated": "Oprettet",
1880
+ "kpiUpdated": "Opdateret",
1881
+ "kpiSkipped": "Sprunget over",
1882
+ "inconsistent": "Importtallene stemmer ikke — total skal være lig oprettet + opdateret + sprunget over.",
1883
+ "downloadErrors": "Download rapporten over oversprungne rækker (CSV)",
1884
+ "runFailed": "Importen mislykkedes."
1885
+ },
1886
+ "exports": {
1887
+ "title": "Dataeksporter",
1888
+ "tableLabel": "Tabel",
1889
+ "tablePlaceholder": "Vælg en tabel…",
1890
+ "notATable": "Den side er ikke en tabel — vælg en tabelside at eksportere.",
1891
+ "formatLabel": "Format",
1892
+ "create": "Eksportér",
1893
+ "createFailed": "Eksporten kunne ikke startes.",
1894
+ "retention": "Eksporter gemmes i 30 dage og udløber derefter.",
1895
+ "statusProcessing": "Behandler…",
1896
+ "statusReady": "Klar — {rows} rækker · klik for at downloade",
1897
+ "statusFailed": "Mislykkedes — {error}",
1898
+ "statusCancelled": "Annulleret",
1899
+ "statusExpired": "Udløbet",
1900
+ "emptyTitle": "Ingen eksporter endnu",
1901
+ "emptyBody": "Anmod om en ovenfor — artefakter vises her med deres status."
1902
+ }
1903
+ },
1904
+ "reports": {
1905
+ "title": "Planlagte rapporter",
1906
+ "subtitle": "Tilbagevendende dataøjebliksbilleder af en side, leveret som notifikationer i appen.",
1907
+ "new": "Ny rapport",
1908
+ "loadFailed": "Planlagte rapporter kunne ikke indlæses.",
1909
+ "saveFailed": "Denne rapport kunne ikke gemmes.",
1910
+ "nextRun": "Næste kørsel",
1911
+ "emptyTitle": "Ingen planlagte rapporter endnu",
1912
+ "emptyBody": "Opret en for at få et tilbagevendende dataøjebliksbillede af enhver tabelside.",
1913
+ "createTitle": "Ny planlagt rapport",
1914
+ "editTitle": "Redigér planlagt rapport",
1915
+ "nameLabel": "Navn",
1916
+ "namePlaceholder": "f.eks. Ugentlig omsætning",
1917
+ "pageLabel": "Side",
1918
+ "pagePlaceholder": "Vælg en side…",
1919
+ "frequencyLabel": "Frekvens",
1920
+ "frequency": {
1921
+ "daily": "Dagligt",
1922
+ "weekly": "Ugentligt",
1923
+ "monthly": "Månedligt"
1924
+ },
1925
+ "dayOfWeekLabel": "Dag",
1926
+ "dayOfMonthLabel": "Dag i måneden",
1927
+ "timeLabel": "Tidspunkt",
1928
+ "timezoneLabel": "Tidszone",
1929
+ "formatLabel": "Levering",
1930
+ "formatHint": "Dataøjebliksbillede (PDF/PNG-gengivelse kommer i en senere udgivelse) — hver kørsel producerer et CSV-øjebliksbillede og en notifikation i appen.",
1931
+ "recipientsLabel": "Modtagere",
1932
+ "recipientsHint": "Gemmes med rapporten. E-mail-levering kommer i en senere udgivelse — kørsler giver dig indtil videre besked i appen.",
1933
+ "deliveryBadge": "CSV-øjebliksbillede",
1934
+ "delete": "Slet",
1935
+ "create": "Opret",
1936
+ "cadence": {
1937
+ "daily": "Dagligt kl. {time} ({zone})",
1938
+ "weekly": "Ugentligt · {day} kl. {time} ({zone})",
1939
+ "monthly": "Månedligt · dag {day} kl. {time} ({zone})"
1940
+ }
1941
+ },
1942
+ "notifications": {
1943
+ "channel": {
1944
+ "inApp": "I appen",
1945
+ "email": "E-mail",
1946
+ "push": "Push"
1947
+ },
1948
+ "event": {
1949
+ "reportReady": "Planlagt rapport klar",
1950
+ "reportFailed": "Planlagt rapport mislykkedes",
1951
+ "backupCompleted": "Backup fuldført"
1952
+ }
1953
+ }
1954
+ }