@adminiumjs/i18n 0.2.2-rc.0 → 0.2.3

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 (229) hide show
  1. package/dist/a11y-keys.d.ts +1 -1
  2. package/dist/a11y-keys.d.ts.map +1 -1
  3. package/dist/a11y-keys.js +481 -172
  4. package/dist/a11y-keys.js.map +1 -1
  5. package/dist/create-i18n.d.ts +16 -6
  6. package/dist/create-i18n.d.ts.map +1 -1
  7. package/dist/create-i18n.js +23 -9
  8. package/dist/create-i18n.js.map +1 -1
  9. package/dist/editing.d.ts +1 -1
  10. package/dist/editing.js +1 -1
  11. package/dist/index.d.ts +2 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +19 -8
  14. package/dist/index.js.map +1 -1
  15. package/dist/keys.d.ts +6 -4
  16. package/dist/keys.d.ts.map +1 -1
  17. package/dist/keys.js +6 -4
  18. package/dist/keys.js.map +1 -1
  19. package/dist/overrides.d.ts +1 -1
  20. package/dist/overrides.d.ts.map +1 -1
  21. package/dist/resources/ar-eg/common.d.ts +96 -970
  22. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  23. package/dist/resources/ar-eg/common.js +99 -973
  24. package/dist/resources/ar-eg/common.js.map +1 -1
  25. package/dist/resources/ar-eg/errors.d.ts +3 -2
  26. package/dist/resources/ar-eg/errors.d.ts.map +1 -1
  27. package/dist/resources/ar-eg/errors.js +3 -2
  28. package/dist/resources/ar-eg/errors.js.map +1 -1
  29. package/dist/resources/ar-eg/generated.d.ts +3 -2
  30. package/dist/resources/ar-eg/generated.d.ts.map +1 -1
  31. package/dist/resources/ar-eg/generated.js +3 -2
  32. package/dist/resources/ar-eg/generated.js.map +1 -1
  33. package/dist/resources/ar-eg/studio.d.ts +1282 -2
  34. package/dist/resources/ar-eg/studio.d.ts.map +1 -1
  35. package/dist/resources/ar-eg/studio.js +1282 -2
  36. package/dist/resources/ar-eg/studio.js.map +1 -1
  37. package/dist/resources/ar-eg/ui.d.ts +60 -2
  38. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  39. package/dist/resources/ar-eg/ui.js +72 -14
  40. package/dist/resources/ar-eg/ui.js.map +1 -1
  41. package/dist/resources/cs-cz/common.d.ts +96 -970
  42. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  43. package/dist/resources/cs-cz/common.js +99 -973
  44. package/dist/resources/cs-cz/common.js.map +1 -1
  45. package/dist/resources/cs-cz/errors.d.ts +3 -2
  46. package/dist/resources/cs-cz/errors.d.ts.map +1 -1
  47. package/dist/resources/cs-cz/errors.js +3 -2
  48. package/dist/resources/cs-cz/errors.js.map +1 -1
  49. package/dist/resources/cs-cz/generated.d.ts +3 -2
  50. package/dist/resources/cs-cz/generated.d.ts.map +1 -1
  51. package/dist/resources/cs-cz/generated.js +3 -2
  52. package/dist/resources/cs-cz/generated.js.map +1 -1
  53. package/dist/resources/cs-cz/studio.d.ts +1282 -2
  54. package/dist/resources/cs-cz/studio.d.ts.map +1 -1
  55. package/dist/resources/cs-cz/studio.js +1282 -2
  56. package/dist/resources/cs-cz/studio.js.map +1 -1
  57. package/dist/resources/cs-cz/ui.d.ts +60 -2
  58. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  59. package/dist/resources/cs-cz/ui.js +72 -14
  60. package/dist/resources/cs-cz/ui.js.map +1 -1
  61. package/dist/resources/da-dk/common.d.ts +96 -970
  62. package/dist/resources/da-dk/common.d.ts.map +1 -1
  63. package/dist/resources/da-dk/common.js +99 -973
  64. package/dist/resources/da-dk/common.js.map +1 -1
  65. package/dist/resources/da-dk/errors.d.ts +3 -2
  66. package/dist/resources/da-dk/errors.d.ts.map +1 -1
  67. package/dist/resources/da-dk/errors.js +3 -2
  68. package/dist/resources/da-dk/errors.js.map +1 -1
  69. package/dist/resources/da-dk/generated.d.ts +3 -2
  70. package/dist/resources/da-dk/generated.d.ts.map +1 -1
  71. package/dist/resources/da-dk/generated.js +3 -2
  72. package/dist/resources/da-dk/generated.js.map +1 -1
  73. package/dist/resources/da-dk/studio.d.ts +1282 -2
  74. package/dist/resources/da-dk/studio.d.ts.map +1 -1
  75. package/dist/resources/da-dk/studio.js +1282 -2
  76. package/dist/resources/da-dk/studio.js.map +1 -1
  77. package/dist/resources/da-dk/ui.d.ts +60 -2
  78. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  79. package/dist/resources/da-dk/ui.js +72 -14
  80. package/dist/resources/da-dk/ui.js.map +1 -1
  81. package/dist/resources/de-de/common.d.ts +96 -970
  82. package/dist/resources/de-de/common.d.ts.map +1 -1
  83. package/dist/resources/de-de/common.js +99 -973
  84. package/dist/resources/de-de/common.js.map +1 -1
  85. package/dist/resources/de-de/errors.d.ts +3 -2
  86. package/dist/resources/de-de/errors.d.ts.map +1 -1
  87. package/dist/resources/de-de/errors.js +3 -2
  88. package/dist/resources/de-de/errors.js.map +1 -1
  89. package/dist/resources/de-de/generated.d.ts +3 -2
  90. package/dist/resources/de-de/generated.d.ts.map +1 -1
  91. package/dist/resources/de-de/generated.js +3 -2
  92. package/dist/resources/de-de/generated.js.map +1 -1
  93. package/dist/resources/de-de/studio.d.ts +1282 -2
  94. package/dist/resources/de-de/studio.d.ts.map +1 -1
  95. package/dist/resources/de-de/studio.js +1282 -2
  96. package/dist/resources/de-de/studio.js.map +1 -1
  97. package/dist/resources/de-de/ui.d.ts +60 -2
  98. package/dist/resources/de-de/ui.d.ts.map +1 -1
  99. package/dist/resources/de-de/ui.js +72 -14
  100. package/dist/resources/de-de/ui.js.map +1 -1
  101. package/dist/resources/eager.d.ts +3 -0
  102. package/dist/resources/eager.d.ts.map +1 -0
  103. package/dist/resources/eager.js +25 -0
  104. package/dist/resources/eager.js.map +1 -0
  105. package/dist/resources/en-us/common.d.ts +96 -970
  106. package/dist/resources/en-us/common.d.ts.map +1 -1
  107. package/dist/resources/en-us/common.js +99 -973
  108. package/dist/resources/en-us/common.js.map +1 -1
  109. package/dist/resources/en-us/errors.d.ts +3 -2
  110. package/dist/resources/en-us/errors.d.ts.map +1 -1
  111. package/dist/resources/en-us/errors.js +3 -2
  112. package/dist/resources/en-us/errors.js.map +1 -1
  113. package/dist/resources/en-us/generated.d.ts +3 -2
  114. package/dist/resources/en-us/generated.d.ts.map +1 -1
  115. package/dist/resources/en-us/generated.js +3 -2
  116. package/dist/resources/en-us/generated.js.map +1 -1
  117. package/dist/resources/en-us/studio.d.ts +1282 -2
  118. package/dist/resources/en-us/studio.d.ts.map +1 -1
  119. package/dist/resources/en-us/studio.js +1282 -2
  120. package/dist/resources/en-us/studio.js.map +1 -1
  121. package/dist/resources/en-us/ui.d.ts +60 -2
  122. package/dist/resources/en-us/ui.d.ts.map +1 -1
  123. package/dist/resources/en-us/ui.js +72 -14
  124. package/dist/resources/en-us/ui.js.map +1 -1
  125. package/dist/resources/fr-fr/common.d.ts +96 -970
  126. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  127. package/dist/resources/fr-fr/common.js +99 -973
  128. package/dist/resources/fr-fr/common.js.map +1 -1
  129. package/dist/resources/fr-fr/errors.d.ts +3 -2
  130. package/dist/resources/fr-fr/errors.d.ts.map +1 -1
  131. package/dist/resources/fr-fr/errors.js +3 -2
  132. package/dist/resources/fr-fr/errors.js.map +1 -1
  133. package/dist/resources/fr-fr/generated.d.ts +3 -2
  134. package/dist/resources/fr-fr/generated.d.ts.map +1 -1
  135. package/dist/resources/fr-fr/generated.js +3 -2
  136. package/dist/resources/fr-fr/generated.js.map +1 -1
  137. package/dist/resources/fr-fr/studio.d.ts +1282 -2
  138. package/dist/resources/fr-fr/studio.d.ts.map +1 -1
  139. package/dist/resources/fr-fr/studio.js +1282 -2
  140. package/dist/resources/fr-fr/studio.js.map +1 -1
  141. package/dist/resources/fr-fr/ui.d.ts +60 -2
  142. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  143. package/dist/resources/fr-fr/ui.js +72 -14
  144. package/dist/resources/fr-fr/ui.js.map +1 -1
  145. package/dist/resources/index.d.ts +3 -6
  146. package/dist/resources/index.d.ts.map +1 -1
  147. package/dist/resources/index.js +15 -14
  148. package/dist/resources/index.js.map +1 -1
  149. package/dist/resources/lazy.d.ts +19 -9
  150. package/dist/resources/lazy.d.ts.map +1 -1
  151. package/dist/resources/lazy.js +4 -2
  152. package/dist/resources/lazy.js.map +1 -1
  153. package/dist/resources/namespaces.d.ts +43 -0
  154. package/dist/resources/namespaces.d.ts.map +1 -0
  155. package/dist/resources/namespaces.js +37 -0
  156. package/dist/resources/namespaces.js.map +1 -0
  157. package/dist/resources/zh-cn/common.d.ts +96 -970
  158. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  159. package/dist/resources/zh-cn/common.js +99 -973
  160. package/dist/resources/zh-cn/common.js.map +1 -1
  161. package/dist/resources/zh-cn/errors.d.ts +3 -2
  162. package/dist/resources/zh-cn/errors.d.ts.map +1 -1
  163. package/dist/resources/zh-cn/errors.js +3 -2
  164. package/dist/resources/zh-cn/errors.js.map +1 -1
  165. package/dist/resources/zh-cn/generated.d.ts +3 -2
  166. package/dist/resources/zh-cn/generated.d.ts.map +1 -1
  167. package/dist/resources/zh-cn/generated.js +3 -2
  168. package/dist/resources/zh-cn/generated.js.map +1 -1
  169. package/dist/resources/zh-cn/studio.d.ts +1282 -2
  170. package/dist/resources/zh-cn/studio.d.ts.map +1 -1
  171. package/dist/resources/zh-cn/studio.js +1282 -2
  172. package/dist/resources/zh-cn/studio.js.map +1 -1
  173. package/dist/resources/zh-cn/ui.d.ts +60 -2
  174. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  175. package/dist/resources/zh-cn/ui.js +72 -14
  176. package/dist/resources/zh-cn/ui.js.map +1 -1
  177. package/dist/resources/zh-tw/common.d.ts +96 -970
  178. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  179. package/dist/resources/zh-tw/common.js +99 -973
  180. package/dist/resources/zh-tw/common.js.map +1 -1
  181. package/dist/resources/zh-tw/errors.d.ts +3 -2
  182. package/dist/resources/zh-tw/errors.d.ts.map +1 -1
  183. package/dist/resources/zh-tw/errors.js +3 -2
  184. package/dist/resources/zh-tw/errors.js.map +1 -1
  185. package/dist/resources/zh-tw/generated.d.ts +3 -2
  186. package/dist/resources/zh-tw/generated.d.ts.map +1 -1
  187. package/dist/resources/zh-tw/generated.js +3 -2
  188. package/dist/resources/zh-tw/generated.js.map +1 -1
  189. package/dist/resources/zh-tw/studio.d.ts +1282 -2
  190. package/dist/resources/zh-tw/studio.d.ts.map +1 -1
  191. package/dist/resources/zh-tw/studio.js +1282 -2
  192. package/dist/resources/zh-tw/studio.js.map +1 -1
  193. package/dist/resources/zh-tw/ui.d.ts +60 -2
  194. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  195. package/dist/resources/zh-tw/ui.js +72 -14
  196. package/dist/resources/zh-tw/ui.js.map +1 -1
  197. package/dist/review-status.js +7 -7
  198. package/locales/ar-EG/.meta.json +3783 -2339
  199. package/locales/ar-EG/common.json +96 -971
  200. package/locales/ar-EG/studio.json +1279 -0
  201. package/locales/ar-EG/ui.json +69 -12
  202. package/locales/cs-CZ/.meta.json +3849 -2405
  203. package/locales/cs-CZ/common.json +96 -971
  204. package/locales/cs-CZ/studio.json +1279 -0
  205. package/locales/cs-CZ/ui.json +69 -12
  206. package/locales/da-DK/.meta.json +3935 -2491
  207. package/locales/da-DK/common.json +96 -971
  208. package/locales/da-DK/studio.json +1279 -0
  209. package/locales/da-DK/ui.json +69 -12
  210. package/locales/de-DE/.meta.json +3895 -2451
  211. package/locales/de-DE/common.json +96 -971
  212. package/locales/de-DE/studio.json +1279 -0
  213. package/locales/de-DE/ui.json +69 -12
  214. package/locales/en-US/common.json +96 -971
  215. package/locales/en-US/studio.json +1279 -0
  216. package/locales/en-US/ui.json +69 -12
  217. package/locales/fr-FR/.meta.json +3964 -2520
  218. package/locales/fr-FR/common.json +96 -971
  219. package/locales/fr-FR/studio.json +1279 -0
  220. package/locales/fr-FR/ui.json +69 -12
  221. package/locales/zh-CN/.meta.json +3781 -2337
  222. package/locales/zh-CN/common.json +96 -971
  223. package/locales/zh-CN/studio.json +1279 -0
  224. package/locales/zh-CN/ui.json +69 -12
  225. package/locales/zh-TW/.meta.json +3785 -2341
  226. package/locales/zh-TW/common.json +96 -971
  227. package/locales/zh-TW/studio.json +1279 -0
  228. package/locales/zh-TW/ui.json +69 -12
  229. package/package.json +1 -1
