@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/fi.js
CHANGED
|
@@ -1,152 +1,196 @@
|
|
|
1
|
-
/** Finnish (Suomi) — `fi`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
-
export const FI = {
|
|
3
|
-
'action.undoHint': 'Kumoa — ⌘Z',
|
|
4
|
-
'action.redoHint': 'Tee uudelleen — ⌘⇧Z',
|
|
5
|
-
'action.chromeToDark': 'Tumma',
|
|
6
|
-
'action.chromeToLight': 'Vaalea',
|
|
7
|
-
'action.chromeHint': 'Editorin teema vaalea / tumma',
|
|
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
|
+
/** Finnish (Suomi) — `fi`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
+
export const FI = {
|
|
3
|
+
'action.undoHint': 'Kumoa — ⌘Z',
|
|
4
|
+
'action.redoHint': 'Tee uudelleen — ⌘⇧Z',
|
|
5
|
+
'action.chromeToDark': 'Tumma',
|
|
6
|
+
'action.chromeToLight': 'Vaalea',
|
|
7
|
+
'action.chromeHint': 'Editorin teema vaalea / tumma',
|
|
8
|
+
'action.chromeHintToDark': 'Tumma tila',
|
|
9
|
+
'action.chromeHintToLight': 'Vaalea tila',
|
|
10
|
+
'action.aiDraft': 'Luonnos',
|
|
11
|
+
'action.aiDraftHint': 'Kirjoita sähköpostin sisältö tekoälyllä',
|
|
12
|
+
'action.code': 'Koodi',
|
|
13
|
+
'action.codeHint': 'Muokkaa raakaa HTML:ää suoralla esikatselulla',
|
|
14
|
+
'action.preview': 'Esikatselu',
|
|
15
|
+
'action.previewHint': 'Esikatsele sähköpostia',
|
|
16
|
+
'action.export': 'Vie',
|
|
17
|
+
'action.exportHint': 'Vie sähköpostisi',
|
|
18
|
+
'device.desktop': 'Työpöytä',
|
|
19
|
+
'device.desktopHint': 'Työpöydän leveys',
|
|
20
|
+
'device.mobile': 'Mobiili',
|
|
21
|
+
'device.mobileHint': 'Mobiilin leveys',
|
|
22
|
+
'status.autosaveOn': 'automaattitallennus päällä',
|
|
23
|
+
'status.saved': 'tallennettu {time}',
|
|
24
|
+
'status.saveFailed': 'ei tallennettu — tallennustila täynnä',
|
|
25
|
+
'canvas.meta': '{rows} riviä · {blocks} lohkoa · {width}px',
|
|
26
|
+
'tab.design': 'Tyyli',
|
|
27
|
+
'tab.designHint': 'Muotoile valinta',
|
|
28
|
+
'tab.blocks': 'Lohkot',
|
|
29
|
+
'tab.blocksHint': 'Sisältölohkot ja muuttujat',
|
|
30
|
+
'tab.rows': 'Osiot',
|
|
31
|
+
'tab.rowsHint': 'Osioiden asettelut ja kangasmalli',
|
|
32
|
+
'tab.files': 'Tiedostot',
|
|
33
|
+
'tab.filesHint': 'Resurssikirjasto',
|
|
34
|
+
'tab.layers': 'Rakenne',
|
|
35
|
+
'tab.layersHint': 'Asiakirjan rakenne',
|
|
36
|
+
'tab.settings': 'Asetukset',
|
|
37
|
+
'tab.settingsHint': 'Sähköpostin asetukset',
|
|
38
|
+
'tab.data': 'Muutt.',
|
|
39
|
+
'tab.dataHint': 'Koodisi tarjoamat muuttujat',
|
|
40
|
+
'inspector.blockProperties': 'Lohkon ominaisuudet',
|
|
41
|
+
'inspector.sectionProperties': 'Osion ominaisuudet',
|
|
42
|
+
'inspector.title': 'Tarkastaja',
|
|
43
|
+
'inspector.sectionLabel': 'Osio',
|
|
44
|
+
'inspector.nothingSelected': 'Ei valintaa',
|
|
45
|
+
'action.duplicateHint': 'Monista — ⌘D',
|
|
46
|
+
'action.deleteHint': 'Poista — ⌫',
|
|
47
|
+
'inspector.emptyBody':
|
|
48
|
+
'Valitse rivi tai lohko kankaalta muotoillaksesi sen tässä. Vedä lohkoja välilehdeltä <strong style="color: var(--ed-text); font-weight: 600;">Lohkot</strong>; kaksoisnapsauta tekstiä muokataksesi sitä suoraan.',
|
|
49
|
+
'inspector.shortcuts': 'Pikanäppäimet',
|
|
50
|
+
'shortcut.undoRedo': '⌘Z / ⌘⇧Z — kumoa, tee uudelleen',
|
|
51
|
+
'shortcut.duplicate': '⌘D — monista valinta',
|
|
52
|
+
'shortcut.delete': '⌫ — poista valinta',
|
|
53
|
+
'shortcut.export': '⌘E — vie HTML',
|
|
54
|
+
'shortcut.escape': 'ESC — poista valinta, sulje',
|
|
55
|
+
'blocks.dragHint': 'Vedä kankaalle',
|
|
56
|
+
'blocks.count': '{count} lohkoa',
|
|
57
|
+
'rows.sectionLayouts': 'Osioiden asettelut',
|
|
58
|
+
'rows.customMarkup': 'Mukautettu koodi',
|
|
59
|
+
'rows.htmlRowHint': 'Vedä lisätäksesi, tai napsauta lisätäksesi — täysleveä rivi, jonka täytät raa’alla HTML:llä',
|
|
60
|
+
'rows.rawHtmlSection': 'Raaka HTML-osio',
|
|
61
|
+
'rows.rawHtmlDesc': 'Täysleveä osio, oma koodisi, edelleen vedettävissä',
|
|
62
|
+
'rows.canvasModel': 'Kangasmalli',
|
|
63
|
+
'rows.modeRowBased': 'Riveihin perustuva',
|
|
64
|
+
'rows.modeFreeStack': 'Vapaa pino',
|
|
65
|
+
'rows.hintRows':
|
|
66
|
+
'Osioihin perustuva: pudota ensin asettelu, sitten lohkoja sen sarakkeisiin — jokaisella osiolla on oma tausta, reunus, flex- tai ruudukkoasetukset.',
|
|
67
|
+
'rows.hintStack': 'Vapaa pino: ilman asetteluja — jokaisesta pudottamastasi lohkosta tulee oma täysleveä osio, pinottuna järjestyksessä.',
|
|
68
|
+
'files.libraryCount': 'Kirjasto — {count} tiedostoa',
|
|
69
|
+
'files.openManager': 'Avaa tiedostonhallinta',
|
|
70
|
+
'files.dragToCanvas': 'Vedä mikä tahansa tiedosto suoraan kankaalle asettaaksesi sen kuvalohkona.',
|
|
71
|
+
'layers.structure': 'Rakenne',
|
|
72
|
+
'layers.sectionSingle': 'Osio',
|
|
73
|
+
'layers.sectionMulti': 'Osio · {count} saraketta',
|
|
74
|
+
'layers.column': 'Sarake {index}',
|
|
75
|
+
'layers.blockCount': '{count} lohkoa',
|
|
76
|
+
'vars.title': 'Muuttujat',
|
|
77
|
+
'vars.fromCode': '{count} koodistasi',
|
|
78
|
+
'vars.declaredNote': 'Sovelluksesi määrittelemiä — kangas näyttää aina tokenin, ei koskaan arvoa.',
|
|
79
|
+
'vars.filterPlaceholder': 'Suodata muuttujia…',
|
|
80
|
+
'vars.insertHint': 'Napsauta lisätäksesi valittuun tekstiin, otsikkoon tai painikkeeseen',
|
|
81
|
+
'vars.insert': 'lisää',
|
|
82
|
+
'vars.noMatch': 'Yksikään muuttuja ei vastaa tätä suodatinta.',
|
|
83
|
+
'vars.noneDeclared': 'Sovelluksesi ei ole vielä määritellyt muuttujia.',
|
|
84
|
+
'vars.rteHint': 'Tekstiä muokatessasi voit myös valita muuttujan suoraan sisäisen työkalurivin pudotusvalikosta.',
|
|
85
|
+
'modal.fileManager': 'Tiedostonhallinta',
|
|
86
|
+
'modal.assetsTitle': 'Resurssit',
|
|
87
|
+
'modal.replaceImage': 'Korvaa kuva',
|
|
88
|
+
'library.searchPlaceholder': 'Etsi tiedostoja…',
|
|
89
|
+
'action.upload': 'Lataa',
|
|
90
|
+
'library.clickToPlace': 'Napsauta tiedostoa asettaaksesi sen · tai vedä tiedosto kankaalle',
|
|
91
|
+
'library.clickToReplace': 'Napsauta tiedostoa korvataksesi valitun kuvan',
|
|
92
|
+
'library.storageLabel': '{count} tiedostoa · {size}',
|
|
93
|
+
'library.folders': 'Kansiot',
|
|
94
|
+
'library.dropHint': 'Pudota kuvatiedostoja tähän ladataksesi ne — tai käytä Lataa-painiketta.',
|
|
95
|
+
'library.deleteFileHint': 'Poista tiedosto',
|
|
96
|
+
'library.del': 'POISTA',
|
|
97
|
+
'toast.assetDeleted': '{name} poistettu',
|
|
98
|
+
'library.allFiles': 'Kaikki tiedostot',
|
|
99
|
+
'library.loadMore': 'Lataa lisää',
|
|
100
|
+
'library.empty': 'Täällä ei ole vielä tiedostoja.',
|
|
101
|
+
'storage.loading': 'Ladataan tiedostoja…',
|
|
102
|
+
'storage.uploading': 'Ladataan {count}…',
|
|
103
|
+
'storage.errLoadFailed': 'Tiedostokirjastoa ei voitu ladata — {reason}',
|
|
104
|
+
'storage.errNoLimits': 'Lataukset on poistettu käytöstä: tämä sovellus ei ole asettanut latausrajoja.',
|
|
105
|
+
'storage.errNoAccept': 'Lataukset on poistettu käytöstä: yhtään tiedostomuotoa ei ole sallittu.',
|
|
106
|
+
'storage.errNoMaxBytes': 'Lataukset on poistettu käytöstä: tiedoston enimmäiskokoa ei ole asetettu.',
|
|
107
|
+
'storage.errTooLarge': '{name} on {size} — raja on {max}.',
|
|
108
|
+
'storage.errFormat': '{name} on {type}-tiedosto, jota ei sallita tässä.',
|
|
109
|
+
'storage.errSvg': '{name} on SVG, jota tämä sovellus ei hyväksy.',
|
|
110
|
+
'storage.errDimensions': '{name} on {w}×{ht}px — raja on {maxW}×{maxH}px.',
|
|
111
|
+
'storage.errTooMany': 'Kerralla voi ladata vain {max} tiedostoa.',
|
|
112
|
+
'storage.errUnreadable': '{name} ei ole luettava kuva.',
|
|
113
|
+
'storage.errUploadFailed': 'Tiedostoa {name} ei voitu ladata — {reason}',
|
|
114
|
+
'storage.errDeleteFailed': 'Tiedostoa {name} ei voitu poistaa — {reason}',
|
|
115
|
+
'modal.export': 'Vie',
|
|
116
|
+
'modal.exportTitle': 'Taulukkopohjainen sähköposti-HTML',
|
|
117
|
+
'export.copy': 'Kopioi',
|
|
118
|
+
'export.copied': 'Kopioitu',
|
|
119
|
+
'action.download': 'Lataa',
|
|
120
|
+
'export.meta': '{kb} kt · taulukot + inline-tyylit · Outlook-turvalliset leveydet',
|
|
121
|
+
'modal.rawHtmlTitle': 'Raaka HTML, suora esikatselu',
|
|
122
|
+
'code.statusEdited': 'Koodinäkymä — muokattu — esikatselu suorana, ei vielä käytössä',
|
|
123
|
+
'code.statusSynced': 'Koodinäkymä — synkronoitu kankaan kanssa',
|
|
124
|
+
'action.reload': 'Lataa uudelleen',
|
|
125
|
+
'action.reloadHint': 'Lataa lähde uudelleen kankaalta',
|
|
126
|
+
'action.applyToCanvas': 'Käytä kankaalla',
|
|
127
|
+
'action.applyToCanvasHint': 'Jäsennä lähde takaisin muokattaviksi riveiksi',
|
|
128
|
+
'action.closeWithoutApplyingHint': 'Sulje käyttämättä',
|
|
129
|
+
'code.source': 'Lähde',
|
|
130
|
+
'code.livePreview': 'Suora esikatselu',
|
|
131
|
+
'code.liveHtmlPreviewTitle': 'Suora HTML-esikatselu',
|
|
132
|
+
'code.applyNote':
|
|
133
|
+
'Käytä jäsentää jokaisen ylimmän tason taulukkorivin kangasriviksi, jonka voit yhä valita, järjestää uudelleen ja poistaa — käsin kirjoitettu koodi säilyy prosessin läpi muuttumattomana.',
|
|
134
|
+
'code.meta': '{kb} kt · {lines} riviä',
|
|
135
|
+
'toast.sourceReloaded': 'Lähde ladattu uudelleen kankaalta',
|
|
136
|
+
'toast.sourceAppliedOne': 'Lähde käytössä — 1 rivi kankaalla',
|
|
137
|
+
'toast.sourceAppliedMany': 'Lähde käytössä — {rows} riviä kankaalla',
|
|
138
|
+
'toast.parseError': 'Tätä HTML:ää ei voitu jäsentää',
|
|
139
|
+
'modal.aiDraft': 'Tekoälyn kirjoitusapuri',
|
|
140
|
+
'modal.aiDraftTitle': 'Kirjoita sähköpostisi tekoälyllä',
|
|
141
|
+
'ai.disclosure': 'Tekoäly luo ehdotuksia briefisi pohjalta. Tarkista ja muokkaa tulos ennen lähettämistä.',
|
|
142
|
+
'ai.goal': 'Tavoite',
|
|
143
|
+
'ai.tone': 'Sävy',
|
|
144
|
+
'ai.briefLabel': 'Mistä tämä sähköposti kertoo?',
|
|
145
|
+
'ai.briefPlaceholder': 'esim. Syyskokoelma, 15 % tilaajille, ilmainen toimitus yli 150 €',
|
|
146
|
+
'ai.generate': 'Luo teksti',
|
|
147
|
+
'ai.writing': 'Kirjoitetaan…',
|
|
148
|
+
'ai.kindHeadline': 'Otsikko',
|
|
149
|
+
'ai.kindBody': 'Leipäteksti',
|
|
150
|
+
'ai.kindButton': 'Painikkeen teksti',
|
|
151
|
+
'ai.actionInsertHeading': 'Lisää otsikkona',
|
|
152
|
+
'ai.actionInsertText': 'Lisää tekstilohkona',
|
|
153
|
+
'ai.actionInsertButton': 'Lisää painikkeena',
|
|
154
|
+
'toast.headingAdded': 'Otsikko lisätty',
|
|
155
|
+
'toast.textBlockAdded': 'Tekstilohko lisätty',
|
|
156
|
+
'toast.buttonAdded': 'Painike lisätty',
|
|
157
|
+
'preview.kickerMobile': 'Esikatselu — mobiili 375px',
|
|
158
|
+
'preview.kickerDesktop': 'Esikatselu — työpöytä {width}px',
|
|
159
|
+
'action.close': 'Sulje',
|
|
160
|
+
'toast.duplicated': 'Monistettu',
|
|
161
|
+
'toast.fileUploadedOne': '1 tiedosto ladattu',
|
|
162
|
+
'toast.fileUploadedMany': '{count} tiedostoa ladattu',
|
|
163
|
+
'toast.imageReplaced': 'Kuva korvattu',
|
|
164
|
+
'toast.imageAdded': 'Kuva lisätty kankaalle',
|
|
165
|
+
'toast.htmlCopied': 'HTML kopioitu leikepöydälle',
|
|
166
|
+
'toast.templateLoaded': '{name} ladattu',
|
|
167
|
+
'toast.snippetDefaultLabel': 'Katkelma',
|
|
168
|
+
'toast.snippetInserted': '{name} lisätty',
|
|
169
|
+
'toast.snippetCopied': '{name} kopioitu — valitse tekstilohko lisätäksesi sen',
|
|
170
|
+
'rte.textStyle': 'Tekstityyli',
|
|
171
|
+
'rte.mergeTags': 'Yhdistämiskentät',
|
|
172
|
+
'rte.noMergeTags': 'Yhdistämiskenttiä ei ole saatavilla',
|
|
173
|
+
'rte.textColor': 'Tekstin väri',
|
|
174
|
+
'rte.highlightColor': 'Korostusväri',
|
|
175
|
+
'rte.removeHighlight': 'Poista korostus',
|
|
176
|
+
'rte.clearFormatting': 'Poista muotoilut',
|
|
177
|
+
'action.downloadPng': 'Lataa PNG',
|
|
178
|
+
'action.screenshot': 'Kuvakaappaus',
|
|
179
|
+
'action.screenshotHint': 'Katso koko pohja kuvana ja lataa se',
|
|
180
|
+
'toast.pngSaved': 'Kuvakaappaus ladattiin',
|
|
181
|
+
'toast.pngFailed': 'Kuvakaappaus epäonnistui — ulkoista kuvaa ei voitu ladata',
|
|
182
|
+
'toast.pngCopied': 'Kuvakaappaus kopioitiin leikepöydälle',
|
|
183
|
+
'toast.pngCopyFailed': 'Tämä selain ei hyväksynyt kuvaa leikepöydälle',
|
|
184
|
+
'story.kicker': 'Kuvakaappaus',
|
|
185
|
+
'story.rendering': 'Kuvakaappausta luodaan',
|
|
186
|
+
'story.renderingHint': 'Jokainen lohko piirretään 2× tarkkuudella — pitkässä pohjassa se vie hetken.',
|
|
187
|
+
'story.failed': 'Kuvakaappaus epäonnistui',
|
|
188
|
+
'story.failedHint': 'Pohjan yhtä kuvaa ei voitu ladata kaappausta varten.',
|
|
189
|
+
'story.retry': 'Yritä uudelleen',
|
|
190
|
+
'story.play': 'Toista',
|
|
191
|
+
'story.pause': 'Keskeytä',
|
|
192
|
+
'story.replay': 'Toista uudelleen',
|
|
193
|
+
'story.copy': 'Kopioi',
|
|
194
|
+
'story.meta': '{w}×{h} · näkymä {i}/{n}',
|
|
195
|
+
'footer.poweredBy': 'Taustalla SELISE Blocks © 2026',
|
|
196
|
+
};
|