@rigel-cms/rigel 1.0.0 → 1.1.0

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 (156) hide show
  1. package/README.md +4 -0
  2. package/docs/extensions.md +194 -0
  3. package/package.json +15 -3
  4. package/src/article-body.ts +49 -37
  5. package/src/article-render.ts +25 -2
  6. package/src/article.ts +44 -0
  7. package/src/config.ts +12 -2
  8. package/src/editor/App.svelte +98 -97
  9. package/src/editor/blocks/extension.ts +29 -0
  10. package/src/editor/blocks/index.ts +17 -15
  11. package/src/editor/blocks/video.ts +2 -1
  12. package/src/editor/i18n/README.md +23 -0
  13. package/src/editor/i18n/de/connection.json +136 -0
  14. package/src/editor/i18n/de/defaults.json +6 -0
  15. package/src/editor/i18n/de/fields.json +130 -0
  16. package/src/editor/i18n/de/local.json +49 -0
  17. package/src/editor/i18n/de/media.json +166 -0
  18. package/src/editor/i18n/de/richtext.json +116 -0
  19. package/src/editor/i18n/de/shell.json +181 -0
  20. package/src/editor/i18n/de/system.json +14 -0
  21. package/src/editor/i18n/de/validation.json +82 -0
  22. package/src/editor/i18n/en/connection.json +136 -0
  23. package/src/editor/i18n/en/defaults.json +6 -0
  24. package/src/editor/i18n/en/fields.json +130 -0
  25. package/src/editor/i18n/en/local.json +49 -0
  26. package/src/editor/i18n/en/media.json +166 -0
  27. package/src/editor/i18n/en/richtext.json +116 -0
  28. package/src/editor/i18n/en/shell.json +181 -0
  29. package/src/editor/i18n/en/system.json +14 -0
  30. package/src/editor/i18n/en/validation.json +82 -0
  31. package/src/editor/i18n/es/connection.json +136 -0
  32. package/src/editor/i18n/es/defaults.json +6 -0
  33. package/src/editor/i18n/es/fields.json +130 -0
  34. package/src/editor/i18n/es/local.json +49 -0
  35. package/src/editor/i18n/es/media.json +166 -0
  36. package/src/editor/i18n/es/richtext.json +116 -0
  37. package/src/editor/i18n/es/shell.json +181 -0
  38. package/src/editor/i18n/es/system.json +14 -0
  39. package/src/editor/i18n/es/validation.json +82 -0
  40. package/src/editor/i18n/format.ts +26 -0
  41. package/src/editor/i18n/fr/connection.json +136 -0
  42. package/src/editor/i18n/fr/defaults.json +6 -0
  43. package/src/editor/i18n/fr/fields.json +130 -0
  44. package/src/editor/i18n/fr/local.json +49 -0
  45. package/src/editor/i18n/fr/media.json +166 -0
  46. package/src/editor/i18n/fr/richtext.json +116 -0
  47. package/src/editor/i18n/fr/shell.json +181 -0
  48. package/src/editor/i18n/fr/system.json +14 -0
  49. package/src/editor/i18n/fr/validation.json +82 -0
  50. package/src/editor/i18n/index.ts +18 -0
  51. package/src/editor/i18n/it/connection.json +136 -0
  52. package/src/editor/i18n/it/defaults.json +6 -0
  53. package/src/editor/i18n/it/fields.json +130 -0
  54. package/src/editor/i18n/it/local.json +49 -0
  55. package/src/editor/i18n/it/media.json +166 -0
  56. package/src/editor/i18n/it/richtext.json +116 -0
  57. package/src/editor/i18n/it/shell.json +181 -0
  58. package/src/editor/i18n/it/system.json +14 -0
  59. package/src/editor/i18n/it/validation.json +82 -0
  60. package/src/editor/i18n/ja/connection.json +136 -0
  61. package/src/editor/i18n/ja/defaults.json +6 -0
  62. package/src/editor/i18n/ja/fields.json +130 -0
  63. package/src/editor/i18n/ja/local.json +49 -0
  64. package/src/editor/i18n/ja/media.json +166 -0
  65. package/src/editor/i18n/ja/richtext.json +116 -0
  66. package/src/editor/i18n/ja/shell.json +181 -0
  67. package/src/editor/i18n/ja/system.json +14 -0
  68. package/src/editor/i18n/ja/validation.json +82 -0
  69. package/src/editor/i18n/locales.ts +13 -0
  70. package/src/editor/i18n/nl/connection.json +136 -0
  71. package/src/editor/i18n/nl/defaults.json +6 -0
  72. package/src/editor/i18n/nl/fields.json +130 -0
  73. package/src/editor/i18n/nl/local.json +49 -0
  74. package/src/editor/i18n/nl/media.json +166 -0
  75. package/src/editor/i18n/nl/richtext.json +116 -0
  76. package/src/editor/i18n/nl/shell.json +181 -0
  77. package/src/editor/i18n/nl/system.json +14 -0
  78. package/src/editor/i18n/nl/validation.json +82 -0
  79. package/src/editor/i18n/ru/connection.json +138 -0
  80. package/src/editor/i18n/ru/defaults.json +6 -0
  81. package/src/editor/i18n/ru/fields.json +132 -0
  82. package/src/editor/i18n/ru/local.json +49 -0
  83. package/src/editor/i18n/ru/media.json +166 -0
  84. package/src/editor/i18n/ru/richtext.json +116 -0
  85. package/src/editor/i18n/ru/shell.json +181 -0
  86. package/src/editor/i18n/ru/system.json +14 -0
  87. package/src/editor/i18n/ru/validation.json +82 -0
  88. package/src/editor/i18n/server.ts +13 -0
  89. package/src/editor/i18n/zh/connection.json +136 -0
  90. package/src/editor/i18n/zh/defaults.json +6 -0
  91. package/src/editor/i18n/zh/fields.json +130 -0
  92. package/src/editor/i18n/zh/local.json +49 -0
  93. package/src/editor/i18n/zh/media.json +166 -0
  94. package/src/editor/i18n/zh/richtext.json +116 -0
  95. package/src/editor/i18n/zh/shell.json +181 -0
  96. package/src/editor/i18n/zh/system.json +14 -0
  97. package/src/editor/i18n/zh/validation.json +82 -0
  98. package/src/editor/lib/ActionDialog.svelte +5 -4
  99. package/src/editor/lib/BlockEditor.svelte +305 -88
  100. package/src/editor/lib/CollectionPanel.svelte +17 -15
  101. package/src/editor/lib/DatePicker.svelte +15 -12
  102. package/src/editor/lib/ExtensionMount.svelte +12 -0
  103. package/src/editor/lib/Field.svelte +3 -2
  104. package/src/editor/lib/ImagePicker.svelte +82 -81
  105. package/src/editor/lib/MarkdownEditor.svelte +25 -24
  106. package/src/editor/lib/MediaPicker.svelte +6 -5
  107. package/src/editor/lib/MenuEditor.svelte +31 -30
  108. package/src/editor/lib/PreviewFrame.svelte +11 -6
  109. package/src/editor/lib/PropertiesTabs.svelte +3 -2
  110. package/src/editor/lib/PublishDialog.svelte +15 -14
  111. package/src/editor/lib/ReferenceSelect.svelte +3 -2
  112. package/src/editor/lib/SchemaField.svelte +15 -13
  113. package/src/editor/lib/SchemaPanel.svelte +20 -19
  114. package/src/editor/lib/Select.svelte +3 -2
  115. package/src/editor/lib/SeoGuidance.svelte +6 -5
  116. package/src/editor/lib/Settings.svelte +54 -54
  117. package/src/editor/lib/Shortcuts.svelte +7 -6
  118. package/src/editor/lib/SitePreview.svelte +10 -9
  119. package/src/editor/lib/TopBar.svelte +18 -17
  120. package/src/editor/lib/UnsavedChanges.svelte +7 -6
  121. package/src/editor/lib/VisualEditor.svelte +14 -13
  122. package/src/editor/lib/calendar.ts +10 -4
  123. package/src/editor/lib/embed-preview.ts +23 -5
  124. package/src/editor/lib/extension-preview.ts +121 -0
  125. package/src/editor/lib/github-auth.ts +23 -22
  126. package/src/editor/lib/github-backend.ts +96 -91
  127. package/src/editor/lib/images.ts +33 -31
  128. package/src/editor/lib/menu-tree.ts +5 -4
  129. package/src/editor/lib/preview-frame.ts +4 -3
  130. package/src/editor/lib/schema-edit.ts +3 -2
  131. package/src/editor/lib/settings.ts +5 -3
  132. package/src/editor/lib/slash-command.ts +1 -0
  133. package/src/editor/lib/tooltip.ts +1 -1
  134. package/src/editor/main.ts +9 -0
  135. package/src/editor/styles.css +6 -3
  136. package/src/env.d.ts +11 -1
  137. package/src/extensions.ts +160 -0
  138. package/src/manifest/collections.ts +6 -5
  139. package/src/manifest/menu.ts +12 -10
  140. package/src/manifest/navigation.ts +9 -8
  141. package/src/manifest/references.ts +8 -7
  142. package/src/manifest/seo.ts +4 -3
  143. package/src/manifest/types.ts +1 -0
  144. package/src/preview.ts +22 -2
  145. package/src/routes/local-api.ts +5 -3
  146. package/src/routes/local-documents.ts +20 -16
  147. package/src/routes/local-media.ts +21 -16
  148. package/src/routes/local-menu.ts +9 -7
  149. package/src/routes/local-post.ts +18 -12
  150. package/src/routes/media-files.ts +10 -8
  151. package/src/routes/rigel-page.astro +2 -1
  152. package/src/schema/store.ts +22 -20
  153. package/src/schema/types.ts +1 -0
  154. package/src/schema/validate.ts +73 -69
  155. package/src/slugs.ts +11 -10
  156. package/src/vite/manifest-plugin.ts +33 -1
