@elytracms/studio 0.0.101 → 0.0.103
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.
- package/convex/asset-meta-patch.test.ts +7 -27
- package/convex/assets.ts +6 -41
- package/convex/cms.ts +2 -29
- package/convex/delivery.ts +2 -2
- package/convex/ingest.test.ts +54 -21
- package/convex/ingest.ts +52 -15
- package/convex/record-functions.ts +15 -82
- package/convex/redirects.ts +11 -116
- package/convex/schema.ts +4 -23
- package/convex/triggers.ts +7 -14
- package/dist/components/ai/ai-chat-panel.js +8 -5
- package/dist/components/ai/ai-chat-panel.js.map +1 -1
- package/dist/components/ai/translate-document-dialog.d.ts +43 -0
- package/dist/components/ai/translate-document-dialog.js +104 -36
- package/dist/components/ai/translate-document-dialog.js.map +1 -1
- package/dist/components/ai/translate-skipped.d.ts +19 -3
- package/dist/components/ai/translate-skipped.js +34 -7
- package/dist/components/ai/translate-skipped.js.map +1 -1
- package/dist/components/assets/asset-detail.js +1 -2
- package/dist/components/assets/asset-detail.js.map +1 -1
- package/dist/components/assets/asset-metadata.d.ts +2 -9
- package/dist/components/assets/asset-metadata.js +3 -10
- package/dist/components/assets/asset-metadata.js.map +1 -1
- package/dist/components/assets/asset-search.js +1 -1
- package/dist/components/assets/asset-search.js.map +1 -1
- package/dist/components/assets/asset-selection.js +2 -2
- package/dist/components/assets/asset-selection.js.map +1 -1
- package/dist/components/assets/assets-collection-view-source.d.ts +2 -3
- package/dist/components/assets/assets-collection-view-source.js +2 -3
- package/dist/components/assets/assets-collection-view-source.js.map +1 -1
- package/dist/components/builder/__fixtures__/reuse-race.d.ts +30 -0
- package/dist/components/builder/__fixtures__/reuse-race.js +77 -0
- package/dist/components/builder/__fixtures__/reuse-race.js.map +1 -0
- package/dist/components/builder/composition-field-editor.js +3 -3
- package/dist/components/builder/composition-field-editor.js.map +1 -1
- package/dist/components/builder/reuse-context.d.ts +2 -1
- package/dist/components/builder/reuse-context.js +5 -20
- package/dist/components/builder/reuse-context.js.map +1 -1
- package/dist/components/builder/reuse.d.ts +18 -11
- package/dist/components/builder/reuse.js +12 -14
- package/dist/components/builder/reuse.js.map +1 -1
- package/dist/components/cms/asset-field.js +1 -3
- package/dist/components/cms/asset-field.js.map +1 -1
- package/dist/components/cms/cell.d.ts +2 -2
- package/dist/components/cms/cell.js +8 -18
- package/dist/components/cms/cell.js.map +1 -1
- package/dist/components/cms/detail-editor.js +2 -1
- package/dist/components/cms/detail-editor.js.map +1 -1
- package/dist/components/cms/field-control.js +13 -1
- package/dist/components/cms/field-control.js.map +1 -1
- package/dist/lib/ai/chat-context.d.ts +6 -2
- package/dist/lib/ai/chat-context.js +11 -5
- package/dist/lib/ai/chat-context.js.map +1 -1
- package/dist/lib/ai/knowledge.d.ts +9 -9
- package/dist/lib/ai/knowledge.js +22 -0
- package/dist/lib/ai/knowledge.js.map +1 -1
- package/dist/lib/ai/tools.d.ts +8 -1
- package/dist/lib/ai/tools.js +33 -15
- package/dist/lib/ai/tools.js.map +1 -1
- package/dist/lib/ai/translate-apply.d.ts +69 -0
- package/dist/lib/ai/translate-apply.js +36 -0
- package/dist/lib/ai/translate-apply.js.map +1 -0
- package/dist/lib/ai/translate-document.d.ts +101 -7
- package/dist/lib/ai/translate-document.js +189 -54
- package/dist/lib/ai/translate-document.js.map +1 -1
- package/dist/lib/ai/update-fields.js +5 -12
- package/dist/lib/ai/update-fields.js.map +1 -1
- package/dist/lib/ai/writer-form.d.ts +93 -1
- package/dist/lib/ai/writer-form.js +389 -37
- package/dist/lib/ai/writer-form.js.map +1 -1
- package/dist/lib/assets/upload.d.ts +1 -2
- package/dist/lib/assets/upload.js +1 -2
- package/dist/lib/assets/upload.js.map +1 -1
- package/dist/lib/engine-version.d.ts +1 -1
- package/dist/lib/engine-version.js +1 -1
- package/dist/lib/engine-version.js.map +1 -1
- package/dist/lib/i18n/messages.de.js +54 -4
- package/dist/lib/i18n/messages.de.js.map +1 -1
- package/dist/lib/i18n/messages.en.d.ts +44 -1
- package/dist/lib/i18n/messages.en.js +58 -4
- package/dist/lib/i18n/messages.en.js.map +1 -1
- package/dist/lib/operations/cms-persistence.d.ts +20 -10
- package/dist/lib/operations/cms-persistence.js +11 -3
- package/dist/lib/operations/cms-persistence.js.map +1 -1
- package/dist/lib/persistence/convex-adapter.js +7 -2
- package/dist/lib/persistence/convex-adapter.js.map +1 -1
- package/package.json +3 -3
- package/convex/asset-alt-migration.test.ts +0 -127
- package/convex/redirect-migration.test.ts +0 -205
- package/convex/version-kind-stamping.test.ts +0 -118
|
@@ -265,6 +265,10 @@ export const deMessages = {
|
|
|
265
265
|
'operations.error.documentSchemaViolation': 'Das Dokument „{collection}:{id}“ verletzt das Schema seiner Sammlung.',
|
|
266
266
|
'operations.error.strictReferencesBlockDelete': '„{target}“ kann nicht gelöscht werden: {count} Dokumente verweisen über strikte Beziehungsfelder darauf — {named}{more}. Entfernen Sie zuerst diese Verweise.',
|
|
267
267
|
'operations.error.strictReferencesBlockDeleteOne': '„{target}“ kann nicht gelöscht werden: {count} Dokument verweist über strikte Beziehungsfelder darauf — {named}. Entfernen Sie zuerst diese Verweise.',
|
|
268
|
+
'operations.error.referencesBlockDelete': '„{target}“ kann nicht gelöscht werden: {count} Dokumente verweisen darauf — {named}{more}. Dieses Löschen erfolgt nur, solange nichts darauf verweist.',
|
|
269
|
+
'operations.error.referencesBlockDeleteOne': '„{target}“ kann nicht gelöscht werden: {count} Dokument verweist darauf — {named}. Dieses Löschen erfolgt nur, solange nichts darauf verweist.',
|
|
270
|
+
// EC-745 Punkt 2 — der Speicher lehnte ein Schreiben wegen einer Verweis-Vorbedingung ab, und die erneute Prüfung fand nichts mehr.
|
|
271
|
+
'operations.error.referenceChangedBack': '„{target}“ wurde nicht geschrieben: Ein Verweis, von dem es abhängt, hat sich geändert, während der Schreibvorgang unterwegs war, und ist seitdem wieder zurückgeändert worden — versuchen Sie es erneut.',
|
|
268
272
|
'operations.error.strictReferencesBlockUnpublish': 'Die Veröffentlichung von „{target}“ kann nicht zurückgenommen werden: {count} Dokumente verweisen über strikte Beziehungsfelder darauf — {named}{more}. Entfernen Sie zuerst diese Verweise.',
|
|
269
273
|
'operations.error.strictReferencesBlockUnpublishOne': 'Die Veröffentlichung von „{target}“ kann nicht zurückgenommen werden: {count} Dokument verweist über strikte Beziehungsfelder darauf — {named}. Entfernen Sie zuerst diese Verweise.',
|
|
270
274
|
// EC-589 — die Gegenrichtung von `strict: true`: Veröffentlichen verweigert, solange ein striktes Ziel fehlt oder unveröffentlicht ist.
|
|
@@ -275,7 +279,19 @@ export const deMessages = {
|
|
|
275
279
|
// EC-648 — Änderungssätze: Anwenden durch ein Problem blockiert, und der Schritt, den ein Änderungssatz ablehnt, weil ihn kein Rückgängigmachen umkehren kann.
|
|
276
280
|
'operations.error.changesetBlocked': 'Der Änderungssatz „{changeset}“ hat blockierende Prüfprobleme und kann nicht angewendet werden.',
|
|
277
281
|
'operations.error.changesetDeleteNotReversible': 'Schritt {step}: „{target}“ kann nicht innerhalb eines Änderungssatzes gelöscht werden — das Löschen entfernt seinen Versionsverlauf und seine Veröffentlichung, die kein Rückgängigmachen wiederherstellen kann. Löschen Sie es einzeln.',
|
|
282
|
+
// EC-745 — das Zurücknehmen eines Änderungssatzes, ganz abgelehnt, bevor etwas geschrieben wurde („deleteReferenced: true“ ist eine Code-Option und bleibt unübersetzt).
|
|
283
|
+
'operations.error.revertReferencedDeleteOne': 'Das Zurücknehmen des Änderungssatzes „{changeset}“ wurde abgelehnt: Es würde „{target}“ löschen, und {count} Dokument verweist darauf — {named}. Nichts wurde zurückgenommen. Mit deleteReferenced: true wird es trotzdem gelöscht; der Verweis läuft dann ins Leere.',
|
|
284
|
+
'operations.error.revertReferencedDelete': 'Das Zurücknehmen des Änderungssatzes „{changeset}“ wurde abgelehnt: Es würde „{target}“ löschen, und {count} Dokumente verweisen darauf — {named}{more}. Nichts wurde zurückgenommen. Mit deleteReferenced: true wird es trotzdem gelöscht; die Verweise laufen dann ins Leere.',
|
|
285
|
+
'operations.error.revertStrictReferencedDeleteOne': 'Das Zurücknehmen des Änderungssatzes „{changeset}“ wurde abgelehnt: Es würde „{target}“ löschen, und {count} Dokument verweist über strikte Beziehungsfelder darauf — {named}. Nichts wurde zurückgenommen. Entfernen Sie zuerst diese Verweise.',
|
|
286
|
+
'operations.error.revertStrictReferencedDelete': 'Das Zurücknehmen des Änderungssatzes „{changeset}“ wurde abgelehnt: Es würde „{target}“ löschen, und {count} Dokumente verweisen über strikte Beziehungsfelder darauf — {named}{more}. Nichts wurde zurückgenommen. Entfernen Sie zuerst diese Verweise.',
|
|
287
|
+
'operations.error.revertUnrecorded': 'Das Zurücknehmen des Änderungssatzes „{changeset}“ wurde abgelehnt: Schritt {step} („{operation}“, {target}): {reason} — nichts wurde zurückgenommen.',
|
|
288
|
+
'operations.error.revertChangedSince': 'Das Zurücknehmen des Änderungssatzes „{changeset}“ wurde abgelehnt: „{target}“ wurde geändert, seit der Änderungssatz angewendet wurde (jetzt Revision {revision}, der Änderungssatz hinterließ Revision {left}) — nichts wurde zurückgenommen.',
|
|
289
|
+
'operations.error.revertGone': 'Das Zurücknehmen des Änderungssatzes „{changeset}“ wurde abgelehnt: „{target}“ existiert nicht mehr — nichts wurde zurückgenommen.',
|
|
278
290
|
'operations.errorDetail.andMore': ' und {count} weitere',
|
|
291
|
+
// EC-745 — die Gründe, aus denen ein Schritt kein Rückgängigmachen festhält (eingesetzt in {reason} von revertUnrecorded).
|
|
292
|
+
'operations.errorDetail.changesetStepRaced': 'zwischen dem Lesen des Dokuments durch den Änderungssatz und dem eigenen Schreiben dieses Schritts wurde anderweitig geschrieben, daher wurde nie festgehalten, was der Schritt ersetzt hat',
|
|
293
|
+
'operations.errorDetail.changesetPatchNotInvertible': 'zwischen dem Lesen durch den Änderungssatz und dem eigenen Schreiben dieses Patches wurde anderweitig geschrieben, und der Patch hat die Struktur geändert (oder sein Eintrag im Patch-Protokoll fehlt), was sich nicht Position für Position rückgängig machen lässt',
|
|
294
|
+
'operations.errorDetail.changesetNoInverse': 'es wurde kein Rückgängigmachen festgehalten',
|
|
279
295
|
// EC-494 — Fehler von Inhaltsabfragen (Filterleiste + Listing-Hinweis im Canvas).
|
|
280
296
|
// „filterable“, „asc“, „desc“, „in“, „empty“ sind Schlüsselwörter aus der Konfiguration
|
|
281
297
|
// und bleiben wörtlich stehen.
|
|
@@ -579,6 +595,7 @@ export const deMessages = {
|
|
|
579
595
|
'cms.issueMessage.preConvergenceV1': 'Das Feld „{field}“ enthält eine Inhaltsform von vor der Konvergenz (die v1-Hülle „{ version, doc }“) — die Engine liest nur noch die konvergierte Sequenz „{ version: 2, content }“. Dieser Inhalt muss neu eingespielt werden (Re-Seed).',
|
|
580
596
|
'cms.issueMessage.preConvergenceBareBlocks': 'Das Feld „{field}“ enthält eine Inhaltsform von vor der Konvergenz (eine blanke Komponentenliste) — die Engine liest nur noch die konvergierte Sequenz „{ version: 2, content }“. Dieser Inhalt muss neu eingespielt werden (Re-Seed).',
|
|
581
597
|
'cms.issueMessage.preConvergencePlaintext': 'Das Feld „{field}“ enthält eine Inhaltsform von vor der Konvergenz (unstrukturierter Alttext) — die Engine liest nur noch die konvergierte Sequenz „{ version: 2, content }“. Dieser Inhalt muss neu eingespielt werden (Re-Seed).',
|
|
598
|
+
'cms.issueMessage.untaggedSequenceComponent': 'Das Feld „{field}“ enthält die Komponente „{component}“ (Knoten „{node}“) ohne ihre Kennung „elytra/component“ in einer Inhaltsliste — die Engine liest dort nur gekennzeichnete Komponenten, daher zeigt der ganze Wert seinen Platzhalter für ungültigen Inhalt. Er wurde am Schreibweg vorbei geschrieben; speichern Sie das Feld erneut im Editor oder spielen Sie ihn neu ein (Re-Seed).',
|
|
582
599
|
'cms.issueMessage.gateUnknownCollection': 'Das Projekt deklariert keine Collection „{collection}“ — es gibt keine Regeln, nach denen sie veröffentlicht werden könnte.',
|
|
583
600
|
'cms.issueMessage.gateAssetLibraryUnready': 'Die Medienbibliothek konnte nicht gelesen werden — die Veröffentlichung ungeprüfter Medienverweise wird verweigert. Bitte erneut versuchen.',
|
|
584
601
|
'cms.issueMessage.gateNoLocales': 'Das Projekt deklariert keine Sprachen — die Veröffentlichung ohne sie wird verweigert.',
|
|
@@ -787,6 +804,8 @@ export const deMessages = {
|
|
|
787
804
|
// ─────────────────────────────────────────────────────────────────────────
|
|
788
805
|
'cms.field.rendererCrashed': 'Benutzerdefinierter Renderer abgestürzt — Standardsteuerung wird angezeigt.',
|
|
789
806
|
'cms.field.noRenderer': 'Kein Feld-Renderer für Steuerung „{control}“ registriert.',
|
|
807
|
+
'cms.field.blocksInFieldRow': 'Ein Blocks-Feld wird als Seiten-Canvas auf einem eigenen Formular-Tab bearbeitet — hier hat es keine Feldzeile.',
|
|
808
|
+
'cms.field.noControlForType': 'Keine eingebaute Steuerung für den Feldtyp „{type}“.',
|
|
790
809
|
'cms.field.itemActions': 'Elementaktionen',
|
|
791
810
|
'cms.field.moveUp': 'Nach oben',
|
|
792
811
|
'cms.field.moveDown': 'Nach unten',
|
|
@@ -1322,21 +1341,42 @@ export const deMessages = {
|
|
|
1322
1341
|
'ai.error.stepCap': 'Der Assistent hat nach {max} Werkzeugschritten angehalten. Senden Sie eine weitere Nachricht, um fortzufahren.',
|
|
1323
1342
|
// EC-332 — full-document translation (header action + chat tool)
|
|
1324
1343
|
'ai.translate.action': 'Dokument übersetzen',
|
|
1325
|
-
'ai.translate.tooltip': '
|
|
1344
|
+
'ai.translate.tooltip': 'Dieses Dokument mit KI in seine anderen Sprachen übersetzen',
|
|
1326
1345
|
'ai.translate.dialogTitle': 'Dokument übersetzen',
|
|
1327
|
-
'ai.translate.dialogDescription': '
|
|
1346
|
+
'ai.translate.dialogDescription': 'Dieses Dokument mit KI aus {base} übersetzen.',
|
|
1328
1347
|
'ai.translate.targetsLabel': 'Zielsprachen',
|
|
1329
1348
|
'ai.translate.scopeLabel': 'Zu übersetzender Umfang',
|
|
1330
1349
|
'ai.translate.fillMissing': 'Nur fehlende Übersetzungen ausfüllen',
|
|
1350
|
+
'ai.translate.fillMissingHint': 'Füllt nur die Werte aus, die noch {base} folgen. Ein Wert mit eigener Übersetzung wird nie überschrieben.',
|
|
1331
1351
|
'ai.translate.retranslateAll': 'Alles neu übersetzen',
|
|
1332
|
-
|
|
1352
|
+
// EC-752 — alles neu übersetzen: die Bestätigung listet, was ersetzt wird (aus dem Plan des Laufs selbst).
|
|
1353
|
+
'ai.translate.retranslateHint': 'Übersetzt jeden Wert neu aus {base} — Werte, die schon eine eigene Übersetzung haben, werden ersetzt.',
|
|
1354
|
+
'ai.translate.planReplaceTitle': 'Durch eine neue Übersetzung aus {base} ersetzt (bis zu {count})',
|
|
1355
|
+
'ai.translate.planReplaceNone': 'Noch kein Wert hat eine eigene Übersetzung — es wird nichts ersetzt.',
|
|
1356
|
+
'ai.translate.planFillTitle': 'Aus {base} ausgefüllt (bis zu {count})',
|
|
1357
|
+
'ai.translate.planWhole': 'Ein Wert wird nur ersetzt, wenn er vollständig übersetzt wurde; sonst bleibt er, wie er war.',
|
|
1358
|
+
'ai.translate.planSlugsKept': 'Ein Slug, den eine Sprache schon hat, bleibt erhalten — ihn zu ändern, würde die Adresse der Seite verschieben.',
|
|
1359
|
+
'ai.translate.planRestorePoint': 'Vorher wird eine Version des Dokuments gespeichert, sodass Sie jeden ersetzten Wert unter Versionen wiederherstellen können.',
|
|
1360
|
+
'ai.translate.planKeptTitle': 'Bleiben, wie sie sind ({count})',
|
|
1333
1361
|
'ai.translate.confirm': 'Übersetzen',
|
|
1362
|
+
'ai.translate.confirmReplace': 'Neu übersetzen und ersetzen',
|
|
1334
1363
|
'ai.translate.preparing': 'Übersetzung wird vorbereitet…',
|
|
1335
1364
|
'ai.translate.progress': '{completed} von {total} werden übersetzt…',
|
|
1336
1365
|
'ai.translate.applying': 'Übersetzungen werden gespeichert…',
|
|
1366
|
+
'ai.translate.snapshotLabel': 'Vor der Neuübersetzung',
|
|
1367
|
+
'ai.translate.snapshotFailed': 'Vor der Neuübersetzung konnte keine Version gespeichert werden — es wurde nichts geändert. Bitte versuchen Sie es erneut.',
|
|
1337
1368
|
'ai.translate.nothing': 'Alles ist bereits übersetzt — es gibt nichts auszufüllen.',
|
|
1369
|
+
'ai.translate.retranslateNothing': 'Es gibt nichts neu zu übersetzen — kein Feld enthält Text in {base}.',
|
|
1338
1370
|
'ai.translate.applied': '{count} Übersetzungen in {locales} Sprachen wurden ausgefüllt.',
|
|
1371
|
+
'ai.translate.retranslateDone': 'Neuübersetzung abgeschlossen.',
|
|
1372
|
+
'ai.translate.replacedTitle': 'Ersetzt ({count})',
|
|
1373
|
+
'ai.translate.filledTitle': 'Ausgefüllt ({count})',
|
|
1374
|
+
'ai.translate.slugsTitle': 'Slugs aus der Übersetzung gesetzt ({count})',
|
|
1375
|
+
'ai.translate.keptTitle': 'Blieben, wie sie waren ({count})',
|
|
1376
|
+
'ai.translate.refusedTitle': 'Inzwischen von jemand anderem geändert ({count}) — im Editor entscheiden',
|
|
1377
|
+
'ai.translate.restorePoint': 'Die vorherigen Werte sind als Version v{version} gespeichert — Sie können jeden davon unter Versionen wiederherstellen.',
|
|
1339
1378
|
'ai.translate.cancelled': 'Übersetzung abgebrochen — Teilergebnisse bleiben im Entwurf erhalten.',
|
|
1379
|
+
'ai.translate.retranslateCancelled': 'Neuübersetzung abgebrochen — vollständig übersetzte Werte wurden ersetzt, die übrigen blieben, wie sie waren.',
|
|
1340
1380
|
'ai.translate.failed': 'Übersetzung fehlgeschlagen. Bitte versuchen Sie es erneut.',
|
|
1341
1381
|
'ai.translate.close': 'Schließen',
|
|
1342
1382
|
'ai.translate.proposalTitle': 'Übersetzung von {collection}',
|
|
@@ -1347,6 +1387,13 @@ export const deMessages = {
|
|
|
1347
1387
|
'ai.translate.skipped.unreadable': 'der gespeicherte Wert konnte nicht gelesen werden',
|
|
1348
1388
|
'ai.translate.skipped.notReturned': 'der Assistent hat dafür keinen Text geliefert',
|
|
1349
1389
|
'ai.translate.skipped.structureChanged': 'die Übersetzung hat Formatierungen, Links oder eingebettete Elemente verloren — das Original wurde beibehalten',
|
|
1390
|
+
// EC-752 — bei einer Neuübersetzung wird ein Wert ganz oder gar nicht geschrieben.
|
|
1391
|
+
'ai.translate.skipped.retranslate.unreadable': 'der gespeicherte Wert konnte nicht gelesen werden — der ganze Wert blieb, wie er war',
|
|
1392
|
+
'ai.translate.skipped.retranslate.notReturned': 'der Assistent hat dafür keinen Text geliefert — der ganze Wert blieb, wie er war',
|
|
1393
|
+
'ai.translate.skipped.retranslate.structureChanged': 'die Übersetzung hat Formatierungen, Links oder eingebettete Elemente verloren — der ganze Wert blieb, wie er war',
|
|
1394
|
+
// EC-738 — ein Bereich, dessen schreibgeschützter (oder für die KI ausgeschlossener) Inhalt anders aufgebaut ist als die Quelle;
|
|
1395
|
+
// EC-748/752 — oder in einer Form gespeichert, die die Konfiguration nicht mehr liest.
|
|
1396
|
+
'ai.translate.skipped.locked': 'enthält Inhalte, die hier nicht geändert werden können, anders angeordnet als in der Quelle oder in einer Form gespeichert, die die Konfiguration nicht mehr liest (zuerst im Editor speichern) — unverändert gelassen',
|
|
1350
1397
|
// EC-378 — the update (edit-existing) proposal
|
|
1351
1398
|
'ai.update.proposalTitle': 'Änderungen an {collection}',
|
|
1352
1399
|
'ai.update.diffBefore': 'Aktuell',
|
|
@@ -1362,9 +1409,11 @@ export const deMessages = {
|
|
|
1362
1409
|
'builder.inspector.unset': 'Nicht gesetzt',
|
|
1363
1410
|
'builder.inspector.unsetWithHint': 'Nicht gesetzt (Standard: {hint})',
|
|
1364
1411
|
// EC-586 / EC-581 (wave-0092, zone A) — canonical values and the per-FieldType definition
|
|
1365
|
-
'cms.issueMessage.nonCanonicalValue': 'Das Feld „{field}“ ist in einer nicht kanonischen Form für ein Feld vom Typ „{type}“ gespeichert — es wurde am Schreibweg vorbei geschrieben, der je Feldtyp genau eine Form speichert.
|
|
1412
|
+
'cms.issueMessage.nonCanonicalValue': 'Das Feld „{field}“ ist in einer nicht kanonischen Form für ein Feld vom Typ „{type}“ gespeichert — es wurde am Schreibweg vorbei geschrieben, der je Feldtyp genau eine Form speichert. Speichern Sie das Feld erneut im Editor oder über eine Operation, um die kanonische Form abzulegen.',
|
|
1366
1413
|
'cms.issueMessage.propsNotJudged': 'Die Komponenten-Eigenschaften im Feld „{field}“ wurden nicht geprüft: Die Seite wurde ohne Komponenten-Registry aufgelöst, daher werden sie wie gespeichert ausgeliefert und ihre Probleme nicht gemeldet.',
|
|
1367
1414
|
'cms.issueMessage.assetHoldsUrl': 'Das Asset-Feld „{field}“ enthält eine URL — ein Asset-Wert ist ein Asset aus der Mediathek, nie eine URL. Laden Sie das Bild in die Mediathek hoch und wählen Sie es aus, oder tragen Sie die Adresse eines externen Bildes in das URL-Feld der Komponente ein (beim Bild: „Image URL“).',
|
|
1415
|
+
'cms.issueMessage.slugNotSegment': 'Das Slug-Feld „{field}“ enthält „{value}“, was nach der Slug-Regel des Felds kein Slug ist — die Regel schreibt dafür „{slug}“. Speichern Sie den Slug, den die Regel schreibt.',
|
|
1416
|
+
'cms.issueMessage.slugNotAddressable': 'Das Slug-Feld „{field}“ enthält „{value}“, was kein einzelnes URL-Segment sein kann: Ein Browser entfernt ein Segment „.“ oder „..“ vor der Anfrage, und ein „/“ liest sich als verschachtelter Pfad. Daraus wird keine URL gebildet — ändern Sie den Slug.',
|
|
1368
1417
|
// EC-584 — die AllowList-Prüfung (Konfiguration / Registrierung).
|
|
1369
1418
|
'cms.issueMessage.emptyAllow': 'Das Feld „{field}“ deklariert ein leeres „allow“ — eine Liste erlaubt genau die genannten IDs, eine leere also nichts. Lassen Sie „allow“ weg für die Standard-Auswahl des Feldtyps, oder nennen Sie die Komponenten-IDs.',
|
|
1370
1419
|
'cms.issueMessage.unknownAllowComponent': 'Das Feld „{field}“ erlaubt „{component}“, das keine Komponente dieses Projekts ist — prüfen Sie die ID oder entfernen Sie sie aus „allow“.',
|
|
@@ -1372,6 +1421,7 @@ export const deMessages = {
|
|
|
1372
1421
|
'cms.issueMessage.placementKeyReserved': 'Das Asset-Feld „{asset}“ deklariert das platzierungsbezogene Unterfeld „{field}“, einen Namen, der dem Asset selbst gehört — es käme nie bei einer Komponente an (das „{field}“ des Assets gewinnt). Benennen Sie es um; Alternativtext, Bildnachweis oder KI-Kennzeichnung eines Bildes gehören in die Asset-Sammlung.',
|
|
1373
1422
|
'cms.issueMessage.placementNotScalar': 'Das Asset-Feld „{asset}“ deklariert das platzierungsbezogene Unterfeld „{field}“ vom Typ „{type}“ — eine Platzierung enthält Angaben zu dieser Verwendung des Bildes (eine Bildunterschrift, ein Layout), niemals eine Referenz oder Rich Text.',
|
|
1374
1423
|
'cms.issueMessage.sourceNotOnAssetCollection': 'Das Feld „{field}“ deklariert die Quelle „{source}“ — eine Quelle für eingebettete Metadaten füllt nur ein Feld der obersten Ebene der Asset-Sammlung.',
|
|
1424
|
+
'cms.issueMessage.blocksOnAssetCollection': 'Das Feld „{field}“ ist ein „blocks“-Feld der Asset-Sammlung „{collection}“ — ein Asset enthält Angaben zu seiner Datei (Alternativtext, Bildnachweis, Bildunterschrift), nie eine Arbeitsfläche. Entfernen Sie das Feld; eine Seitenkomposition gehört in eine Dokument-Sammlung.',
|
|
1375
1425
|
'cms.issueMessage.sourceTypeMismatch': 'Das Feld „{field}“ deklariert die Quelle „{source}“, die kein Feld vom Typ „{type}“ füllen kann (jede Quelle füllt Text; iptc:digitalSourceType auch einen Wahrheitswert).',
|
|
1376
1426
|
'cms.issueMessage.uniqueNotTopLevel': 'Das Unterfeld „{field}“ deklariert „unique“ — Eindeutigkeit wird über die Dokumente einer Sammlung hinweg beurteilt und gilt daher nur für Felder auf oberster Ebene.',
|
|
1377
1427
|
'cms.issueMessage.localizedOnProp': 'Die Komponenten-Eigenschaft „{field}“ deklariert „localized“ — ein sprachabhängiger Wert wird je Sprache im Dokument gespeichert, daher kann nur ein Dokumentfeld auf oberster Ebene sprachabhängig sein (machen Sie das Feld sprachabhängig, das die Komposition enthält).',
|