@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,1964 @@
1
+ /**
2
+ * GENERATED MIRROR of ../../../locales/de-DE/common.json — do not edit by hand.
3
+ * The JSON file is the canonical hand-authored bundle (10-i18n-theming.md §3.1);
4
+ * this TS mirror exists so the runtime bundles en-US resources (and chunk-splits
5
+ * the other locales) without JSON import attributes (browser + NodeNext safe).
6
+ * Parity is enforced by src/resources/parity.test.ts. Regenerate with
7
+ * scripts/gen-resources.mjs.
8
+ */
9
+ declare const _default: {
10
+ readonly common: {
11
+ readonly dismiss: "Schließen";
12
+ readonly notifications: "Benachrichtigungen";
13
+ readonly retry: "Erneut versuchen";
14
+ readonly undo: "Rückgängig";
15
+ readonly close: "Schließen";
16
+ readonly cancel: "Abbrechen";
17
+ readonly back: "Zurück";
18
+ readonly loading: "Wird geladen";
19
+ readonly clearSearch: "Suche löschen";
20
+ readonly clear: "Leeren";
21
+ readonly save: "Speichern";
22
+ };
23
+ readonly auth: {
24
+ readonly headline: "Machen Sie aus jeder Datenbank ein Dashboard.";
25
+ readonly trust: "AGPL-Kern · Selbst gehostet · Ihre Daten bleiben Ihre";
26
+ readonly signIn: {
27
+ readonly title: "Willkommen zurück";
28
+ readonly subtitle: "Melden Sie sich in Ihrem Adminium-Workspace an.";
29
+ readonly email: "E-Mail";
30
+ readonly emailInvalid: "Geben Sie eine gültige E-Mail-Adresse ein.";
31
+ readonly password: "Passwort";
32
+ readonly passwordRequired: "Geben Sie Ihr Passwort ein.";
33
+ readonly showPassword: "Passwort anzeigen";
34
+ readonly hidePassword: "Passwort verbergen";
35
+ readonly remember: "Angemeldet bleiben";
36
+ readonly forgot: "Vergessen?";
37
+ readonly submit: "Anmelden";
38
+ readonly invalid: "E-Mail oder Passwort ist ungültig.";
39
+ readonly rateLimited: "Zu viele Versuche — versuchen Sie es in einer Minute erneut.";
40
+ readonly failed: "Anmeldung fehlgeschlagen. Prüfen Sie Ihre Verbindung und versuchen Sie es erneut.";
41
+ };
42
+ readonly forgot: {
43
+ readonly title: "Passwort zurücksetzen";
44
+ readonly email: "E-Mail";
45
+ readonly emailInvalid: "Geben Sie eine gültige E-Mail-Adresse ein.";
46
+ readonly submit: "Link zum Zurücksetzen senden";
47
+ readonly sentTitle: "Prüfen Sie Ihr E-Mail-Postfach";
48
+ readonly resend: "Erneut senden";
49
+ readonly back: "Zurück zur Anmeldung";
50
+ readonly done: "Zurück zur Anmeldung";
51
+ readonly rateLimited: "Zu viele Anfragen — versuchen Sie es später erneut.";
52
+ readonly failed: "Etwas ist schiefgelaufen. Versuchen Sie es erneut.";
53
+ readonly smtpUnconfigured: "Für dieses Adminium ist kein E-Mail-Server konfiguriert, daher kann kein Link zum Zurücksetzen gesendet werden. Bitten Sie eine Administratorin oder einen Administrator, Ihr Passwort zurückzusetzen.";
54
+ };
55
+ readonly reset: {
56
+ readonly title: "Neues Passwort festlegen";
57
+ readonly subtitle: "Mindestens 8 Zeichen.";
58
+ readonly password: "Neues Passwort";
59
+ readonly confirm: "Passwort bestätigen";
60
+ readonly showPassword: "Passwort anzeigen";
61
+ readonly hidePassword: "Passwort verbergen";
62
+ readonly strength: "Passwortstärke";
63
+ readonly weak: "Schwach";
64
+ readonly fair: "Ausreichend";
65
+ readonly good: "Gut";
66
+ readonly strong: "Stark";
67
+ readonly tooShort: "Verwenden Sie mindestens 8 Zeichen.";
68
+ readonly submit: "Passwort zurücksetzen";
69
+ readonly failed: "Zurücksetzen fehlgeschlagen. Versuchen Sie es erneut.";
70
+ };
71
+ readonly otp: {
72
+ readonly title: "Zwei-Faktor-Authentifizierung";
73
+ readonly subtitle: "Geben Sie den 6-stelligen Code aus Ihrer Authenticator-App ein.";
74
+ readonly code: "Einmalcode";
75
+ readonly recoveryCode: "Wiederherstellungscode";
76
+ readonly useRecovery: "Gerät verloren? Wiederherstellungscode verwenden";
77
+ readonly useAuthenticator: "Stattdessen die Authenticator-App verwenden";
78
+ readonly submit: "Bestätigen";
79
+ readonly invalid: "Dieser Code hat nicht funktioniert. Versuchen Sie es erneut.";
80
+ readonly failed: "Bestätigung fehlgeschlagen. Prüfen Sie Ihre Verbindung und versuchen Sie es erneut.";
81
+ };
82
+ };
83
+ readonly nav: {
84
+ readonly home: "Start";
85
+ readonly primary: "Hauptbereich";
86
+ readonly account: "Konto";
87
+ readonly signOut: "Abmelden";
88
+ readonly empty: "Sobald eine Datenbank verbunden ist, erscheinen hier Seiten.";
89
+ readonly connection: {
90
+ readonly shared: "Gemeinsam";
91
+ readonly unnamed: "Verbindung";
92
+ };
93
+ readonly imports: "Daten importieren";
94
+ readonly exports: "Datenexporte";
95
+ readonly emailTemplates: "E-Mail-Vorlagen";
96
+ readonly notificationSettings: "Benachrichtigungseinstellungen";
97
+ readonly scheduledReports: "Geplante Berichte";
98
+ readonly group: {
99
+ readonly workspace: "Arbeitsbereich";
100
+ readonly library: "Bibliothek";
101
+ readonly planning: "Planung";
102
+ readonly people: "Personen";
103
+ readonly account: "Konto";
104
+ };
105
+ };
106
+ readonly topbar: {
107
+ readonly search: "Suchen…";
108
+ readonly notifications: "Benachrichtigungen";
109
+ readonly notificationsLoading: "Benachrichtigungen werden geladen";
110
+ readonly notificationsError: "Benachrichtigungen konnten nicht geladen werden.";
111
+ readonly notificationsEmpty: "Alles erledigt.";
112
+ readonly theme: "Hell / Dunkel umschalten";
113
+ readonly userMenu: "Kontomenü";
114
+ readonly profile: "Profil";
115
+ readonly preferences: "Einstellungen";
116
+ readonly signOut: "Abmelden";
117
+ };
118
+ readonly palette: {
119
+ readonly dialog: "Befehlspalette";
120
+ readonly placeholder: "Befehl eingeben oder suchen…";
121
+ readonly navigate: "Navigation";
122
+ readonly actions: "Aktionen";
123
+ readonly askAi: "KI fragen";
124
+ readonly shortcuts: "Tastaturkürzel";
125
+ readonly signOut: "Abmelden";
126
+ readonly themeDark: "Zum dunklen Design wechseln";
127
+ readonly themeLight: "Zum hellen Design wechseln";
128
+ readonly footerNavigate: "navigieren";
129
+ readonly footerOpen: "auswählen";
130
+ readonly footerClose: "schließen";
131
+ };
132
+ readonly shortcuts: {
133
+ readonly title: "Tastaturkürzel";
134
+ readonly subtitle: "Schneller arbeiten in ganz Adminium";
135
+ readonly close: "Schließen";
136
+ readonly dismiss: "Schließen oder verwerfen";
137
+ readonly palette: "Befehlspalette öffnen";
138
+ readonly panel: "Kürzel-Übersicht anzeigen";
139
+ readonly search: "Suche fokussieren";
140
+ readonly sidebar: "Seitenleiste umschalten";
141
+ readonly theme: "Hell / Dunkel umschalten";
142
+ readonly then: "dann";
143
+ readonly footerPre: "Drücken Sie";
144
+ readonly footerPost: ", um diese Übersicht jederzeit zu öffnen.";
145
+ };
146
+ readonly states: {
147
+ readonly checked: "vor 8 s geprüft";
148
+ readonly diagnostics: "Diagnose";
149
+ };
150
+ readonly notFound: {
151
+ readonly title: "Diese Seite ist verschwunden";
152
+ readonly errorLine: "Fehler 404";
153
+ readonly searchPlaceholder: "Nach einer Seite suchen…";
154
+ readonly matches: "Passende Seiten";
155
+ readonly popular: "Beliebte Ziele";
156
+ readonly goBack: "Zurück";
157
+ readonly backToDashboard: "Zurück zum Dashboard";
158
+ };
159
+ readonly page: {
160
+ readonly invalid: {
161
+ readonly title: "Die Konfiguration dieser Seite ist ungültig";
162
+ readonly body: "Das gespeicherte Seitendokument hat die Validierung nicht bestanden und kann nicht dargestellt werden.";
163
+ };
164
+ readonly renderError: {
165
+ readonly title: "Diese Seite konnte nicht dargestellt werden";
166
+ };
167
+ readonly tooNew: {
168
+ readonly title: "Diese Seite benötigt ein neueres Adminium";
169
+ };
170
+ readonly unknownTemplate: {
171
+ readonly title: "Unbekannte Seitenvorlage";
172
+ };
173
+ };
174
+ readonly mutation: {
175
+ readonly created: "Datensatz erstellt";
176
+ readonly updated: "Datensatz aktualisiert";
177
+ readonly deleted: "Datensatz gelöscht";
178
+ };
179
+ readonly undo: {
180
+ readonly done: "Änderung rückgängig gemacht";
181
+ readonly failed: "Diese Änderung konnte nicht rückgängig gemacht werden";
182
+ };
183
+ readonly prefs: {
184
+ readonly theme: {
185
+ readonly label: "Design";
186
+ readonly light: "Hell";
187
+ readonly dark: "Dunkel";
188
+ readonly system: "System";
189
+ };
190
+ readonly accent: {
191
+ readonly label: "Akzentfarbe";
192
+ readonly indigo: "Indigo";
193
+ readonly blue: "Blau";
194
+ readonly teal: "Petrol";
195
+ readonly violet: "Violett";
196
+ readonly rose: "Rosé";
197
+ readonly red: "Rot";
198
+ readonly orange: "Orange";
199
+ readonly black: "Schwarz";
200
+ };
201
+ readonly density: {
202
+ readonly label: "Dichte";
203
+ readonly comfortable: "Komfortabel";
204
+ readonly compact: "Kompakt";
205
+ };
206
+ readonly locale: {
207
+ readonly label: "Sprache";
208
+ readonly directionNote: "Textrichtung: rechts nach links (wird automatisch durch die Sprache festgelegt)";
209
+ };
210
+ };
211
+ readonly account: {
212
+ readonly title: "Konto";
213
+ readonly subtitle: "Die Identität Ihrer aktuellen Sitzung. Anzeigeeinstellungen und Benachrichtigungen verwalten Sie auf ihren eigenen Seiten.";
214
+ readonly preferencesLink: "Einstellungen";
215
+ readonly notificationsLink: "Benachrichtigungseinstellungen";
216
+ readonly name: "Name";
217
+ readonly email: "E-Mail";
218
+ readonly roles: "Rollen";
219
+ readonly twoFactor: "Zwei-Faktor";
220
+ readonly on: "Aktiviert";
221
+ readonly off: "Aus";
222
+ readonly preferences: {
223
+ readonly title: "Einstellungen";
224
+ readonly subtitle: "Wie Adminium für Sie aussieht und sich liest — auf diesem und jedem anderen Gerät, an dem Sie sich anmelden.";
225
+ readonly workspaceDefault: "Workspace-Standard";
226
+ readonly personal: "Persönlich";
227
+ readonly usingDefault: "Workspace-Standard wird verwendet ({value})";
228
+ readonly reset: "Auf Workspace-Standard zurücksetzen";
229
+ readonly resetFailed: "Diese Einstellung konnte nicht zurückgesetzt werden. Versuchen Sie es erneut.";
230
+ readonly appliesInstantly: "Änderungen gelten sofort und werden in Ihrem Profil gespeichert.";
231
+ };
232
+ };
233
+ readonly settings: {
234
+ readonly defaults: {
235
+ readonly title: "Globale Standards";
236
+ readonly subtitle: "Workspace-weite Standards für Darstellung und Sprache.";
237
+ readonly explainer: "Diese Standards gelten für alle Benutzer, sofern sie sie nicht überschreiben. Jeder kann unter Profil → Einstellungen eigene Werte festlegen — persönliche Einstellungen haben für diesen Benutzer immer Vorrang.";
238
+ readonly appearanceHeading: "Darstellungs-Standards";
239
+ readonly languageHeading: "Standards für Sprache & Region";
240
+ readonly adoption: "{following, number} von {total, plural, one {# Benutzer} other {# Benutzern}} folgen diesem Standard.";
241
+ readonly weekStartNote: "Wochenbeginn und Zahlenformate richten sich nach der Sprache.";
242
+ readonly save: "Standards speichern";
243
+ readonly saved: "Workspace-Standards aktualisiert";
244
+ readonly saveFailed: "Die Workspace-Standards konnten nicht gespeichert werden. Versuchen Sie es erneut.";
245
+ readonly liveNote: "Beim Speichern wird die Änderung live übertragen — angemeldete Benutzer, die einem Standard folgen, sehen sie ohne Neuladen.";
246
+ };
247
+ readonly notifications: {
248
+ readonly subtitle: "Wählen Sie, worüber und wie Sie benachrichtigt werden";
249
+ readonly matrixLabel: "Benachrichtigen bei";
250
+ readonly rowHeader: "Ereignis";
251
+ readonly saving: "Wird gespeichert…";
252
+ readonly saved: "Gespeichert";
253
+ readonly unavailable: "Noch nicht verfügbar";
254
+ readonly loading: "Einstellungen werden geladen";
255
+ readonly errorTitle: "Diese Einstellungen konnten nicht geladen werden";
256
+ readonly emptyTitle: "Noch nichts zu konfigurieren";
257
+ readonly emptyBody: "Benachrichtigungsereignisse erscheinen hier, sobald ihre Produzenten ausgeliefert werden.";
258
+ readonly saveFailed: "Diese Änderung konnte nicht gespeichert werden.";
259
+ };
260
+ };
261
+ readonly studio: {
262
+ readonly source: {
263
+ readonly engine: {
264
+ readonly label: "Datenbank-Engine";
265
+ readonly postgres: "PostgreSQL";
266
+ readonly mysql: "MySQL / MariaDB";
267
+ readonly sqlite: "SQLite";
268
+ };
269
+ readonly format: {
270
+ readonly label: "Schemaformat";
271
+ readonly helper: "Bei automatischer Erkennung belassen, sofern sie nicht danebenliegt.";
272
+ readonly auto: "Automatisch erkennen";
273
+ readonly sql: "SQL-DDL / pg_dump";
274
+ readonly prisma: "Prisma-Schema";
275
+ readonly drizzle: "Drizzle ORM";
276
+ readonly typeorm: "TypeORM-Entitäten";
277
+ readonly sequelize: "Sequelize-Modelle";
278
+ readonly rails: "Rails schema.rb";
279
+ readonly django: "Django models.py";
280
+ readonly json: "Adminium-JSON";
281
+ };
282
+ readonly sqlite: {
283
+ readonly file: "Pfad zur Datenbankdatei";
284
+ readonly helper: "SQLite ist eine Datei, kein Server — geben Sie den absoluten Pfad auf der Maschine an, auf der Adminium läuft.";
285
+ };
286
+ readonly file: {
287
+ readonly detectedAs: "Erkannt: {format}";
288
+ readonly moreWarnings: "+{count} weitere Warnungen — die vollständige Liste erscheint im Analyse-Schritt.";
289
+ readonly dropTitle: "Schemadatei hier ablegen oder durchsuchen";
290
+ readonly dropHint: "SQL DDL / pg_dump, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, Django-Modelle, Adminium JSON";
291
+ readonly pitch: "Keine Datenbankverbindung nötig — wir parsen Ihre Schemadatei und bauen dieselben Dashboards.";
292
+ readonly parsing: "Hochgeladene Schemadatei wird gelesen…";
293
+ readonly tables: "Tabellen";
294
+ readonly columns: "Spalten";
295
+ readonly warnings: "Warnungen";
296
+ readonly errorTitle: "Datei konnte nicht geparst werden";
297
+ readonly parseFailed: "Diese Datei konnte nicht geparst werden. Falls die automatische Erkennung falsch lag, wählen Sie das Format explizit und versuchen Sie es erneut.";
298
+ readonly unsupported: "Dieses Format wird nicht erkannt — unterstützt werden SQL DDL, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, Django-Modelle und Adminium JSON. Wählen Sie eines explizit und versuchen Sie es erneut.";
299
+ readonly requestFailed: "Upload fehlgeschlagen — prüfen Sie Ihre Verbindung und versuchen Sie es erneut.";
300
+ };
301
+ readonly title: "Verbinden Sie Ihre Datenbank";
302
+ readonly subtitle: "Richten Sie Adminium auf eine Datenbank — wir generieren aus ihrem Schema ein Admin-Dashboard.";
303
+ readonly name: "Verbindungsname";
304
+ readonly namePlaceholder: "Produktions-Postgres";
305
+ readonly modeLabel: "Eingabemodus der Quelle";
306
+ readonly mode: {
307
+ readonly dsn: "Verbindungszeichenfolge";
308
+ readonly fields: "Einzelne Felder";
309
+ readonly file: "Schemadatei";
310
+ };
311
+ readonly dsn: {
312
+ readonly label: "Verbindungszeichenfolge";
313
+ readonly helper: "postgres://benutzer:passwort@host:5432/datenbank — mysql:// und sqlite: funktionieren ebenfalls.";
314
+ readonly incomplete: "Host und Datenbank ergänzen, z. B. postgres://user@host:5432/db";
315
+ readonly invalidScheme: "Unbekanntes Schema — erwartet werden postgres://, mysql://, mariadb:// oder sqlite:";
316
+ readonly quickFill: "Schnellausfüllen:";
317
+ };
318
+ readonly fields: {
319
+ readonly host: "Host";
320
+ readonly port: "Port";
321
+ readonly database: "Datenbank";
322
+ readonly user: "Benutzer";
323
+ readonly password: "Passwort";
324
+ readonly ssl: "SSL-Modus";
325
+ readonly preview: "Vorschau der Verbindungszeichenfolge:";
326
+ };
327
+ readonly readOnlyRole: {
328
+ readonly title: "Verwenden Sie eine schreibgeschützte Rolle";
329
+ readonly body: "Adminium schreibt nie in Ihre Datenbank — die Einrichtung nutzt nur Schema-Metadaten. Wir empfehlen einen dedizierten Benutzer mit reinen SELECT-Rechten; wo Adminium seine eigenen Tabellen ablegt, entscheiden Sie im Meta-Speicher-Schritt.";
330
+ };
331
+ };
332
+ readonly capability: {
333
+ readonly mysqlApproxRows: "MySQL-Zeilenzahlen sind Schätzungen der Storage-Engine (Abweichungen bis ±40 % möglich) — sie werden mit ≈ angezeigt.";
334
+ readonly mysqlFkEnum: "MySQL liefert schwächere FK-/Enum-Metadaten: MyISAM-Tabellen deklarieren keine Fremdschlüssel, Enums sind spaltengebundene enum(…)-Typen, und CHECK-Constraints erfordern MySQL 8.0.16+ / MariaDB 10.2+.";
335
+ readonly sqliteCheckEnums: "SQLite hat keinen nativen Enum-Typ — Enums werden aus CHECK-(col IN (…))-Constraints abgeleitet.";
336
+ readonly sqliteNoComments: "SQLite kennt keine Spaltenkommentare — verwenden Sie den Schema-Remap-Editor, um Beschriftungen zu vergeben.";
337
+ readonly importNoRowCounts: "Schemadateien enthalten keine Zeilenzahlen — die Tabellenliste zeigt — statt erfundener Werte.";
338
+ readonly importNoLiveHealth: "Keine Live-Datenbankverbindung — Health-Checks und Schema-Drift-Erkennung sind für diese Quelle nicht verfügbar.";
339
+ readonly rowsUnavailable: "Schemadateien haben keine Live-Datenbank — Zeilenzahlen sind unbekannt, bis Sie eine verbinden.";
340
+ readonly rowsRunAnalyze: "Noch keine Schätzung — führen Sie ANALYZE auf der Datenbank aus, um Zeilenzahlen zu erhalten.";
341
+ readonly rowsNoEstimate: "Die Engine hat für diese Tabelle keine Schätzung gemeldet.";
342
+ readonly rowsApproximate: "Schätzung der Storage-Engine — kann bei InnoDB um bis zu ±40 % abweichen.";
343
+ };
344
+ readonly test: {
345
+ readonly log: {
346
+ readonly moreWarnings: "+{count} weitere Parser-Warnungen";
347
+ readonly connecting: "Sichere Verbindung wird aufgebaut…";
348
+ readonly connected: "Verbunden ({latency} ms) · schreibgeschützte Introspektion";
349
+ readonly connectFailed: "Verbindung fehlgeschlagen.";
350
+ readonly readingSchema: "Schema wird gelesen: public";
351
+ readonly readingFile: "Hochgeladene Schemadatei wird gelesen…";
352
+ readonly parsingFile: "{file} wird geparst…";
353
+ readonly detected: "{tables} Tabellen · {columns} Spalten erkannt";
354
+ readonly found: "{tables} Tabellen · {columns} Spalten gefunden";
355
+ readonly mapping: "Spaltentypen → Eingabe-Widgets werden zugeordnet";
356
+ readonly relations: "Beziehungen werden erkannt…";
357
+ readonly piiScan: "Suche nach PII-Spalten…";
358
+ readonly piiDone: "PII-Scan abgeschlossen — {count} Spalten standardmäßig maskiert";
359
+ readonly piiDoneUnknown: "PII-Scan abgeschlossen";
360
+ readonly jobFailed: "Introspektion fehlgeschlagen.";
361
+ readonly networkFailed: "Anfrage fehlgeschlagen — prüfen Sie Ihre Verbindung und versuchen Sie es erneut.";
362
+ readonly ready: "Bereit";
363
+ };
364
+ readonly title: "Ihr Schema wird analysiert";
365
+ readonly subtitle: "Tabellen, Spalten und Beziehungen werden introspiziert. Das dauert ein paar Sekunden.";
366
+ readonly trust: "Wir lesen nur Ihr Schema und Ihre Daten. Nichts wird verändert.";
367
+ readonly errorTitle: "Verbindung fehlgeschlagen";
368
+ readonly retry: "Erneut versuchen";
369
+ readonly logLabel: "Introspektionsprotokoll";
370
+ readonly hint: {
371
+ readonly auth: "Authentifizierung fehlgeschlagen — prüfen Sie Benutzername und Passwort in Ihrer DSN.";
372
+ readonly hostUnreachable: "Host nicht erreichbar — prüfen Sie Hostname und Port und dass die Datenbank Verbindungen von dieser Maschine akzeptiert (unsere IPs freigeben).";
373
+ readonly metaPlacement: "Diese Quelle kann Adminiums Meta-Tabellen nicht aufnehmen — fahren Sie mit einer separaten Meta-Datenbank fort.";
374
+ readonly permission: "Die Rolle hat sich verbunden, darf das Schema aber nicht lesen — erteilen Sie Ihrer Introspektionsrolle USAGE auf dem Schema.";
375
+ readonly timeout: "Die Datenbank hat nicht rechtzeitig geantwortet — prüfen Sie Netzwerkpfad und Auslastung und versuchen Sie es erneut.";
376
+ readonly tls: "TLS-Aushandlung fehlgeschlagen — versuchen Sie sslmode=require oder laden Sie das CA-Zertifikat hoch, das Ihr Server erwartet.";
377
+ readonly unknown: "Verbindung fehlgeschlagen — prüfen Sie die DSN und versuchen Sie es erneut.";
378
+ };
379
+ };
380
+ readonly tables: {
381
+ readonly importNoCounts: "Schemadateien enthalten keine Zeilenzahlen — die Spalte zeigt —, bis eine Live-Datenbank verbunden ist.";
382
+ readonly title: "Wählen Sie Ihre Tabellen";
383
+ readonly subtitle: "Wählen Sie, welche enthalten sein sollen. Sie können das jederzeit ändern.";
384
+ readonly search: "Tabellen filtern…";
385
+ readonly listLabel: "Einbeziehbare Tabellen";
386
+ readonly emptyFilter: "Keine Tabellen entsprechen Ihrem Filter.";
387
+ readonly pii: "PII";
388
+ readonly highVolume: "hohes Volumen";
389
+ readonly highVolumeNote: "Tabellen mit über 100.000 Zeilen sind anfangs abgewählt — Ops-Tabellen gehören selten in ein Dashboard.";
390
+ readonly joinHidden: "{count} Join-/Systemtabellen sind vorab ausgeblendet — sie treiben weiterhin m:n-Beziehungen an.";
391
+ };
392
+ readonly hub: {
393
+ readonly title: "Datenverbindungen";
394
+ readonly subtitle: "{healthy, number} von {total, plural, one {# Verbindung} other {# Verbindungen}} fehlerfrei";
395
+ readonly connectNew: "Neue Verbindung";
396
+ readonly stats: {
397
+ readonly connections: "Verbindungen";
398
+ readonly healthy: "Fehlerfrei";
399
+ readonly tables: "Einbezogene Tabellen";
400
+ readonly pages: "Generierte Seiten";
401
+ };
402
+ readonly status: {
403
+ readonly connected: "Verbunden";
404
+ readonly error: "Fehler";
405
+ readonly unconfigured: "Entwurf";
406
+ readonly testing: "Wird getestet…";
407
+ };
408
+ readonly card: {
409
+ readonly readOnly: "Schreibgeschützt";
410
+ readonly tables: "Tabellen";
411
+ readonly pages: "Seiten";
412
+ readonly latency: "Latenz";
413
+ readonly latencyMs: "{latency, number} ms";
414
+ readonly lastIntrospected: "Zuletzt introspiziert";
415
+ readonly never: "Nie";
416
+ };
417
+ readonly action: {
418
+ readonly test: "Testen";
419
+ readonly reintrospect: "Neu introspizieren";
420
+ readonly reintrospectFile: "Schemadatei-Quellen haben keine Live-Datenbank — laden Sie stattdessen die Datei erneut hoch.";
421
+ readonly remap: "Schema neu zuordnen";
422
+ readonly delete: "Löschen";
423
+ };
424
+ readonly test: {
425
+ readonly ok: "Verbindung fehlerfrei · {latency, number} ms";
426
+ readonly failed: "Verbindungstest fehlgeschlagen";
427
+ };
428
+ readonly introspect: {
429
+ readonly noChanges: "Schema unverändert — kein neuer Snapshot.";
430
+ readonly updated: "Schema neu introspiziert";
431
+ readonly masksProposed: "{count, plural, one {# Spalte} other {# Spalten}} zur Maskierung vorgeschlagen — im Remap-Editor prüfen.";
432
+ readonly failed: "Introspektion fehlgeschlagen. Versuchen Sie es erneut.";
433
+ };
434
+ readonly delete: {
435
+ readonly title: "Verbindung löschen";
436
+ readonly body: "Dies löscht „{name}“ und die daraus generierten Seiten. Ihre Datenbank selbst bleibt unangetastet.";
437
+ readonly prompt: "Geben Sie {name} zur Bestätigung ein";
438
+ readonly confirm: "Verbindung löschen";
439
+ readonly cancel: "Abbrechen";
440
+ readonly close: "Schließen";
441
+ readonly success: "Verbindung „{name}“ gelöscht";
442
+ readonly failed: "Die Verbindung konnte nicht gelöscht werden. Versuchen Sie es erneut.";
443
+ };
444
+ readonly empty: {
445
+ readonly title: "Noch keine Datenquellen";
446
+ readonly body: "Verbinden Sie eine Datenbank — Adminium generiert Ihr Admin-Panel aus deren Schema.";
447
+ readonly cta: "Datenbank verbinden";
448
+ };
449
+ };
450
+ readonly settingsHub: {
451
+ readonly title: "Workspace-Einstellungen";
452
+ readonly subtitle: "Identität, Sicherheit und destruktive Aktionen für diesen Workspace.";
453
+ readonly save: "Änderungen speichern";
454
+ readonly saved: "Workspace-Einstellungen aktualisiert";
455
+ readonly saveFailed: "Die Workspace-Einstellungen konnten nicht gespeichert werden. Versuchen Sie es erneut.";
456
+ readonly superAdminOnlyTitle: "Super-Admin erforderlich";
457
+ readonly superAdminOnly: "Nur ein Super-Admin kann Identität und Sicherheitseinstellungen des Workspace ändern.";
458
+ readonly identity: {
459
+ readonly heading: "Workspace-Identität";
460
+ readonly appName: {
461
+ readonly label: "Anwendungsname";
462
+ readonly helper: "Erscheint in der Seitenleiste, im Browser-Titel und in E-Mails.";
463
+ readonly error: "Geben Sie einen Namen mit höchstens 60 Zeichen ein.";
464
+ };
465
+ };
466
+ readonly security: {
467
+ readonly heading: "Sicherheit";
468
+ readonly require2fa: {
469
+ readonly label: "Zwei-Faktor-Authentifizierung verlangen";
470
+ readonly desc: "Jedes Mitglied muss 2FA aktivieren, um sich anzumelden.";
471
+ };
472
+ readonly allowSignup: {
473
+ readonly label: "Selbstregistrierung erlauben";
474
+ readonly desc: "Jeder kann ein Konto erstellen — deaktiviert bleibt der Workspace nur per Einladung zugänglich.";
475
+ };
476
+ readonly sessionTtl: {
477
+ readonly label: "Sitzungsdauer (Stunden)";
478
+ readonly error: "Zwischen {min, number} und {max, number} Stunden.";
479
+ };
480
+ readonly passwordMin: {
481
+ readonly label: "Minimale Passwortlänge";
482
+ readonly error: "Zwischen {min, number} und {max, number} Zeichen.";
483
+ };
484
+ };
485
+ readonly review: {
486
+ readonly title: "Workspace-Einstellungen speichern";
487
+ readonly subtitle: "Prüfen Sie Ihre Änderungen vor dem Speichern.";
488
+ readonly confirm: "Änderungen speichern";
489
+ readonly cancel: "Abbrechen";
490
+ readonly close: "Schließen";
491
+ readonly on: "An";
492
+ readonly off: "Aus";
493
+ readonly change: "{before} → {after}";
494
+ };
495
+ readonly defaultsCard: {
496
+ readonly heading: "Standards für Darstellung & Sprache";
497
+ readonly body: "Workspace-weite Einstellungen für Theme, Akzentfarbe, Dichte und Sprache finden Sie unter „Globale Standards“.";
498
+ readonly cta: "Globale Standards öffnen";
499
+ };
500
+ readonly danger: {
501
+ readonly heading: "Gefahrenzone";
502
+ readonly subtitle: "Unumkehrbare Aktionen.";
503
+ readonly empty: "Nichts zu löschen — noch keine Verbindungen.";
504
+ readonly deleteDesc: "Löscht die Verbindung und die daraus generierten Seiten. Ihre Datenbank bleibt unangetastet. Kann nicht rückgängig gemacht werden.";
505
+ readonly deleteCta: "Verbindung löschen";
506
+ };
507
+ readonly aiCard: {
508
+ readonly heading: "KI-Anreicherung";
509
+ readonly body: "Konfigurieren Sie einen KI-Anbieter (oder den Kopieren-Einfügen-Umlauf), um Bezeichnungen, Gruppen und Beziehungen anzureichern.";
510
+ readonly cta: "KI-Einstellungen öffnen";
511
+ };
512
+ };
513
+ readonly settingsAi: {
514
+ readonly title: "KI-Anreicherung";
515
+ readonly subtitle: "Verbinden Sie ein Modell, damit Adminium Bezeichnungen, Gruppen, Beziehungen und mehr vorschlägt — immer als Diff geprüft, bevor etwas übernommen wird.";
516
+ readonly saved: "KI-Anbieter gespeichert";
517
+ readonly saveFailed: "Der KI-Anbieter konnte nicht gespeichert werden. Erneut versuchen.";
518
+ readonly save: "Anbieter speichern";
519
+ readonly test: "Verbindung testen";
520
+ readonly testHintDirty: "Speichern Sie Ihre Änderungen vor dem Test.";
521
+ readonly testing: "Anbieter wird angepingt…";
522
+ readonly testError: "Test fehlgeschlagen";
523
+ readonly testErrorBody: "Der Anbieter war nicht erreichbar. Prüfen Sie Schlüssel und Basis-URL.";
524
+ readonly testOk: "Verbunden mit {model} in {latency} ms";
525
+ readonly testUnknownModel: "dem Anbieter";
526
+ readonly provider: {
527
+ readonly heading: "KI-Anbieter";
528
+ readonly subtitle: "Wählen Sie, wie Adminium ein Modell zur Anreicherung Ihres Schemas erreicht. Schlüssel werden verschlüsselt gespeichert und nie wieder angezeigt.";
529
+ readonly active: "Aktiv";
530
+ readonly anthropic: {
531
+ readonly label: "Anthropic";
532
+ readonly desc: "Claude-Modelle über die Anthropic-API.";
533
+ };
534
+ readonly openai: {
535
+ readonly label: "OpenAI";
536
+ readonly desc: "GPT-Modelle über die OpenAI-API.";
537
+ };
538
+ readonly openaiCompatible: {
539
+ readonly label: "OpenAI-kompatibel";
540
+ readonly desc: "Jeder Endpunkt, der das OpenAI-Format spricht — Groq, Together, vLLM, LM Studio.";
541
+ };
542
+ readonly ollama: {
543
+ readonly label: "Ollama (lokal)";
544
+ readonly desc: "Modelle laufen lokal über Ollama — kein Schlüssel, keine Cloud.";
545
+ };
546
+ readonly requiresNetwork: "Erfordert Internet und einen API-Schlüssel";
547
+ readonly networkDisabledTitle: "Direkte KI-Anbieter sind in dieser Installation deaktiviert";
548
+ readonly networkDisabledBody: "Dieses Adminium ist ohne ausgehenden Internetzugang konfiguriert und kann keine Anbieter-API erreichen. Nutzen Sie unten den Kopieren-und-Einfügen-Weg — er braucht weder Schlüssel noch Netzwerk.";
549
+ };
550
+ readonly configure: {
551
+ readonly heading: "{provider} konfigurieren";
552
+ };
553
+ readonly field: {
554
+ readonly baseUrl: "Basis-URL";
555
+ readonly baseUrlOptional: "Unverändert lassen, außer Ollama läuft auf einem anderen Host.";
556
+ readonly baseUrlHelper: "Die Endpunkt-Wurzel, die /chat/completions bereitstellt.";
557
+ readonly model: "Modell";
558
+ readonly modelFreeText: "Geben Sie die genaue Modell-ID ein, die Ihr Endpunkt bereitstellt.";
559
+ readonly modelLive: "Live vom Anbieter geladen.";
560
+ readonly modelStatic: "Eine bewährte Liste; geben Sie nach dem Speichern eine eigene ID ein, um sie zu aktualisieren.";
561
+ readonly modelLoading: "Wird geladen…";
562
+ readonly modelPlaceholder: "Modell auswählen…";
563
+ readonly key: "API-Schlüssel";
564
+ readonly keyStored: "Verschlüsselt gespeichert. Ersetzen Sie ihn, um einen anderen Schlüssel zu verwenden.";
565
+ readonly keyMask: "sk-…{last4}";
566
+ readonly keyReplace: "Schlüssel ersetzen";
567
+ readonly keyOptional: "Optional — manche Endpunkte brauchen keinen Schlüssel.";
568
+ readonly keyWriteOnly: "Nur schreibend: einmal gespeichert, wird er nie wieder angezeigt.";
569
+ readonly noKeyTitle: "Kein API-Schlüssel nötig";
570
+ readonly noKeyBody: "Ollama läuft lokal, es verlässt also nichts diesen Rechner.";
571
+ };
572
+ readonly runStatus: {
573
+ readonly draft: "Entwurf";
574
+ readonly running: "Läuft";
575
+ readonly awaitingResponse: "Wartet auf Antwort";
576
+ readonly validated: "Validiert";
577
+ readonly applied: "Übernommen";
578
+ readonly partiallyApplied: "Teilweise übernommen";
579
+ readonly failed: "Fehlgeschlagen";
580
+ readonly discarded: "Verworfen";
581
+ };
582
+ readonly byo: {
583
+ readonly heading: "Kein Schlüssel? Nutzen Sie Ihr eigenes KI-Tool";
584
+ readonly subtitle: "Der Kopieren-Einfügen-Umlauf — nichts verlässt diesen Rechner.";
585
+ readonly body: "Studio kann aus Ihrem Schema einen eigenständigen Prompt erzeugen. Führen Sie ihn in Claude Code, ChatGPT oder einem beliebigen Tool aus und fügen Sie das zurückgegebene JSON wieder in den Verbindungsassistenten ein. Gleiche Validierung, gleiche Prüfung, gleiches Ergebnis wie der direkte Weg.";
586
+ readonly guaranteeTitle: "Telemetriefreie Garantie";
587
+ readonly guarantee1: "Der Prompt enthält nur Ihr Schema und aggregierte Statistiken — standardmäßig nie Zeilendaten.";
588
+ readonly guarantee2: "Keine Anmeldedaten, keine Instanz-URL, keine Kennungen sind eingebettet.";
589
+ readonly guarantee3: "BYO-Läufe machen keinerlei Netzwerkaufrufe.";
590
+ readonly promptVersion: "Prompt {version}";
591
+ readonly schemaVersion: "Schema {version}";
592
+ readonly headingRecommended: "Eigenes KI-Tool verwenden — kein Schlüssel nötig";
593
+ readonly recommended: "Empfohlen";
594
+ };
595
+ readonly history: {
596
+ readonly heading: "Laufverlauf";
597
+ readonly subtitle: "Frühere Anreicherungsläufe. Öffnen Sie einen, um seine Vorschläge zu prüfen.";
598
+ readonly tableLabel: "Anreicherungsläufe";
599
+ readonly colDate: "Datum";
600
+ readonly colSource: "Quelle";
601
+ readonly colStatus: "Status";
602
+ readonly colChunks: "Blöcke";
603
+ readonly openReview: "Prüfung für den Lauf vom {date} öffnen";
604
+ readonly connection: "Verbindung";
605
+ readonly empty: "Noch keine Anreicherungsläufe. Reichern Sie ein Schema im Verbindungsassistenten an, um hier Verlauf zu sehen.";
606
+ readonly errorTitle: "Läufe konnten nicht geladen werden";
607
+ readonly errorBody: "Laden Sie die Seite neu, um es erneut zu versuchen.";
608
+ readonly noConnections: "Verbinden Sie zuerst eine Datenbank — Anreicherungsläufe werden pro Verbindung erfasst.";
609
+ readonly byo: "BYO";
610
+ readonly directPath: "Direkt";
611
+ };
612
+ };
613
+ readonly enrich: {
614
+ readonly title: "Mit KI anreichern";
615
+ readonly subtitle: "Verfeinern Sie die generierten Bezeichnungen, Gruppen, Enums und Dashboards optional mit einem LLM. Die heuristische Grundlage funktioniert auch ohne — dies fügt nur Vorschläge hinzu, die Sie prüfen, bevor etwas angewendet wird.";
616
+ readonly intentLabel: "Wie möchten Sie anreichern?";
617
+ readonly sectionsLegend: "Worüber soll die KI entscheiden?";
618
+ readonly localesLegend: "Bezeichnungen übersetzen in";
619
+ readonly localeLocked: "(erforderlich)";
620
+ readonly samplingTitle: "Beispielwerte einbeziehen";
621
+ readonly samplingHint: "Nimmt bis zu 20 echte Werte pro Nicht-PII-Spalte in den Prompt auf.";
622
+ readonly samplingPreviewTitle: "Was diesen Rechner verlässt";
623
+ readonly samplingPreviewBody: "Bis zu 20 häufigste Werte pro Nicht-PII-Spalte, plus Min/Max für numerische und Datumsspalten. Als PII markierte Spalten werden nie beprobt. Alles Übrige bleibt rein aggregiert. Prüfen Sie den genauen Prompt vor dem Kopieren (BYO) — ohne Ihr Zutun wird nichts gesendet.";
624
+ readonly noSections: "Wählen Sie mindestens eine Entscheidungsgruppe zum Anreichern.";
625
+ readonly generatePrompt: "Prompt erzeugen";
626
+ readonly startProvider: "Anreicherung starten";
627
+ readonly startOver: "Von vorn beginnen";
628
+ readonly copied: "Kopiert";
629
+ readonly createFailed: "Der Anreicherungs-Prompt konnte nicht erstellt werden — erneut versuchen.";
630
+ readonly createFailedTitle: "Konnte nicht starten";
631
+ readonly providerFallback: "Ihr KI-Anbieter";
632
+ readonly fileTitle: "KI-Anreicherung benötigt eine aktive Datenbank";
633
+ readonly fileBody: "Schema-Datei-Quellen haben noch keinen Snapshot zum Anreichern. Verbinden Sie eine aktive Datenbank für die KI-Anreicherung, oder fahren Sie fort — die heuristische Grundlage erzeugt weiterhin eine vollständige App.";
634
+ readonly section: {
635
+ readonly labels: "Bezeichnungen & Beschreibungen";
636
+ readonly groups: "Navigationsgruppen";
637
+ readonly enums: "Enum-Semantik";
638
+ readonly relations: "Beziehungen";
639
+ readonly keys: "Schlüsselspalten";
640
+ readonly templates: "Seitenvorlagen";
641
+ readonly widgets: "Dashboard-Widgets";
642
+ readonly pii: "PII & Maskierung";
643
+ readonly icons: "Symbole";
644
+ readonly microcopy: "Mikrotexte";
645
+ };
646
+ readonly provider: {
647
+ readonly title: "Meinen KI-Anbieter verwenden";
648
+ readonly description: "Führen Sie die Anreicherung jetzt mit Ihrem konfigurierten Anbieter aus. Sie prüfen jeden Vorschlag als Diff.";
649
+ readonly unconfigured: "Es ist noch kein KI-Anbieter konfiguriert — kopieren Sie unten einen Prompt in Ihr eigenes Tool, oder konfigurieren Sie zuerst einen Anbieter.";
650
+ readonly settingsHint: "Möchten Sie es direkt ausführen?";
651
+ readonly settingsLink: "Anbieter in Einstellungen → KI konfigurieren";
652
+ readonly networkDisabled: "Dieses Adminium hat keinen ausgehenden Internetzugang und kann keine Anbieter-API erreichen. Nutzen Sie stattdessen den Kopieren-und-Einfügen-Weg — gleicher Prompt, gleiche Prüfung.";
653
+ };
654
+ readonly byo: {
655
+ readonly cardTitle: "Einen Prompt in mein eigenes KI-Tool kopieren";
656
+ readonly cardDescription: "Kopieren Sie einen eigenständigen Prompt in Claude Code, ChatGPT oder ein beliebiges Tool — und fügen Sie das JSON zurück ein. Kein Schlüssel nötig, nichts verlässt diesen Rechner automatisch.";
657
+ readonly guidance: "Führen Sie dies in einem beliebigen KI-Tool aus — Claude Code, ChatGPT, egal. Fügen Sie das zurückgegebene JSON unten ein.";
658
+ readonly promptLabel: "Anreicherungs-Prompt";
659
+ readonly promptLabelN: "Anreicherungs-Prompt {index} von {total}";
660
+ readonly tokenChip: "≈ {tokens} Tokens";
661
+ readonly copyPrompt: "Prompt kopieren";
662
+ readonly copyPromptDone: "Prompt kopiert";
663
+ readonly download: ".md herunterladen";
664
+ readonly chunkTabs: "Prompt-Abschnitte";
665
+ readonly chunkTab: "Prompt {index}";
666
+ readonly chunkValid: "Abschnitt {index} validiert";
667
+ readonly pasteLabel: "JSON-Antwort einfügen";
668
+ readonly pastePlaceholder: "JSON-Antwort hier einfügen…";
669
+ readonly validate: "Validieren";
670
+ readonly valid: "Antwort validiert";
671
+ readonly mergedTitle: "Alle {count} Abschnitte validiert und zusammengeführt";
672
+ readonly mergedTitleSingle: "Antwort validiert";
673
+ readonly mergedBody: "Die Vorschläge können nun gegen die heuristische Grundlage geprüft werden.";
674
+ readonly errorsTitle: "Die Validierung fand {count} Probleme";
675
+ readonly copyErrors: "Fehler für Ihr KI-Tool kopieren";
676
+ readonly copyErrorsDone: "Fehler kopiert";
677
+ readonly copyErrorsHint: "Fügen Sie dies in Ihr KI-Tool zurück ein, um eine korrigierte Antwort zu erhalten.";
678
+ readonly droppedItems: "{count} Vorschläge wurden bei der Validierung verworfen — die Prüfung zeigt die übrigen.";
679
+ readonly pendingTitle: "Validieren Sie jeden Prompt, um fortzufahren";
680
+ readonly pendingBody: "Fügen Sie die JSON-Antwort oben ein und validieren Sie sie, um zur Prüfung fortzufahren.";
681
+ readonly pendingBodyChunked: "Jeder Abschnitt muss validiert werden, bevor die Vorschläge zusammengeführt werden. Fügen Sie jeden Prompt oben ein und validieren Sie ihn.";
682
+ readonly requestFailed: "Der Server war für die Validierung nicht erreichbar — erneut versuchen.";
683
+ readonly continueReview: "Weiter zur Prüfung";
684
+ readonly wholeDocument: "gesamtes Dokument";
685
+ readonly cardTitleRecommended: "Prompt in mein eigenes KI-Tool kopieren — empfohlen";
686
+ };
687
+ readonly direct: {
688
+ readonly title: "Anreicherung mit KI";
689
+ readonly subtitle: "Ihr Schema wird gesendet an";
690
+ readonly building: "Prompt wird erstellt…";
691
+ readonly logLabel: "Anreicherungsprotokoll";
692
+ readonly cancel: "Abbrechen";
693
+ readonly back: "Zurück zu den Optionen";
694
+ readonly retry: "Erneut versuchen";
695
+ readonly done: "Anreicherung abgeschlossen — prüfen Sie die Vorschläge.";
696
+ readonly continueReview: "Weiter zur Prüfung";
697
+ readonly failed: "Der Anbieterlauf ist fehlgeschlagen. Prüfen Sie Ihre KI-Einstellungen und versuchen Sie es erneut.";
698
+ readonly jobFailed: "Der Anreicherungslauf wurde nicht abgeschlossen.";
699
+ readonly startFailed: "Der Lauf konnte nicht gestartet werden — erneut versuchen.";
700
+ readonly errorTitle: "Anreicherung fehlgeschlagen";
701
+ };
702
+ readonly skip: {
703
+ readonly title: "Überspringen — nur Heuristik verwenden";
704
+ readonly description: "Aus der heuristischen Grundlage generieren. Sie können später über Einstellungen → KI anreichern — Überspringen wird nie bestraft.";
705
+ readonly confirmTitle: "Weiter mit Heuristik";
706
+ readonly confirmBody: "Die generierte App verwendet die heuristischen Bezeichnungen, Gruppen und Dashboards. Fahren Sie mit dem Generieren fort — Sie können die KI-Anreicherung jederzeit über Einstellungen → KI ausführen.";
707
+ };
708
+ };
709
+ readonly review: {
710
+ readonly unavailableTitle: "Prüfungsansicht nicht verfügbar";
711
+ readonly unavailableBody: "Dieser Build enthält die Anreicherungs-Prüfungsansicht noch nicht (06-T14). Sie kommt mit dem Diff-und-Übernehmen-Ablauf.";
712
+ };
713
+ readonly llmRuns: {
714
+ readonly review: {
715
+ readonly header: {
716
+ readonly title: "KI-Vorschläge prüfen";
717
+ readonly model: "Modell";
718
+ readonly snapshot: "Snapshot";
719
+ readonly byo: "BYO";
720
+ readonly pathDirect: "Direkte API";
721
+ readonly pathByo: "Kopieren & Einfügen";
722
+ readonly agree: "{n} übereinstimmend";
723
+ readonly conflict: "{n} Konflikt";
724
+ readonly new: "{n} neu";
725
+ readonly rejects: "{n} Ablehnungen";
726
+ readonly countsAria: "Anzahl der Vorschläge";
727
+ };
728
+ readonly bulk: {
729
+ readonly thresholdLabel: "Konfidenzschwelle";
730
+ readonly thresholdAria: "Konfidenzschwelle für „Alle übernehmen“";
731
+ readonly acceptAll: "Alle ≥ {pct}% übernehmen";
732
+ readonly clear: "Auswahl aufheben";
733
+ };
734
+ readonly section: {
735
+ readonly selectAllAria: "Alle in {group} auswählen";
736
+ readonly acceptedCount: "{n} übernommen";
737
+ };
738
+ readonly group: {
739
+ readonly labels: "Bezeichnungen & Übersetzungen";
740
+ readonly navigation: "Navigation & Domänen";
741
+ readonly enums: "Enum-Semantik";
742
+ readonly relations: "Beziehungen";
743
+ readonly keys: "Schlüsselspalten";
744
+ readonly templates: "Seitenvorlagen";
745
+ readonly dashboards: "Dashboards & Widgets";
746
+ readonly pii: "PII & Maskierung";
747
+ readonly icons: "Symbole";
748
+ readonly microcopy: "Mikrotexte";
749
+ };
750
+ readonly status: {
751
+ readonly agree: "Stimmt überein";
752
+ readonly conflict: "Konflikt";
753
+ readonly new: "Neu";
754
+ readonly heuristicOnly: "Nur Heuristik";
755
+ readonly rejects: "Lehnt Heuristik ab";
756
+ readonly locked: "Gesperrt";
757
+ };
758
+ readonly row: {
759
+ readonly acceptAria: "{noun}-Vorschlag für {target} übernehmen";
760
+ readonly keptEdited: "beibehalten – von Ihnen bearbeitet";
761
+ readonly rejectsCallout: "Die KI lehnt eine heuristische Entscheidung ab – vor dem Übernehmen bestätigen.";
762
+ readonly showTranslations: "Übersetzungen anzeigen";
763
+ readonly hideTranslations: "Übersetzungen ausblenden";
764
+ readonly confidenceAria: "Konfidenz {pct}%";
765
+ readonly noAi: "Kein KI-Vorschlag";
766
+ };
767
+ readonly value: {
768
+ readonly none: "Kein Wert";
769
+ readonly absent: "Keiner";
770
+ readonly dash: "—";
771
+ readonly display: "Anzeige";
772
+ readonly key: "Schlüssel";
773
+ readonly rank: "Rang {n}";
774
+ readonly span: "Breite {n}";
775
+ readonly tableCount: "{n} Tabellen";
776
+ readonly widgetCount: "{n} Widgets";
777
+ readonly enumWorkflow: "Workflow";
778
+ readonly enumCategory: "Kategorie";
779
+ readonly notPii: "Keine PII";
780
+ readonly label: "Bezeichnung";
781
+ readonly description: "Beschreibung";
782
+ readonly subtitle: "Seitenuntertitel";
783
+ readonly headline: "Überschrift für leeren Zustand";
784
+ readonly guidance: "Hinweis für leeren Zustand";
785
+ };
786
+ readonly apply: {
787
+ readonly title: "{n} Vorschläge übernehmen";
788
+ readonly subtitle: "Diese Änderungen werden in einer Transaktion geschrieben und können rückgängig gemacht werden.";
789
+ readonly empty: "Nichts zum Übernehmen ausgewählt.";
790
+ readonly confirm: "Änderungen übernehmen";
791
+ };
792
+ readonly footer: {
793
+ readonly count: "{n} Vorschläge ausgewählt";
794
+ readonly apply: "{n} übernommene Vorschläge anwenden";
795
+ readonly failed: "Anwenden fehlgeschlagen";
796
+ };
797
+ readonly toast: {
798
+ readonly applied: "{n} Vorschläge übernommen";
799
+ readonly appliedPartial: "{n} Vorschläge übernommen (einige übersprungen)";
800
+ readonly applyFailed: "Vorschläge konnten nicht übernommen werden";
801
+ readonly undoFailed: "Diese Änderung konnte nicht rückgängig gemacht werden";
802
+ };
803
+ readonly error: {
804
+ readonly title: "Dieser Lauf konnte nicht geladen werden";
805
+ };
806
+ readonly notReady: {
807
+ readonly title: "Dieser Lauf hat noch keine Vorschläge zur Prüfung";
808
+ readonly body: "Ein Lauf muss validiert sein, bevor seine Vorschläge geprüft werden können. Erzeugen oder fügen Sie zuerst eine Antwort ein.";
809
+ };
810
+ readonly applied: {
811
+ readonly title: "Dieser Lauf wurde angewendet";
812
+ readonly body: "Die übernommenen Vorschläge unten sind schreibgeschützt.";
813
+ };
814
+ readonly empty: {
815
+ readonly title: "Keine Vorschläge";
816
+ readonly body: "Dieser Lauf hat keine Vorschläge zur Prüfung erzeugt.";
817
+ };
818
+ readonly cat: {
819
+ readonly label: "Bezeichnung";
820
+ readonly key: "Schlüsselspalten";
821
+ readonly enum: "Enum";
822
+ readonly relation: "Beziehung";
823
+ readonly pii: "PII";
824
+ readonly template: "Seitenvorlage";
825
+ readonly group: "Navigationsgruppe";
826
+ readonly dashboard: "Dashboard";
827
+ readonly widget: "Widget";
828
+ readonly copy: "Mikrotext";
829
+ };
830
+ };
831
+ };
832
+ readonly wizard: {
833
+ readonly title: "Neue Verbindung";
834
+ readonly back: "Zurück";
835
+ readonly continue: "Weiter";
836
+ readonly progress: "Einrichtungsfortschritt";
837
+ readonly persistFailed: "Ihre Tabellenauswahl konnte nicht gespeichert werden — versuchen Sie es erneut.";
838
+ readonly persistFailedTitle: "Speichern fehlgeschlagen";
839
+ readonly step: {
840
+ readonly source: "Quelle";
841
+ readonly test: "Analysieren";
842
+ readonly tables: "Tabellen";
843
+ readonly meta: "Meta-Speicher";
844
+ readonly intent: "Zweck";
845
+ readonly enrich: "Anreichern";
846
+ readonly generate: "Generieren";
847
+ };
848
+ };
849
+ readonly meta: {
850
+ readonly title: "Wo soll Adminium seine eigenen Tabellen ablegen?";
851
+ readonly subtitle: "Seiten, Rollen, Audit-Log und Einstellungen liegen in Tabellen mit adminium_-Präfix — nie mit Ihren Daten vermischt.";
852
+ readonly sameDb: {
853
+ readonly title: "Gleiche Datenbank";
854
+ readonly description: "adminium_*-Tabellen werden neben Ihren Quelltabellen angelegt. Einfachste Einrichtung — benötigt eine Rolle mit Schreib- und CREATE-TABLE-Rechten.";
855
+ readonly disabledReadOnly: "Ihre Rolle ist schreibgeschützt — Adminium schreibt nie in diese Datenbank. Wählen Sie für Adminiums eigene Tabellen eine separate Datenbank.";
856
+ readonly disabledNoDdl: "Diese Rolle darf kein DDL ausführen — Adminium-Migrationen benötigen CREATE TABLE. Wählen Sie für Adminiums eigene Tabellen eine separate Datenbank.";
857
+ readonly disabledFile: "Eine Schemadatei hat keine Live-Datenbank — wählen Sie für Adminiums eigene Tabellen eine separate Datenbank.";
858
+ };
859
+ readonly separate: {
860
+ readonly title: "Separate Datenbank";
861
+ readonly description: "Adminium hält seine Tabellen in einer anderen Datenbank. Ihre Quelle bleibt unangetastet — erforderlich für schreibgeschützte Quellen.";
862
+ readonly dsn: "Verbindungszeichenfolge der Meta-Datenbank";
863
+ readonly helper: "Benötigt Schreib- und DDL-Rechte — Adminium führt dort seine eigenen Migrationen aus.";
864
+ readonly test: "Verbindung testen";
865
+ readonly ok: "Kompatibel — Schreiben ✓ · DDL ✓";
866
+ readonly insufficient: "Diese Rolle kann den Meta-Store nicht aufnehmen — Adminium benötigt dort Schreib- und CREATE-TABLE-Rechte.";
867
+ readonly errorTitle: "Meta-Store nicht kompatibel";
868
+ };
869
+ readonly testFailed: "Verbindung fehlgeschlagen.";
870
+ readonly v1Note: {
871
+ readonly title: "Über diese Installation";
872
+ readonly body: "Dieser Server hat seinen Meta-Store beim ersten Start gewählt. Dieser Schritt prüft, ob Ihre Wahl mit dieser Verbindung kompatibel ist, und hält sie fest — der Server erzwingt dieselbe Regel unabhängig (409 META_PLACEMENT_INVALID). Einen bestehenden Meta-Store zu verschieben ist eine Ops-Aufgabe (M10).";
873
+ };
874
+ };
875
+ readonly intent: {
876
+ readonly title: "Was brauchen Sie?";
877
+ readonly subtitle: "Der Zweck bestimmt, welche Seiten generiert werden. Sie können ihn später ändern — eine Änderung schlägt eine Neugenerierung vor, nie ein stilles Überschreiben.";
878
+ readonly trust: "Wir lesen nur Ihr Schema — während der Einrichtung nie Ihre Zeilendaten.";
879
+ readonly fullAdmin: {
880
+ readonly title: "Vollständiges Admin-Panel";
881
+ readonly description: "Dashboards, CRUD-Seiten, Suche, Importe und Exporte — alles, was Ihr Schema unterstützt.";
882
+ };
883
+ readonly analytics: {
884
+ readonly title: "Schreibgeschützte Analysen";
885
+ readonly description: "Dashboards, Diagramme und schreibgeschützte Tabellen. Keine Formulare, keine Schreibvorgänge — jede Rolle auf Betrachter begrenzt.";
886
+ };
887
+ readonly crud: {
888
+ readonly title: "CRUD-Tabellen";
889
+ readonly description: "Eine Bearbeitungsseite pro Tabelle plus Suche und Import/Export — ein minimales Zuhause, keine Dashboards.";
890
+ };
891
+ readonly support: {
892
+ readonly title: "Support-Konsole";
893
+ readonly description: "Zuerst Warteschlangen, Ticket- und Kundendetailseiten. Löschen standardmäßig aus. (Queue-Vorlagen kommen mit M7 — der v1-Seitensatz entspricht dem vollständigen Admin.)";
894
+ };
895
+ };
896
+ readonly generate: {
897
+ readonly title: "Generieren Sie Ihre App";
898
+ readonly subtitle: "Eine Seite pro einbezogener Tabelle plus Dashboards je Domäne — Zweck:";
899
+ readonly run: "Dashboard generieren";
900
+ readonly openApp: "App öffnen";
901
+ readonly logLabel: "Generierungsprotokoll";
902
+ readonly log: {
903
+ readonly classifying: "Schema wird klassifiziert…";
904
+ readonly composing: "Vorlagen werden zusammengestellt…";
905
+ readonly writing: "Seiten werden geschrieben…";
906
+ readonly done: "{pages} Seiten in {groups} Navigationsgruppen generiert";
907
+ };
908
+ readonly successTitle: "Ihr Dashboard ist bereit";
909
+ readonly successBody: "{pages} Seiten in {groups} Navigationsgruppen — aus Ihrem Schema generiert, im Studio bearbeitbar.";
910
+ readonly errorTitle: "Generierung fehlgeschlagen";
911
+ readonly failed: "Generierung fehlgeschlagen — versuchen Sie es erneut oder führen Sie zuerst die Introspektion erneut aus.";
912
+ readonly fileTitle: "Schemadatei geparst — die Generierung benötigt eine Live-Datenbank";
913
+ readonly fileBody: "Ihr Schema wurde sauber geparst und die Vorschau oben ist echt. Eine laufende App direkt aus einer Schemadatei (mit Platzhalterzeilen) zu generieren ist noch nicht verfügbar — verbinden Sie eine Live-Datenbank, um heute zu generieren.";
914
+ };
915
+ readonly remap: {
916
+ readonly column: {
917
+ readonly nullable: "nullable";
918
+ readonly labelOverride: "Anzeigebezeichnung";
919
+ readonly labelHelper: "Abgeleitet: {name}";
920
+ readonly logicalType: "Logischer Typ";
921
+ readonly logicalTypeHelper: "Abgeleitet: {type} (aus {dbType}) — vom Adapter zugeordnet; in v1 nicht überschreibbar.";
922
+ readonly semantic: "Semantischer Typ";
923
+ readonly unclassified: "Noch nicht klassifiziert.";
924
+ readonly semanticHelper: "Klassifizierer: {tag} · {confidence}% Konfidenz · Quelle: {source}";
925
+ readonly semanticInferred: "abgeleitet: {tag}";
926
+ readonly currency: "Währung";
927
+ readonly currencyHelper: "ISO-4217-Code für die Formatierung von Geldbeträgen.";
928
+ readonly pii: "Standardmäßig maskieren";
929
+ readonly piiHelper: "Maskierte Werte werden geschwärzt dargestellt; das Aufheben der Maskierung erfordert die Berechtigung data.unmask_pii und wird im Audit-Log protokolliert.";
930
+ readonly enum: "Enum-Semantik";
931
+ readonly enumKind: "Enum-Art";
932
+ readonly enumWorkflow: "Workflow";
933
+ readonly enumCategory: "Kategorie";
934
+ readonly enumLabelFor: "Bezeichnung für {value}";
935
+ readonly enumToneFor: "Farbton für {value}";
936
+ readonly enumToneAuto: "auto";
937
+ readonly enumHelper: "Workflow-Enums steuern Status-Pills und Board-Spalten; Farbtöne ordnen Werte der semantischen Farbtonskala zu.";
938
+ };
939
+ readonly diff: {
940
+ readonly one: "1 Änderung";
941
+ readonly count: "{count} Änderungen";
942
+ readonly saved: "Überschreibungen gespeichert.";
943
+ readonly revertOne: "{change} verwerfen";
944
+ readonly regenerate: "Seiten neu generieren";
945
+ readonly revertAll: "Alle verwerfen";
946
+ readonly save: "Überschreibungen speichern";
947
+ };
948
+ readonly table: {
949
+ readonly iconPicker: "Tabellensymbol";
950
+ readonly system: "System";
951
+ readonly labelOverride: "Anzeigebezeichnung";
952
+ readonly labelHelper: "Abgeleitet: {name}";
953
+ readonly icon: "Symbol";
954
+ readonly navGroup: "Navigationsgruppe";
955
+ readonly navGroupHelper: "Die Platzierung in der Navigation entscheidet der Generator — eine table.navGroup-Überschreibung ist nicht Teil des v1-Vokabulars.";
956
+ readonly include: "In die generierte App einbeziehen";
957
+ readonly includeHelper: "Ausgeschlossene Tabellen erhalten keine Seiten und verschwinden aus der Navigation.";
958
+ readonly shape: "Tabellenform (klassifiziert)";
959
+ readonly role: "Rolle";
960
+ readonly unclassified: "Nicht klassifiziert";
961
+ readonly kind: "Art";
962
+ readonly hierarchy: "Hierarchie";
963
+ readonly selfFk: "Selbstreferenz über {column}";
964
+ readonly polymorphic: "Polymorphe Paare";
965
+ readonly rows: "Geschätzte Zeilenzahl";
966
+ readonly shapeHelper: "Die Klassifikation wird bei jeder Introspektion neu berechnet; Überschreibungen liegen darüber und überstehen die Neugenerierung.";
967
+ };
968
+ readonly relations: {
969
+ readonly declared: "Deklarierte Fremdschlüssel";
970
+ readonly noneDeclared: "Keine deklarierten Fremdschlüssel berühren diese Tabelle.";
971
+ readonly inferred: "Abgeleitete Beziehungen";
972
+ readonly noneInferred: "Für diese Tabelle wurde nichts abgeleitet.";
973
+ readonly confidence: "abgeleitet · {pct}%";
974
+ readonly accepted: "Übernommen";
975
+ readonly suppressed: "Unterdrückt";
976
+ readonly accept: "Übernehmen";
977
+ readonly suppress: "Unterdrücken";
978
+ readonly overrides: "Beziehungs-Überschreibungen (angewendet)";
979
+ readonly overrideBadge: "Überschreibung";
980
+ readonly add: "Virtuelle Beziehung hinzufügen";
981
+ readonly fromColumn: "Quellspalte";
982
+ readonly noColumns: "Keine passende Spalte";
983
+ readonly fromPlaceholder: "customer_id";
984
+ readonly toTable: "Zieltabelle";
985
+ readonly noTables: "Keine passende Tabelle";
986
+ readonly toColumn: "Zielspalte";
987
+ readonly cardinality: "Kardinalität";
988
+ readonly addButton: "Beziehung hinzufügen";
989
+ };
990
+ readonly toast: {
991
+ readonly saved: "Schema-Überschreibungen gespeichert";
992
+ readonly savedDetail: "Das angewendete Schema unten spiegelt Ihre Änderungen wider.";
993
+ readonly regenerated: "{created} erstellt · {updated} aktualisiert · {unchanged} unverändert";
994
+ readonly regeneratedDetail: "Von Hand bearbeitete Seiten bleiben erhalten — nur Seiten mit unangetastetem generated_hash wurden an Ort und Stelle neu generiert.";
995
+ readonly regenerateFailed: "Neugenerierung fehlgeschlagen";
996
+ };
997
+ readonly title: "Schema neu zuordnen";
998
+ readonly subtitle: "{tables} Tabellen · {applied} Überschreibungen angewendet";
999
+ readonly saveFailed: "Speichern fehlgeschlagen: {message}";
1000
+ readonly loadFailed: "Das Schema für diese Verbindung konnte nicht geladen werden.";
1001
+ readonly inspector: "Inspektor";
1002
+ readonly empty: {
1003
+ readonly title: "Wählen Sie eine Tabelle oder Spalte";
1004
+ readonly description: "Wählen Sie etwas im Schemabaum aus, um Bezeichnung, Typ, Beziehungen oder Maskierung neu zuzuordnen.";
1005
+ };
1006
+ readonly tabs: {
1007
+ readonly details: "Details";
1008
+ readonly relations: "Beziehungen";
1009
+ };
1010
+ readonly tree: {
1011
+ readonly label: "Schema";
1012
+ readonly search: "Tabellen und Spalten durchsuchen";
1013
+ readonly searchPlaceholder: "Tabellen durchsuchen…";
1014
+ readonly noMatches: "Keine Tabellen entsprechen Ihrer Suche.";
1015
+ readonly collapse: "Tabelle einklappen";
1016
+ readonly expand: "Tabelle ausklappen";
1017
+ readonly unsaved: "Ungespeicherte Änderung";
1018
+ readonly excluded: "Ausgeschlossen";
1019
+ };
1020
+ readonly badge: {
1021
+ readonly pk: "PK";
1022
+ readonly fk: "FK";
1023
+ readonly unique: "UNIQUE";
1024
+ readonly pii: "PII";
1025
+ readonly masked: "Maskiert";
1026
+ };
1027
+ };
1028
+ };
1029
+ readonly onboarding: {
1030
+ readonly title: "Erste Schritte";
1031
+ readonly subtitle: "Ein paar Schritte, um Ihren Workspace einzurichten.";
1032
+ readonly loading: "Setup-Checkliste wird geladen…";
1033
+ readonly welcome: "Willkommen bei Adminium, {name} 👋";
1034
+ readonly progressBody: "Sie haben {done} von {total} Einrichtungsschritten abgeschlossen. Schließen Sie die übrigen ab, um den vollen Workspace freizuschalten.";
1035
+ readonly completeBody: "Alles erledigt — Ihr Workspace ist vollständig eingerichtet.";
1036
+ readonly ringLabel: "{done} von {total} Schritten abgeschlossen";
1037
+ readonly done: "Erledigt";
1038
+ readonly skip: "Später";
1039
+ readonly goToWorkspace: "Zum Workspace";
1040
+ readonly help: {
1041
+ readonly title: "Brauchen Sie Hilfe?";
1042
+ readonly body: "Wir helfen Ihnen gern beim schnellen Einrichten.";
1043
+ };
1044
+ readonly steps: {
1045
+ readonly connectDatabase: {
1046
+ readonly title: "Datenbank verbinden";
1047
+ readonly desc: "Verbinden Sie Adminium mit Ihrer Postgres-, MySQL- oder SQLite-Datenbank — eine Nur-Lese-Rolle genügt.";
1048
+ readonly time: "5 Min.";
1049
+ readonly action: "Verbinden";
1050
+ };
1051
+ readonly chooseTables: {
1052
+ readonly title: "Tabellen auswählen";
1053
+ readonly desc: "Wählen Sie, welche Tabellen zu Seiten werden — PII wird standardmäßig maskiert.";
1054
+ readonly time: "2 Min.";
1055
+ readonly action: "Auswählen";
1056
+ };
1057
+ readonly inviteTeammates: {
1058
+ readonly title: "Teammitglieder einladen";
1059
+ readonly desc: "Holen Sie Ihr Team zum Erkunden und Zusammenarbeiten dazu.";
1060
+ readonly time: "2 Min.";
1061
+ readonly action: "Einladen";
1062
+ };
1063
+ readonly workspaceDefaults: {
1064
+ readonly title: "Workspace-Standards festlegen";
1065
+ readonly desc: "Design, Akzent, Dichte und Sprache für alle.";
1066
+ readonly time: "1 Min.";
1067
+ readonly action: "Festlegen";
1068
+ };
1069
+ };
1070
+ readonly entry: {
1071
+ readonly wayBack: "Erste Schritte · {done}/{total}";
1072
+ readonly dismiss: "Setup-Checkliste ausblenden";
1073
+ readonly continue: "Setup fortsetzen";
1074
+ readonly banner: "Richten Sie Ihren Workspace fertig ein — {done} von {total} Schritten erledigt.";
1075
+ };
1076
+ };
1077
+ readonly views: {
1078
+ readonly baseView: "Alle Datensätze";
1079
+ readonly menuLabel: "Gespeicherte Ansichten";
1080
+ readonly saveAs: "Aktuelle als Ansicht speichern…";
1081
+ readonly updateActive: "„{name}“ aktualisieren";
1082
+ readonly rename: "Umbenennen…";
1083
+ readonly setDefault: "Als Standard festlegen";
1084
+ readonly delete: "Löschen…";
1085
+ readonly saveTitle: "Ansicht speichern";
1086
+ readonly save: "Ansicht speichern";
1087
+ readonly renameTitle: "Ansicht umbenennen";
1088
+ readonly saveName: "Namen speichern";
1089
+ readonly nameLabel: "Ansichtsname";
1090
+ readonly namePlaceholder: "z. B. Diesen Monat aktiv";
1091
+ readonly nameRequired: "Geben Sie einen Namen für diese Ansicht ein.";
1092
+ readonly saveFailed: "Ansicht konnte nicht gespeichert werden.";
1093
+ readonly deleteTitle: "Ansicht löschen";
1094
+ readonly deleteBody: "Dies entfernt die gespeicherte Ansicht. Ihre Daten sind nicht betroffen.";
1095
+ readonly deletePrompt: "Zum Bestätigen den Ansichtsnamen eingeben";
1096
+ readonly deleteConfirm: "Ansicht löschen";
1097
+ readonly savedToast: "Ansicht „{name}“ gespeichert.";
1098
+ readonly updatedToast: "Ansicht „{name}“ aktualisiert.";
1099
+ readonly defaultToast: "„{name}“ ist jetzt die Standardansicht.";
1100
+ readonly deletedToast: "Ansicht „{name}“ gelöscht.";
1101
+ };
1102
+ readonly builder: {
1103
+ readonly view: "Ansicht";
1104
+ readonly edit: "Bearbeiten";
1105
+ readonly done: "Fertig";
1106
+ readonly addWidget: "Widget hinzufügen";
1107
+ readonly saveLayout: "Layout speichern";
1108
+ readonly saving: "Wird gespeichert …";
1109
+ readonly savedShort: "Gespeichert";
1110
+ readonly options: "Dashboard-Optionen";
1111
+ readonly resetLayout: "Layout zurücksetzen";
1112
+ readonly resetTitle: "Auf das geteilte Layout zurücksetzen?";
1113
+ readonly resetBody: "Dadurch werden deine persönlichen Änderungen entfernt und das Dashboard wiederhergestellt, das alle sehen. Deine Daten sind nicht betroffen.";
1114
+ readonly resetConfirm: "Layout zurücksetzen";
1115
+ readonly resetDone: "Layout auf die geteilte Standardansicht zurückgesetzt.";
1116
+ readonly sharedNote: "Du bearbeitest das geteilte Dashboard, das alle sehen.";
1117
+ readonly personalNote: "Du bearbeitest dein persönliches Layout – nur du siehst diese Änderungen.";
1118
+ readonly savedShared: "Dashboard für alle mit Zugriff gespeichert.";
1119
+ readonly empty: "Dieses Dashboard enthält noch keine Widgets.";
1120
+ readonly emptyAction: "Widget hinzufügen";
1121
+ readonly palette: {
1122
+ readonly title: "Widget hinzufügen";
1123
+ readonly count: "{count} Widgets";
1124
+ readonly searchLabel: "Widgets durchsuchen";
1125
+ readonly searchPlaceholder: "Widgets durchsuchen …";
1126
+ readonly clear: "Suche löschen";
1127
+ readonly noResults: "Keine Widgets passen zu „{query}“.";
1128
+ readonly add: "{name} hinzufügen";
1129
+ readonly added: "{name} hinzugefügt.";
1130
+ };
1131
+ readonly inspector: {
1132
+ readonly title: "Widget konfigurieren";
1133
+ readonly empty: "Dieses Widget hat keine konfigurierbaren Optionen.";
1134
+ readonly locked: "Gesperrt";
1135
+ readonly lockedHint: "Dieses Feld wird von der Quelle festgelegt und kann hier nicht bearbeitet werden.";
1136
+ readonly selectPlaceholder: "Auswählen …";
1137
+ readonly increment: "Erhöhen";
1138
+ readonly decrement: "Verringern";
1139
+ readonly done: "Fertig";
1140
+ };
1141
+ readonly item: {
1142
+ readonly configure: "{name} konfigurieren";
1143
+ readonly duplicate: "{name} duplizieren";
1144
+ readonly remove: "{name} entfernen";
1145
+ readonly removed: "{name} entfernt.";
1146
+ readonly duplicated: "{name} dupliziert.";
1147
+ };
1148
+ readonly families: {
1149
+ readonly kpi: "KPIs";
1150
+ readonly charts: "Diagramme";
1151
+ readonly tables: "Tabellen";
1152
+ readonly feeds: "Feeds";
1153
+ readonly calendar: "Kalender";
1154
+ readonly boards: "Boards";
1155
+ readonly geo: "Karten";
1156
+ readonly media: "Medien";
1157
+ readonly communication: "Kommunikation";
1158
+ readonly forms: "Formulare";
1159
+ readonly chrome: "Navigation";
1160
+ readonly system: "System";
1161
+ readonly domain: "Domäne";
1162
+ };
1163
+ readonly versions: "Versionen";
1164
+ readonly versionsEmpty: "Noch keine gespeicherten Versionen";
1165
+ readonly saveAsVersion: "Als Version speichern";
1166
+ readonly saveVersionTitle: "Version speichern";
1167
+ readonly saveVersionBody: "Erstellt einen Schnappschuss des aktuellen Dokuments. Über „Versionen“ jederzeit wiederherstellbar.";
1168
+ readonly versionName: "Versionsname";
1169
+ readonly versionNamePlaceholder: "z. B. Vor der Q3-Preisänderung";
1170
+ };
1171
+ readonly setup: {
1172
+ readonly title: "Adminium einrichten";
1173
+ readonly subtitle: "Legen Sie den ersten Administrator an. Das geschieht nur einmal.";
1174
+ readonly progress: "Einrichtungsfortschritt";
1175
+ readonly steps: {
1176
+ readonly account: "Administratorkonto";
1177
+ readonly consent: "Datenschutz";
1178
+ };
1179
+ readonly account: {
1180
+ readonly name: "Ihr Name";
1181
+ readonly email: "E-Mail";
1182
+ readonly emailInvalid: "Geben Sie eine gültige E-Mail-Adresse ein.";
1183
+ readonly password: "Passwort";
1184
+ readonly passwordHelper: "Mindestens {min} Zeichen.";
1185
+ readonly passwordTooShort: "Verwenden Sie mindestens {min} Zeichen.";
1186
+ readonly confirm: "Passwort bestätigen";
1187
+ readonly passwordMismatch: "Die Passwörter stimmen nicht überein.";
1188
+ readonly continue: "Weiter";
1189
+ readonly strength: "Passwortstärke";
1190
+ readonly strengthLevels: {
1191
+ readonly weak: "Schwach";
1192
+ readonly fair: "Mittel";
1193
+ readonly good: "Gut";
1194
+ readonly strong: "Stark";
1195
+ };
1196
+ };
1197
+ readonly consent: {
1198
+ readonly telemetry: {
1199
+ readonly title: "Anonyme Nutzungsdaten teilen";
1200
+ readonly description: "Hilft uns zu erkennen, welche Datenbank-Engines Priorität haben. Standardmäßig aus, bis Sie es aktivieren.";
1201
+ };
1202
+ readonly updates: {
1203
+ readonly title: "Nach neuen Versionen suchen";
1204
+ readonly description: "Zeigt einen Hinweis, wenn eine neue Version — auch ein Sicherheitsfix — verfügbar ist. Dabei wird GitHub nach dem neuesten Release gefragt, wodurch GitHub die IP-Adresse und Version dieser Instanz erfährt. Mehr wird nicht gesendet.";
1205
+ };
1206
+ readonly sentTitle: "Genau das wird gesendet:";
1207
+ readonly sent: {
1208
+ readonly instanceId: "Eine zufällige Instanz-ID (eine hier erzeugte UUID; nicht aus Ihrem Namen, Host oder Ihrer Datenbank abgeleitet)";
1209
+ readonly version: "Die Adminium-Version dieser Instanz";
1210
+ readonly engines: "Welche Datenbank-Engine-Typen verbunden sind (z. B. „postgres“) — nur die Typen";
1211
+ };
1212
+ readonly neverTitle: "Wird niemals gesendet:";
1213
+ readonly never: {
1214
+ readonly schema: "Ihr Schema — keine Tabellen-, Spalten- oder Enum-Namen";
1215
+ readonly rows: "Ihre Daten — niemals auch nur eine Zeile";
1216
+ readonly connections: "Verbindungszeichenfolgen, Hostnamen oder Zugangsdaten";
1217
+ readonly people: "E-Mail-Adressen, Namen oder IDs von Benutzern";
1218
+ readonly llm: "KI-Prompts oder Lauf-Inhalte";
1219
+ };
1220
+ readonly reversible: "Beides ist standardmäßig aus und lässt sich später jederzeit in den Einstellungen ändern.";
1221
+ readonly back: "Zurück";
1222
+ readonly finish: "Administratorkonto anlegen";
1223
+ };
1224
+ readonly error: {
1225
+ readonly alreadyCompleted: "Diese Instanz wurde bereits eingerichtet. Melden Sie sich mit dem vorhandenen Administratorkonto an.";
1226
+ readonly rejected: "Der Server hat diese Angaben abgelehnt. Prüfen Sie E-Mail und Passwort und versuchen Sie es erneut.";
1227
+ readonly failed: "Einrichtung fehlgeschlagen. Prüfen Sie Ihre Verbindung und versuchen Sie es erneut.";
1228
+ };
1229
+ };
1230
+ readonly about: {
1231
+ readonly title: "Über Adminium";
1232
+ readonly subtitle: "Version, Lizenz und wo der Quellcode dieser Instanz liegt.";
1233
+ readonly version: "Version";
1234
+ readonly license: "Lizenz";
1235
+ readonly metaStore: "Meta-Speicher";
1236
+ readonly node: "Node.js";
1237
+ readonly engine: {
1238
+ readonly postgres: "PostgreSQL";
1239
+ readonly mysql: "MySQL / MariaDB";
1240
+ readonly sqlite: "SQLite";
1241
+ };
1242
+ readonly licenseCard: {
1243
+ readonly title: "Frei und quelloffen";
1244
+ readonly body: "Adminium steht unter der GNU Affero General Public License v3.0. Sie dürfen es ausführen, untersuchen, verändern und weitergeben. Wenn Sie eine veränderte Fassung anderen über ein Netzwerk anbieten, verlangt die AGPL, dass Sie ihnen auch deren Quellcode anbieten.";
1245
+ };
1246
+ readonly viewLicense: "Lizenz lesen";
1247
+ readonly viewSource: "Quellcode herunterladen";
1248
+ readonly updates: {
1249
+ readonly title: "Aktualisierungen";
1250
+ readonly description: "Ob diese Instanz nach neuen Versionen sucht.";
1251
+ };
1252
+ readonly update: {
1253
+ readonly disabled: "Die Update-Prüfung ist aus, daher kontaktiert diese Instanz GitHub nie. Aktivieren Sie sie in den Einstellungen, um von neuen Versionen zu erfahren.";
1254
+ readonly current: "Sie nutzen die neueste Version.";
1255
+ readonly available: "Adminium {version} ist verfügbar";
1256
+ readonly availableBody: "Sie nutzen derzeit {version}.";
1257
+ readonly viewRelease: "Release-Notes ansehen";
1258
+ };
1259
+ readonly desktop: {
1260
+ readonly unknown: "Unbekannt";
1261
+ readonly appVersion: "App-Version";
1262
+ readonly serverVersion: "Server-Version";
1263
+ readonly migration: "Meta-Store-Migration";
1264
+ readonly electron: "Electron";
1265
+ readonly chromium: "Chromium";
1266
+ readonly runtimeNode: "Node-Laufzeit";
1267
+ readonly system: {
1268
+ readonly title: "System";
1269
+ };
1270
+ readonly dataDir: "Datenverzeichnis";
1271
+ readonly reveal: "Im Ordner anzeigen";
1272
+ readonly secret: {
1273
+ readonly title: "Geheimnisspeicher";
1274
+ readonly safe: "Von Ihrem Betriebssystem verschlüsselt";
1275
+ readonly plainWarning: "Auf diesem Computer ist kein System-Schlüsselbund verfügbar, daher wird Ihr Adminium-Geheimnis unverschlüsselt auf der Festplatte gespeichert. Jeder, der die Dateien dieses Rechners lesen kann, kann es lesen. Richten Sie einen Anmelde-Schlüsselbund (oder einen Linux-Secret-Service) ein und starten Sie Adminium neu, um es zu schützen.";
1276
+ };
1277
+ readonly updates: {
1278
+ readonly title: "Updates";
1279
+ readonly mode: {
1280
+ readonly notify: "Über neue Versionen benachrichtigen";
1281
+ readonly manual: "Nur wenn ich prüfe";
1282
+ readonly disabled: "Aus (offline)";
1283
+ };
1284
+ readonly disabledBody: "Automatische Updates sind aus (offline). Installieren Sie neue Versionen manuell.";
1285
+ readonly check: "Nach Updates suchen";
1286
+ readonly checking: "Wird geprüft…";
1287
+ readonly lastChecked: "Zuletzt geprüft {when}";
1288
+ readonly available: "Version {version} ist verfügbar";
1289
+ readonly none: "Sie verwenden die neueste Version.";
1290
+ readonly unavailable: "Updates sind in dieser Installation deaktiviert.";
1291
+ readonly error: "Nach Updates konnte nicht gesucht werden.";
1292
+ readonly download: "Update herunterladen";
1293
+ readonly downloading: "Wird heruntergeladen… {percent} %";
1294
+ readonly downloaded: "Version {version} ist installationsbereit";
1295
+ readonly restart: "Zum Installieren neu starten";
1296
+ readonly downloadError: "Der Download wurde nicht abgeschlossen. Sie können es erneut versuchen.";
1297
+ readonly toast: {
1298
+ readonly available: "Eine neue Version von Adminium ist verfügbar";
1299
+ readonly view: "Anzeigen";
1300
+ readonly downloaded: "Update installationsbereit";
1301
+ readonly restart: "Jetzt neu starten";
1302
+ };
1303
+ };
1304
+ readonly legal: {
1305
+ readonly title: "Lizenzen";
1306
+ readonly agpl: "Adminium Desktop ist freie Software unter der GNU Affero General Public License v3.0.";
1307
+ readonly viewLicense: "Lizenz anzeigen";
1308
+ readonly licenseTitle: "GNU Affero General Public License v3.0";
1309
+ readonly licenseUnavailable: "Die mitgelieferte Lizenzdatei ist in diesem Build nicht verfügbar.";
1310
+ readonly viewNotices: "Drittanbieter-Lizenzen";
1311
+ readonly noticesTitle: "Drittanbieter-Hinweise";
1312
+ readonly noticesUnavailable: "Drittanbieter-Hinweise werden beim Paketieren der App erzeugt und sind in diesem Build nicht verfügbar.";
1313
+ readonly source: "Quellcode";
1314
+ readonly close: "Schließen";
1315
+ };
1316
+ readonly telemetry: {
1317
+ readonly title: "Anonyme Nutzungsdaten";
1318
+ readonly label: "Anonyme Nutzungsdaten teilen";
1319
+ readonly description: "Hilft uns zu entscheiden, welche Datenbank-Engines wir priorisieren. Aus, sofern Sie es nicht aktivieren; es werden niemals Schema, Daten oder personenbezogene Informationen gesendet.";
1320
+ readonly saveFailed: "Diese Einstellung konnte nicht gespeichert werden. Bitte erneut versuchen.";
1321
+ };
1322
+ readonly diagnostics: {
1323
+ readonly title: "Diagnose";
1324
+ readonly description: "Details, die bei einer Problemmeldung helfen. Kein Schema und keine Daten sind enthalten.";
1325
+ readonly copy: "Diagnoseinfo kopieren";
1326
+ readonly copied: "Kopiert";
1327
+ readonly showLogs: "Protokolle anzeigen";
1328
+ readonly dataSize: "Datengröße: {size}";
1329
+ };
1330
+ };
1331
+ };
1332
+ readonly apiKeys: {
1333
+ readonly title: "API-Schlüssel & Tokens";
1334
+ readonly subtitle: "Programmatischen Zugriff auf Ihren Workspace verwalten.";
1335
+ readonly createButton: "Schlüssel erstellen";
1336
+ readonly copy: "Kopieren";
1337
+ readonly copied: "Kopiert";
1338
+ readonly revoke: "Schlüssel widerrufen";
1339
+ readonly neverUsed: "Nie verwendet";
1340
+ readonly lastUsed: "Zuletzt verwendet {since}";
1341
+ readonly scopesOverflow: "+{count} weitere";
1342
+ readonly status: {
1343
+ readonly active: "Aktiv";
1344
+ readonly revoked: "Widerrufen";
1345
+ readonly expired: "Abgelaufen";
1346
+ };
1347
+ readonly list: {
1348
+ readonly title: "Schlüssel";
1349
+ readonly activeCount: "{count, plural, one {# aktiver Schlüssel} other {# aktive Schlüssel}}";
1350
+ };
1351
+ readonly empty: {
1352
+ readonly title: "Noch keine API-Schlüssel";
1353
+ readonly body: "Erstellen Sie einen, um die Adminium-API aus eigenem Code aufzurufen.";
1354
+ };
1355
+ readonly revealed: {
1356
+ readonly title: "Neuer Schlüssel erstellt";
1357
+ readonly body: "Kopieren Sie ihn jetzt — Sie werden ihn nie wieder sehen können.";
1358
+ };
1359
+ readonly rolesUnavailable: {
1360
+ readonly title: "Rollen sind für Sie nicht sichtbar";
1361
+ readonly body: "Einen Schlüssel zu erstellen heißt, die Rolle zu wählen, mit der er handelt — und Ihr Konto darf die Rollenliste nicht lesen. Bitten Sie eine Administratorin um die Berechtigung „Rollen verwalten“.";
1362
+ };
1363
+ readonly quickStart: {
1364
+ readonly title: "Schnellstart";
1365
+ readonly body: "Authentifizieren Sie Anfragen mit Ihrem Schlüssel im Authorization-Header.";
1366
+ };
1367
+ readonly create: {
1368
+ readonly title: "API-Schlüssel erstellen";
1369
+ readonly description: "Der Schlüssel handelt mit den Berechtigungen der gewählten Rolle.";
1370
+ readonly name: "Name";
1371
+ readonly namePlaceholder: "z. B. Analytics-Pipeline";
1372
+ readonly role: "Rolle";
1373
+ readonly roleHelper: "Wählen Sie die Rolle mit den geringsten Rechten, die ausreicht.";
1374
+ readonly expires: "Läuft ab";
1375
+ readonly expiresHelper: "Leer lassen für einen Schlüssel, der nie abläuft.";
1376
+ readonly submit: "Schlüssel erstellen";
1377
+ readonly failed: "Schlüssel konnte nicht erstellt werden";
1378
+ };
1379
+ readonly revokeConfirm: {
1380
+ readonly title: "API-Schlüssel widerrufen";
1381
+ readonly body: "Jeder Code, der die API noch mit „{name}“ aufruft, schlägt ab sofort fehl. Das lässt sich nicht rückgängig machen.";
1382
+ readonly prompt: "Geben Sie „{name}“ ein, um zu bestätigen";
1383
+ readonly confirm: "Schlüssel widerrufen";
1384
+ };
1385
+ };
1386
+ readonly changelog: {
1387
+ readonly title: "Änderungsprotokoll";
1388
+ readonly subtitle: "Produkt-Updates & Releases.";
1389
+ readonly allReleases: "Alle Releases";
1390
+ readonly tag: {
1391
+ readonly new: "Neu";
1392
+ readonly improved: "Verbessert";
1393
+ readonly fixed: "Behoben";
1394
+ readonly security: "Sicherheit";
1395
+ };
1396
+ readonly filter: {
1397
+ readonly all: "Alle";
1398
+ readonly label: "Änderungen nach Typ filtern";
1399
+ };
1400
+ readonly empty: {
1401
+ readonly title: "Nichts unter diesem Filter";
1402
+ readonly body: "Bisher enthielt kein Release eine Änderung dieser Art.";
1403
+ readonly clear: "Alle Änderungen anzeigen";
1404
+ };
1405
+ };
1406
+ readonly kb: {
1407
+ readonly title: "Wissensdatenbank";
1408
+ readonly subtitle: "{count, plural, one {# Anleitung} other {# Anleitungen}} · vollständige Doku unter docs.adminium.dev";
1409
+ readonly openDocs: "Doku öffnen";
1410
+ readonly browse: "Nach Thema stöbern";
1411
+ readonly hero: {
1412
+ readonly title: "Wie können wir helfen?";
1413
+ readonly subtitle: "Anleitungen, API-Doku und Fehlerbehebung durchsuchen.";
1414
+ readonly placeholder: "Wissensdatenbank durchsuchen…";
1415
+ readonly label: "Wissensdatenbank durchsuchen";
1416
+ readonly clear: "Suche leeren";
1417
+ };
1418
+ readonly category: {
1419
+ readonly start: "Erste Schritte";
1420
+ readonly connect: "Daten verbinden";
1421
+ readonly api: "API & Entwicklung";
1422
+ readonly security: "Sicherheit & Zugriff";
1423
+ readonly selfhost: "Self-Hosting";
1424
+ readonly trouble: "Fehlerbehebung";
1425
+ readonly count: "{count, plural, one {# Artikel} other {# Artikel}}";
1426
+ readonly selected: "Gefiltert";
1427
+ };
1428
+ readonly list: {
1429
+ readonly all: "Alle Anleitungen";
1430
+ readonly clear: "Filter zurücksetzen";
1431
+ };
1432
+ readonly empty: {
1433
+ readonly title: "Keine Anleitung passt zu Ihrer Suche";
1434
+ readonly body: "Versuchen Sie ein anderes Wort oder durchsuchen Sie die vollständige Dokumentation auf docs.adminium.dev.";
1435
+ readonly openDocs: "Doku öffnen";
1436
+ };
1437
+ readonly article: {
1438
+ readonly install: {
1439
+ readonly title: "Adminium installieren";
1440
+ readonly excerpt: "Aus einem Quell-Checkout oder per docker run starten und in einer Minute beim Ersteinrichtungs-Assistenten sein.";
1441
+ };
1442
+ readonly firstAdmin: {
1443
+ readonly title: "Ersten Super-Admin anlegen";
1444
+ readonly excerpt: "Was der Ersteinrichtungs-Assistent abfragt und warum er nur einmal laufen kann.";
1445
+ };
1446
+ readonly connectDb: {
1447
+ readonly title: "Ihre erste Datenbank verbinden";
1448
+ readonly excerpt: "Adminium auf PostgreSQL, MySQL oder SQLite richten und eine Admin-App generieren.";
1449
+ };
1450
+ readonly schemaFile: {
1451
+ readonly title: "Aus einer Schemadatei generieren";
1452
+ readonly excerpt: "Ein Prisma-Schema, eine Django-models.py, eine Rails-schema.rb oder einen .sql-Dump hochladen — ganz ohne Verbindung.";
1453
+ };
1454
+ readonly readOnly: {
1455
+ readonly title: "Eine Nur-Lese-Rolle verwenden";
1456
+ readonly excerpt: "Die Introspektion liest nur Schema-Metadaten. Geben Sie Adminium so wenig Rechte wie möglich.";
1457
+ };
1458
+ readonly apiKeys: {
1459
+ readonly title: "Authentifizierung mit API-Schlüsseln";
1460
+ readonly excerpt: "Schlüssel erstellen und widerrufen — und warum ein Schlüssel Ihnen nur ein einziges Mal gezeigt wird.";
1461
+ };
1462
+ readonly rest: {
1463
+ readonly title: "REST-API-Referenz";
1464
+ readonly excerpt: "Jeder Endpunkt der generierten App, mit Request- und Response-Formaten.";
1465
+ };
1466
+ readonly manifest: {
1467
+ readonly title: "Das Seiten-Manifest";
1468
+ readonly excerpt: "Wie eine Seite als Konfiguration beschrieben wird und wie Sie eine von Hand bearbeiten.";
1469
+ };
1470
+ readonly roles: {
1471
+ readonly title: "Rollen & Berechtigungen";
1472
+ readonly excerpt: "Viewer, Editor und Admin vergeben — und eigene Rollen aus der Berechtigungsmatrix bauen.";
1473
+ };
1474
+ readonly audit: {
1475
+ readonly title: "Das Audit-Log lesen";
1476
+ readonly excerpt: "Wer hat was geändert, wann und von wo.";
1477
+ };
1478
+ readonly secrets: {
1479
+ readonly title: "Wie Adminium Ihre Geheimnisse speichert";
1480
+ readonly excerpt: "Verbindungsdaten werden mit ADMINIUM_SECRET verschlüsselt gespeichert. API-Schlüssel werden gehasht.";
1481
+ };
1482
+ readonly docker: {
1483
+ readonly title: "Self-Hosting mit Docker";
1484
+ readonly excerpt: "Das offizielle Image, docker-compose und der Betrieb einer separaten Meta-Datenbank.";
1485
+ };
1486
+ readonly backup: {
1487
+ readonly title: "Eine Instanz sichern und umziehen";
1488
+ readonly excerpt: "export-zip bündelt Ihre Serverkonfiguration; beim Import wird dieselbe Einrichtung andernorts nachgespielt.";
1489
+ };
1490
+ readonly telemetry: {
1491
+ readonly title: "Telemetrie und Update-Prüfungen";
1492
+ readonly excerpt: "Beides ist opt-in und standardmäßig aus. Was gesendet wird, wenn Sie es einschalten.";
1493
+ };
1494
+ readonly connectionFails: {
1495
+ readonly title: "Eine Datenbankverbindung schlägt fehl";
1496
+ readonly excerpt: "Lesen Sie die Diagnosekarte: Host, Port, TLS — und die IP, die Ihre Datenbank zulassen muss.";
1497
+ };
1498
+ readonly missingTables: {
1499
+ readonly title: "Nach der Introspektion fehlen Tabellen";
1500
+ readonly excerpt: "Schema-Sichtbarkeit, ausgeschlossene Tabellen und ein erneuter Generierungslauf.";
1501
+ };
1502
+ };
1503
+ };
1504
+ readonly desktop: {
1505
+ readonly menu: {
1506
+ readonly file: "Datei";
1507
+ readonly fileNewDatabase: "Neue lokale Datenbank…";
1508
+ readonly fileOpenSqlite: "SQLite-Datei öffnen…";
1509
+ readonly fileBackupNow: "Jetzt sichern…";
1510
+ readonly fileRestore: "Aus Sicherung wiederherstellen…";
1511
+ readonly edit: "Bearbeiten";
1512
+ readonly view: "Ansicht";
1513
+ readonly window: "Fenster";
1514
+ readonly help: "Hilfe";
1515
+ readonly helpDocs: "Adminium-Dokumentation";
1516
+ readonly helpShortcuts: "Tastaturkürzel";
1517
+ readonly helpLogs: "Protokolle anzeigen";
1518
+ readonly helpCheckForUpdates: "Nach Updates suchen…";
1519
+ readonly helpAbout: "Über Adminium";
1520
+ };
1521
+ readonly settings: {
1522
+ readonly explainer: "Diese Einstellungen gelten nur für die Adminium-App auf diesem Computer. Sie werden auf diesem Gerät gespeichert, nicht in Ihrem Workspace.";
1523
+ };
1524
+ readonly security: {
1525
+ readonly heading: "Anmeldung";
1526
+ };
1527
+ readonly requireLogin: {
1528
+ readonly label: "Anmeldung auf diesem Gerät verlangen";
1529
+ readonly description: "Adminium meldet Sie auf diesem Computer normalerweise automatisch an. Aktivieren Sie diese Option, um bei jedem Start nach Ihrem Passwort zu fragen — sinnvoll, wenn andere Personen diesen Computer nutzen können. Die Änderung gilt ab dem nächsten Start von Adminium.";
1530
+ readonly savedOn: "Beim nächsten Start ist eine Anmeldung erforderlich";
1531
+ readonly savedOff: "Adminium überspringt die Anmeldung auf diesem Computer";
1532
+ readonly saveFailed: "Einstellung konnte nicht gespeichert werden. Bitte erneut versuchen.";
1533
+ };
1534
+ readonly chip: {
1535
+ readonly local: "Lokal";
1536
+ readonly lanShare: "Lokal · Im Netzwerk freigegeben";
1537
+ readonly remoteDb: "Lokal + Remote-Datenbank";
1538
+ readonly remoteDbOffline: "Remote-Datenbank offline";
1539
+ readonly remoteDbOfflineDetail: "{names} ist nicht erreichbar. Seiten dieser Verbindungen zeigen einen Wiederverbindungs-Status.";
1540
+ };
1541
+ readonly lan: {
1542
+ readonly heading: "Im lokalen Netzwerk freigeben";
1543
+ readonly label: "Anderen Geräten in diesem Netzwerk die Nutzung von Adminium erlauben";
1544
+ readonly description: "Andere Computer, Tablets und Telefone im selben Netzwerk können Adminium im Browser öffnen und sich mit ihrem eigenen Konto anmelden. Adminium muss auf diesem Computer geöffnet bleiben, damit sie es erreichen.";
1545
+ readonly savedOn: "Im lokalen Netzwerk freigegeben";
1546
+ readonly savedOff: "Freigabe beendet — Adminium läuft wieder nur auf diesem Computer";
1547
+ readonly saveFailed: "Netzwerkfreigabe konnte nicht geändert werden";
1548
+ readonly noUsers: "Sie sind die einzige Person mit einem Konto, deshalb kann sich sonst noch niemand anmelden. Die Freigabe funktioniert trotzdem — Sie müssen nur Personen einladen, bevor sie sie nutzen können.";
1549
+ readonly usersUnknown: "Adminium konnte nicht prüfen, wer sonst noch ein Konto auf diesem Computer hat. Die Freigabe funktioniert weiterhin, und jede Person mit einem Konto kann sich anmelden — nur diese Prüfung ist fehlgeschlagen.";
1550
+ readonly acknowledge: "Verstanden — ich lade als Nächstes Personen ein";
1551
+ readonly port: "Port";
1552
+ readonly portHelper: "Standard {port}";
1553
+ readonly portInvalid: "Verwenden Sie eine Zahl zwischen 1024 und 65535.";
1554
+ readonly applyPort: "Port ändern";
1555
+ readonly portInUse: "Port {port} wird bereits von einem anderen Programm verwendet.";
1556
+ readonly portInUseHint: "Es wurde nichts geändert — die Freigabe ist weiterhin aus.";
1557
+ readonly portInUseNoSuggestion: "Es wurde nichts geändert. Versuchen Sie einen anderen Port.";
1558
+ readonly tryPort: "{port} versuchen";
1559
+ readonly urlsHeading: "Auf einem anderen Gerät öffnen";
1560
+ readonly noUrls: "Dieser Computer ist gerade mit keinem Netzwerk verbunden, deshalb gibt es keine Adresse zum Teilen. Verbinden Sie sich mit dem WLAN oder stecken Sie ein Kabel ein, dann füllt sich diese Liste.";
1561
+ readonly copyUrl: "Kopieren";
1562
+ readonly sessions: "{count, plural, =0 {Keine Geräte aus diesem Netzwerk angemeldet} one {# Gerät aus diesem Netzwerk angemeldet} other {# Geräte aus diesem Netzwerk angemeldet}}";
1563
+ readonly sessionsUnknown: "Verbundene Geräte werden geprüft…";
1564
+ readonly pending: "Freigabe wird gestartet…";
1565
+ readonly mismatch: "Adminium ist in diesem Netzwerk weiterhin erreichbar";
1566
+ readonly mismatchBody: "Die Freigabe ist ausgeschaltet, aber der Server hat das Netzwerk noch nicht freigegeben. Starten Sie Adminium neu, um sie zu schließen.";
1567
+ readonly transportTitle: "Der Datenverkehr in Ihrem lokalen Netzwerk ist nicht verschlüsselt.";
1568
+ readonly transportBody: "Geben Sie nur in Netzwerken frei, denen Sie vertrauen. Nutzen Sie für den Fernzugriff Adminium self-host hinter HTTPS.";
1569
+ readonly firewall: "Beim ersten Freigeben fragt Ihr Betriebssystem, ob eingehende Verbindungen erlaubt werden sollen — wählen Sie Zulassen, sonst können andere Geräte Adminium nicht erreichen.";
1570
+ };
1571
+ readonly setup: {
1572
+ readonly title: "Willkommen bei Adminium";
1573
+ readonly subtitle: "Vier kurze Schritte und Adminium hat aus Ihrer Datenbank eine Admin-App gebaut. Alles bleibt auf diesem Computer.";
1574
+ readonly progress: "Einrichtungsfortschritt";
1575
+ readonly back: "Zurück";
1576
+ readonly continue: "Weiter";
1577
+ readonly createAccount: "Konto erstellen und fortfahren";
1578
+ readonly step: {
1579
+ readonly location: "Willkommen";
1580
+ readonly database: "Ihre erste Datenbank";
1581
+ readonly account: "Ihr Konto";
1582
+ readonly generate: "Generieren";
1583
+ };
1584
+ readonly dataDir: {
1585
+ readonly heading: "Wo soll Adminium Ihre Daten speichern?";
1586
+ readonly description: "Ihre Datenbanken, Einstellungen und Backups liegen alle in diesem Ordner. Alles bleibt auf diesem Computer — nichts wird irgendwohin hochgeladen.";
1587
+ readonly label: "Datenordner";
1588
+ readonly loading: "Aktueller Speicherort wird gelesen…";
1589
+ readonly pending: "Adminium startet beim Fortfahren neu, um in diesen Ordner zu wechseln.";
1590
+ readonly change: "Ändern…";
1591
+ readonly revert: "Rückgängig";
1592
+ readonly dialogTitle: "Wählen Sie, wo Adminium Ihre Daten speichert";
1593
+ readonly cloudSyncTitle: "Dieser Ordner wird mit der Cloud synchronisiert";
1594
+ readonly cloudSyncWarning: "Adminium speichert seine Daten in SQLite-Dateien. {provider} synchronisiert Dateien in „{folder}“, indem es sie im Hintergrund kopiert — das kann eine geöffnete Datenbank beschädigen und ohne Warnung Daten vernichten. Wählen Sie einen Ordner außerhalb von {provider}.";
1595
+ readonly chooseAnother: "Anderen Ordner wählen";
1596
+ readonly useAnyway: "Trotzdem verwenden — ich akzeptiere das Risiko";
1597
+ readonly unusableTitle: "Adminium kann diesen Ordner nicht verwenden";
1598
+ readonly failed: "Adminium konnte diesen Ordner nicht verwenden.";
1599
+ };
1600
+ readonly source: {
1601
+ readonly heading: "Woraus soll Adminium bauen?";
1602
+ readonly description: "Adminium liest das Schema einer Datenbank und generiert daraus eine Admin-App. Weitere Datenbanken können Sie später hinzufügen.";
1603
+ readonly groupLabel: "Datenbankquelle";
1604
+ readonly local: {
1605
+ readonly title: "Neue lokale Datenbank erstellen";
1606
+ readonly description: "Beginnen Sie bei null oder mit einer Schemadatei, die Sie bereits haben. Die Datenbank wird in Ihrem Datenordner angelegt.";
1607
+ readonly name: "Datenbankname";
1608
+ readonly namePlaceholder: "Betrieb";
1609
+ readonly nameUnusable: "Verwenden Sie mindestens einen Buchstaben oder eine Ziffer — daraus wird der Dateiname gebildet.";
1610
+ readonly fileHelper: "Erstellt {file}";
1611
+ readonly schemaLabel: "Beginnen mit";
1612
+ readonly blank: "Leer";
1613
+ readonly fromFile: "Einer Schemadatei";
1614
+ readonly schemaFile: "Schemadatei";
1615
+ readonly schemaFileHelper: ".sql, pg_dump, Prisma, Drizzle, TypeORM, Sequelize, schema.rb, Django oder Adminium-JSON. Adminium übersetzt es nach SQLite.";
1616
+ readonly placeholder: "Platzhaltereinträge automatisch erzeugen";
1617
+ readonly placeholderHelper: "Sie haben ein Schema ohne Zeilen importiert. Befüllen Sie jede Tabelle mit realistischen Beispieldaten, damit Ihre Dashboards und Diagramme sofort etwas anzeigen.";
1618
+ };
1619
+ readonly openSqlite: {
1620
+ readonly title: "Vorhandene SQLite-Datei öffnen";
1621
+ readonly description: "Richten Sie Adminium auf eine .sqlite-Datei auf diesem Computer. Sie wird dort geöffnet, wo sie liegt — nichts wird kopiert oder verschoben.";
1622
+ readonly browse: ".sqlite-Datei auswählen…";
1623
+ readonly change: "Andere Datei auswählen…";
1624
+ readonly networkTitle: "Diese Datei liegt auf einer Netzwerkfreigabe";
1625
+ readonly networkBody: "Die Sperrmechanik von SQLite ist über Netzwerkfreigaben unzuverlässig, und eine abbrechende Verbindung mitten im Schreibvorgang kann die Datenbank beschädigen. Eine Kopie auf der lokalen Festplatte dieses Computers ist sicherer.";
1626
+ };
1627
+ readonly remote: {
1628
+ readonly title: "Mit einer Server-Datenbank verbinden";
1629
+ readonly description: "PostgreSQL oder MySQL. Erfordert eine erreichbare Netzwerkdatenbank; Adminiums eigene Tabellen bleiben trotzdem auf diesem Computer.";
1630
+ readonly networkNote: "Erfordert eine erreichbare Netzwerkdatenbank";
1631
+ readonly metaNote: "Adminiums eigene Tabellen — Ihre Seiten, Einstellungen und Anmeldung — bleiben in jedem Fall im Datenordner auf diesem Computer.";
1632
+ readonly engine: "Engine";
1633
+ readonly name: "Verbindungsname";
1634
+ readonly namePlaceholder: "Produktion";
1635
+ readonly dsn: "Verbindungszeichenfolge";
1636
+ readonly dsnHelper: "Adminium testet dies beim Verbinden. Verwenden Sie eine Nur-Lese-Rolle, wenn Sie nur Dashboards möchten.";
1637
+ };
1638
+ readonly demo: {
1639
+ readonly title: "Demo-Datenbank erkunden";
1640
+ readonly description: "Eine fertige Team-Betriebsdatenbank, damit Sie sehen, was Adminium baut, bevor Sie es auf Ihre eigenen Daten richten. Löschen Sie sie, wann immer Sie möchten.";
1641
+ readonly unavailable: "Dieses Build enthält die Demodaten nicht, es gibt also nichts zu laden. Wählen Sie eine der Optionen oben.";
1642
+ };
1643
+ };
1644
+ readonly account: {
1645
+ readonly heading: "Konto erstellen";
1646
+ readonly description: "Dies ist das Administratorkonto für diese Adminium-Installation. Das Passwort schützt Ihre Backups und alle, mit denen Sie im Netzwerk teilen — bei jedem Start wird es nicht abgefragt.";
1647
+ readonly name: "Ihr Name";
1648
+ readonly email: "E-Mail";
1649
+ readonly password: "Passwort";
1650
+ readonly passwordHelper: "Mindestens {min} Zeichen.";
1651
+ readonly confirm: "Passwort bestätigen";
1652
+ readonly strength: "Passwortstärke";
1653
+ readonly strengthLevels: {
1654
+ readonly weak: "Schwach";
1655
+ readonly fair: "Mittel";
1656
+ readonly good: "Gut";
1657
+ readonly strong: "Stark";
1658
+ };
1659
+ readonly singleUser: "Anmeldung auf diesem Computer überspringen";
1660
+ readonly singleUserHelper: "Adminium meldet Sie hier automatisch an. Schalten Sie dies aus, wenn andere Personen diesen Computer nutzen. Sie können es später unter Einstellungen → Desktop ändern.";
1661
+ readonly locale: "Sprache";
1662
+ readonly theme: "Darstellung";
1663
+ readonly alreadyExists: "Diese Adminium-Installation hat bereits ein Konto. Melden Sie sich stattdessen damit an.";
1664
+ readonly failed: "Adminium konnte dieses Konto nicht erstellen.";
1665
+ };
1666
+ readonly generate: {
1667
+ readonly creating: "Ihre Datenbank wird eingerichtet…";
1668
+ readonly introspecting: "Ihr Schema wird gelesen — Tabellen, Spalten und Beziehungen…";
1669
+ readonly working: "Wird ausgeführt…";
1670
+ readonly offlineNote: "All dies geschieht auf diesem Computer.";
1671
+ readonly failedTitle: "Adminium konnte diese Datenbank nicht einrichten";
1672
+ readonly failedBody: "Etwas ist schiefgelaufen. Versuchen Sie es erneut.";
1673
+ readonly retry: "Erneut versuchen";
1674
+ };
1675
+ };
1676
+ };
1677
+ readonly capabilities: {
1678
+ readonly heading: "App-Berechtigungen";
1679
+ readonly description: "Von Ihnen installierte Apps können den Zugriff auf die Hardware dieses Computers anfordern. Sie genehmigen jede einzeln und können den Zugriff jederzeit widerrufen.";
1680
+ readonly grantedTo: "Erlaubt für {app}";
1681
+ readonly status: {
1682
+ readonly available: "Verfügbar";
1683
+ readonly stub: "Noch nicht verfügbar";
1684
+ readonly unavailable: "Nicht verfügbar";
1685
+ };
1686
+ readonly allow: {
1687
+ readonly action: "Erlauben…";
1688
+ };
1689
+ readonly revoke: {
1690
+ readonly action: "Widerrufen";
1691
+ readonly saved: "Zugriff widerrufen";
1692
+ readonly failed: "Zugriff konnte nicht widerrufen werden. Bitte erneut versuchen.";
1693
+ };
1694
+ readonly grant: {
1695
+ readonly saved: "Zugriff erlaubt";
1696
+ readonly failed: "Zugriff konnte nicht erlaubt werden. Bitte erneut versuchen.";
1697
+ };
1698
+ readonly catalog: {
1699
+ readonly printerEscpos: {
1700
+ readonly name: "Bondrucker (ESC/POS)";
1701
+ readonly scope: "Auf Bondruckern drucken und eine angeschlossene Kassenschublade öffnen";
1702
+ };
1703
+ };
1704
+ readonly consent: {
1705
+ readonly title: "{app} erlauben?";
1706
+ readonly subtitle: "{app} möchte die Hardware dieses Computers verwenden.";
1707
+ readonly willAllow: "Dies erlaubt {app}:";
1708
+ readonly revokeNote: "Sie können dies jederzeit unter Einstellungen → Desktop widerrufen. Erlauben Sie nur Apps, denen Sie vertrauen.";
1709
+ readonly deny: "Nicht jetzt";
1710
+ readonly approve: "Erlauben";
1711
+ };
1712
+ };
1713
+ readonly emailTemplates: {
1714
+ readonly title: "E-Mail-Vorlagen";
1715
+ readonly subtitle: "Transaktions- und Lifecycle-E-Mails, die dieser Workspace versendet.";
1716
+ readonly search: "Vorlagen durchsuchen…";
1717
+ readonly loadFailed: "Vorlagen konnten nicht geladen werden";
1718
+ readonly empty: "Noch keine E-Mail-Vorlagen";
1719
+ readonly emptyBody: "Vorlagen erscheinen hier, sobald der Server welche anlegt oder Sie welche erstellen.";
1720
+ readonly noMatches: "Keine passenden Vorlagen";
1721
+ readonly noMatchesBody: "Versuchen Sie eine andere Suche.";
1722
+ readonly live: "Aktiv";
1723
+ readonly disabled: "Deaktiviert";
1724
+ readonly name: "Vorlagenname";
1725
+ readonly subject: "Betreff";
1726
+ readonly enabled: "Aktiviert";
1727
+ };
1728
+ readonly board: {
1729
+ readonly addCard: "Karte hinzufügen";
1730
+ readonly compose: {
1731
+ readonly placeholder: "Kartentitel…";
1732
+ readonly add: "Hinzufügen";
1733
+ readonly cancel: "Abbrechen";
1734
+ };
1735
+ readonly empty: {
1736
+ readonly title: "Keine Board-Spalten";
1737
+ readonly body: "Fügen Sie ein Statusfeld hinzu, um Karten in Spalten zu gruppieren.";
1738
+ };
1739
+ };
1740
+ readonly calendar: {
1741
+ readonly dateRange: "Zeitraum";
1742
+ readonly compose: {
1743
+ readonly placeholder: "Termintitel…";
1744
+ readonly add: "Hinzufügen";
1745
+ readonly cancel: "Abbrechen";
1746
+ readonly open: "Termin hinzufügen";
1747
+ };
1748
+ readonly agenda: {
1749
+ readonly empty: "Nichts geplant";
1750
+ };
1751
+ };
1752
+ readonly scheduler: {
1753
+ readonly prevWeek: "Vorherige Woche";
1754
+ readonly nextWeek: "Nächste Woche";
1755
+ readonly week: "Woche";
1756
+ readonly month: "Monat";
1757
+ readonly resource: "Ressource";
1758
+ readonly coverage: "Abdeckung";
1759
+ readonly addShift: "Schicht hinzufügen";
1760
+ readonly shiftCount: "{n} Schichten";
1761
+ };
1762
+ readonly planning: {
1763
+ readonly drawer: {
1764
+ readonly close: "Schließen";
1765
+ readonly loading: "Datensatz wird geladen";
1766
+ readonly error: "Dieser Datensatz konnte nicht geladen werden.";
1767
+ };
1768
+ };
1769
+ readonly files: {
1770
+ readonly uploadsUnavailable: "Uploads sind auf dieser Seite noch nicht verfügbar.";
1771
+ };
1772
+ readonly chat: {
1773
+ readonly messageSent: "Nachricht gesendet";
1774
+ readonly sendFailed: "Die Nachricht konnte nicht gesendet werden.";
1775
+ };
1776
+ readonly templates: {
1777
+ readonly crud: {
1778
+ readonly title: "Datensätze";
1779
+ };
1780
+ readonly dashboard: {
1781
+ readonly title: "Dashboard";
1782
+ };
1783
+ readonly board: {
1784
+ readonly title: "Board";
1785
+ };
1786
+ readonly calendar: {
1787
+ readonly title: "Kalender";
1788
+ };
1789
+ readonly scheduler: {
1790
+ readonly title: "Dienstplan";
1791
+ };
1792
+ readonly logViewer: {
1793
+ readonly title: "Protokolle";
1794
+ };
1795
+ readonly files: {
1796
+ readonly title: "Dateien";
1797
+ };
1798
+ readonly chat: {
1799
+ readonly title: "Chat";
1800
+ };
1801
+ readonly builder: {
1802
+ readonly title: "Editor";
1803
+ };
1804
+ readonly wizard: {
1805
+ readonly title: "Assistent";
1806
+ };
1807
+ readonly settings: {
1808
+ readonly title: "Einstellungen";
1809
+ };
1810
+ readonly directory: {
1811
+ readonly title: "Verzeichnis";
1812
+ readonly searchPlaceholder: "Personen suchen…";
1813
+ readonly allFilter: "Alle";
1814
+ readonly clearFilters: "Filter zurücksetzen";
1815
+ readonly detailTitle: "Person";
1816
+ readonly emptyTitle: "Noch keine Personen";
1817
+ readonly emptyBody: "Personen erscheinen hier, sobald Zeilen in der Tabelle ankommen.";
1818
+ readonly noMatchesTitle: "Keine passenden Personen";
1819
+ readonly noMatchesBody: "Versuchen Sie eine andere Suche oder entfernen Sie einen Filter.";
1820
+ readonly errorTitle: "Dieses Verzeichnis konnte nicht geladen werden";
1821
+ readonly loading: "Personen werden geladen";
1822
+ readonly memberCount: "{count} Personen";
1823
+ };
1824
+ readonly masterDetail: {
1825
+ readonly title: "Liste & Detail";
1826
+ readonly allFilter: "Alle";
1827
+ readonly clearFilters: "Filter zurücksetzen";
1828
+ readonly emptyTitle: "Noch nichts vorhanden";
1829
+ readonly emptyBody: "Datensätze erscheinen hier, sobald Zeilen in der Tabelle ankommen.";
1830
+ readonly noMatchesTitle: "Keine passenden Datensätze";
1831
+ readonly noMatchesBody: "Entfernen Sie einen Filter.";
1832
+ readonly errorTitle: "Diese Liste konnte nicht geladen werden";
1833
+ readonly loading: "Datensätze werden geladen";
1834
+ readonly selectPrompt: "Datensatz auswählen";
1835
+ };
1836
+ readonly queueInbox: {
1837
+ readonly title: "Warteschlange";
1838
+ readonly approve: "Genehmigen";
1839
+ readonly reject: "Ablehnen";
1840
+ readonly allSegment: "Alle";
1841
+ readonly approvedToast: "{count} genehmigt.";
1842
+ readonly rejectedToast: "{count} abgelehnt.";
1843
+ readonly undoneToast: "Entscheidung rückgängig gemacht.";
1844
+ readonly failedToast: "Entscheidung fehlgeschlagen.";
1845
+ readonly bulkFailed: "{failed} von {total} ausgewählten Zeilen konnten nicht aktualisiert werden.";
1846
+ readonly undoFailedToast: "Diese Entscheidung konnte nicht rückgängig gemacht werden.";
1847
+ readonly rejectTitle: "Anfragen ablehnen";
1848
+ readonly rejectCount: "Ausgewählt · {count}";
1849
+ readonly rejectNote: "Der Antragsteller wird mit Ihrer Notiz benachrichtigt.";
1850
+ readonly rejectPlaceholder: "Notiz für den Antragsteller hinzufügen…";
1851
+ readonly rejectConfirm: "Ablehnen";
1852
+ readonly emptyTitle: "Nichts in der Warteschlange";
1853
+ readonly emptyBody: "Neue Anfragen erscheinen hier, sobald sie eintreffen.";
1854
+ readonly caughtUpTitle: "Alles erledigt";
1855
+ readonly caughtUpBody: "Derzeit keine Anfragen in diesem Tab.";
1856
+ readonly errorTitle: "Diese Warteschlange konnte nicht geladen werden";
1857
+ readonly loading: "Warteschlange wird geladen";
1858
+ readonly selectPrompt: "Anfrage auswählen";
1859
+ readonly daysUnit: "{count} Tage";
1860
+ };
1861
+ };
1862
+ readonly dataio: {
1863
+ readonly back: "Zurück";
1864
+ readonly import: {
1865
+ readonly title: "Daten importieren";
1866
+ readonly stepUpload: "Hochladen";
1867
+ readonly stepMap: "Spalten zuordnen";
1868
+ readonly stepValidate: "Prüfen";
1869
+ readonly stepRun: "Importieren & prüfen";
1870
+ readonly targetLabel: "Zieltabelle";
1871
+ readonly targetPlaceholder: "Tabellenseite wählen…";
1872
+ readonly notATable: "Diese Seite ist keine Tabelle — wählen Sie eine Tabellenseite als Ziel.";
1873
+ readonly dropTitle: "CSV-Datei zum Import hier ablegen";
1874
+ readonly dropHint: "CSV bis 32 MB — die erste Zeile muss die Kopfzeile sein";
1875
+ readonly skipTarget: "Nicht importieren";
1876
+ readonly mapHint: "{count} Datenzeilen in {file} — wählen Sie für jede Spalte ein Ziel.";
1877
+ readonly validating: "Wird geprüft…";
1878
+ readonly toValidate: "Prüfen";
1879
+ readonly validateFailed: "Prüfung fehlgeschlagen.";
1880
+ readonly validationSummary: "{valid} von {total} Zeilen bereit zum Import — {invalid} werden übersprungen.";
1881
+ readonly allValid: "Alle Zeilen haben die Prüfung bestanden";
1882
+ readonly run: "Import starten";
1883
+ readonly runSkipping: "{valid} Zeilen importieren ({invalid} überspringen)";
1884
+ readonly progressLabel: "Importfortschritt";
1885
+ readonly running: "Wird importiert…";
1886
+ readonly kpiTotal: "Zeilen in der Datei";
1887
+ readonly kpiCreated: "Erstellt";
1888
+ readonly kpiUpdated: "Aktualisiert";
1889
+ readonly kpiSkipped: "Übersprungen";
1890
+ readonly inconsistent: "Importzahlen sind inkonsistent — Gesamt muss Erstellt + Aktualisiert + Übersprungen entsprechen.";
1891
+ readonly downloadErrors: "Bericht der übersprungenen Zeilen herunterladen (CSV)";
1892
+ readonly runFailed: "Der Import ist fehlgeschlagen.";
1893
+ };
1894
+ readonly exports: {
1895
+ readonly title: "Datenexporte";
1896
+ readonly tableLabel: "Tabelle";
1897
+ readonly tablePlaceholder: "Tabelle wählen…";
1898
+ readonly notATable: "Diese Seite ist keine Tabelle — wählen Sie eine Tabellenseite zum Export.";
1899
+ readonly formatLabel: "Format";
1900
+ readonly create: "Exportieren";
1901
+ readonly createFailed: "Der Export konnte nicht angefordert werden.";
1902
+ readonly retention: "Exporte werden 30 Tage aufbewahrt und laufen dann ab.";
1903
+ readonly statusProcessing: "Wird verarbeitet…";
1904
+ readonly statusReady: "Fertig — {rows} Zeilen · zum Herunterladen klicken";
1905
+ readonly statusFailed: "Fehlgeschlagen — {error}";
1906
+ readonly statusCancelled: "Abgebrochen";
1907
+ readonly statusExpired: "Abgelaufen";
1908
+ readonly emptyTitle: "Noch keine Exporte";
1909
+ readonly emptyBody: "Oben einen anfordern — Artefakte erscheinen hier mit ihrem Status.";
1910
+ };
1911
+ };
1912
+ readonly reports: {
1913
+ readonly title: "Geplante Berichte";
1914
+ readonly subtitle: "Wiederkehrende Daten-Schnappschüsse einer Seite, zugestellt als In-App-Benachrichtigungen.";
1915
+ readonly new: "Neuer Bericht";
1916
+ readonly loadFailed: "Geplante Berichte konnten nicht geladen werden.";
1917
+ readonly saveFailed: "Dieser Bericht konnte nicht gespeichert werden.";
1918
+ readonly nextRun: "Nächste Ausführung";
1919
+ readonly emptyTitle: "Noch keine geplanten Berichte";
1920
+ readonly emptyBody: "Erstellen Sie einen, um wiederkehrende Daten-Schnappschüsse einer Tabellenseite zu erhalten.";
1921
+ readonly createTitle: "Neuer geplanter Bericht";
1922
+ readonly editTitle: "Geplanten Bericht bearbeiten";
1923
+ readonly nameLabel: "Name";
1924
+ readonly namePlaceholder: "z. B. Wöchentlicher Umsatz";
1925
+ readonly pageLabel: "Seite";
1926
+ readonly pagePlaceholder: "Seite wählen…";
1927
+ readonly frequencyLabel: "Häufigkeit";
1928
+ readonly frequency: {
1929
+ readonly daily: "Täglich";
1930
+ readonly weekly: "Wöchentlich";
1931
+ readonly monthly: "Monatlich";
1932
+ };
1933
+ readonly dayOfWeekLabel: "Tag";
1934
+ readonly dayOfMonthLabel: "Tag im Monat";
1935
+ readonly timeLabel: "Uhrzeit";
1936
+ readonly timezoneLabel: "Zeitzone";
1937
+ readonly formatLabel: "Zustellung";
1938
+ readonly formatHint: "Daten-Schnappschuss (PDF/PNG-Rendering folgt in einer späteren Version) — jede Ausführung erzeugt einen CSV-Schnappschuss und eine In-App-Benachrichtigung.";
1939
+ readonly recipientsLabel: "Empfänger";
1940
+ readonly recipientsHint: "Wird mit dem Bericht gespeichert. E-Mail-Zustellung folgt in einer späteren Version — Ausführungen benachrichtigen vorerst in der App.";
1941
+ readonly deliveryBadge: "CSV-Schnappschuss";
1942
+ readonly delete: "Löschen";
1943
+ readonly create: "Erstellen";
1944
+ readonly cadence: {
1945
+ readonly daily: "Täglich um {time} ({zone})";
1946
+ readonly weekly: "Wöchentlich · {day} um {time} ({zone})";
1947
+ readonly monthly: "Monatlich · Tag {day} um {time} ({zone})";
1948
+ };
1949
+ };
1950
+ readonly notifications: {
1951
+ readonly channel: {
1952
+ readonly inApp: "In der App";
1953
+ readonly email: "E-Mail";
1954
+ readonly push: "Push";
1955
+ };
1956
+ readonly event: {
1957
+ readonly reportReady: "Geplanter Bericht fertig";
1958
+ readonly reportFailed: "Geplanter Bericht fehlgeschlagen";
1959
+ readonly backupCompleted: "Sicherung abgeschlossen";
1960
+ };
1961
+ };
1962
+ };
1963
+ export default _default;
1964
+ //# sourceMappingURL=common.d.ts.map