@@ -2,8 +2,9 @@
2
2
  /**
3
3
  * GENERATED MIRROR of ../../../locales/de-DE/common.json — do not edit by hand.
4
4
  * The JSON file is the canonical hand-authored bundle (10-i18n-theming.md §3.1);
5
- * this TS mirror exists so the runtime bundles en-US resources (and chunk-splits
6
- * the other locales) without JSON import attributes (browser + NodeNext safe).
5
+ * this TS mirror exists so the runtime can bundle a namespace (en-US's eager
6
+ * ones) or chunk-split it (every other locale, and en-US's deferred `studio`)
7
+ * without JSON import attributes (browser + NodeNext safe).
7
8
  * Parity is enforced by src/resources/parity.test.ts. Regenerate with
8
9
  * scripts/gen-resources.mjs.
9
10
  */
@@ -23,6 +24,7 @@ export default {
23
24
  },
24
25
  "auth": {
25
26
  "headline": "Machen Sie aus jeder Datenbank ein Dashboard.",
27
+ "description": "Verbinden Sie PostgreSQL, und Adminium erzeugt eine gestaltbare, rechtebewusste Admin-App — ganz ohne Code.",
26
28
  "trust": "AGPL-Kern · Selbst gehostet · Ihre Daten bleiben Ihre",
27
29
  "signIn": {
28
30
  "title": "Willkommen zurück",
@@ -113,6 +115,11 @@ export default {
113
115
  "audit": "Audit-Log",
114
116
  "security": "Passwort & Sitzungen"
115
117
  },
118
+ "apps": {
119
+ "frame": {
120
+ "noFrames": "Diese App benötigt einen Browser, der Frames unterstützt."
121
+ }
122
+ },
116
123
  "topbar": {
117
124
  "search": "Suchen…",
118
125
  "notifications": "Benachrichtigungen",
@@ -124,6 +131,8 @@ export default {
124
131
  "profile": "Profil",
125
132
  "preferences": "Einstellungen",
126
133
  "studio": "Studio",
134
+ "dataConnections": "Datenverbindungen",
135
+ "workspaceSettings": "Workspace-Einstellungen",
127
136
  "signOut": "Abmelden"
128
137
  },
129
138
  "palette": {
@@ -240,10 +249,16 @@ export default {
240
249
  "body": "Dieser Workspace wurde von einer Administratorin oder einem Administrator gesperrt. Ihre Daten bleiben erhalten — wenden Sie sich an die Inhaberin oder den Inhaber des Workspace, um den Zugriff wiederherzustellen.",
241
250
  "primary": "Inhaber kontaktieren",
242
251
  "secondary": "Zurück"
252
+ },
253
+ "connectionPaused": {
254
+ "title": "Diese Verbindung ist pausiert",
255
+ "body": "Ein Administrator hat die Datenbank hinter dieser Seite pausiert, deshalb werden gerade keine Daten geladen. Es wurde nichts gelöscht – alles ist wieder da, sobald die Verbindung unter Studio → Datenverbindungen fortgesetzt wird.",
256
+ "secondary": "Zurück"
243
257
  }
244
258
  },
245
259
  "notFound": {
246
260
  "title": "Diese Seite ist verschwunden",
261
+ "body": "Die gesuchte Seite existiert nicht oder wurde verschoben. Prüfen Sie die URL oder kehren Sie zu Ihrem Dashboard zurück.",
247
262
  "errorLine": "Fehler 404",
248
263
  "searchPlaceholder": "Nach einer Seite suchen…",
249
264
  "matches": "Passende Seiten",
@@ -261,10 +276,12 @@ export default {
261
276
  "title": "Diese Seite konnte nicht dargestellt werden"
262
277
  },
263
278
  "tooNew": {
264
- "title": "Diese Seite benötigt ein neueres Adminium"
279
+ "title": "Diese Seite benötigt ein neueres Adminium",
280
+ "body": "Diese Seite wurde mit Konfigurationsversion {version} gespeichert, dieser Build versteht aber höchstens Version {latest}. Aktualisieren Sie Adminium, um sie zu öffnen."
265
281
  },
266
282
  "unknownTemplate": {
267
- "title": "Unbekannte Seitenvorlage"
283
+ "title": "Unbekannte Seitenvorlage",
284
+ "body": "Diese Seite verwendet eine Vorlage, die dieser Build nicht kennt. Sie stammt womöglich aus einem neueren Adminium oder aus einer nicht installierten Erweiterung."
268
285
  }
269
286
  },
270
287
  "mutation": {
@@ -316,6 +333,20 @@ export default {
316
333
  "twoFactor": "Zwei-Faktor",
317
334
  "on": "Aktiviert",
318
335
  "off": "Aus",
336
+ "nameRequired": "Geben Sie Ihren Namen ein.",
337
+ "emailHelper": "Dient zur Anmeldung. Für eine Änderung ist Ihr Passwort erforderlich.",
338
+ "confirmPassword": "Aktuelles Passwort",
339
+ "confirmPasswordHelper": "Bestätigen Sie, dass Sie es sind, bevor sich Ihre Anmeldeadresse ändert.",
340
+ "save": "Änderungen speichern",
341
+ "saveFailed": "Ihr Profil konnte nicht gespeichert werden",
342
+ "saved": "Profil aktualisiert",
343
+ "savedBody": "Ihre neuen Angaben gelten ab sofort im gesamten Workspace. Wenn Sie Ihre E-Mail-Adresse geändert haben, melden Sie sich künftig mit der neuen Adresse an.",
344
+ "accessTitle": "Zugriff",
345
+ "accessSubtitle": "Was dieses Konto darf und wie es seine Identität nachweist.",
346
+ "rolesHelper": "Rollen werden von einer Administratorin oder einem Administrator vergeben und lassen sich nicht im eigenen Konto ändern.",
347
+ "manageTwoFactor": "Verwalten",
348
+ "setUpTwoFactor": "Einrichten",
349
+ "securityLink": "Passwort & Sitzungen",
319
350
  "preferences": {
320
351
  "title": "Einstellungen",
321
352
  "subtitle": "Wie Adminium für Sie aussieht und sich liest — auf diesem und jedem anderen Gerät, an dem Sie sich anmelden.",
@@ -353,816 +384,70 @@ export default {
353
384
  "emptyTitle": "Noch nichts zu konfigurieren",
354
385
  "emptyBody": "Benachrichtigungsereignisse erscheinen hier, sobald ihre Produzenten ausgeliefert werden.",
355
386
  "saveFailed": "Diese Änderung konnte nicht gespeichert werden."
356
- }
357
- },
358
- "studio": {
359
- "source": {
360
- "engine": {
361
- "label": "Datenbank-Engine",
362
- "postgres": "PostgreSQL",
363
- "mysql": "MySQL / MariaDB",
364
- "sqlite": "SQLite"
365
- },
366
- "format": {
367
- "label": "Schemaformat",
368
- "helper": "Bei automatischer Erkennung belassen, sofern sie nicht danebenliegt.",
369
- "auto": "Automatisch erkennen",
370
- "sql": "SQL-DDL / pg_dump",
371
- "prisma": "Prisma-Schema",
372
- "drizzle": "Drizzle ORM",
373
- "typeorm": "TypeORM-Entitäten",
374
- "sequelize": "Sequelize-Modelle",
375
- "rails": "Rails schema.rb",
376
- "django": "Django models.py",
377
- "json": "Adminium-JSON"
378
- },
379
- "sqlite": {
380
- "file": "Pfad zur Datenbankdatei",
381
- "helper": "SQLite ist eine Datei, kein Server — geben Sie den absoluten Pfad auf der Maschine an, auf der Adminium läuft."
382
- },
383
- "file": {
384
- "detectedAs": "Erkannt: {format}",
385
- "moreWarnings": "+{count} weitere Warnungen — die vollständige Liste erscheint im Analyse-Schritt.",
386
- "dropTitle": "Schemadatei hier ablegen oder durchsuchen",
387
- "dropHint": "SQL DDL / pg_dump, Prisma, Drizzle, TypeORM, Sequelize, Rails schema.rb, Django-Modelle, Adminium JSON",
388
- "pitch": "Keine Datenbankverbindung nötig — wir parsen Ihre Schemadatei und bauen dieselben Dashboards.",
389
- "parsing": "Hochgeladene Schemadatei wird gelesen…",
390
- "tables": "Tabellen",
391
- "columns": "Spalten",
392
- "warnings": "Warnungen",
393
- "errorTitle": "Datei konnte nicht geparst werden",
394
- "parseFailed": "Diese Datei konnte nicht geparst werden. Falls die automatische Erkennung falsch lag, wählen Sie das Format explizit und versuchen Sie es erneut.",
395
- "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.",
396
- "requestFailed": "Upload fehlgeschlagen — prüfen Sie Ihre Verbindung und versuchen Sie es erneut."
397
- },
398
- "title": "Verbinden Sie Ihre Datenbank",
399
- "subtitle": "Richten Sie Adminium auf eine Datenbank — wir generieren aus ihrem Schema ein Admin-Dashboard.",
400
- "name": "Verbindungsname",
401
- "namePlaceholder": "Produktions-Postgres",
402
- "modeLabel": "Eingabemodus der Quelle",
403
- "mode": {
404
- "dsn": "Verbindungszeichenfolge",
405
- "fields": "Einzelne Felder",
406
- "file": "Schemadatei"
407
- },
408
- "dsn": {
409
- "label": "Verbindungszeichenfolge",
410
- "helper": "postgres://benutzer:passwort@host:5432/datenbank — mysql:// und sqlite: funktionieren ebenfalls.",
411
- "incomplete": "Host und Datenbank ergänzen, z. B. postgres://user@host:5432/db",
412
- "invalidScheme": "Unbekanntes Schema — erwartet werden postgres://, mysql://, mariadb:// oder sqlite:",
413
- "quickFill": "Schnellausfüllen:"
414
- },
415
- "fields": {
416
- "host": "Host",
417
- "port": "Port",
418
- "database": "Datenbank",
419
- "user": "Benutzer",
420
- "password": "Passwort",
421
- "ssl": "SSL-Modus",
422
- "preview": "Vorschau der Verbindungszeichenfolge:"
423
- },
424
- "readOnlyRole": {
425
- "title": "Verwenden Sie eine schreibgeschützte Rolle",
426
- "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."
427
- }
428
- },
429
- "capability": {
430
- "mysqlApproxRows": "MySQL-Zeilenzahlen sind Schätzungen der Storage-Engine (Abweichungen bis ±40 % möglich) — sie werden mit ≈ angezeigt.",
431
- "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+.",
432
- "sqliteCheckEnums": "SQLite hat keinen nativen Enum-Typ — Enums werden aus CHECK-(col IN (…))-Constraints abgeleitet.",
433
- "sqliteNoComments": "SQLite kennt keine Spaltenkommentare — verwenden Sie den Schema-Remap-Editor, um Beschriftungen zu vergeben.",
434
- "importNoRowCounts": "Schemadateien enthalten keine Zeilenzahlen — die Tabellenliste zeigt — statt erfundener Werte.",
435
- "importNoLiveHealth": "Keine Live-Datenbankverbindung — Health-Checks und Schema-Drift-Erkennung sind für diese Quelle nicht verfügbar.",
436
- "rowsUnavailable": "Schemadateien haben keine Live-Datenbank — Zeilenzahlen sind unbekannt, bis Sie eine verbinden.",
437
- "rowsRunAnalyze": "Noch keine Schätzung — führen Sie ANALYZE auf der Datenbank aus, um Zeilenzahlen zu erhalten.",
438
- "rowsNoEstimate": "Die Engine hat für diese Tabelle keine Schätzung gemeldet.",
439
- "rowsApproximate": "Schätzung der Storage-Engine — kann bei InnoDB um bis zu ±40 % abweichen."
440
- },
441
- "test": {
442
- "log": {
443
- "moreWarnings": "+{count} weitere Parser-Warnungen",
444
- "connecting": "Sichere Verbindung wird aufgebaut…",
445
- "connected": "Verbunden ({latency} ms) · schreibgeschützte Introspektion",
446
- "connectFailed": "Verbindung fehlgeschlagen.",
447
- "readingSchema": "Schema wird gelesen: public",
448
- "readingFile": "Hochgeladene Schemadatei wird gelesen…",
449
- "parsingFile": "{file} wird geparst…",
450
- "detected": "{tables} Tabellen · {columns} Spalten erkannt",
451
- "found": "{tables} Tabellen · {columns} Spalten gefunden",
452
- "mapping": "Spaltentypen → Eingabe-Widgets werden zugeordnet",
453
- "relations": "Beziehungen werden erkannt…",
454
- "piiScan": "Suche nach PII-Spalten…",
455
- "piiDone": "PII-Scan abgeschlossen — {count} Spalten standardmäßig maskiert",
456
- "piiDoneUnknown": "PII-Scan abgeschlossen",
457
- "jobFailed": "Introspektion fehlgeschlagen.",
458
- "networkFailed": "Anfrage fehlgeschlagen — prüfen Sie Ihre Verbindung und versuchen Sie es erneut.",
459
- "ready": "Bereit"
460
- },
461
- "title": "Ihr Schema wird analysiert",
462
- "subtitle": "Tabellen, Spalten und Beziehungen werden introspiziert. Das dauert ein paar Sekunden.",
463
- "trust": "Wir lesen nur Ihr Schema und Ihre Daten. Nichts wird verändert.",
464
- "errorTitle": "Verbindung fehlgeschlagen",
465
- "retry": "Erneut versuchen",
466
- "logLabel": "Introspektionsprotokoll",
467
- "hint": {
468
- "auth": "Authentifizierung fehlgeschlagen — prüfen Sie Benutzername und Passwort in Ihrer DSN.",
469
- "hostUnreachable": "Host nicht erreichbar — prüfen Sie Hostname und Port und dass die Datenbank Verbindungen von dieser Maschine akzeptiert (unsere IPs freigeben).",
470
- "metaPlacement": "Diese Quelle kann Adminiums Meta-Tabellen nicht aufnehmen — fahren Sie mit einer separaten Meta-Datenbank fort.",
471
- "permission": "Die Rolle hat sich verbunden, darf das Schema aber nicht lesen — erteilen Sie Ihrer Introspektionsrolle USAGE auf dem Schema.",
472
- "timeout": "Die Datenbank hat nicht rechtzeitig geantwortet — prüfen Sie Netzwerkpfad und Auslastung und versuchen Sie es erneut.",
473
- "tls": "TLS-Aushandlung fehlgeschlagen — versuchen Sie sslmode=require oder laden Sie das CA-Zertifikat hoch, das Ihr Server erwartet.",
474
- "unknown": "Verbindung fehlgeschlagen — prüfen Sie die DSN und versuchen Sie es erneut."
475
- }
476
387
  },
477
- "tables": {
478
- "importNoCounts": "Schemadateien enthalten keine Zeilenzahlen — die Spalte zeigt —, bis eine Live-Datenbank verbunden ist.",
479
- "title": "Wählen Sie Ihre Tabellen",
480
- "subtitle": "Wählen Sie, welche enthalten sein sollen. Sie können das jederzeit ändern.",
481
- "search": "Tabellen filtern…",
482
- "listLabel": "Einbeziehbare Tabellen",
483
- "emptyFilter": "Keine Tabellen entsprechen Ihrem Filter.",
484
- "pii": "PII",
485
- "highVolume": "hohes Volumen",
486
- "highVolumeNote": "Tabellen mit über 100.000 Zeilen sind anfangs abgewählt — Ops-Tabellen gehören selten in ein Dashboard.",
487
- "joinHidden": "{count} Join-/Systemtabellen sind vorab ausgeblendet — sie treiben weiterhin m:n-Beziehungen an."
488
- },
489
- "hub": {
490
- "title": "Datenverbindungen",
491
- "subtitle": "{healthy, number} von {total, plural, one {# Verbindung} other {# Verbindungen}} fehlerfrei",
492
- "connectNew": "Neue Verbindung",
493
- "stats": {
494
- "connections": "Verbindungen",
495
- "healthy": "Fehlerfrei",
496
- "tables": "Einbezogene Tabellen",
497
- "pages": "Generierte Seiten"
498
- },
499
- "status": {
500
- "connected": "Verbunden",
501
- "error": "Fehler",
502
- "unconfigured": "Entwurf",
503
- "testing": "Wird getestet…"
504
- },
505
- "card": {
506
- "readOnly": "Schreibgeschützt",
507
- "tables": "Tabellen",
508
- "pages": "Seiten",
509
- "latency": "Latenz",
510
- "latencyMs": "{latency, number} ms",
511
- "lastIntrospected": "Zuletzt introspiziert",
512
- "never": "Nie"
513
- },
514
- "action": {
515
- "test": "Testen",
516
- "reintrospect": "Neu introspizieren",
517
- "reintrospectFile": "Schemadatei-Quellen haben keine Live-Datenbank — laden Sie stattdessen die Datei erneut hoch.",
518
- "remap": "Schema neu zuordnen",
519
- "delete": "Löschen"
520
- },
521
- "test": {
522
- "ok": "Verbindung fehlerfrei · {latency, number} ms",
523
- "failed": "Verbindungstest fehlgeschlagen"
524
- },
525
- "introspect": {
526
- "noChanges": "Schema unverändert — kein neuer Snapshot.",
527
- "updated": "Schema neu introspiziert",
528
- "masksProposed": "{count, plural, one {# Spalte} other {# Spalten}} zur Maskierung vorgeschlagen — im Remap-Editor prüfen.",
529
- "failed": "Introspektion fehlgeschlagen. Versuchen Sie es erneut."
530
- },
531
- "delete": {
532
- "title": "Verbindung löschen",
533
- "body": "Dies löscht „{name}“ und die daraus generierten Seiten. Ihre Datenbank selbst bleibt unangetastet.",
534
- "prompt": "Geben Sie {name} zur Bestätigung ein",
535
- "confirm": "Verbindung löschen",
536
- "cancel": "Abbrechen",
537
- "close": "Schließen",
538
- "success": "Verbindung „{name}“ gelöscht",
539
- "failed": "Die Verbindung konnte nicht gelöscht werden. Versuchen Sie es erneut."
540
- },
541
- "empty": {
542
- "title": "Noch keine Datenquellen",
543
- "body": "Verbinden Sie eine Datenbank — Adminium generiert Ihr Admin-Panel aus deren Schema.",
544
- "cta": "Datenbank verbinden"
545
- }
546
- },
547
- "settingsHub": {
548
- "title": "Workspace-Einstellungen",
549
- "subtitle": "Identität, Sicherheit und destruktive Aktionen für diesen Workspace.",
550
- "save": "Änderungen speichern",
551
- "saved": "Workspace-Einstellungen aktualisiert",
552
- "saveFailed": "Die Workspace-Einstellungen konnten nicht gespeichert werden. Versuchen Sie es erneut.",
553
- "superAdminOnlyTitle": "Super-Admin erforderlich",
554
- "superAdminOnly": "Nur ein Super-Admin kann Identität und Sicherheitseinstellungen des Workspace ändern.",
555
- "identity": {
556
- "heading": "Workspace-Identität",
557
- "appName": {
558
- "label": "Anwendungsname",
559
- "helper": "Erscheint in der Seitenleiste, im Browser-Titel und in E-Mails.",
560
- "error": "Geben Sie einen Namen mit höchstens 60 Zeichen ein."
561
- },
562
- "logo": {
563
- "label": "Logo",
564
- "drop": "Bild hierher ziehen",
565
- "helper": "PNG, JPEG, WebP, GIF oder SVG bis 1 MB. Ersetzt die eingebaute Marke überall.",
566
- "upload": "Logo hochladen",
567
- "replace": "Logo ersetzen",
568
- "remove": "Entfernen",
569
- "uploaded": "Logo aktualisiert",
570
- "removed": "Logo entfernt",
571
- "tooLarge": "Dieses Bild ist größer als 1 MB.",
572
- "badType": "Wählen Sie ein PNG-, JPEG-, WebP-, GIF- oder SVG-Bild.",
573
- "undo": "Rückgängig"
574
- },
575
- "showVersion": {
576
- "label": "Version in der Seitenleiste",
577
- "helper": "Die Build-Nummer neben dem Logo. Aus verbirgt, welche Version Sie einsetzen."
578
- }
579
- },
580
- "security": {
581
- "heading": "Sicherheit",
582
- "require2fa": {
583
- "label": "Zwei-Faktor-Authentifizierung verlangen",
584
- "desc": "Jedes Mitglied muss 2FA aktivieren, um sich anzumelden."
585
- },
586
- "allowSignup": {
587
- "label": "Selbstregistrierung erlauben",
588
- "desc": "Jeder kann ein Konto erstellen — deaktiviert bleibt der Workspace nur per Einladung zugänglich."
589
- },
590
- "sessionTtl": {
591
- "label": "Sitzungsdauer (Stunden)",
592
- "error": "Zwischen {min, number} und {max, number} Stunden."
593
- },
594
- "passwordMin": {
595
- "label": "Minimale Passwortlänge",
596
- "error": "Zwischen {min, number} und {max, number} Zeichen."
597
- }
598
- },
599
- "review": {
600
- "title": "Workspace-Einstellungen speichern",
601
- "subtitle": "Prüfen Sie Ihre Änderungen vor dem Speichern.",
602
- "confirm": "Änderungen speichern",
603
- "cancel": "Abbrechen",
604
- "close": "Schließen",
605
- "on": "An",
606
- "off": "Aus",
607
- "shown": "Sichtbar",
608
- "hidden": "Verborgen",
609
- "change": "{before} → {after}"
610
- },
611
- "defaultsCard": {
612
- "heading": "Standards für Darstellung & Sprache",
613
- "body": "Workspace-weite Einstellungen für Theme, Akzentfarbe, Dichte und Sprache finden Sie unter „Globale Standards“.",
614
- "cta": "Globale Standards öffnen"
615
- },
616
- "danger": {
617
- "heading": "Gefahrenzone",
618
- "subtitle": "Unumkehrbare Aktionen.",
619
- "empty": "Nichts zu löschen — noch keine Verbindungen.",
620
- "deleteDesc": "Löscht die Verbindung und die daraus generierten Seiten. Ihre Datenbank bleibt unangetastet. Kann nicht rückgängig gemacht werden.",
621
- "deleteCta": "Verbindung löschen"
622
- },
623
- "aiCard": {
624
- "heading": "KI-Anreicherung",
625
- "body": "Konfigurieren Sie einen KI-Anbieter (oder den Kopieren-Einfügen-Umlauf), um Bezeichnungen, Gruppen und Beziehungen anzureichern.",
626
- "cta": "KI-Einstellungen öffnen"
627
- },
628
- "pagesCard": {
629
- "heading": "Seiten",
630
- "body": "Seiten hinzufügen, bearbeiten und löschen, ihre Inhalte ändern und die Seitenleiste neu ordnen.",
631
- "cta": "Seiten verwalten"
632
- }
633
- },
634
- "settingsAi": {
635
- "title": "KI-Anreicherung",
636
- "subtitle": "Verbinden Sie ein Modell, damit Adminium Bezeichnungen, Gruppen, Beziehungen und mehr vorschlägt — immer als Diff geprüft, bevor etwas übernommen wird.",
637
- "saved": "KI-Anbieter gespeichert",
638
- "saveFailed": "Der KI-Anbieter konnte nicht gespeichert werden. Erneut versuchen.",
639
- "save": "Anbieter speichern",
640
- "test": "Verbindung testen",
641
- "testHintDirty": "Speichern Sie Ihre Änderungen vor dem Test.",
642
- "testing": "Anbieter wird angepingt…",
643
- "testError": "Test fehlgeschlagen",
644
- "testErrorBody": "Der Anbieter war nicht erreichbar. Prüfen Sie Schlüssel und Basis-URL.",
645
- "testOk": "Verbunden mit {model} in {latency} ms",
646
- "testUnknownModel": "dem Anbieter",
647
- "provider": {
648
- "heading": "KI-Anbieter",
649
- "subtitle": "Wählen Sie, wie Adminium ein Modell zur Anreicherung Ihres Schemas erreicht. Schlüssel werden verschlüsselt gespeichert und nie wieder angezeigt.",
650
- "active": "Aktiv",
651
- "anthropic": {
652
- "label": "Anthropic",
653
- "desc": "Claude-Modelle über die Anthropic-API."
654
- },
655
- "openai": {
656
- "label": "OpenAI",
657
- "desc": "GPT-Modelle über die OpenAI-API."
658
- },
659
- "openaiCompatible": {
660
- "label": "OpenAI-kompatibel",
661
- "desc": "Jeder Endpunkt, der das OpenAI-Format spricht — Groq, Together, vLLM, LM Studio."
662
- },
663
- "ollama": {
664
- "label": "Ollama (lokal)",
665
- "desc": "Modelle laufen lokal über Ollama — kein Schlüssel, keine Cloud."
666
- },
667
- "requiresNetwork": "Erfordert Internet und einen API-Schlüssel",
668
- "networkDisabledTitle": "Direkte KI-Anbieter sind in dieser Installation deaktiviert",
669
- "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."
670
- },
671
- "configure": {
672
- "heading": "{provider} konfigurieren"
673
- },
674
- "field": {
675
- "baseUrl": "Basis-URL",
676
- "baseUrlOptional": "Unverändert lassen, außer Ollama läuft auf einem anderen Host.",
677
- "baseUrlHelper": "Die Endpunkt-Wurzel, die /chat/completions bereitstellt.",
678
- "model": "Modell",
679
- "modelFreeText": "Geben Sie die genaue Modell-ID ein, die Ihr Endpunkt bereitstellt.",
680
- "modelLive": "Live vom Anbieter geladen.",
681
- "modelStatic": "Eine bewährte Liste; geben Sie nach dem Speichern eine eigene ID ein, um sie zu aktualisieren.",
682
- "modelLoading": "Wird geladen…",
683
- "modelPlaceholder": "Modell auswählen…",
684
- "key": "API-Schlüssel",
685
- "keyStored": "Verschlüsselt gespeichert. Ersetzen Sie ihn, um einen anderen Schlüssel zu verwenden.",
686
- "keyMask": "sk-…{last4}",
687
- "keyReplace": "Schlüssel ersetzen",
688
- "keyOptional": "Optional — manche Endpunkte brauchen keinen Schlüssel.",
689
- "keyWriteOnly": "Nur schreibend: einmal gespeichert, wird er nie wieder angezeigt.",
690
- "noKeyTitle": "Kein API-Schlüssel nötig",
691
- "noKeyBody": "Ollama läuft lokal, es verlässt also nichts diesen Rechner."
692
- },
693
- "runStatus": {
694
- "draft": "Entwurf",
695
- "running": "Läuft",
696
- "awaitingResponse": "Wartet auf Antwort",
697
- "validated": "Validiert",
698
- "applied": "Übernommen",
699
- "partiallyApplied": "Teilweise übernommen",
700
- "failed": "Fehlgeschlagen",
701
- "discarded": "Verworfen"
702
- },
703
- "byo": {
704
- "heading": "Kein Schlüssel? Nutzen Sie Ihr eigenes KI-Tool",
705
- "subtitle": "Der Kopieren-Einfügen-Umlauf — nichts verlässt diesen Rechner.",
706
- "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.",
707
- "guaranteeTitle": "Telemetriefreie Garantie",
708
- "guarantee1": "Der Prompt enthält nur Ihr Schema und aggregierte Statistiken — standardmäßig nie Zeilendaten.",
709
- "guarantee2": "Keine Anmeldedaten, keine Instanz-URL, keine Kennungen sind eingebettet.",
710
- "guarantee3": "BYO-Läufe machen keinerlei Netzwerkaufrufe.",
711
- "promptVersion": "Prompt {version}",
712
- "schemaVersion": "Schema {version}",
713
- "headingRecommended": "Eigenes KI-Tool verwenden — kein Schlüssel nötig",
714
- "recommended": "Empfohlen"
715
- },
716
- "history": {
717
- "heading": "Laufverlauf",
718
- "subtitle": "Frühere Anreicherungsläufe. Öffnen Sie einen, um seine Vorschläge zu prüfen.",
719
- "tableLabel": "Anreicherungsläufe",
720
- "colDate": "Datum",
721
- "colSource": "Quelle",
722
- "colStatus": "Status",
723
- "colChunks": "Blöcke",
724
- "openReview": "Prüfung für den Lauf vom {date} öffnen",
725
- "connection": "Verbindung",
726
- "empty": "Noch keine Anreicherungsläufe. Reichern Sie ein Schema im Verbindungsassistenten an, um hier Verlauf zu sehen.",
727
- "errorTitle": "Läufe konnten nicht geladen werden",
728
- "errorBody": "Laden Sie die Seite neu, um es erneut zu versuchen.",
729
- "noConnections": "Verbinden Sie zuerst eine Datenbank — Anreicherungsläufe werden pro Verbindung erfasst.",
730
- "byo": "BYO",
731
- "directPath": "Direkt"
732
- }
733
- },
734
- "enrich": {
735
- "title": "Mit KI anreichern",
736
- "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.",
737
- "intentLabel": "Wie möchten Sie anreichern?",
738
- "sectionsLegend": "Worüber soll die KI entscheiden?",
739
- "localesLegend": "Bezeichnungen übersetzen in",
740
- "localeLocked": "(erforderlich)",
741
- "samplingTitle": "Beispielwerte einbeziehen",
742
- "samplingHint": "Nimmt bis zu 20 echte Werte pro Nicht-PII-Spalte in den Prompt auf.",
743
- "samplingPreviewTitle": "Was diesen Rechner verlässt",
744
- "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.",
745
- "noSections": "Wählen Sie mindestens eine Entscheidungsgruppe zum Anreichern.",
746
- "generatePrompt": "Prompt erzeugen",
747
- "startProvider": "Anreicherung starten",
748
- "startOver": "Von vorn beginnen",
749
- "copied": "Kopiert",
750
- "createFailed": "Der Anreicherungs-Prompt konnte nicht erstellt werden — erneut versuchen.",
751
- "createFailedTitle": "Konnte nicht starten",
752
- "providerFallback": "Ihr KI-Anbieter",
753
- "fileTitle": "KI-Anreicherung benötigt eine aktive Datenbank",
754
- "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.",
755
- "section": {
756
- "labels": "Bezeichnungen & Beschreibungen",
757
- "groups": "Navigationsgruppen",
758
- "enums": "Enum-Semantik",
759
- "relations": "Beziehungen",
760
- "keys": "Schlüsselspalten",
761
- "templates": "Seitenvorlagen",
762
- "widgets": "Dashboard-Widgets",
763
- "pii": "PII & Maskierung",
764
- "icons": "Symbole",
765
- "microcopy": "Mikrotexte"
766
- },
767
- "provider": {
768
- "title": "Meinen KI-Anbieter verwenden",
769
- "description": "Führen Sie die Anreicherung jetzt mit Ihrem konfigurierten Anbieter aus. Sie prüfen jeden Vorschlag als Diff.",
770
- "unconfigured": "Es ist noch kein KI-Anbieter konfiguriert — kopieren Sie unten einen Prompt in Ihr eigenes Tool, oder konfigurieren Sie zuerst einen Anbieter.",
771
- "settingsHint": "Möchten Sie es direkt ausführen?",
772
- "settingsLink": "Anbieter in Einstellungen → KI konfigurieren",
773
- "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."
774
- },
775
- "byo": {
776
- "cardTitle": "Einen Prompt in mein eigenes KI-Tool kopieren",
777
- "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.",
778
- "guidance": "Führen Sie dies in einem beliebigen KI-Tool aus — Claude Code, ChatGPT, egal. Fügen Sie das zurückgegebene JSON unten ein.",
779
- "promptLabel": "Anreicherungs-Prompt",
780
- "promptLabelN": "Anreicherungs-Prompt {index} von {total}",
781
- "tokenChip": "≈ {tokens} Tokens",
782
- "copyPrompt": "Prompt kopieren",
783
- "copyPromptDone": "Prompt kopiert",
784
- "download": ".md herunterladen",
785
- "chunkTabs": "Prompt-Abschnitte",
786
- "chunkTab": "Prompt {index}",
787
- "chunkValid": "Abschnitt {index} validiert",
788
- "pasteLabel": "JSON-Antwort einfügen",
789
- "pastePlaceholder": "JSON-Antwort hier einfügen…",
790
- "validate": "Validieren",
791
- "valid": "Antwort validiert",
792
- "mergedTitle": "Alle {count} Abschnitte validiert und zusammengeführt",
793
- "mergedTitleSingle": "Antwort validiert",
794
- "mergedBody": "Die Vorschläge können nun gegen die heuristische Grundlage geprüft werden.",
795
- "errorsTitle": "Die Validierung fand {count} Probleme",
796
- "copyErrors": "Fehler für Ihr KI-Tool kopieren",
797
- "copyErrorsDone": "Fehler kopiert",
798
- "copyErrorsHint": "Fügen Sie dies in Ihr KI-Tool zurück ein, um eine korrigierte Antwort zu erhalten.",
799
- "droppedItems": "{count} Vorschläge wurden bei der Validierung verworfen — die Prüfung zeigt die übrigen.",
800
- "pendingTitle": "Validieren Sie jeden Prompt, um fortzufahren",
801
- "pendingBody": "Fügen Sie die JSON-Antwort oben ein und validieren Sie sie, um zur Prüfung fortzufahren.",
802
- "pendingBodyChunked": "Jeder Abschnitt muss validiert werden, bevor die Vorschläge zusammengeführt werden. Fügen Sie jeden Prompt oben ein und validieren Sie ihn.",
803
- "requestFailed": "Der Server war für die Validierung nicht erreichbar — erneut versuchen.",
804
- "continueReview": "Weiter zur Prüfung",
805
- "wholeDocument": "gesamtes Dokument",
806
- "cardTitleRecommended": "Prompt in mein eigenes KI-Tool kopieren — empfohlen"
807
- },
808
- "direct": {
809
- "title": "Anreicherung mit KI",
810
- "subtitle": "Ihr Schema wird gesendet an",
811
- "building": "Prompt wird erstellt…",
812
- "logLabel": "Anreicherungsprotokoll",
813
- "cancel": "Abbrechen",
814
- "back": "Zurück zu den Optionen",
815
- "retry": "Erneut versuchen",
816
- "done": "Anreicherung abgeschlossen — prüfen Sie die Vorschläge.",
817
- "continueReview": "Weiter zur Prüfung",
818
- "failed": "Der Anbieterlauf ist fehlgeschlagen. Prüfen Sie Ihre KI-Einstellungen und versuchen Sie es erneut.",
819
- "jobFailed": "Der Anreicherungslauf wurde nicht abgeschlossen.",
820
- "startFailed": "Der Lauf konnte nicht gestartet werden — erneut versuchen.",
821
- "errorTitle": "Anreicherung fehlgeschlagen"
822
- },
823
- "skip": {
824
- "title": "Überspringen — nur Heuristik verwenden",
825
- "description": "Aus der heuristischen Grundlage generieren. Sie können später über Einstellungen → KI anreichern — Überspringen wird nie bestraft.",
826
- "confirmTitle": "Weiter mit Heuristik",
827
- "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."
828
- }
829
- },
830
- "review": {
831
- "unavailableTitle": "Prüfungsansicht nicht verfügbar",
832
- "unavailableBody": "Dieser Build enthält die Anreicherungs-Prüfungsansicht noch nicht (06-T14). Sie kommt mit dem Diff-und-Übernehmen-Ablauf."
833
- },
834
- "llmRuns": {
835
- "review": {
836
- "header": {
837
- "title": "KI-Vorschläge prüfen",
838
- "model": "Modell",
839
- "snapshot": "Schnappschuss",
840
- "byo": "BYO",
841
- "pathDirect": "Direkte API",
842
- "pathByo": "Kopieren & Einfügen",
843
- "agree": "{n} übereinstimmend",
844
- "conflict": "{n} Konflikt",
845
- "new": "{n} neu",
846
- "rejects": "{n} Ablehnungen",
847
- "countsAria": "Anzahl der Vorschläge"
848
- },
849
- "bulk": {
850
- "thresholdLabel": "Konfidenzschwelle",
851
- "thresholdAria": "Konfidenzschwelle für „Alle übernehmen“",
852
- "acceptAll": "Alle ≥ {pct}% übernehmen",
853
- "clear": "Auswahl aufheben"
854
- },
855
- "section": {
856
- "selectAllAria": "Alle in {group} auswählen",
857
- "acceptedCount": "{n} übernommen"
858
- },
859
- "group": {
860
- "labels": "Bezeichnungen & Übersetzungen",
861
- "navigation": "Navigation & Domänen",
862
- "enums": "Enum-Semantik",
863
- "relations": "Beziehungen",
864
- "keys": "Schlüsselspalten",
865
- "templates": "Seitenvorlagen",
866
- "dashboards": "Dashboards & Widgets",
867
- "pii": "PII & Maskierung",
868
- "icons": "Symbole",
869
- "microcopy": "Mikrotexte"
870
- },
871
- "status": {
872
- "agree": "Stimmt überein",
873
- "conflict": "Konflikt",
874
- "new": "Neu",
875
- "heuristicOnly": "Nur Heuristik",
876
- "rejects": "Lehnt Heuristik ab",
877
- "locked": "Gesperrt"
878
- },
879
- "row": {
880
- "acceptAria": "{noun}-Vorschlag für {target} übernehmen",
881
- "keptEdited": "beibehalten – von Ihnen bearbeitet",
882
- "rejectsCallout": "Die KI lehnt eine heuristische Entscheidung ab – vor dem Übernehmen bestätigen.",
883
- "showTranslations": "Übersetzungen anzeigen",
884
- "hideTranslations": "Übersetzungen ausblenden",
885
- "confidenceAria": "Konfidenz {pct}%",
886
- "noAi": "Kein KI-Vorschlag"
887
- },
888
- "value": {
889
- "none": "Kein Wert",
890
- "absent": "Keiner",
891
- "dash": "—",
892
- "display": "Anzeige",
893
- "key": "Schlüssel",
894
- "rank": "Rang {n}",
895
- "span": "Breite {n}",
896
- "tableCount": "{n} Tabellen",
897
- "widgetCount": "{n} Widgets",
898
- "enumWorkflow": "Workflow",
899
- "enumCategory": "Kategorie",
900
- "notPii": "Keine PII",
901
- "label": "Bezeichnung",
902
- "description": "Beschreibung",
903
- "subtitle": "Seitenuntertitel",
904
- "headline": "Überschrift für leeren Zustand",
905
- "guidance": "Hinweis für leeren Zustand"
906
- },
907
- "apply": {
908
- "title": "{n} Vorschläge übernehmen",
909
- "subtitle": "Diese Änderungen werden in einer Transaktion geschrieben und können rückgängig gemacht werden.",
910
- "empty": "Nichts zum Übernehmen ausgewählt.",
911
- "confirm": "Änderungen übernehmen"
912
- },
913
- "footer": {
914
- "count": "{n} Vorschläge ausgewählt",
915
- "apply": "{n} übernommene Vorschläge anwenden",
916
- "failed": "Anwenden fehlgeschlagen"
917
- },
918
- "toast": {
919
- "applied": "{n} Vorschläge übernommen",
920
- "appliedPartial": "{n} Vorschläge übernommen (einige übersprungen)",
921
- "applyFailed": "Vorschläge konnten nicht übernommen werden",
922
- "undoFailed": "Diese Änderung konnte nicht rückgängig gemacht werden"
923
- },
924
- "error": {
925
- "title": "Dieser Lauf konnte nicht geladen werden"
926
- },
927
- "notReady": {
928
- "title": "Dieser Lauf hat noch keine Vorschläge zur Prüfung",
929
- "body": "Ein Lauf muss validiert sein, bevor seine Vorschläge geprüft werden können. Erzeugen oder fügen Sie zuerst eine Antwort ein."
930
- },
931
- "applied": {
932
- "title": "Dieser Lauf wurde angewendet",
933
- "body": "Die übernommenen Vorschläge unten sind schreibgeschützt."
934
- },
935
- "empty": {
936
- "title": "Keine Vorschläge",
937
- "body": "Dieser Lauf hat keine Vorschläge zur Prüfung erzeugt."
938
- },
939
- "cat": {
940
- "label": "Bezeichnung",
941
- "key": "Schlüsselspalten",
942
- "enum": "Enum",
943
- "relation": "Beziehung",
944
- "pii": "PII",
945
- "template": "Seitenvorlage",
946
- "group": "Navigationsgruppe",
947
- "dashboard": "Dashboard",
948
- "widget": "Widget",
949
- "copy": "Mikrotext"
950
- }
951
- }
952
- },
953
- "wizard": {
954
- "title": "Neue Verbindung",
955
- "back": "Zurück",
956
- "continue": "Weiter",
957
- "progress": "Einrichtungsfortschritt",
958
- "persistFailed": "Ihre Tabellenauswahl konnte nicht gespeichert werden — versuchen Sie es erneut.",
959
- "persistFailedTitle": "Speichern fehlgeschlagen",
960
- "bridgeAppliedTitle": "Verbindungszeichenfolge empfangen",
961
- "bridgeAppliedBody": "Von adminium.dev durch Ihren Browser übergeben — sie ging direkt an diesen Rechner und wurde nie hochgeladen. Prüfen Sie sie unten und fahren Sie fort.",
962
- "bridgeFailedTitle": "Diese Übergabe konnte nicht verwendet werden",
963
- "bridgeFailedBody": "Sie wurde bereits verwendet oder ist abgelaufen. Fügen Sie Ihre Verbindungszeichenfolge stattdessen unten ein.",
964
- "step": {
965
- "source": "Quelle",
966
- "test": "Analysieren",
967
- "tables": "Tabellen",
968
- "meta": "Meta-Speicher",
969
- "intent": "Zweck",
970
- "enrich": "Anreichern",
971
- "generate": "Generieren"
972
- }
973
- },
974
- "meta": {
975
- "title": "Wo soll Adminium seine eigenen Tabellen ablegen?",
976
- "subtitle": "Seiten, Rollen, Audit-Log und Einstellungen liegen in Tabellen mit adminium_-Präfix — nie mit Ihren Daten vermischt.",
977
- "sameDb": {
978
- "title": "Gleiche Datenbank",
979
- "description": "adminium_*-Tabellen werden neben Ihren Quelltabellen angelegt. Einfachste Einrichtung — benötigt eine Rolle mit Schreib- und CREATE-TABLE-Rechten.",
980
- "disabledReadOnly": "Ihre Rolle ist schreibgeschützt — Adminium schreibt nie in diese Datenbank. Wählen Sie für Adminiums eigene Tabellen eine separate Datenbank.",
981
- "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.",
982
- "disabledFile": "Eine Schemadatei hat keine Live-Datenbank — wählen Sie für Adminiums eigene Tabellen eine separate Datenbank."
983
- },
984
- "separate": {
985
- "title": "Separate Datenbank",
986
- "description": "Adminium hält seine Tabellen in einer anderen Datenbank. Ihre Quelle bleibt unangetastet — erforderlich für schreibgeschützte Quellen.",
987
- "dsn": "Verbindungszeichenfolge der Meta-Datenbank",
988
- "helper": "Benötigt Schreib- und DDL-Rechte — Adminium führt dort seine eigenen Migrationen aus.",
989
- "test": "Verbindung testen",
990
- "ok": "Kompatibel — Schreiben ✓ · DDL ✓",
991
- "insufficient": "Diese Rolle kann den Meta-Store nicht aufnehmen — Adminium benötigt dort Schreib- und CREATE-TABLE-Rechte.",
992
- "errorTitle": "Meta-Store nicht kompatibel"
993
- },
994
- "testFailed": "Verbindung fehlgeschlagen.",
995
- "v1Note": {
996
- "title": "Über diese Installation",
997
- "body": "Dieser Server hält seine eigenen Tabellen bereits in einer konfigurierten Datenbank, und dieser Schritt verschiebt sie nicht. Er prüft, ob Ihre Wahl mit dieser Verbindung kompatibel ist — der Server erzwingt dieselbe Regel unabhängig (409 META_PLACEMENT_INVALID)."
998
- },
999
- "move": {
1000
- "title": "Adminiums Tabellen werden verschoben",
1001
- "copying": "Adminiums Tabellen werden verschoben …",
1002
- "restarting": "Neustart …",
1003
- "copyingBody": "Jede adminium_-Tabelle wird in die neue Datenbank kopiert. Ihre Quelldaten bleiben unberührt, und es wird erst umgeschaltet, wenn die Kopie geprüft ist.",
1004
- "restartingBody": "Die Kopie ist fertig. Adminium startet auf der neuen Datenbank neu — diese Seite fährt in wenigen Sekunden von selbst fort.",
1005
- "failed": "Adminiums Tabellen konnten nicht verschoben werden — erneut versuchen.",
1006
- "timeout": "Adminium hat seine Tabellen verschoben, ist aber noch nicht zurück. Ihre Daten liegen sicher in der neuen Datenbank — laden Sie diese Seite gleich neu."
1007
- },
1008
- "willMove": {
1009
- "title": "Dies verschiebt Adminiums Tabellen",
1010
- "body": "Adminium nutzt derzeit seinen integrierten SQLite-Speicher. „Weiter“ kopiert diesen Speicher in die gewählte Datenbank und startet darauf neu — Konten, Seiten und Einstellungen kommen mit, Sie bleiben angemeldet."
1011
- }
1012
- },
1013
- "intent": {
1014
- "title": "Was brauchen Sie?",
1015
- "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.",
1016
- "trust": "Wir lesen nur Ihr Schema — während der Einrichtung nie Ihre Zeilendaten.",
1017
- "fullAdmin": {
1018
- "title": "Vollständiges Admin-Panel",
1019
- "description": "Dashboards, CRUD-Seiten, Suche, Importe und Exporte — alles, was Ihr Schema unterstützt."
1020
- },
1021
- "analytics": {
1022
- "title": "Schreibgeschützte Analysen",
1023
- "description": "Dashboards, Diagramme und schreibgeschützte Tabellen. Keine Formulare, keine Schreibvorgänge — jede Rolle auf Betrachter begrenzt."
1024
- },
1025
- "crud": {
1026
- "title": "CRUD-Tabellen",
1027
- "description": "Eine Bearbeitungsseite pro Tabelle plus Suche und Import/Export — ein minimales Zuhause, keine Dashboards."
1028
- },
1029
- "support": {
1030
- "title": "Support-Konsole",
1031
- "description": "Zuerst Warteschlangen, Ticket- und Kundendetailseiten. Löschen standardmäßig aus. (Queue-Vorlagen kommen mit M7 — der v1-Seitensatz entspricht dem vollständigen Admin.)"
1032
- }
1033
- },
1034
- "generate": {
1035
- "title": "Generieren Sie Ihre App",
1036
- "subtitle": "Eine Seite pro einbezogener Tabelle plus Dashboards je Domäne — Zweck:",
1037
- "run": "Dashboard generieren",
1038
- "openApp": "App öffnen",
1039
- "logLabel": "Generierungsprotokoll",
1040
- "log": {
1041
- "classifying": "Schema wird klassifiziert…",
1042
- "composing": "Vorlagen werden zusammengestellt…",
1043
- "writing": "Seiten werden geschrieben…",
1044
- "done": "{pages} Seiten in {groups} Navigationsgruppen generiert"
1045
- },
1046
- "successTitle": "Ihr Dashboard ist bereit",
1047
- "successBody": "{pages} Seiten in {groups} Navigationsgruppen — aus Ihrem Schema generiert, im Studio bearbeitbar.",
1048
- "errorTitle": "Generierung fehlgeschlagen",
1049
- "failed": "Generierung fehlgeschlagen — versuchen Sie es erneut oder führen Sie zuerst die Introspektion erneut aus.",
1050
- "fileTitle": "Schemadatei geparst — die Generierung benötigt eine Live-Datenbank",
1051
- "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."
1052
- },
1053
- "remap": {
1054
- "column": {
1055
- "nullable": "NULL erlaubt",
1056
- "labelOverride": "Anzeigebezeichnung",
1057
- "labelHelper": "Abgeleitet: {name}",
1058
- "logicalType": "Logischer Typ",
1059
- "logicalTypeHelper": "Abgeleitet: {type} (aus {dbType}) — vom Adapter zugeordnet; in v1 nicht überschreibbar.",
1060
- "semantic": "Semantischer Typ",
1061
- "unclassified": "Noch nicht klassifiziert.",
1062
- "semanticHelper": "Klassifizierer: {tag} · {confidence}% Konfidenz · Quelle: {source}",
1063
- "semanticInferred": "abgeleitet: {tag}",
1064
- "currency": "Währung",
1065
- "currencyHelper": "ISO-4217-Code für die Formatierung von Geldbeträgen.",
1066
- "pii": "Standardmäßig maskieren",
1067
- "piiHelper": "Maskierte Werte werden geschwärzt dargestellt; das Aufheben der Maskierung erfordert die Berechtigung data.unmask_pii und wird im Audit-Log protokolliert.",
1068
- "enum": "Enum-Semantik",
1069
- "enumKind": "Enum-Art",
1070
- "enumWorkflow": "Workflow",
1071
- "enumCategory": "Kategorie",
1072
- "enumLabelFor": "Bezeichnung für {value}",
1073
- "enumToneFor": "Farbton für {value}",
1074
- "enumToneAuto": "automatisch",
1075
- "enumHelper": "Workflow-Enums steuern Status-Pills und Board-Spalten; Farbtöne ordnen Werte der semantischen Farbtonskala zu."
1076
- },
1077
- "diff": {
1078
- "one": "1 Änderung",
1079
- "count": "{count} Änderungen",
1080
- "saved": "Überschreibungen gespeichert.",
1081
- "revertOne": "{change} verwerfen",
1082
- "regenerate": "Seiten neu generieren",
1083
- "revertAll": "Alle verwerfen",
1084
- "save": "Überschreibungen speichern"
1085
- },
1086
- "table": {
1087
- "iconPicker": "Tabellensymbol",
1088
- "system": "System",
1089
- "labelOverride": "Anzeigebezeichnung",
1090
- "labelHelper": "Abgeleitet: {name}",
1091
- "icon": "Symbol",
1092
- "navGroup": "Navigationsgruppe",
1093
- "navGroupHelper": "Die Platzierung in der Navigation entscheidet der Generator — eine table.navGroup-Überschreibung ist nicht Teil des v1-Vokabulars.",
1094
- "include": "In die generierte App einbeziehen",
1095
- "includeHelper": "Ausgeschlossene Tabellen erhalten keine Seiten und verschwinden aus der Navigation.",
1096
- "shape": "Tabellenform (klassifiziert)",
1097
- "role": "Rolle",
1098
- "unclassified": "Nicht klassifiziert",
1099
- "kind": "Art",
1100
- "hierarchy": "Hierarchie",
1101
- "selfFk": "Selbstreferenz über {column}",
1102
- "polymorphic": "Polymorphe Paare",
1103
- "rows": "Geschätzte Zeilenzahl",
1104
- "shapeHelper": "Die Klassifikation wird bei jeder Introspektion neu berechnet; Überschreibungen liegen darüber und überstehen die Neugenerierung."
1105
- },
1106
- "relations": {
1107
- "declared": "Deklarierte Fremdschlüssel",
1108
- "noneDeclared": "Keine deklarierten Fremdschlüssel berühren diese Tabelle.",
1109
- "inferred": "Abgeleitete Beziehungen",
1110
- "noneInferred": "Für diese Tabelle wurde nichts abgeleitet.",
1111
- "confidence": "abgeleitet · {pct}%",
1112
- "accepted": "Übernommen",
1113
- "suppressed": "Unterdrückt",
1114
- "accept": "Übernehmen",
1115
- "suppress": "Unterdrücken",
1116
- "overrides": "Beziehungs-Überschreibungen (angewendet)",
1117
- "overrideBadge": "Überschreibung",
1118
- "add": "Virtuelle Beziehung hinzufügen",
1119
- "fromColumn": "Quellspalte",
1120
- "noColumns": "Keine passende Spalte",
1121
- "fromPlaceholder": "customer_id",
1122
- "toTable": "Zieltabelle",
1123
- "noTables": "Keine passende Tabelle",
1124
- "toColumn": "Zielspalte",
1125
- "cardinality": "Kardinalität",
1126
- "addButton": "Beziehung hinzufügen"
1127
- },
1128
- "toast": {
1129
- "saved": "Schema-Überschreibungen gespeichert",
1130
- "savedDetail": "Das angewendete Schema unten spiegelt Ihre Änderungen wider.",
1131
- "regenerated": "{created} erstellt · {updated} aktualisiert · {unchanged} unverändert",
1132
- "regeneratedDetail": "Von Hand bearbeitete Seiten bleiben erhalten — nur Seiten mit unangetastetem generated_hash wurden an Ort und Stelle neu generiert.",
1133
- "regenerateFailed": "Neugenerierung fehlgeschlagen"
1134
- },
1135
- "title": "Schema neu zuordnen",
1136
- "subtitle": "{tables} Tabellen · {applied} Überschreibungen angewendet",
1137
- "saveFailed": "Speichern fehlgeschlagen: {message}",
1138
- "loadFailed": "Das Schema für diese Verbindung konnte nicht geladen werden.",
1139
- "inspector": "Inspektor",
1140
- "empty": {
1141
- "title": "Wählen Sie eine Tabelle oder Spalte",
1142
- "description": "Wählen Sie etwas im Schemabaum aus, um Bezeichnung, Typ, Beziehungen oder Maskierung neu zuzuordnen."
1143
- },
1144
- "tabs": {
1145
- "details": "Details",
1146
- "relations": "Beziehungen"
1147
- },
1148
- "tree": {
1149
- "label": "Schema",
1150
- "search": "Tabellen und Spalten durchsuchen",
1151
- "searchPlaceholder": "Tabellen durchsuchen…",
1152
- "noMatches": "Keine Tabellen entsprechen Ihrer Suche.",
1153
- "collapse": "Tabelle einklappen",
1154
- "expand": "Tabelle ausklappen",
1155
- "unsaved": "Ungespeicherte Änderung",
1156
- "excluded": "Ausgeschlossen"
1157
- },
388
+ "translations": {
389
+ "title": "Sprachen & Übersetzungen",
390
+ "subtitle": "Ändern Sie jede Formulierung in Adminium, legen Sie fest, welche Sprachen zur Auswahl stehen, und fügen Sie eigene hinzu.",
391
+ "warning": "Fehlermeldungen und Anmeldetexte lassen sich ebenfalls bearbeiten. Genau die liest man, wenn etwas schiefgeht — ändern Sie sie also mit Bedacht.",
392
+ "editor": {
393
+ "heading": "Übersetzungen bearbeiten"
394
+ },
395
+ "localeLabel": "Sprache",
396
+ "groupLabel": "Bereich",
397
+ "allAreas": "Alle Bereiche",
398
+ "stateLabel": "Anzeigen",
399
+ "state": {
400
+ "all": "Alles",
401
+ "overridden": "Nur angepasste",
402
+ "untranslated": "Nur unübersetzte",
403
+ "stale": "Englisch seitdem geändert"
404
+ },
405
+ "searchLabel": "Suchen",
406
+ "searchPlaceholder": "Schlüssel oder englischer Text",
407
+ "loading": "Texte werden geladen…",
408
+ "noMatches": "Keine Texte entsprechen diesen Filtern.",
409
+ "count": "{total, plural, one {# Text} other {# Texte}}",
1158
410
  "badge": {
1159
- "pk": "PK",
1160
- "fk": "FK",
1161
- "unique": "UNIQUE",
1162
- "pii": "PII",
1163
- "masked": "Maskiert"
1164
- },
1165
- "unavailableTitle": "Editor zum Neuzuordnen des Schemas nicht verfügbar"
411
+ "custom": "Angepasst",
412
+ "stale": "Englisch geändert",
413
+ "a11y": "Barrierefreier Name"
414
+ },
415
+ "sourceLabel": "Englisches Original",
416
+ "valueLabel": "Übersetzung",
417
+ "save": "Speichern",
418
+ "saved": "Übersetzung gespeichert",
419
+ "resetAction": "Auf eingebauten Text zurücksetzen",
420
+ "reset": "Auf den eingebauten Text zurückgesetzt",
421
+ "locales": {
422
+ "heading": "Verfügbare Sprachen",
423
+ "help": "Schalten Sie eine Sprache aus, um sie aus allen Sprachauswahlen zu entfernen. Wer sie bereits nutzt, behält sie, bis er eine andere wählt."
424
+ },
425
+ "locale": {
426
+ "builtin": "Eingebaut",
427
+ "custom": "Eigene",
428
+ "overrides": "{count, plural, =0 {kein eigener Text} one {# eigener Text} other {# eigene Texte}}",
429
+ "enable": "Einschalten",
430
+ "disable": "Ausschalten",
431
+ "delete": "Löschen",
432
+ "deleted": "Sprache entfernt",
433
+ "deletedDetail": "{users, plural, one {# Person wurde} other {# Personen wurden}} auf den Workspace-Standard zurückgesetzt; {strings, plural, one {# Übersetzung} other {# Übersetzungen}} gelöscht.",
434
+ "deleteFailed": "Diese Sprache konnte nicht entfernt werden",
435
+ "add": "Sprache hinzufügen",
436
+ "added": "Sprache hinzugefügt",
437
+ "create": "Sprache anlegen",
438
+ "id": "Sprachcode",
439
+ "intlTag": "Formatierungsregeln von",
440
+ "native": "Name in der Sprache selbst",
441
+ "english": "Name auf Englisch",
442
+ "dir": "Textrichtung",
443
+ "ltr": "Links nach rechts",
444
+ "rtl": "Rechts nach links",
445
+ "font": "Schrift",
446
+ "latin": "Lateinisch",
447
+ "arabic": "Arabisch",
448
+ "cjk": "Chinesisch / Japanisch / Koreanisch",
449
+ "intlHelp": "Die Formatierungsregeln bestimmen, wie Zahlen, Datumsangaben und Pluralformen behandelt werden. Wählen Sie die nächstliegende Sprache, die sie bereits hat — sie muss nicht zu Ihrem Sprachcode passen."
450
+ }
1166
451
  }
1167
452
  },
1168
453
  "onboarding": {
@@ -2262,166 +1547,6 @@ export default {
2262
1547
  "toLight": "Heller Modus",
2263
1548
  "toDark": "Dunkler Modus"
2264
1549
  },
2265
- "studioPages": {
2266
- "title": "Seiten",
2267
- "subtitle": "Seiten Ihrer App hinzufügen, bearbeiten und ordnen – samt ihrer Reihenfolge in der Seitenleiste.",
2268
- "createButton": "Neue Seite",
2269
- "loadFailed": {
2270
- "title": "Seiten konnten nicht geladen werden",
2271
- "body": "Für die Seitenverwaltung wird die Berechtigung „Seiten verwalten“ benötigt. Bitten Sie eine Administratorin oder einen Administrator, sie einer Ihrer Rollen zuzuweisen."
2272
- },
2273
- "tab": {
2274
- "pages": "Alle Seiten",
2275
- "sidebar": "Reihenfolge der Seitenleiste"
2276
- },
2277
- "list": {
2278
- "title": "Seiten",
2279
- "count": "{count, plural, one {# Seite} other {# Seiten}}"
2280
- },
2281
- "empty": {
2282
- "title": "Noch keine Seiten",
2283
- "body": "Verbinden Sie eine Datenbank, um Seiten automatisch zu erzeugen, oder legen Sie eine von Hand an."
2284
- },
2285
- "status": {
2286
- "live": "Aktiv",
2287
- "hidden": "Ausgeblendet"
2288
- },
2289
- "origin": {
2290
- "generated": "Erzeugt",
2291
- "manifest": "Add-on",
2292
- "llm": "Assistent",
2293
- "system": "System",
2294
- "user": "Eigene"
2295
- },
2296
- "row": {
2297
- "menu": "Aktionen für {title}"
2298
- },
2299
- "action": {
2300
- "edit": "Seite bearbeiten",
2301
- "duplicate": "Duplizieren",
2302
- "hide": "In der Seitenleiste ausblenden",
2303
- "show": "In der Seitenleiste anzeigen",
2304
- "delete": "Seite löschen"
2305
- },
2306
- "create": {
2307
- "title": "Neue Seite",
2308
- "failed": "Die Seite konnte nicht erstellt werden",
2309
- "submit": "Seite erstellen",
2310
- "subtitle": "Legen Sie fest, was diese Seite zeigt und wie sie aussieht. Die Vorschau folgt Ihrer Auswahl."
2311
- },
2312
- "duplicate": {
2313
- "title": "Seite duplizieren",
2314
- "failed": "Die Seite konnte nicht dupliziert werden",
2315
- "submit": "Duplizieren"
2316
- },
2317
- "delete": {
2318
- "title": "Diese Seite löschen?",
2319
- "body": "Das lässt sich nicht rückgängig machen. Gespeicherte Ansichten und persönliche Layouts dieser Seite werden für alle gelöscht.",
2320
- "bodyGenerated": "Diese Seite stammt aus der Schema-Generierung und kehrt beim nächsten Generierungslauf zurück. Gespeicherte Ansichten und persönliche Layouts werden für alle gelöscht.",
2321
- "prompt": "Geben Sie zur Bestätigung {slug} ein",
2322
- "confirm": "Seite löschen"
2323
- },
2324
- "field": {
2325
- "title": "Titel",
2326
- "titleHint": "Wird in der Seitenleiste und in der Kopfzeile der Seite angezeigt.",
2327
- "slug": "Seitenadresse",
2328
- "slugHint": "Kleinbuchstaben, Ziffern und Bindestriche. Nur der letzte Teil – den Rest der Adresse ergänzen wir.",
2329
- "slugTaken": "Diese Adresse wird bereits von einer anderen Seite verwendet.",
2330
- "slugWarning": "Eine geänderte Adresse macht bestehende Links und Lesezeichen zu dieser Seite ungültig.",
2331
- "template": "Vorlage",
2332
- "templateHint": "Bestimmt, was die Seite enthalten kann. Später änderbar.",
2333
- "group": "Gruppe der Seitenleiste",
2334
- "groupHint": "In welchem Abschnitt der Seitenleiste sie erscheint.",
2335
- "icon": "Symbol",
2336
- "iconHint": "Wird neben dem Seitennamen in der Seitenleiste angezeigt.",
2337
- "visible": "In der Seitenleiste anzeigen",
2338
- "visibleHint": "Eine ausgeblendete Seite bleibt über ihre URL erreichbar, wenn man den Link kennt.",
2339
- "table": "Tabelle",
2340
- "tableCreateHint": "Die Tabelle, aus der diese Seite liest. Wählen Sie jetzt eine, dann ist die Seite sofort nutzbar; ohne Auswahl können Sie sie später verknüpfen.",
2341
- "tableNone": "Nicht verknüpft",
2342
- "tableNeedsConnection": "Wählen Sie zuerst eine Datenquelle.",
2343
- "connection": "Datenquelle",
2344
- "connectionNone": "Keine",
2345
- "iconPick": "Seitensymbol auswählen",
2346
- "padding": "Seitenabstand"
2347
- },
2348
- "editor": {
2349
- "title": "Seite bearbeiten",
2350
- "save": "Änderungen speichern",
2351
- "saveFailed": "Änderungen konnten nicht gespeichert werden",
2352
- "openPage": "Seite öffnen",
2353
- "generated": {
2354
- "title": "Diese Seite wurde aus Ihrem Schema erzeugt",
2355
- "body": "Ihre Änderungen bleiben bei einer erneuten Generierung erhalten – die Seite wird als bearbeitet markiert und unangetastet gelassen. Ein Löschen hält allerdings nur, bis der nächste Generierungslauf sie neu anlegt."
2356
- },
2357
- "contentUnavailable": "Seiteninhalt konnte nicht geladen werden",
2358
- "contentUnavailableBody": "Die Angaben oben lassen sich trotzdem speichern.",
2359
- "contentInvalid": "Die Konfiguration dieser Seite ist nicht lesbar",
2360
- "contentInvalidBody": "Sie stammt aus einer neueren Version oder ist fehlerhaft. Erzeugen Sie die Seite neu oder löschen Sie sie.",
2361
- "data": "Daten",
2362
- "schemaFailed": "Tabellen konnten nicht aufgelistet werden",
2363
- "schemaFailedBody": "Diese Verbindung wurde möglicherweise noch nicht analysiert. Starten Sie die Introspektion unter Studio → Datenverbindungen.",
2364
- "notBindable": "Diese Vorlage ist nicht an eine einzelne Tabelle gebunden",
2365
- "notBindableBody": "Ihr Inhalt wird stattdessen Widget für Widget aufgebaut. Öffnen Sie die Seite und fügen Sie sie über „Bearbeiten“ hinzu.",
2366
- "recompose": "Diese Seite wird neu aufgebaut",
2367
- "recomposeBody": "Beim Speichern wird der Inhalt durch ein frisches Layout für Vorlage und Tabelle oben ersetzt. Spaltenanpassungen und Widget-Änderungen dieser Seite gehen verloren.",
2368
- "missing": "Diese Seite existiert nicht mehr",
2369
- "missingBody": "Sie wurde möglicherweise gelöscht oder von einem Generierungslauf entfernt.",
2370
- "details": "Details",
2371
- "itemsPending": "Speichern Sie zuerst die Änderung oben – der Seiteninhalt wird aus der neuen Vorlage und Tabelle neu aufgebaut.",
2372
- "columns": "Spalten",
2373
- "appearance": "Darstellung"
2374
- },
2375
- "sidebar": {
2376
- "help": "Seiten innerhalb einer Gruppe umsortieren oder in eine andere Gruppe verschieben. Die Änderungen gelten für alle Benutzerinnen und Benutzer.",
2377
- "discard": "Verwerfen",
2378
- "save": "Reihenfolge speichern",
2379
- "saveFailed": "Die neue Reihenfolge konnte nicht gespeichert werden",
2380
- "emptyGroup": "Keine Seiten in dieser Gruppe.",
2381
- "moveUp": "{title} nach oben verschieben",
2382
- "moveDown": "{title} nach unten verschieben",
2383
- "moveTo": "{title} in eine Gruppe verschieben",
2384
- "ungrouped": {
2385
- "title": "Einige Seiten gehören zu keiner Gruppe der Seitenleiste",
2386
- "body": "Diese Seiten funktionieren unter ihrer URL, erscheinen aber nirgends in der Seitenleiste. Öffnen Sie jede einzeln und wählen Sie eine Gruppe."
2387
- }
2388
- },
2389
- "columns": {
2390
- "help": "Spalten umsortieren, ihre Überschriften umbenennen und auswählen, welche in der Tabelle erscheinen.",
2391
- "discard": "Verwerfen",
2392
- "save": "Spalten speichern",
2393
- "saveFailed": "Spalten konnten nicht gespeichert werden",
2394
- "pk": "Schlüssel",
2395
- "pii": "PII",
2396
- "header": "Überschrift für {name}",
2397
- "shown": "Sichtbar",
2398
- "toggle": "{name} in der Tabelle anzeigen",
2399
- "moveUp": "{name} nach oben verschieben",
2400
- "moveDown": "{name} nach unten verschieben",
2401
- "remove": "{name} entfernen",
2402
- "none": {
2403
- "title": "Diese Seite hat noch keine Spalten",
2404
- "body": "Spalten werden bei der Generierung aus der Tabelle gelesen. Binden Sie diese Seite an eine Tabelle und generieren Sie neu, um sie zu füllen."
2405
- }
2406
- },
2407
- "icon": {
2408
- "none": "Symbol auswählen",
2409
- "search": "Symbole suchen",
2410
- "noMatches": "Keine Symbole passen zu dieser Suche."
2411
- },
2412
- "preview": {
2413
- "untitled": "Unbenannte Seite",
2414
- "note": "Eine Darstellung des Layouts, nicht Ihrer Daten. Die echte Seite füllt sich nach dem Speichern."
2415
- },
2416
- "padding": {
2417
- "default": "Standard dieser Vorlage",
2418
- "none": "Kein Abstand",
2419
- "standard": "Standard (28 × 24)",
2420
- "custom": "Benutzerdefiniert …",
2421
- "x": "Seiten (px)",
2422
- "y": "Oben und unten (px)"
2423
- }
2424
- },
2425
1550
  "audit": {
2426
1551
  "action": {
2427
1552
  "view": "Anzeigen"
@@ -2553,6 +1678,7 @@ export default {
2553
1678
  "exportsManage": "Exporte aller Benutzer verwalten",
2554
1679
  "importsManage": "Importe aller Benutzer verwalten",
2555
1680
  "jobsManage": "Hintergrundjobs starten und abbrechen",
1681
+ "manifestsManage": "Add-ons installieren und verbinden",
2556
1682
  "jobsRead": "Alle Hintergrundjobs sehen",
2557
1683
  "llmRun": "KI-Assistenz ausführen",
2558
1684
  "pagesManage": "Seiten erstellen und ordnen",
@@ -2574,7 +1700,7 @@ export default {
2574
1700
  },
2575
1701
  "security": {
2576
1702
  "password": {
2577
- "changedBody": "Verwenden Sie das neue Passwort bei Ihrer nächsten Anmeldung. Sitzungen auf anderen Geräten sind nicht betroffen widerrufen Sie sie unten, wenn diese abgemeldet werden sollen.",
1703
+ "changedBody": "Verwenden Sie das neue Passwort bei Ihrer nächsten Anmeldung. Andere Geräte bleiben angemeldetbeenden Sie diese Sitzungen, wenn Sie das nicht möchten.",
2578
1704
  "changed": "Passwort geändert",
2579
1705
  "confirm": "Neues Passwort bestätigen",
2580
1706
  "current": "Aktuelles Passwort",