@seliseblocks/mailcraft 0.1.0 → 0.2.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.
- package/DOCS.md +240 -12
- package/README.md +11 -3
- package/README.md.txt +134 -0
- package/dist/mailcraft-editor.bundle.js +51 -39
- package/dist/mailcraft-editor.bundle.js.map +3 -3
- package/examples/templates/order-confirmed.html +80 -80
- package/examples/vanilla.html +242 -23
- package/package.json +7 -2
- package/src/core/assets.js +10 -15
- package/src/core/binder.js +120 -118
- package/src/core/blocks.js +14 -1
- package/src/core/css-cascade.js +117 -117
- package/src/core/editor-core.js +1530 -1492
- package/src/core/export.js +142 -55
- package/src/core/i18n/ar.js +219 -177
- package/src/core/i18n/bg.js +196 -152
- package/src/core/i18n/bn.js +218 -176
- package/src/core/i18n/ca.js +196 -152
- package/src/core/i18n/cs.js +196 -152
- package/src/core/i18n/da.js +196 -152
- package/src/core/i18n/de-CH.js +196 -152
- package/src/core/i18n/de.js +196 -152
- package/src/core/i18n/dz.js +221 -179
- package/src/core/i18n/el.js +196 -152
- package/src/core/i18n/en.js +3 -10
- package/src/core/i18n/es.js +196 -152
- package/src/core/i18n/et.js +196 -152
- package/src/core/i18n/fi.js +196 -152
- package/src/core/i18n/fr.js +196 -152
- package/src/core/i18n/hr.js +196 -152
- package/src/core/i18n/hu.js +196 -152
- package/src/core/i18n/index.js +83 -83
- package/src/core/i18n/it.js +196 -152
- package/src/core/i18n/lt.js +196 -152
- package/src/core/i18n/lv.js +196 -152
- package/src/core/i18n/nb.js +196 -152
- package/src/core/i18n/nl.js +196 -152
- package/src/core/i18n/pl.js +196 -152
- package/src/core/i18n/pt.js +196 -152
- package/src/core/i18n/ro.js +196 -152
- package/src/core/i18n/ru.js +196 -152
- package/src/core/i18n/sk.js +196 -152
- package/src/core/i18n/sl.js +196 -152
- package/src/core/i18n/sv.js +196 -152
- package/src/core/i18n/tables.js +50 -50
- package/src/core/i18n/tr.js +196 -152
- package/src/core/i18n/uk.js +196 -152
- package/src/core/icons.js +237 -235
- package/src/core/ids.js +1 -1
- package/src/core/import-html.js +1025 -959
- package/src/core/layout-style.js +100 -100
- package/src/core/parse.js +10 -10
- package/src/core/placeholder.js +15 -15
- package/src/core/sanitize.js +141 -141
- package/src/core/storage-limits.js +184 -184
- package/src/core/storage.js +85 -85
- package/src/core/theme.js +1 -1
- package/src/core/variables.js +11 -11
- package/src/index.js +9 -9
- package/src/mailcraft-editor.js +26 -14
- package/src/render/block-body.js +49 -6
- package/src/render/canvas.js +31 -2
- package/src/render/fields.js +602 -588
- package/src/render/focus-preserve.js +158 -158
- package/src/render/rte.js +241 -212
- package/src/render/screenshot.js +132 -132
- package/src/render/story.js +415 -415
- package/src/render/style.js +8 -0
- package/types/index.d.ts +419 -0
package/src/core/i18n/da.js
CHANGED
|
@@ -1,152 +1,196 @@
|
|
|
1
|
-
/** Danish (Dansk) — `da`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
-
export const DA = {
|
|
3
|
-
'action.undoHint': 'Fortryd — ⌘Z',
|
|
4
|
-
'action.redoHint': 'Gentag — ⌘⇧Z',
|
|
5
|
-
'action.chromeToDark': 'Mørk',
|
|
6
|
-
'action.chromeToLight': 'Lys',
|
|
7
|
-
'action.chromeHint': 'Redigeringstema lys / mørk',
|
|
8
|
-
'action.
|
|
9
|
-
'action.
|
|
10
|
-
'action.
|
|
11
|
-
'action.
|
|
12
|
-
'action.
|
|
13
|
-
'action.
|
|
14
|
-
'
|
|
15
|
-
'
|
|
16
|
-
'
|
|
17
|
-
'
|
|
18
|
-
'device.
|
|
19
|
-
'device.
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
'status.
|
|
23
|
-
'
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'tab.
|
|
27
|
-
'tab.
|
|
28
|
-
'tab.
|
|
29
|
-
'tab.
|
|
30
|
-
'tab.
|
|
31
|
-
'tab.
|
|
32
|
-
'tab.
|
|
33
|
-
'tab.
|
|
34
|
-
'tab.
|
|
35
|
-
'tab.
|
|
36
|
-
'tab.
|
|
37
|
-
'tab.
|
|
38
|
-
'
|
|
39
|
-
'
|
|
40
|
-
'inspector.
|
|
41
|
-
'inspector.
|
|
42
|
-
'inspector.
|
|
43
|
-
'
|
|
44
|
-
'
|
|
45
|
-
'
|
|
46
|
-
|
|
47
|
-
'inspector.
|
|
48
|
-
|
|
49
|
-
'
|
|
50
|
-
'shortcut.
|
|
51
|
-
'shortcut.
|
|
52
|
-
'shortcut.
|
|
53
|
-
'
|
|
54
|
-
'
|
|
55
|
-
'
|
|
56
|
-
'
|
|
57
|
-
'rows.
|
|
58
|
-
'rows.
|
|
59
|
-
'rows.
|
|
60
|
-
'rows.
|
|
61
|
-
'rows.
|
|
62
|
-
'rows.
|
|
63
|
-
'rows.
|
|
64
|
-
|
|
65
|
-
'rows.
|
|
66
|
-
|
|
67
|
-
'
|
|
68
|
-
'files.
|
|
69
|
-
'
|
|
70
|
-
'
|
|
71
|
-
'layers.
|
|
72
|
-
'layers.
|
|
73
|
-
'
|
|
74
|
-
'
|
|
75
|
-
'
|
|
76
|
-
'vars.
|
|
77
|
-
'vars.
|
|
78
|
-
'vars.
|
|
79
|
-
'vars.
|
|
80
|
-
'vars.
|
|
81
|
-
'vars.
|
|
82
|
-
'vars.
|
|
83
|
-
'
|
|
84
|
-
'
|
|
85
|
-
'modal.
|
|
86
|
-
'
|
|
87
|
-
'
|
|
88
|
-
'library.
|
|
89
|
-
'
|
|
90
|
-
'library.
|
|
91
|
-
'library.
|
|
92
|
-
'library.
|
|
93
|
-
'library.
|
|
94
|
-
'library.
|
|
95
|
-
'
|
|
96
|
-
'
|
|
97
|
-
'
|
|
98
|
-
'
|
|
99
|
-
'
|
|
100
|
-
'
|
|
101
|
-
'
|
|
102
|
-
'
|
|
103
|
-
'
|
|
104
|
-
'
|
|
105
|
-
'
|
|
106
|
-
'
|
|
107
|
-
'
|
|
108
|
-
'
|
|
109
|
-
'
|
|
110
|
-
'
|
|
111
|
-
'
|
|
112
|
-
'
|
|
113
|
-
'
|
|
114
|
-
|
|
115
|
-
'
|
|
116
|
-
'
|
|
117
|
-
'
|
|
118
|
-
'
|
|
119
|
-
'
|
|
120
|
-
'
|
|
121
|
-
'modal.
|
|
122
|
-
'
|
|
123
|
-
'
|
|
124
|
-
'
|
|
125
|
-
'
|
|
126
|
-
'
|
|
127
|
-
'
|
|
128
|
-
'
|
|
129
|
-
'
|
|
130
|
-
'
|
|
131
|
-
'
|
|
132
|
-
'
|
|
133
|
-
|
|
134
|
-
'
|
|
135
|
-
'toast.
|
|
136
|
-
'toast.
|
|
137
|
-
'
|
|
138
|
-
'
|
|
139
|
-
'
|
|
140
|
-
'
|
|
141
|
-
'
|
|
142
|
-
'
|
|
143
|
-
'
|
|
144
|
-
'
|
|
145
|
-
'
|
|
146
|
-
'
|
|
147
|
-
'
|
|
148
|
-
'
|
|
149
|
-
'
|
|
150
|
-
'
|
|
151
|
-
|
|
152
|
-
|
|
1
|
+
/** Danish (Dansk) — `da`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
+
export const DA = {
|
|
3
|
+
'action.undoHint': 'Fortryd — ⌘Z',
|
|
4
|
+
'action.redoHint': 'Gentag — ⌘⇧Z',
|
|
5
|
+
'action.chromeToDark': 'Mørk',
|
|
6
|
+
'action.chromeToLight': 'Lys',
|
|
7
|
+
'action.chromeHint': 'Redigeringstema lys / mørk',
|
|
8
|
+
'action.chromeHintToDark': 'Mørk tilstand',
|
|
9
|
+
'action.chromeHintToLight': 'Lys tilstand',
|
|
10
|
+
'action.aiDraft': 'Udkast',
|
|
11
|
+
'action.aiDraftHint': 'Skriv e-mailens indhold med AI',
|
|
12
|
+
'action.code': 'Kode',
|
|
13
|
+
'action.codeHint': 'Rediger rå HTML med direkte forhåndsvisning',
|
|
14
|
+
'action.preview': 'Forhåndsvisning',
|
|
15
|
+
'action.previewHint': 'Se e-mailen',
|
|
16
|
+
'action.export': 'Eksportér',
|
|
17
|
+
'action.exportHint': 'Eksportér din e-mail',
|
|
18
|
+
'device.desktop': 'Computer',
|
|
19
|
+
'device.desktopHint': 'Bredde til computer',
|
|
20
|
+
'device.mobile': 'Mobil',
|
|
21
|
+
'device.mobileHint': 'Bredde til mobil',
|
|
22
|
+
'status.autosaveOn': 'automatisk gemning slået til',
|
|
23
|
+
'status.saved': 'gemt {time}',
|
|
24
|
+
'status.saveFailed': 'ikke gemt — lagerplads fuld',
|
|
25
|
+
'canvas.meta': '{rows} rækker · {blocks} blokke · {width}px',
|
|
26
|
+
'tab.design': 'Stil',
|
|
27
|
+
'tab.designHint': 'Formatér markeringen',
|
|
28
|
+
'tab.blocks': 'Blokke',
|
|
29
|
+
'tab.blocksHint': 'Indholdsblokke og variabler',
|
|
30
|
+
'tab.rows': 'Sektioner',
|
|
31
|
+
'tab.rowsHint': 'Sektionslayouts og lærredsmodel',
|
|
32
|
+
'tab.files': 'Filer',
|
|
33
|
+
'tab.filesHint': 'Ressourcebibliotek',
|
|
34
|
+
'tab.layers': 'Struktur',
|
|
35
|
+
'tab.layersHint': 'Dokumentstruktur',
|
|
36
|
+
'tab.settings': 'Indstillinger',
|
|
37
|
+
'tab.settingsHint': 'E-mailindstillinger',
|
|
38
|
+
'tab.data': 'Var.',
|
|
39
|
+
'tab.dataHint': 'Variabler leveret af din kode',
|
|
40
|
+
'inspector.blockProperties': 'Blokegenskaber',
|
|
41
|
+
'inspector.sectionProperties': 'Sektionsegenskaber',
|
|
42
|
+
'inspector.title': 'Inspektør',
|
|
43
|
+
'inspector.sectionLabel': 'Sektion',
|
|
44
|
+
'inspector.nothingSelected': 'Intet valgt',
|
|
45
|
+
'action.duplicateHint': 'Dupliker — ⌘D',
|
|
46
|
+
'action.deleteHint': 'Slet — ⌫',
|
|
47
|
+
'inspector.emptyBody':
|
|
48
|
+
'Vælg en række eller en blok på lærredet for at formatere den her. Træk blokke fra fanen <strong style="color: var(--ed-text); font-weight: 600;">Blokke</strong>; dobbeltklik på tekst for at redigere direkte.',
|
|
49
|
+
'inspector.shortcuts': 'Genveje',
|
|
50
|
+
'shortcut.undoRedo': '⌘Z / ⌘⇧Z — fortryd, gentag',
|
|
51
|
+
'shortcut.duplicate': '⌘D — dupliker markering',
|
|
52
|
+
'shortcut.delete': '⌫ — slet markering',
|
|
53
|
+
'shortcut.export': '⌘E — eksportér HTML',
|
|
54
|
+
'shortcut.escape': 'ESC — fjern markering, luk',
|
|
55
|
+
'blocks.dragHint': 'Træk til lærredet',
|
|
56
|
+
'blocks.count': '{count} blokke',
|
|
57
|
+
'rows.sectionLayouts': 'Sektionslayouts',
|
|
58
|
+
'rows.customMarkup': 'Tilpasset kode',
|
|
59
|
+
'rows.htmlRowHint': 'Træk for at indsætte, eller klik for at tilføje — en fuldbredde-række, du fylder med rå HTML',
|
|
60
|
+
'rows.rawHtmlSection': 'Rå HTML-sektion',
|
|
61
|
+
'rows.rawHtmlDesc': 'Fuldbredde-sektion, din egen kode, stadig trækbar',
|
|
62
|
+
'rows.canvasModel': 'Lærredsmodel',
|
|
63
|
+
'rows.modeRowBased': 'Rækkebaseret',
|
|
64
|
+
'rows.modeFreeStack': 'Fri stak',
|
|
65
|
+
'rows.hintRows':
|
|
66
|
+
'Sektionsbaseret: slip et layout først, derefter blokke i dets kolonner — hver sektion har sin egen baggrund, kant, flex- eller gitterindstillinger.',
|
|
67
|
+
'rows.hintStack': 'Fri stak: uden layouts — hver blok, du slipper, bliver sin egen fuldbredde-sektion, stablet i rækkefølge.',
|
|
68
|
+
'files.libraryCount': 'Bibliotek — {count} filer',
|
|
69
|
+
'files.openManager': 'Åbn filhåndtering',
|
|
70
|
+
'files.dragToCanvas': 'Træk en vilkårlig fil direkte til lærredet for at placere den som en billedblok.',
|
|
71
|
+
'layers.structure': 'Struktur',
|
|
72
|
+
'layers.sectionSingle': 'Sektion',
|
|
73
|
+
'layers.sectionMulti': 'Sektion · {count} kol.',
|
|
74
|
+
'layers.column': 'Kolonne {index}',
|
|
75
|
+
'layers.blockCount': '{count} bl.',
|
|
76
|
+
'vars.title': 'Variabler',
|
|
77
|
+
'vars.fromCode': '{count} fra din kode',
|
|
78
|
+
'vars.declaredNote': 'Erklæret af din applikation — lærredet viser altid tokenet, aldrig en værdi.',
|
|
79
|
+
'vars.filterPlaceholder': 'Filtrér variabler…',
|
|
80
|
+
'vars.insertHint': 'Klik for at indsætte i markeret tekst, overskrift eller knap',
|
|
81
|
+
'vars.insert': 'indsæt',
|
|
82
|
+
'vars.noMatch': 'Ingen variabel matcher det filter.',
|
|
83
|
+
'vars.noneDeclared': 'Din applikation har endnu ikke erklæret nogen variabler.',
|
|
84
|
+
'vars.rteHint': 'Når du redigerer tekst, kan du også vælge en variabel direkte fra rullemenuen i den indlejrede værktøjslinje.',
|
|
85
|
+
'modal.fileManager': 'Filhåndtering',
|
|
86
|
+
'modal.assetsTitle': 'Ressourcer',
|
|
87
|
+
'modal.replaceImage': 'Erstat billede',
|
|
88
|
+
'library.searchPlaceholder': 'Søg i filer…',
|
|
89
|
+
'action.upload': 'Upload',
|
|
90
|
+
'library.clickToPlace': 'Klik på en fil for at placere den · eller træk en fil til lærredet',
|
|
91
|
+
'library.clickToReplace': 'Klik på en fil for at erstatte det markerede billede',
|
|
92
|
+
'library.storageLabel': '{count} filer · {size}',
|
|
93
|
+
'library.folders': 'Mapper',
|
|
94
|
+
'library.dropHint': 'Slip billedfiler her for at uploade — eller brug knappen Upload.',
|
|
95
|
+
'library.deleteFileHint': 'Slet fil',
|
|
96
|
+
'library.del': 'SLET',
|
|
97
|
+
'toast.assetDeleted': '{name} slettet',
|
|
98
|
+
'library.allFiles': 'Alle filer',
|
|
99
|
+
'library.loadMore': 'Indlæs flere',
|
|
100
|
+
'library.empty': 'Der er ingen filer her endnu.',
|
|
101
|
+
'storage.loading': 'Indlæser filer…',
|
|
102
|
+
'storage.uploading': 'Uploader {count}…',
|
|
103
|
+
'storage.errLoadFailed': 'Filbiblioteket kunne ikke indlæses — {reason}',
|
|
104
|
+
'storage.errNoLimits': 'Upload er slået fra: denne app har ikke sat nogen uploadgrænser.',
|
|
105
|
+
'storage.errNoAccept': 'Upload er slået fra: ingen filformater er tilladt.',
|
|
106
|
+
'storage.errNoMaxBytes': 'Upload er slået fra: der er ikke sat nogen maksimal filstørrelse.',
|
|
107
|
+
'storage.errTooLarge': '{name} er {size} — grænsen er {max}.',
|
|
108
|
+
'storage.errFormat': '{name} er en {type}-fil, som ikke er tilladt her.',
|
|
109
|
+
'storage.errSvg': '{name} er en SVG, som denne app ikke accepterer.',
|
|
110
|
+
'storage.errDimensions': '{name} er {w}×{ht}px — grænsen er {maxW}×{maxH}px.',
|
|
111
|
+
'storage.errTooMany': 'Der kan kun uploades {max} filer ad gangen.',
|
|
112
|
+
'storage.errUnreadable': '{name} er ikke et læsbart billede.',
|
|
113
|
+
'storage.errUploadFailed': '{name} kunne ikke uploades — {reason}',
|
|
114
|
+
'storage.errDeleteFailed': '{name} kunne ikke slettes — {reason}',
|
|
115
|
+
'modal.export': 'Eksportér',
|
|
116
|
+
'modal.exportTitle': 'Tabelbaseret e-mail-HTML',
|
|
117
|
+
'export.copy': 'Kopiér',
|
|
118
|
+
'export.copied': 'Kopieret',
|
|
119
|
+
'action.download': 'Download',
|
|
120
|
+
'export.meta': '{kb} KB · tabeller + inline-stilarter · Outlook-sikre bredder',
|
|
121
|
+
'modal.rawHtmlTitle': 'Rå HTML, direkte forhåndsvisning',
|
|
122
|
+
'code.statusEdited': 'Kodevisning — redigeret — forhåndsvisning live, endnu ikke anvendt',
|
|
123
|
+
'code.statusSynced': 'Kodevisning — synkroniseret med lærredet',
|
|
124
|
+
'action.reload': 'Genindlæs',
|
|
125
|
+
'action.reloadHint': 'Genindlæs kilde fra lærredet',
|
|
126
|
+
'action.applyToCanvas': 'Anvend på lærred',
|
|
127
|
+
'action.applyToCanvasHint': 'Fortolk kilden tilbage til redigerbare rækker',
|
|
128
|
+
'action.closeWithoutApplyingHint': 'Luk uden at anvende',
|
|
129
|
+
'code.source': 'Kilde',
|
|
130
|
+
'code.livePreview': 'Direkte forhåndsvisning',
|
|
131
|
+
'code.liveHtmlPreviewTitle': 'Direkte HTML-forhåndsvisning',
|
|
132
|
+
'code.applyNote':
|
|
133
|
+
'Anvend fortolker hver tabelrække på øverste niveau til en lærredsrække, du stadig kan markere, omarrangere og slette — håndskrevet kode overlever processen uændret.',
|
|
134
|
+
'code.meta': '{kb} KB · {lines} linjer',
|
|
135
|
+
'toast.sourceReloaded': 'Kilde genindlæst fra lærredet',
|
|
136
|
+
'toast.sourceAppliedOne': 'Kilde anvendt — 1 række på lærredet',
|
|
137
|
+
'toast.sourceAppliedMany': 'Kilde anvendt — {rows} rækker på lærredet',
|
|
138
|
+
'toast.parseError': 'Kunne ikke fortolke den HTML',
|
|
139
|
+
'modal.aiDraft': 'AI-skriveassistent',
|
|
140
|
+
'modal.aiDraftTitle': 'Skriv din e-mail med AI',
|
|
141
|
+
'ai.disclosure': 'AI skaber forslag ud fra din brief. Gennemgå og redigér resultatet, før du sender.',
|
|
142
|
+
'ai.goal': 'Mål',
|
|
143
|
+
'ai.tone': 'Tone',
|
|
144
|
+
'ai.briefLabel': 'Hvad handler denne e-mail om?',
|
|
145
|
+
'ai.briefPlaceholder': 'f.eks. Efterårskollektion, 15% til abonnenter, fragtfrit over 150 kr',
|
|
146
|
+
'ai.generate': 'Generér tekst',
|
|
147
|
+
'ai.writing': 'Skriver…',
|
|
148
|
+
'ai.kindHeadline': 'Overskrift',
|
|
149
|
+
'ai.kindBody': 'Brødtekst',
|
|
150
|
+
'ai.kindButton': 'Knaptekst',
|
|
151
|
+
'ai.actionInsertHeading': 'Indsæt som overskrift',
|
|
152
|
+
'ai.actionInsertText': 'Indsæt som tekstblok',
|
|
153
|
+
'ai.actionInsertButton': 'Indsæt som knap',
|
|
154
|
+
'toast.headingAdded': 'Overskrift tilføjet',
|
|
155
|
+
'toast.textBlockAdded': 'Tekstblok tilføjet',
|
|
156
|
+
'toast.buttonAdded': 'Knap tilføjet',
|
|
157
|
+
'preview.kickerMobile': 'Forhåndsvisning — mobil 375px',
|
|
158
|
+
'preview.kickerDesktop': 'Forhåndsvisning — computer {width}px',
|
|
159
|
+
'action.close': 'Luk',
|
|
160
|
+
'toast.duplicated': 'Duplikeret',
|
|
161
|
+
'toast.fileUploadedOne': '1 fil uploadet',
|
|
162
|
+
'toast.fileUploadedMany': '{count} filer uploadet',
|
|
163
|
+
'toast.imageReplaced': 'Billede erstattet',
|
|
164
|
+
'toast.imageAdded': 'Billede tilføjet til lærredet',
|
|
165
|
+
'toast.htmlCopied': 'HTML kopieret til udklipsholder',
|
|
166
|
+
'toast.templateLoaded': '{name} indlæst',
|
|
167
|
+
'toast.snippetDefaultLabel': 'Uddrag',
|
|
168
|
+
'toast.snippetInserted': '{name} indsat',
|
|
169
|
+
'toast.snippetCopied': '{name} kopieret — vælg en tekstblok for at indsætte den',
|
|
170
|
+
'rte.textStyle': 'Tekststil',
|
|
171
|
+
'rte.mergeTags': 'Flettefelter',
|
|
172
|
+
'rte.noMergeTags': 'Ingen flettefelter tilgængelige',
|
|
173
|
+
'rte.textColor': 'Tekstfarve',
|
|
174
|
+
'rte.highlightColor': 'Fremhævningsfarve',
|
|
175
|
+
'rte.removeHighlight': 'Fjern fremhævning',
|
|
176
|
+
'rte.clearFormatting': 'Ryd formatering',
|
|
177
|
+
'action.downloadPng': 'Hent PNG',
|
|
178
|
+
'action.screenshot': 'Skærmbillede',
|
|
179
|
+
'action.screenshotHint': 'Se hele skabelonen som et billede, og hent det',
|
|
180
|
+
'toast.pngSaved': 'Skærmbillede hentet',
|
|
181
|
+
'toast.pngFailed': 'Skærmbilledet mislykkedes — et eksternt billede kunne ikke indlæses',
|
|
182
|
+
'toast.pngCopied': 'Skærmbillede kopieret til udklipsholderen',
|
|
183
|
+
'toast.pngCopyFailed': 'Denne browser ville ikke acceptere et billede i udklipsholderen',
|
|
184
|
+
'story.kicker': 'Skærmbillede',
|
|
185
|
+
'story.rendering': 'Skærmbilledet gengives',
|
|
186
|
+
'story.renderingHint': 'Hver blok tegnes i 2× — det tager et øjeblik ved en lang skabelon.',
|
|
187
|
+
'story.failed': 'Skærmbilledet mislykkedes',
|
|
188
|
+
'story.failedHint': 'Et billede i skabelonen kunne ikke indlæses til optagelsen.',
|
|
189
|
+
'story.retry': 'Prøv igen',
|
|
190
|
+
'story.play': 'Afspil',
|
|
191
|
+
'story.pause': 'Pause',
|
|
192
|
+
'story.replay': 'Afspil igen',
|
|
193
|
+
'story.copy': 'Kopiér',
|
|
194
|
+
'story.meta': '{w}×{h} · skærm {i} af {n}',
|
|
195
|
+
'footer.poweredBy': 'Drevet af SELISE Blocks © 2026',
|
|
196
|
+
};
|