@@ -0,0 +1,130 @@
1
+ {
2
+ "fields.remove": "Verwijderen",
3
+ "fields.addItem": "Item toevoegen",
4
+ "fields.colorPicker": "Kleurkiezer voor {label}",
5
+ "fields.colorHexValue": "Hexwaarde voor {label}",
6
+ "fields.hideValue": "{label} verbergen",
7
+ "fields.showValue": "{label} tonen",
8
+ "fields.choose": "Kiezen…",
9
+ "fields.itemNumber": "Item {number}",
10
+ "fields.moveItemUp": "Item {number} van {label} omhoog verplaatsen",
11
+ "fields.moveItemDown": "Item {number} van {label} omlaag verplaatsen",
12
+ "fields.duplicateItem": "Item {number} van {label} dupliceren",
13
+ "fields.removeItem": "Item {number} van {label} verwijderen",
14
+ "fields.itemLabel": "{label}, item {number}",
15
+ "fields.moveUp": "Omhoog verplaatsen",
16
+ "fields.moveDown": "Omlaag verplaatsen",
17
+ "fields.duplicate": "Dupliceren",
18
+ "fields.selectLabel": "{label} selecteren…",
19
+ "fields.unavailableReference": "Niet beschikbaar ({id})",
20
+ "fields.noEntries": "Er zijn nog geen vermeldingen gedefinieerd.",
21
+ "fields.properties": "Eigenschappen",
22
+ "fields.content": "Inhoud",
23
+ "fields.seo": "SEO",
24
+ "fields.selectOptions": "Opties selecteren…",
25
+ "fields.noOptions": "Geen opties beschikbaar.",
26
+ "fields.demoContentNotice": "Voorbeeldvelden om te testen. Deze waarden staan los van je website-instellingen.",
27
+ "fields.sharedContentNotice": "Gedeelde inhoud. Wijzigingen verschijnen op elke pagina die hiernaar verwijst.",
28
+ "fields.pageProperties": "Pagina-eigenschappen",
29
+ "fields.urlSlug": "URL-slug",
30
+ "fields.documentSlugHint": "Wijzigt de URL, niet de document-ID of bestandsnaam. De websiteroute moet de slugmetadata gebruiken.",
31
+ "fields.newPageNotice": "Nieuwe pagina. Opslaan schrijft het JSON-bestand weg. De route is beschikbaar zodra de website het bestand heeft.",
32
+ "fields.structure": "Structuur",
33
+ "fields.moveSectionUp": "{label} omhoog verplaatsen",
34
+ "fields.moveSectionDown": "{label} omlaag verplaatsen",
35
+ "fields.duplicateSection": "{label} dupliceren",
36
+ "fields.removeSection": "{label} verwijderen",
37
+ "fields.sectionTypeToAdd": "Type sectie om toe te voegen",
38
+ "fields.chooseSection": "Een sectie kiezen…",
39
+ "fields.addSection": "Sectie toevoegen",
40
+ "fields.pendingSections.one": "{count} nieuwe sectie verschijnt na het opslaan.",
41
+ "fields.pendingSections.other": "{count} nieuwe secties verschijnen na het opslaan.",
42
+ "fields.sectionProperties": "Sectie-eigenschappen",
43
+ "fields.editReference": "{label} bewerken ↗",
44
+ "fields.articleDetails": "Artikeldetails",
45
+ "fields.collectionSlugHint": "Wijzigt de URL, niet de bestandsnaam van de inhoud. De websiteroute moet de slugmetadata gebruiken.",
46
+ "fields.commaSeparatedLabel": "{label} (door komma's gescheiden)",
47
+ "fields.editArticleBody": "Artikeltekst in het voorbeeld bewerken",
48
+ "fields.loadingPreview": "Voorbeeld laden…",
49
+ "fields.editArticleBodyHint": "Klik op de artikeltekst in het voorbeeld om deze te bewerken. Wijzigingen in de inhoud moeten worden opgeslagen.",
50
+ "fields.seoNotSet": "Niet ingesteld",
51
+ "fields.seoTooShort": "Te kort",
52
+ "fields.seoTooLong": "Te lang",
53
+ "fields.seoRecommendedLength": "Aanbevolen lengte",
54
+ "fields.seoTitleLength": "Lengte van de SEO-titel",
55
+ "fields.seoDescriptionLength": "Lengte van de SEO-beschrijving",
56
+ "fields.seoLengthDetails": "{count} tekens. {status}. Aanbevolen: {min} tot {max}.",
57
+ "fields.seoRecommendedCharacters": "Aanbevolen: {min}–{max} tekens.",
58
+ "fields.seoRecommendedImageSize": "Aanbevolen afmetingen: 1200 × 628 px.",
59
+ "fields.section": "Sectie",
60
+ "fields.menuItemNotFound": "Menu-item niet gevonden",
61
+ "fields.menuMoveIntoSelf": "Een item kan niet naar zichzelf of een van zijn onderliggende items worden verplaatst",
62
+ "fields.menuDropTargetMissing": "De doellocatie bestaat niet meer",
63
+ "fields.menuMoveDepthLimit": "Deze verplaatsing overschrijdt de limiet van {maxDepth} niveaus",
64
+ "fields.menuItemMoved": "Menu-item verplaatst",
65
+ "fields.menuCannotMoveItem": "Kan item niet verplaatsen",
66
+ "fields.menuMaximumLevels": "Maximaal {maxDepth} niveaus",
67
+ "fields.menuNewItem": "Nieuw item",
68
+ "fields.menuItemAdded": "Menu-item toegevoegd",
69
+ "fields.menuMoveCancelled": "Verplaatsing geannuleerd",
70
+ "fields.menuItems": "Menu-items",
71
+ "fields.menuPath": "Menupad",
72
+ "fields.menuUntitledItem": "Item zonder titel",
73
+ "fields.menuItemDetails": "Details van {label}",
74
+ "fields.menuItemActions": "Acties voor {label}",
75
+ "fields.menuUp": "Omhoog",
76
+ "fields.menuDown": "Omlaag",
77
+ "fields.menuIndent": "Inspringen",
78
+ "fields.menuOutdent": "Uitspringen",
79
+ "fields.menuLabel": "Label",
80
+ "fields.menuLabelFor": "Label voor {id}",
81
+ "fields.menuUrl": "URL",
82
+ "fields.menuUrlFor": "URL voor {id}",
83
+ "fields.menuUrlPlaceholder": "/about of https://example.com",
84
+ "fields.menuOpenInNewTab": "Openen in nieuw tabblad",
85
+ "fields.menuGroupItems": "Items",
86
+ "fields.menuDragItem": "{label} verslepen",
87
+ "fields.menuOpenItem": "{label} openen",
88
+ "fields.menuEmptyGroup": "Geen items in deze groep.",
89
+ "fields.menuEmpty": "Nog geen menu-items.",
90
+ "fields.menuAddChild": "Onderliggend item toevoegen",
91
+ "fields.menuMaximumLevelsHint": "Maximaal {maxDepth} niveaus.",
92
+ "fields.menuRemoveTitle": "‘{label}’ verwijderen?",
93
+ "fields.menuRemoveDescription": "Hiermee verwijder je het item en alle onderliggende items uit het concept. Klik op Opslaan om de wijziging definitief op te slaan.",
94
+ "fields.menuItemRemoved": "Menu-item verwijderd",
95
+ "fields.calendarHeading": "{month} {year}",
96
+ "fields.chooseDate": "Datum kiezen…",
97
+ "fields.calendarFor": "Kalender voor {label}",
98
+ "fields.previousMonth": "Vorige maand",
99
+ "fields.calendarMonth": "Kalendermaand",
100
+ "fields.calendarYear": "Kalenderjaar",
101
+ "fields.nextMonth": "Volgende maand",
102
+ "fields.today": "Vandaag",
103
+ "fields.clear": "Wissen",
104
+ "fields.month.january": "januari",
105
+ "fields.month.february": "februari",
106
+ "fields.month.march": "maart",
107
+ "fields.month.april": "april",
108
+ "fields.month.may": "mei",
109
+ "fields.month.june": "juni",
110
+ "fields.month.july": "juli",
111
+ "fields.month.august": "augustus",
112
+ "fields.month.september": "september",
113
+ "fields.month.october": "oktober",
114
+ "fields.month.november": "november",
115
+ "fields.month.december": "december",
116
+ "fields.weekday.sunday": "zondag",
117
+ "fields.weekday.monday": "maandag",
118
+ "fields.weekday.tuesday": "dinsdag",
119
+ "fields.weekday.wednesday": "woensdag",
120
+ "fields.weekday.thursday": "donderdag",
121
+ "fields.weekday.friday": "vrijdag",
122
+ "fields.weekday.saturday": "zaterdag",
123
+ "fields.weekdayShort.sunday": "zo",
124
+ "fields.weekdayShort.monday": "ma",
125
+ "fields.weekdayShort.tuesday": "di",
126
+ "fields.weekdayShort.wednesday": "wo",
127
+ "fields.weekdayShort.thursday": "do",
128
+ "fields.weekdayShort.friday": "vr",
129
+ "fields.weekdayShort.saturday": "za"
130
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "local.documentTooLarge": "Het document overschrijdt de limiet van 1 MiB",
3
+ "local.dataRequired": "De aanvraaginhoud moet een data-object bevatten",
4
+ "local.unknownDocument": "Onbekend document",
5
+ "local.readDocumentFailed": "Het document kon niet worden gelezen",
6
+ "local.documentDeveloperOnly": "Documenten worden aangemaakt en verwijderd door de ontwikkelaar van de site",
7
+ "local.unknownDocumentTarget": "Onbekend documenttype of onbekende slug",
8
+ "local.saveDocumentFailed": "Het document kon niet worden opgeslagen",
9
+ "local.unknownCollectionSlug": "Onbekende collectie of slug",
10
+ "local.invalidArticle": "Ongeldig artikel",
11
+ "local.postExists": "Er bestaat al een bericht met deze slug. Laad de collectie opnieuw en maak het concept opnieuw aan.",
12
+ "local.postNotFound": "Dit bericht bestaat niet",
13
+ "local.invalidMenuSlug": "Ongeldige menuslug",
14
+ "local.menuDeveloperOnly": "Menu's worden gedefinieerd door de ontwikkelaar van de site. Alleen bestaande menu's kunnen worden bewerkt.",
15
+ "local.menuSlugMismatch": "De menuslug moet overeenkomen met de slug van de aanvraag",
16
+ "local.menuNotFound": "Dit menu bestaat niet",
17
+ "local.notFound": "Niet gevonden",
18
+ "local.unsupportedMedia": "Niet-ondersteund mediatype of mediatype dat niet bij de bestandsnaam past",
19
+ "local.mediaTooLarge": "Het mediabestand is groter dan {limit} MB",
20
+ "local.emptyMedia": "De aanvraaginhoud bevat geen mediagegevens",
21
+ "local.readImageFailed": "De afbeeldingsgegevens konden niet worden gelezen",
22
+ "local.emptyImage": "De aanvraaginhoud bevat geen afbeeldingsgegevens",
23
+ "local.mediaBytesMismatch": "Het mediatype komt niet overeen met de bytes van het bestand",
24
+ "local.saveImageFailed": "De afbeelding kon niet worden opgeslagen",
25
+ "local.saveMetadataFailed": "De metadata konden niet worden opgeslagen",
26
+ "local.mediaUrlRequired": "Een media-URL is vereist",
27
+ "local.fileNotFound": "Bestand niet gevonden",
28
+ "local.deleteFileFailed": "Het bestand kon niet worden verwijderd. Probeer het opnieuw.",
29
+ "local.missingSlug": "Slug ontbreekt",
30
+ "local.copyNotFound": "Geen copy-module voor {slug}",
31
+ "local.copyValuesNotFound": "Het values-blok in {slug}.ts kon niet worden gevonden",
32
+ "local.unknownDocumentType": "Onbekend documenttype {type}",
33
+ "local.creatingDisabled": "Items aanmaken is uitgeschakeld voor dit documenttype",
34
+ "local.invalidDocumentSlug": "Ongeldige documentslug",
35
+ "local.documentObjectRequired": "Het document moet een object zijn",
36
+ "local.documentExists": "Er bestaat al een document met deze slug",
37
+ "local.documentNotFound": "Dit document bestaat niet",
38
+ "local.writeDocumentFailed": "Het document kon niet worden weggeschreven",
39
+ "local.invalidMetadataBody": "Ongeldige aanvraaginhoud",
40
+ "local.unknownMetadataField": "Onbekend metadataveld",
41
+ "local.unknownAsset": "Onbekend bestand",
42
+ "local.invalidDisplayName": "Ongeldige weergavenaam",
43
+ "local.metadataTitleString": "De titel moet een tekenreeks zijn",
44
+ "local.metadataDescriptionString": "De beschrijving moet een tekenreeks zijn",
45
+ "local.metadataAltString": "De alternatieve tekst moet een tekenreeks zijn",
46
+ "local.metadataAltImagesOnly": "Alternatieve tekst is alleen beschikbaar voor afbeeldingen",
47
+ "local.mediaDirectoryUnavailable": "De mediamap is niet beschikbaar",
48
+ "local.menuStorageUnavailable": "Het menu kon niet worden geopend: de opgeslagen gegevens zijn ongeldig of de opslag is onveilig of niet beschikbaar."
49
+ }
@@ -0,0 +1,166 @@
1
+ {
2
+ "media.insertMedia": "Media invoegen",
3
+ "media.image": "Afbeelding",
4
+ "media.video": "Video",
5
+ "media.insertImage": "Afbeelding invoegen",
6
+ "media.metadataSaveFailedStatus": "Metadata opslaan mislukt ({status})",
7
+ "media.metadataSaved": "Metadata opgeslagen.",
8
+ "media.metadataSaveFailed": "Metadata opslaan mislukt",
9
+ "media.deleteFailed": "Het bestand kon niet worden verwijderd ({status}). Probeer het opnieuw.",
10
+ "media.fileDeleted": "Bestand verwijderd.",
11
+ "media.listingUnavailable": "Het mediaoverzicht is niet beschikbaar. Start de lokale ontwikkelserver of bouw de site opnieuw.",
12
+ "media.enterVideoUrl": "Voer een video-URL in die begint met https:// of /",
13
+ "media.enterImageUrl": "Voer een afbeeldings-URL in die begint met https:// of /",
14
+ "media.chooseVideoUrl": "Kies een URL van een MP4-, WebM- of MOV-video.",
15
+ "media.chooseImageUrl": "Kies een afbeeldings-URL, niet een URL van een document of ander mediabestand.",
16
+ "media.searchFailed": "Zoeken mislukt",
17
+ "media.pasteVideoUrl": "Plak een video-URL van {provider}.",
18
+ "media.unsafeMediaUrl": "Onveilige media-URL",
19
+ "media.uploadedMetadataFailed": "Het bestand is geüpload, maar de metadata konden niet worden opgeslagen ({status}). Probeer het opnieuw om de import te voltooien.",
20
+ "media.availableInLibrary": "De media zijn beschikbaar in de mediabibliotheek van de repository.",
21
+ "media.photoImportFailed": "Foto importeren mislukt",
22
+ "media.chooseSupportedFile": "Kies een ondersteund bestand van maximaal {limit} MB met een veilige bestandsnaam.",
23
+ "media.chooseSupportedVideo": "Kies een ondersteunde video van maximaal {limit} MB met een veilige bestandsnaam.",
24
+ "media.chooseSupportedImage": "Kies een ondersteunde afbeelding van maximaal {limit} MB met een veilige bestandsnaam.",
25
+ "media.heading": "Media",
26
+ "media.upload": "Uploaden",
27
+ "media.noImage": "Geen afbeelding",
28
+ "media.choose": "Kiezen…",
29
+ "media.removeImage": "Afbeelding verwijderen",
30
+ "media.repositoryWritable": "Repositorymedia: public/{folder}. Bij bevestiging van een upload worden de bestanden direct weggeschreven; inhoud moet nog steeds via Opslaan worden opgeslagen.",
31
+ "media.repositorySnapshot": "Repositorymedia: public/{folder}. Momentopname van de build. Uploads en het importeren van stockfoto's vereisen de lokale ontwikkelserver; GitHub-uploads zijn niet aangesloten.",
32
+ "media.view": "Mediaweergave",
33
+ "media.gridView": "Rasterweergave",
34
+ "media.listView": "Lijstweergave",
35
+ "media.type": "Mediatype",
36
+ "media.videoFormat": "Videoformaat",
37
+ "media.imageFormat": "Afbeeldingsformaat",
38
+ "media.allItems": "Alle media",
39
+ "media.allVideos": "Alle video's",
40
+ "media.allImages": "Alle afbeeldingen",
41
+ "media.category.Images": "Afbeeldingen",
42
+ "media.category.Audio": "Audio",
43
+ "media.category.Video": "Video",
44
+ "media.category.Documents": "Documenten",
45
+ "media.category.Spreadsheets": "Spreadsheets",
46
+ "media.category.Archives": "Archieven",
47
+ "media.category.Other": "Overige",
48
+ "media.modifiedMonth": "Wijzigingsmaand",
49
+ "media.modifiedMonthHint": "Maand van wijziging in het bestandssysteem (UTC), niet de uploaddatum",
50
+ "media.allModifiedDates": "Alle wijzigingsdatums",
51
+ "media.refresh": "Vernieuwen",
52
+ "media.resetFilters": "Filters herstellen",
53
+ "media.searchMedia": "Media zoeken",
54
+ "media.searchMediaPlaceholder": "Media zoeken…",
55
+ "media.fileExtension": "BESTAND",
56
+ "media.library": "Mediabibliotheek",
57
+ "media.file": "Bestand",
58
+ "media.fileType": "Type",
59
+ "media.size": "Grootte",
60
+ "media.modifiedUtc": "Gewijzigd (UTC)",
61
+ "media.loading": "Media laden…",
62
+ "media.noMatches": "Geen media voldoen aan deze filters.",
63
+ "media.emptyFolder": "Deze map bevat nog geen media.",
64
+ "media.editVideo": "Video bewerken",
65
+ "media.addVideoLink": "Videolink toevoegen",
66
+ "media.uploadMedia": "Media uploaden",
67
+ "media.chooseVideo": "Video kiezen",
68
+ "media.chooseImage": "Afbeelding kiezen",
69
+ "media.editProviderVideo": "Video van {provider} bewerken",
70
+ "media.addProviderVideo": "Video van {provider} toevoegen",
71
+ "media.previewMedia": "Mediavoorbeeld",
72
+ "media.close": "Sluiten",
73
+ "media.pdfPreview": "PDF-voorbeeld",
74
+ "media.textPreview": "Tekstvoorbeeld",
75
+ "media.selectedImagePreview": "Voorbeeld van de geselecteerde afbeelding",
76
+ "media.displayName": "Weergavenaam",
77
+ "media.mediaDisplayName": "Weergavenaam van media",
78
+ "media.decorativeAlt": "Alternatieve tekst (leeg laten bij decoratieve afbeeldingen)",
79
+ "media.imageAlt": "Alternatieve tekst van de afbeelding",
80
+ "media.alt": "Alternatieve tekst",
81
+ "media.mediaAlt": "Alternatieve tekst van media",
82
+ "media.title": "Titel",
83
+ "media.imageTitle": "Afbeeldingstitel",
84
+ "media.mediaTitle": "Mediatitel",
85
+ "media.description": "Beschrijving",
86
+ "media.imageDescription": "Afbeeldingsbeschrijving",
87
+ "media.mediaDescription": "Mediabeschrijving",
88
+ "media.author": "Auteur: {author}",
89
+ "media.localUser": "Lokale gebruiker",
90
+ "media.videoUrl": "Video-URL",
91
+ "media.imageUrl": "Afbeeldings-URL",
92
+ "media.captionOptional": "Bijschrift (optioneel)",
93
+ "media.descriptiveAlt": "Alternatieve tekst (beschrijf de afbeelding; leeg laten bij decoratieve afbeeldingen)",
94
+ "media.videoCaption": "Videobijschrift",
95
+ "media.muted": "Gedempt",
96
+ "media.showControls": "Bedieningselementen tonen",
97
+ "media.confirmUpload": "Bij bevestiging wordt dit bestand geüpload naar de mediamap van de repository. Inhoud moet nog steeds via Opslaan worden opgeslagen.",
98
+ "media.confirmDownload": "Bij bevestiging wordt dit bestand gedownload naar de mediamap van de repository. Inhoud moet nog steeds via Opslaan worden opgeslagen.",
99
+ "media.downloadFile": "Bestand downloaden",
100
+ "media.deleteFile": "Bestand verwijderen",
101
+ "media.filePath": "Pad naar mediabestand",
102
+ "media.cancel": "Annuleren",
103
+ "media.saving": "Opslaan…",
104
+ "media.save": "Opslaan",
105
+ "media.back": "Terug",
106
+ "media.done": "Gereed",
107
+ "media.uploadingVideo": "Video uploaden…",
108
+ "media.importingPhoto": "Foto importeren…",
109
+ "media.useVideo": "Video gebruiken",
110
+ "media.uploadFile": "Bestand uploaden",
111
+ "media.importImage": "Afbeelding importeren",
112
+ "media.videoSources": "Videobronnen",
113
+ "media.imageSources": "Afbeeldingsbronnen",
114
+ "media.source.library": "bibliotheek",
115
+ "media.source.upload": "uploaden",
116
+ "media.source.url": "url",
117
+ "media.unsplashUploadsHint": "Foto's uit de Unsplash API moeten via hotlinking worden ingesloten. Ze kunnen alleen als afbeelding in inhoud worden ingevoegd, niet naar de repository worden geüpload.",
118
+ "media.providerLinkHint": "Plak een link van {provider}. De modus voor verbeterde privacy is standaard ingeschakeld.",
119
+ "media.accessibleTitle": "Titel voor toegankelijkheid (optioneel)",
120
+ "media.privacyEnhanced": "Verbeterde privacy (geen cookies tot het afspelen)",
121
+ "media.updateVideo": "Video bijwerken",
122
+ "media.insert": "Invoegen",
123
+ "media.localFileHint": "Kies een lokaal bestand, bekijk het voorbeeld en bevestig je keuze. Er wordt niets geüpload voordat je bevestigt.",
124
+ "media.uploadVideoLimit": "Video uploaden (MP4, WebM, MOV) · maximaal {limit} MB",
125
+ "media.uploadMediaLimit": "Media uploaden (afbeeldingen, audio, video, documenten, spreadsheets, archieven) · maximaal {limit} MB",
126
+ "media.uploadImageLimit": "Afbeelding uploaden (JPEG, PNG, WebP, GIF, AVIF) · maximaal {limit} MB",
127
+ "media.readOnlyUploads": "Lokale uploads vereisen de lokale ontwikkelserver. Deze bibliotheek is alleen-lezen.",
128
+ "media.videoUrlPlaceholder": "https://… of /media/video.mp4",
129
+ "media.imageUrlPlaceholder": "https://… of /images/photo.jpg",
130
+ "media.useUrl": "Deze URL gebruiken",
131
+ "media.picsumHint": "Voorbeeldfoto's van Lorem Picsum (seed, geen semantische zoekfunctie).",
132
+ "media.unsplashHint": "Unsplash-foto's blijven gekoppeld aan Unsplash; bij selectie wordt een download geregistreerd.",
133
+ "media.stockImportHint": "Importeer geselecteerde foto's naar de mediamap (alleen met de lokale ontwikkelserver).",
134
+ "media.searchPhotos": "Foto's zoeken",
135
+ "media.searchPhotosPlaceholder": "Foto's zoeken…",
136
+ "media.search": "Zoeken",
137
+ "media.noPhotos": "Geen foto's gevonden. Probeer een andere zoekopdracht.",
138
+ "media.deleteTitle": "‘{name}’ verwijderen?",
139
+ "media.deleteDescription": "Hiermee worden het bestand en de bijbehorende metadata definitief verwijderd. Dit kan niet ongedaan worden gemaakt. Op alle pagina's die dit bestand gebruiken, werken de bijbehorende media of links daarna niet meer.",
140
+ "media.pexelsKeyPlaceholder": "bijv. Ab3dE6fG9hJ2…",
141
+ "media.pixabayKeyPlaceholder": "bijv. 12345678-abcdef012345…",
142
+ "media.unsplashKeyPlaceholder": "bijv. AbCdEf12_GhIjKl34…",
143
+ "media.providerStatus": "{provider} {status}",
144
+ "media.pixabayKeyRequired": "Voeg een Pixabay-API-sleutel toe via Instellingen → Media",
145
+ "media.unsplashKeyRequired": "Voeg een Unsplash-API-sleutel toe via Instellingen",
146
+ "media.pexelsKeyRequired": "Voeg een Pexels-API-sleutel toe via Instellingen → Media",
147
+ "media.unknownStockProvider": "Onbekende provider van stockfoto's",
148
+ "media.unexpectedStockUrl": "Onverwachte stockfoto-URL",
149
+ "media.unsplashPhotoMissing": "De Unsplash-foto of API-sleutel ontbreekt",
150
+ "media.unsplashTrackingFailed": "Unsplash-downloadregistratie mislukt ({status})",
151
+ "media.unsafeImageUrl": "Onveilige afbeeldings-URL",
152
+ "media.remoteRequiresHttps": "Importeren uit externe bronnen vereist HTTPS",
153
+ "media.unsplashHotlinkRequired": "Afbeeldingen uit de Unsplash API moeten via hotlinking ingesloten blijven. Gebruik Unsplash in de afbeeldingskiezer voor inhoud.",
154
+ "media.imageDownloadFailed": "De afbeelding kon niet worden gedownload. De bron moet downloads via de browser toestaan (CORS); je kunt ook het afbeeldingsbestand uploaden.",
155
+ "media.photoDownloadFailed": "Foto downloaden mislukt ({status})",
156
+ "media.photoLimitExceeded": "De foto overschrijdt de importlimiet van {limit} MB",
157
+ "media.chooseImageFormat": "Kies een JPEG-, PNG- of WebP-afbeelding.",
158
+ "media.emptyDownload": "De gedownloade afbeelding is leeg",
159
+ "media.uploadFailed": "Uploaden mislukt ({status}): {body}",
160
+ "media.invalidUploadedUrl": "Ongeldige URL van het geüploade bestand",
161
+ "media.localImportRequired": "Foto's importeren vereist de lokale ontwikkelserver",
162
+ "media.photoImportFailedStatus": "Foto importeren mislukt ({status})",
163
+ "media.invalidImportedUrl": "Ongeldige URL van de geïmporteerde foto",
164
+ "media.providerVideo": "Video van {provider}",
165
+ "media.embedCaption": "{provider} · {title}"
166
+ }
@@ -0,0 +1,116 @@
1
+ {
2
+ "richtext.bold": "Vet",
3
+ "richtext.italic": "Cursief",
4
+ "richtext.inlineCode": "Inlinecode",
5
+ "richtext.strikethrough": "Doorhalen",
6
+ "richtext.underline": "Onderstrepen",
7
+ "richtext.highlight": "Markeren",
8
+ "richtext.subscript": "Subscript",
9
+ "richtext.superscript": "Superscript",
10
+ "richtext.video": "Video",
11
+ "richtext.youtube": "YouTube",
12
+ "richtext.vimeo": "Vimeo",
13
+ "richtext.body": "Inhoud",
14
+ "richtext.loadArticleError": "Artikel kan niet worden geladen",
15
+ "richtext.safeUrlError": "Voer een veilige http-, https-, mailto- of relatieve URL in.",
16
+ "richtext.link": "Link",
17
+ "richtext.moreFormatting": "Meer opmaak",
18
+ "richtext.tableControls": "Tabelbediening",
19
+ "richtext.addRowBelow": "Rij eronder toevoegen",
20
+ "richtext.addColumnRight": "Kolom rechts toevoegen",
21
+ "richtext.removeRow": "Rij verwijderen",
22
+ "richtext.removeColumn": "Kolom verwijderen",
23
+ "richtext.headerRow": "Koprij",
24
+ "richtext.imageEditing": "Afbeelding bewerken",
25
+ "richtext.bodyFormatting": "Inhoud opmaken",
26
+ "richtext.editAltText": "Alternatieve tekst bewerken",
27
+ "richtext.editImageLink": "Afbeeldingslink bewerken",
28
+ "richtext.addImageLink": "Afbeeldingslink toevoegen",
29
+ "richtext.blockType": "Bloktype",
30
+ "richtext.replaceImage": "Afbeelding vervangen",
31
+ "richtext.insertMedia": "Media invoegen",
32
+ "richtext.table": "Tabel",
33
+ "richtext.bulletedList": "Opsomming",
34
+ "richtext.numberedList": "Genummerde lijst",
35
+ "richtext.undo": "Ongedaan maken",
36
+ "richtext.redo": "Opnieuw uitvoeren",
37
+ "richtext.addBlock": "Blok toevoegen",
38
+ "richtext.moreActions": "Meer acties",
39
+ "richtext.viewAsMarkdown": "Als Markdown weergeven",
40
+ "richtext.editLink": "Link bewerken",
41
+ "richtext.linkUrl": "Link-URL",
42
+ "richtext.applyLink": "Link toepassen",
43
+ "richtext.removeLink": "Link verwijderen",
44
+ "richtext.closeLink": "Linkbewerking sluiten",
45
+ "richtext.editImageAltText": "Alternatieve tekst van afbeelding bewerken",
46
+ "richtext.decorativeAltText": "Alternatieve tekst (leeg laten bij decoratieve afbeeldingen)",
47
+ "richtext.imageAltText": "Alternatieve tekst van afbeelding",
48
+ "richtext.applyAltText": "Alternatieve tekst toepassen",
49
+ "richtext.closeAltText": "Bewerking alternatieve tekst sluiten",
50
+ "richtext.selectedTextFormatting": "Opmaak van geselecteerde tekst",
51
+ "richtext.closeMarkdownView": "Markdown-weergave sluiten",
52
+ "richtext.bodyAsMarkdown": "Inhoud als Markdown",
53
+ "richtext.articleBlocks": "Artikelblokken",
54
+ "richtext.insertParagraphHere": "Hier alinea invoegen",
55
+ "richtext.insertParagraph": "Alinea invoegen",
56
+ "richtext.blockOptionsHandle": "Blokopties en sleepgreep",
57
+ "richtext.dragBlockHint": "Sleep om de volgorde te wijzigen; klik voor blokopties",
58
+ "richtext.insertBlock": "Blok invoegen",
59
+ "richtext.chooseBlock": "Kies een blok",
60
+ "richtext.findBlock": "Blok zoeken",
61
+ "richtext.findBlockPlaceholder": "Blok zoeken…",
62
+ "richtext.noMatchingBlocks": "Geen overeenkomende blokken.",
63
+ "richtext.addTable": "Tabel toevoegen",
64
+ "richtext.blockOptions": "Blokopties",
65
+ "richtext.duplicateBlock": "Blok dupliceren",
66
+ "richtext.deleteBlock": "Blok verwijderen",
67
+ "richtext.moveUp": "Omhoog verplaatsen",
68
+ "richtext.moveDown": "Omlaag verplaatsen",
69
+ "richtext.convertBlockType": "Bloktype wijzigen",
70
+ "richtext.code": "Code",
71
+ "richtext.bulletList": "Opsomming",
72
+ "richtext.quote": "Citaat",
73
+ "richtext.unsupportedMarkdown": "Deze Markdown bevat opmaak die de visuele editor niet veilig kan behouden. Bewerk hieronder de oorspronkelijke bron; er is niets omgezet.",
74
+ "richtext.visual": "Visueel",
75
+ "richtext.markdown": "Markdown",
76
+ "richtext.textStyle": "Tekststijl",
77
+ "richtext.paragraph": "Alinea",
78
+ "richtext.codeBlock": "Codeblok",
79
+ "richtext.textFormatting": "Tekstopmaak",
80
+ "richtext.listsAndQuote": "Lijsten en citaat",
81
+ "richtext.image": "Afbeelding",
82
+ "richtext.divider": "Scheidingslijn",
83
+ "richtext.pageLoadError": "De pagina kan niet in het voorbeeld worden geladen.",
84
+ "richtext.liveEditingUnavailable": "Deze pagina is niet ingesteld voor live bewerken. Wijzigingen verschijnen niet in dit voorbeeld.",
85
+ "richtext.previewUnavailable": "Voorbeeld niet beschikbaar",
86
+ "richtext.previewMode": "Voorbeeldmodus",
87
+ "richtext.browse": "Bekijken",
88
+ "richtext.edit": "Bewerken",
89
+ "richtext.editPreviewHint": "Klik op een gebied om het te bewerken. Scripts, formulieren en links blijven uitgeschakeld.",
90
+ "richtext.browsePreviewHint": "Scripts, formulieren en links zijn uitgeschakeld in dit voorbeeld.",
91
+ "richtext.previewOnWebsite": "Voorbeeld op website",
92
+ "richtext.togglePropertiesPanel": "Eigenschappenpaneel tonen/verbergen",
93
+ "richtext.newPagePreviewHint": "Nieuwe pagina — Opslaan schrijft het bestand. De route wordt weergegeven zodra de website over het bestand beschikt.",
94
+ "richtext.noDocumentPreview": "Er is geen voorbeeld-URL aan dit document gekoppeld. Gebruik het eigenschappenpaneel om het te bewerken.",
95
+ "richtext.websitePageEditor": "Editor voor websitepagina's",
96
+ "richtext.editText": "Tekst bewerken",
97
+ "richtext.propertiesPanelWidth": "Breedte eigenschappenpaneel",
98
+ "richtext.preparedPageLoadError": "De voorbereide pagina kan niet worden geladen. Controleer de URL en de headers voor insluiting in frames.",
99
+ "richtext.previewTimeout": "Het laden van het voorbeeld duurde te lang. Controleer de URL en probeer het opnieuw.",
100
+ "richtext.loadingPreview": "Voorbeeld laden…",
101
+ "richtext.preparedPageUnavailable": "De voorbereide pagina kan niet worden geladen.",
102
+ "richtext.noPreparedAnchors": "Deze pagina heeft geen voorbereide Rigel-ankers.",
103
+ "richtext.websitePreview": "Websitevoorbeeld",
104
+ "richtext.liveDraftPreview": "Livevoorbeeld van het websiteconcept",
105
+ "richtext.preparedTemplateHint": "Voorbereide template · Scripts, navigatie en formulieren uitgeschakeld. Velden en lijsten zonder anker worden niet in het voorbeeld weergegeven.",
106
+ "richtext.menuPreviewUnsupported": "Een menuvoorbeeld wordt niet ondersteund.",
107
+ "richtext.noContentPreview": "Er is geen voorbereide voorbeeld-URL aan deze inhoud gekoppeld.",
108
+ "richtext.previewFetchError": "Het conceptvoorbeeld kan niet worden opgehaald. Controleer de URL, HTTPS, CORS (Access-Control-Allow-Origin voor deze editor), omleidingen en het connect-src-beleid van de editor. Authenticatiecookies worden niet meegestuurd.",
109
+ "richtext.previewHtmlError": "Het conceptvoorbeeld heeft geen HTML teruggegeven. Controleer de gekoppelde route en de Content-Type-header.",
110
+ "richtext.heading": "Kop {level}",
111
+ "richtext.editingMode": "Bewerkingsmodus voor {label}",
112
+ "richtext.formatting": "Opmaak voor {label}",
113
+ "richtext.markdownSource": "Markdown-bron voor {label}",
114
+ "richtext.panelPixels": "{width} pixels",
115
+ "richtext.previewHttpError": "Het conceptvoorbeeld heeft HTTP {status} teruggegeven. Controleer de conceptdeployment en de gekoppelde route."
116
+ }