@seliseblocks/mailcraft 0.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.
- package/DOCS.md +557 -0
- package/LICENSE +21 -0
- package/README.md +126 -0
- package/dist/mailcraft-editor.bundle.js +519 -0
- package/dist/mailcraft-editor.bundle.js.map +7 -0
- package/examples/templates/activate-your-account.html +54 -0
- package/examples/templates/back-in-stock.html +63 -0
- package/examples/templates/cart-left-behind.html +74 -0
- package/examples/templates/community-giveaway.html +81 -0
- package/examples/templates/frontend-futures-invite.html +69 -0
- package/examples/templates/give-25-get-25.html +69 -0
- package/examples/templates/invoice-paid.html +77 -0
- package/examples/templates/meet-nova-launch.html +69 -0
- package/examples/templates/mega-weekend-sale.html +57 -0
- package/examples/templates/order-confirmed.html +80 -0
- package/examples/templates/rate-your-headphones.html +71 -0
- package/examples/templates/reset-your-password.html +54 -0
- package/examples/templates/thankyou-promo-code.html +68 -0
- package/examples/templates/the-sunday-brief.html +47 -0
- package/examples/templates/welcome-to-your-workspace.html +62 -0
- package/examples/templates/your-order-shipped.html +74 -0
- package/examples/templates/your-password-was-changed.html +58 -0
- package/examples/templates/your-signin-code.html +58 -0
- package/examples/vanilla.html +1574 -0
- package/package.json +66 -0
- package/src/core/accent.js +194 -0
- package/src/core/assets.js +15 -0
- package/src/core/binder.js +119 -0
- package/src/core/blocks.js +256 -0
- package/src/core/css-cascade.js +117 -0
- package/src/core/editor-core.js +1492 -0
- package/src/core/export.js +58 -0
- package/src/core/footer.js +73 -0
- package/src/core/i18n/ar.js +177 -0
- package/src/core/i18n/bg.js +152 -0
- package/src/core/i18n/bn.js +176 -0
- package/src/core/i18n/ca.js +152 -0
- package/src/core/i18n/cs.js +152 -0
- package/src/core/i18n/da.js +152 -0
- package/src/core/i18n/de-CH.js +152 -0
- package/src/core/i18n/de.js +152 -0
- package/src/core/i18n/dz.js +179 -0
- package/src/core/i18n/el.js +152 -0
- package/src/core/i18n/en.js +269 -0
- package/src/core/i18n/es.js +152 -0
- package/src/core/i18n/et.js +152 -0
- package/src/core/i18n/fi.js +152 -0
- package/src/core/i18n/fr.js +152 -0
- package/src/core/i18n/hr.js +152 -0
- package/src/core/i18n/hu.js +152 -0
- package/src/core/i18n/index.js +83 -0
- package/src/core/i18n/it.js +152 -0
- package/src/core/i18n/lt.js +152 -0
- package/src/core/i18n/lv.js +152 -0
- package/src/core/i18n/nb.js +152 -0
- package/src/core/i18n/nl.js +152 -0
- package/src/core/i18n/pl.js +152 -0
- package/src/core/i18n/pt.js +152 -0
- package/src/core/i18n/ro.js +152 -0
- package/src/core/i18n/ru.js +152 -0
- package/src/core/i18n/sk.js +152 -0
- package/src/core/i18n/sl.js +152 -0
- package/src/core/i18n/sv.js +152 -0
- package/src/core/i18n/tables.js +50 -0
- package/src/core/i18n/tr.js +152 -0
- package/src/core/i18n/uk.js +152 -0
- package/src/core/icons.js +235 -0
- package/src/core/ids.js +1 -0
- package/src/core/import-html.js +959 -0
- package/src/core/layout-style.js +115 -0
- package/src/core/parse.js +10 -0
- package/src/core/placeholder.js +15 -0
- package/src/core/sanitize.js +141 -0
- package/src/core/storage-limits.js +184 -0
- package/src/core/storage.js +85 -0
- package/src/core/theme.js +1 -0
- package/src/core/toolbar.js +67 -0
- package/src/core/variables.js +11 -0
- package/src/create-editor.js +109 -0
- package/src/index.js +9 -0
- package/src/mailcraft-editor.js +1862 -0
- package/src/render/block-body.js +295 -0
- package/src/render/canvas.js +284 -0
- package/src/render/fields.js +609 -0
- package/src/render/focus-preserve.js +158 -0
- package/src/render/rte.js +212 -0
- package/src/render/screenshot.js +132 -0
- package/src/render/story.js +415 -0
- package/src/render/style.js +452 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/** Portuguese (Português) — `pt`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
+
export const PT = {
|
|
3
|
+
'action.undoHint': 'Desfazer — ⌘Z',
|
|
4
|
+
'action.redoHint': 'Refazer — ⌘⇧Z',
|
|
5
|
+
'action.chromeToDark': 'Escuro',
|
|
6
|
+
'action.chromeToLight': 'Claro',
|
|
7
|
+
'action.chromeHint': 'Tema do editor claro / escuro',
|
|
8
|
+
'action.aiCopy': 'Texto',
|
|
9
|
+
'action.aiCopyHint': 'Redigir texto com IA',
|
|
10
|
+
'action.code': 'Código',
|
|
11
|
+
'action.codeHint': 'Editar o HTML bruto com pré-visualização ao vivo',
|
|
12
|
+
'action.preview': 'Pré-visualizar',
|
|
13
|
+
'action.export': 'Exportar',
|
|
14
|
+
'device.desktop': 'Desktop',
|
|
15
|
+
'device.desktopHint': 'Largura desktop',
|
|
16
|
+
'device.mobile': 'Móvel',
|
|
17
|
+
'device.mobileHint': 'Largura móvel',
|
|
18
|
+
'device.dark': 'Escuro',
|
|
19
|
+
'device.darkHint': 'Caixa de entrada escura',
|
|
20
|
+
'status.autosaveOn': 'salvamento automático ativado',
|
|
21
|
+
'status.saved': 'salvo {time}',
|
|
22
|
+
'status.saveFailed': 'não salvo — armazenamento cheio',
|
|
23
|
+
'canvas.meta': '{rows} linhas · {blocks} blocos · {width}px',
|
|
24
|
+
'tab.design': 'Estilo',
|
|
25
|
+
'tab.designHint': 'Estilizar a seleção',
|
|
26
|
+
'tab.blocks': 'Blocos',
|
|
27
|
+
'tab.blocksHint': 'Blocos de conteúdo e variáveis',
|
|
28
|
+
'tab.rows': 'Seções',
|
|
29
|
+
'tab.rowsHint': 'Layouts de seção e modelo de tela',
|
|
30
|
+
'tab.files': 'Arquivos',
|
|
31
|
+
'tab.filesHint': 'Biblioteca de recursos',
|
|
32
|
+
'tab.layers': 'Estrutura',
|
|
33
|
+
'tab.layersHint': 'Estrutura do documento',
|
|
34
|
+
'tab.theme': 'Tema',
|
|
35
|
+
'tab.themeHint': 'Estilos globais',
|
|
36
|
+
'tab.data': 'Var.',
|
|
37
|
+
'tab.dataHint': 'Variáveis fornecidas pelo seu código',
|
|
38
|
+
'inspector.blockProperties': 'Propriedades do bloco',
|
|
39
|
+
'inspector.sectionProperties': 'Propriedades da seção',
|
|
40
|
+
'inspector.title': 'Inspetor',
|
|
41
|
+
'inspector.sectionLabel': 'Seção',
|
|
42
|
+
'inspector.nothingSelected': 'Nada selecionado',
|
|
43
|
+
'action.duplicateHint': 'Duplicar — ⌘D',
|
|
44
|
+
'action.deleteHint': 'Excluir — ⌫',
|
|
45
|
+
'inspector.emptyBody':
|
|
46
|
+
'Selecione uma linha ou um bloco na tela para estilizá-lo aqui. Arraste blocos da aba <strong style="color: var(--ed-text); font-weight: 600;">Blocos</strong>; clique duas vezes em qualquer texto para editá-lo diretamente.',
|
|
47
|
+
'inspector.shortcuts': 'Atalhos',
|
|
48
|
+
'shortcut.undoRedo': '⌘Z / ⌘⇧Z — desfazer, refazer',
|
|
49
|
+
'shortcut.duplicate': '⌘D — duplicar seleção',
|
|
50
|
+
'shortcut.delete': '⌫ — excluir seleção',
|
|
51
|
+
'shortcut.export': '⌘E — exportar HTML',
|
|
52
|
+
'shortcut.escape': 'ESC — desmarcar, fechar',
|
|
53
|
+
'blocks.dragHint': 'Arraste para a tela',
|
|
54
|
+
'blocks.count': '{count} blocos',
|
|
55
|
+
'rows.sectionLayouts': 'Layouts de seção',
|
|
56
|
+
'rows.customMarkup': 'Marcação personalizada',
|
|
57
|
+
'rows.htmlRowHint': 'Arraste para inserir, ou clique para adicionar — uma linha de sangria total que você preenche com HTML bruto',
|
|
58
|
+
'rows.rawHtmlSection': 'Seção de HTML bruto',
|
|
59
|
+
'rows.rawHtmlDesc': 'Seção de sangria total, sua própria marcação, ainda arrastável',
|
|
60
|
+
'rows.canvasModel': 'Modelo de tela',
|
|
61
|
+
'rows.modeRowBased': 'Baseado em linhas',
|
|
62
|
+
'rows.modeFreeStack': 'Pilha livre',
|
|
63
|
+
'rows.hintRows':
|
|
64
|
+
'Baseado em seções: solte um layout primeiro, depois blocos em suas colunas — cada seção tem seu próprio fundo, borda, configurações flex ou grade.',
|
|
65
|
+
'rows.hintStack': 'Pilha livre: sem layouts — cada bloco que você solta se torna sua própria seção de largura total, empilhada em ordem.',
|
|
66
|
+
'files.libraryCount': 'Biblioteca — {count} arquivos',
|
|
67
|
+
'files.openManager': 'Abrir gerenciador de arquivos',
|
|
68
|
+
'files.dragToCanvas': 'Arraste qualquer arquivo diretamente para a tela para colocá-lo como bloco de imagem.',
|
|
69
|
+
'layers.structure': 'Estrutura',
|
|
70
|
+
'layers.sectionSingle': 'Seção',
|
|
71
|
+
'layers.sectionMulti': 'Seção · {count} col.',
|
|
72
|
+
'layers.blockCount': '{count} bl.',
|
|
73
|
+
'theme.globalStyles': 'Estilos globais',
|
|
74
|
+
'vars.title': 'Variáveis',
|
|
75
|
+
'vars.fromCode': '{count} do seu código',
|
|
76
|
+
'vars.declaredNote': 'Declaradas pela sua aplicação — a tela sempre mostra o token, nunca um valor.',
|
|
77
|
+
'vars.filterPlaceholder': 'Filtrar variáveis…',
|
|
78
|
+
'vars.insertHint': 'Clique para inserir no texto, título ou botão selecionado',
|
|
79
|
+
'vars.insert': 'inserir',
|
|
80
|
+
'vars.noMatch': 'Nenhuma variável corresponde a esse filtro.',
|
|
81
|
+
'vars.noneDeclared': 'Sua aplicação ainda não declarou nenhuma variável.',
|
|
82
|
+
'vars.rteHint': 'Ao editar texto, você também pode escolher uma variável diretamente no menu da barra de ferramentas em linha.',
|
|
83
|
+
'modal.fileManager': 'Gerenciador de arquivos',
|
|
84
|
+
'modal.assetsTitle': 'Recursos',
|
|
85
|
+
'modal.replaceImage': 'Substituir imagem',
|
|
86
|
+
'library.searchPlaceholder': 'Pesquisar arquivos…',
|
|
87
|
+
'action.upload': 'Enviar',
|
|
88
|
+
'library.clickToPlace': 'Clique em um arquivo para posicioná-lo · ou arraste um arquivo para a tela',
|
|
89
|
+
'library.clickToReplace': 'Clique em um arquivo para substituir a imagem selecionada',
|
|
90
|
+
'library.storageLabel': '{count} arquivos · {size}',
|
|
91
|
+
'library.folders': 'Pastas',
|
|
92
|
+
'library.dropHint': 'Solte arquivos de imagem aqui para enviá-los — ou use o botão Enviar.',
|
|
93
|
+
'library.deleteFileHint': 'Excluir arquivo',
|
|
94
|
+
'library.del': 'EXCL',
|
|
95
|
+
'toast.assetDeleted': '{name} excluído',
|
|
96
|
+
'modal.export': 'Exportar',
|
|
97
|
+
'modal.exportTitle': 'HTML de e-mail baseado em tabelas',
|
|
98
|
+
'export.copy': 'Copiar',
|
|
99
|
+
'export.copied': 'Copiado',
|
|
100
|
+
'action.download': 'Baixar',
|
|
101
|
+
'export.meta': '{kb} KB · tabelas + estilos inline · larguras seguras para o Outlook',
|
|
102
|
+
'modal.rawHtmlTitle': 'HTML bruto, pré-visualização ao vivo',
|
|
103
|
+
'code.statusEdited': 'Visualização de código — editado — pré-visualização ao vivo, ainda não aplicado',
|
|
104
|
+
'code.statusSynced': 'Visualização de código — sincronizado com a tela',
|
|
105
|
+
'action.reload': 'Recarregar',
|
|
106
|
+
'action.reloadHint': 'Recarregar a origem a partir da tela',
|
|
107
|
+
'action.applyToCanvas': 'Aplicar à tela',
|
|
108
|
+
'action.applyToCanvasHint': 'Analisar a origem novamente em linhas editáveis',
|
|
109
|
+
'action.closeWithoutApplyingHint': 'Fechar sem aplicar',
|
|
110
|
+
'code.source': 'Origem',
|
|
111
|
+
'code.livePreview': 'Pré-visualização ao vivo',
|
|
112
|
+
'code.liveHtmlPreviewTitle': 'Pré-visualização de HTML ao vivo',
|
|
113
|
+
'code.applyNote':
|
|
114
|
+
'Aplicar analisa cada linha de tabela de nível superior em uma linha de tela que você ainda pode selecionar, reordenar e excluir — a marcação escrita à mão sobrevive ao processo.',
|
|
115
|
+
'code.meta': '{kb} KB · {lines} linhas',
|
|
116
|
+
'toast.sourceReloaded': 'Origem recarregada a partir da tela',
|
|
117
|
+
'toast.sourceAppliedOne': 'Origem aplicada — 1 linha na tela',
|
|
118
|
+
'toast.sourceAppliedMany': 'Origem aplicada — {rows} linhas na tela',
|
|
119
|
+
'toast.parseError': 'Não foi possível analisar esse HTML',
|
|
120
|
+
'modal.copyAssist': 'Assistente de redação',
|
|
121
|
+
'modal.draftCopyTitle': 'Redigir texto para esta campanha',
|
|
122
|
+
'ai.goal': 'Objetivo',
|
|
123
|
+
'ai.tone': 'Tom',
|
|
124
|
+
'ai.briefLabel': 'Sobre o que é este e-mail?',
|
|
125
|
+
'ai.briefPlaceholder': 'ex. Coleção de outono, 15% para assinantes, frete grátis acima de R$150',
|
|
126
|
+
'ai.generate': 'Gerar texto',
|
|
127
|
+
'ai.writing': 'Escrevendo…',
|
|
128
|
+
'ai.kindHeadline': 'Título',
|
|
129
|
+
'ai.kindBody': 'Corpo do texto',
|
|
130
|
+
'ai.kindButton': 'Texto do botão',
|
|
131
|
+
'ai.actionInsertHeading': 'Inserir como título',
|
|
132
|
+
'ai.actionInsertText': 'Inserir como bloco de texto',
|
|
133
|
+
'ai.actionInsertButton': 'Inserir como botão',
|
|
134
|
+
'toast.headingAdded': 'Título adicionado',
|
|
135
|
+
'toast.textBlockAdded': 'Bloco de texto adicionado',
|
|
136
|
+
'toast.buttonAdded': 'Botão adicionado',
|
|
137
|
+
'preview.kickerMobile': 'Pré-visualização — móvel 375px',
|
|
138
|
+
'preview.kickerDark': 'Pré-visualização — caixa escura',
|
|
139
|
+
'preview.kickerDesktop': 'Pré-visualização — desktop {width}px',
|
|
140
|
+
'action.close': 'Fechar',
|
|
141
|
+
'toast.duplicated': 'Duplicado',
|
|
142
|
+
'toast.fileUploadedOne': '1 arquivo enviado',
|
|
143
|
+
'toast.fileUploadedMany': '{count} arquivos enviados',
|
|
144
|
+
'toast.imageReplaced': 'Imagem substituída',
|
|
145
|
+
'toast.imageAdded': 'Imagem adicionada à tela',
|
|
146
|
+
'toast.htmlCopied': 'HTML copiado para a área de transferência',
|
|
147
|
+
'toast.templateLoaded': '{name} carregado',
|
|
148
|
+
'toast.snippetDefaultLabel': 'Trecho',
|
|
149
|
+
'toast.snippetInserted': '{name} inserido',
|
|
150
|
+
'toast.snippetCopied': '{name} copiado — selecione um bloco de texto para inseri-lo',
|
|
151
|
+
};
|
|
152
|
+
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/** Romanian (Română) — `ro`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
+
export const RO = {
|
|
3
|
+
'action.undoHint': 'Anulează — ⌘Z',
|
|
4
|
+
'action.redoHint': 'Refă — ⌘⇧Z',
|
|
5
|
+
'action.chromeToDark': 'Întunecat',
|
|
6
|
+
'action.chromeToLight': 'Luminos',
|
|
7
|
+
'action.chromeHint': 'Temă editor luminoasă / întunecată',
|
|
8
|
+
'action.aiCopy': 'Text',
|
|
9
|
+
'action.aiCopyHint': 'Redactează text cu AI',
|
|
10
|
+
'action.code': 'Cod',
|
|
11
|
+
'action.codeHint': 'Editează HTML brut cu previzualizare live',
|
|
12
|
+
'action.preview': 'Previzualizare',
|
|
13
|
+
'action.export': 'Exportă',
|
|
14
|
+
'device.desktop': 'Desktop',
|
|
15
|
+
'device.desktopHint': 'Lățime desktop',
|
|
16
|
+
'device.mobile': 'Mobil',
|
|
17
|
+
'device.mobileHint': 'Lățime mobil',
|
|
18
|
+
'device.dark': 'Întunecat',
|
|
19
|
+
'device.darkHint': 'Mod întunecat pentru inbox',
|
|
20
|
+
'status.autosaveOn': 'salvare automată activă',
|
|
21
|
+
'status.saved': 'salvat {time}',
|
|
22
|
+
'status.saveFailed': 'nu s-a salvat — stocare plină',
|
|
23
|
+
'canvas.meta': '{rows} rânduri · {blocks} blocuri · {width}px',
|
|
24
|
+
'tab.design': 'Stil',
|
|
25
|
+
'tab.designHint': 'Stilizează selecția',
|
|
26
|
+
'tab.blocks': 'Blocuri',
|
|
27
|
+
'tab.blocksHint': 'Blocuri de conținut și variabile',
|
|
28
|
+
'tab.rows': 'Secțiuni',
|
|
29
|
+
'tab.rowsHint': 'Aspecte de secțiuni și model de canvas',
|
|
30
|
+
'tab.files': 'Fișiere',
|
|
31
|
+
'tab.filesHint': 'Bibliotecă de resurse',
|
|
32
|
+
'tab.layers': 'Structură',
|
|
33
|
+
'tab.layersHint': 'Structura documentului',
|
|
34
|
+
'tab.theme': 'Temă',
|
|
35
|
+
'tab.themeHint': 'Stiluri globale',
|
|
36
|
+
'tab.data': 'Var.',
|
|
37
|
+
'tab.dataHint': 'Variabile furnizate de codul dvs.',
|
|
38
|
+
'inspector.blockProperties': 'Proprietățile blocului',
|
|
39
|
+
'inspector.sectionProperties': 'Proprietățile secțiunii',
|
|
40
|
+
'inspector.title': 'Inspector',
|
|
41
|
+
'inspector.sectionLabel': 'Secțiune',
|
|
42
|
+
'inspector.nothingSelected': 'Nimic selectat',
|
|
43
|
+
'action.duplicateHint': 'Duplică — ⌘D',
|
|
44
|
+
'action.deleteHint': 'Șterge — ⌫',
|
|
45
|
+
'inspector.emptyBody':
|
|
46
|
+
'Selectați un rând sau un bloc pe canvas pentru a-l stiliza aici. Trageți blocuri din fila <strong style="color: var(--ed-text); font-weight: 600;">Blocuri</strong>; dați dublu clic pe orice text pentru a-l edita direct.',
|
|
47
|
+
'inspector.shortcuts': 'Comenzi rapide',
|
|
48
|
+
'shortcut.undoRedo': '⌘Z / ⌘⇧Z — anulează, refă',
|
|
49
|
+
'shortcut.duplicate': '⌘D — duplică selecția',
|
|
50
|
+
'shortcut.delete': '⌫ — șterge selecția',
|
|
51
|
+
'shortcut.export': '⌘E — exportă HTML',
|
|
52
|
+
'shortcut.escape': 'ESC — deselectează, închide',
|
|
53
|
+
'blocks.dragHint': 'Trageți pe canvas',
|
|
54
|
+
'blocks.count': '{count} blocuri',
|
|
55
|
+
'rows.sectionLayouts': 'Aspecte de secțiuni',
|
|
56
|
+
'rows.customMarkup': 'Cod personalizat',
|
|
57
|
+
'rows.htmlRowHint': 'Trageți pentru a insera, sau dați clic pentru a adăuga — un rând pe toată lățimea pe care îl completați cu HTML brut',
|
|
58
|
+
'rows.rawHtmlSection': 'Secțiune HTML brut',
|
|
59
|
+
'rows.rawHtmlDesc': 'Secțiune pe toată lățimea, codul dvs. propriu, în continuare se poate trage',
|
|
60
|
+
'rows.canvasModel': 'Model canvas',
|
|
61
|
+
'rows.modeRowBased': 'Bazat pe rânduri',
|
|
62
|
+
'rows.modeFreeStack': 'Stivă liberă',
|
|
63
|
+
'rows.hintRows':
|
|
64
|
+
'Bazat pe secțiuni: plasați mai întâi un aspect, apoi blocuri în coloanele sale — fiecare secțiune are propriul fundal, bordură, setări flex sau grilă.',
|
|
65
|
+
'rows.hintStack': 'Stivă liberă: fără aspecte — fiecare bloc plasat devine propria secțiune pe toată lățimea, stivuită în ordine.',
|
|
66
|
+
'files.libraryCount': 'Bibliotecă — {count} fișiere',
|
|
67
|
+
'files.openManager': 'Deschide managerul de fișiere',
|
|
68
|
+
'files.dragToCanvas': 'Trageți orice fișier direct pe canvas pentru a-l plasa ca bloc de imagine.',
|
|
69
|
+
'layers.structure': 'Structură',
|
|
70
|
+
'layers.sectionSingle': 'Secțiune',
|
|
71
|
+
'layers.sectionMulti': 'Secțiune · {count} coloane',
|
|
72
|
+
'layers.blockCount': '{count} bl.',
|
|
73
|
+
'theme.globalStyles': 'Stiluri globale',
|
|
74
|
+
'vars.title': 'Variabile',
|
|
75
|
+
'vars.fromCode': '{count} din codul dvs.',
|
|
76
|
+
'vars.declaredNote': 'Declarate de aplicația dvs. — canvasul afișează întotdeauna tokenul, niciodată o valoare.',
|
|
77
|
+
'vars.filterPlaceholder': 'Filtrează variabilele…',
|
|
78
|
+
'vars.insertHint': 'Dați clic pentru a insera în textul, titlul sau butonul selectat',
|
|
79
|
+
'vars.insert': 'inserează',
|
|
80
|
+
'vars.noMatch': 'Nicio variabilă nu corespunde acestui filtru.',
|
|
81
|
+
'vars.noneDeclared': 'Aplicația dvs. nu a declarat încă nicio variabilă.',
|
|
82
|
+
'vars.rteHint': 'În timp ce editați text, puteți alege o variabilă și direct din meniul derulant al barei de instrumente în linie.',
|
|
83
|
+
'modal.fileManager': 'Manager de fișiere',
|
|
84
|
+
'modal.assetsTitle': 'Resurse',
|
|
85
|
+
'modal.replaceImage': 'Înlocuiește imaginea',
|
|
86
|
+
'library.searchPlaceholder': 'Căutare fișiere…',
|
|
87
|
+
'action.upload': 'Încarcă',
|
|
88
|
+
'library.clickToPlace': 'Dați clic pe un fișier pentru a-l plasa · sau trageți un fișier pe canvas',
|
|
89
|
+
'library.clickToReplace': 'Dați clic pe un fișier pentru a înlocui imaginea selectată',
|
|
90
|
+
'library.storageLabel': '{count} fișiere · {size}',
|
|
91
|
+
'library.folders': 'Foldere',
|
|
92
|
+
'library.dropHint': 'Plasați fișiere imagine aici pentru încărcare — sau folosiți butonul Încarcă.',
|
|
93
|
+
'library.deleteFileHint': 'Șterge fișierul',
|
|
94
|
+
'library.del': 'ȘTERG',
|
|
95
|
+
'toast.assetDeleted': '{name} șters',
|
|
96
|
+
'modal.export': 'Exportă',
|
|
97
|
+
'modal.exportTitle': 'HTML de e-mail bazat pe tabele',
|
|
98
|
+
'export.copy': 'Copiază',
|
|
99
|
+
'export.copied': 'Copiat',
|
|
100
|
+
'action.download': 'Descarcă',
|
|
101
|
+
'export.meta': '{kb} KB · tabele + stiluri inline · lățimi sigure pentru Outlook',
|
|
102
|
+
'modal.rawHtmlTitle': 'HTML brut, previzualizare live',
|
|
103
|
+
'code.statusEdited': 'Vizualizare cod — editat — previzualizare live, încă neaplicat',
|
|
104
|
+
'code.statusSynced': 'Vizualizare cod — sincronizat cu canvasul',
|
|
105
|
+
'action.reload': 'Reîncarcă',
|
|
106
|
+
'action.reloadHint': 'Reîncarcă sursa din canvas',
|
|
107
|
+
'action.applyToCanvas': 'Aplică pe canvas',
|
|
108
|
+
'action.applyToCanvasHint': 'Reanalizează sursa în rânduri editabile',
|
|
109
|
+
'action.closeWithoutApplyingHint': 'Închide fără a aplica',
|
|
110
|
+
'code.source': 'Sursă',
|
|
111
|
+
'code.livePreview': 'Previzualizare live',
|
|
112
|
+
'code.liveHtmlPreviewTitle': 'Previzualizare HTML live',
|
|
113
|
+
'code.applyNote':
|
|
114
|
+
'Aplicarea analizează fiecare rând de tabel de nivel superior într-un rând de canvas pe care îl puteți încă selecta, reordona și șterge — codul scris manual supraviețuiește procesului nemodificat.',
|
|
115
|
+
'code.meta': '{kb} KB · {lines} rânduri',
|
|
116
|
+
'toast.sourceReloaded': 'Sursă reîncărcată din canvas',
|
|
117
|
+
'toast.sourceAppliedOne': 'Sursă aplicată — 1 rând pe canvas',
|
|
118
|
+
'toast.sourceAppliedMany': 'Sursă aplicată — {rows} rânduri pe canvas',
|
|
119
|
+
'toast.parseError': 'Acest HTML nu a putut fi analizat',
|
|
120
|
+
'modal.copyAssist': 'Asistent de redactare',
|
|
121
|
+
'modal.draftCopyTitle': 'Redactează text pentru această campanie',
|
|
122
|
+
'ai.goal': 'Obiectiv',
|
|
123
|
+
'ai.tone': 'Ton',
|
|
124
|
+
'ai.briefLabel': 'Despre ce este acest e-mail?',
|
|
125
|
+
'ai.briefPlaceholder': 'de ex. Colecție de toamnă, 15% pentru abonați, livrare gratuită peste 150 lei',
|
|
126
|
+
'ai.generate': 'Generează text',
|
|
127
|
+
'ai.writing': 'Se scrie…',
|
|
128
|
+
'ai.kindHeadline': 'Titlu',
|
|
129
|
+
'ai.kindBody': 'Text principal',
|
|
130
|
+
'ai.kindButton': 'Text buton',
|
|
131
|
+
'ai.actionInsertHeading': 'Inserează ca titlu',
|
|
132
|
+
'ai.actionInsertText': 'Inserează ca bloc de text',
|
|
133
|
+
'ai.actionInsertButton': 'Inserează ca buton',
|
|
134
|
+
'toast.headingAdded': 'Titlu adăugat',
|
|
135
|
+
'toast.textBlockAdded': 'Bloc de text adăugat',
|
|
136
|
+
'toast.buttonAdded': 'Buton adăugat',
|
|
137
|
+
'preview.kickerMobile': 'Previzualizare — mobil 375px',
|
|
138
|
+
'preview.kickerDark': 'Previzualizare — inbox întunecat',
|
|
139
|
+
'preview.kickerDesktop': 'Previzualizare — desktop {width}px',
|
|
140
|
+
'action.close': 'Închide',
|
|
141
|
+
'toast.duplicated': 'Duplicat',
|
|
142
|
+
'toast.fileUploadedOne': '1 fișier încărcat',
|
|
143
|
+
'toast.fileUploadedMany': '{count} fișiere încărcate',
|
|
144
|
+
'toast.imageReplaced': 'Imagine înlocuită',
|
|
145
|
+
'toast.imageAdded': 'Imagine adăugată pe canvas',
|
|
146
|
+
'toast.htmlCopied': 'HTML copiat în clipboard',
|
|
147
|
+
'toast.templateLoaded': '{name} încărcat',
|
|
148
|
+
'toast.snippetDefaultLabel': 'Fragment',
|
|
149
|
+
'toast.snippetInserted': '{name} inserat',
|
|
150
|
+
'toast.snippetCopied': '{name} copiat — selectați un bloc de text pentru a-l insera',
|
|
151
|
+
};
|
|
152
|
+
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/** Russian (Русский) — `ru`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
+
export const RU = {
|
|
3
|
+
'action.undoHint': 'Отменить — ⌘Z',
|
|
4
|
+
'action.redoHint': 'Повторить — ⌘⇧Z',
|
|
5
|
+
'action.chromeToDark': 'Тёмная',
|
|
6
|
+
'action.chromeToLight': 'Светлая',
|
|
7
|
+
'action.chromeHint': 'Тема редактора светлая / тёмная',
|
|
8
|
+
'action.aiCopy': 'Текст',
|
|
9
|
+
'action.aiCopyHint': 'Составить текст с помощью ИИ',
|
|
10
|
+
'action.code': 'Код',
|
|
11
|
+
'action.codeHint': 'Редактировать исходный HTML с живым просмотром',
|
|
12
|
+
'action.preview': 'Просмотр',
|
|
13
|
+
'action.export': 'Экспорт',
|
|
14
|
+
'device.desktop': 'Компьютер',
|
|
15
|
+
'device.desktopHint': 'Ширина для компьютера',
|
|
16
|
+
'device.mobile': 'Телефон',
|
|
17
|
+
'device.mobileHint': 'Ширина для телефона',
|
|
18
|
+
'device.dark': 'Тёмная',
|
|
19
|
+
'device.darkHint': 'Тёмный режим входящих',
|
|
20
|
+
'status.autosaveOn': 'автосохранение включено',
|
|
21
|
+
'status.saved': 'сохранено {time}',
|
|
22
|
+
'status.saveFailed': 'не сохранено — хранилище заполнено',
|
|
23
|
+
'canvas.meta': '{rows} строк · {blocks} блоков · {width}px',
|
|
24
|
+
'tab.design': 'Стиль',
|
|
25
|
+
'tab.designHint': 'Оформить выделенное',
|
|
26
|
+
'tab.blocks': 'Блоки',
|
|
27
|
+
'tab.blocksHint': 'Блоки контента и переменные',
|
|
28
|
+
'tab.rows': 'Секции',
|
|
29
|
+
'tab.rowsHint': 'Макеты секций и модель холста',
|
|
30
|
+
'tab.files': 'Файлы',
|
|
31
|
+
'tab.filesHint': 'Библиотека файлов',
|
|
32
|
+
'tab.layers': 'Структура',
|
|
33
|
+
'tab.layersHint': 'Структура документа',
|
|
34
|
+
'tab.theme': 'Тема',
|
|
35
|
+
'tab.themeHint': 'Глобальные стили',
|
|
36
|
+
'tab.data': 'Перем.',
|
|
37
|
+
'tab.dataHint': 'Переменные, предоставленные вашим кодом',
|
|
38
|
+
'inspector.blockProperties': 'Свойства блока',
|
|
39
|
+
'inspector.sectionProperties': 'Свойства секции',
|
|
40
|
+
'inspector.title': 'Инспектор',
|
|
41
|
+
'inspector.sectionLabel': 'Секция',
|
|
42
|
+
'inspector.nothingSelected': 'Ничего не выбрано',
|
|
43
|
+
'action.duplicateHint': 'Дублировать — ⌘D',
|
|
44
|
+
'action.deleteHint': 'Удалить — ⌫',
|
|
45
|
+
'inspector.emptyBody':
|
|
46
|
+
'Выберите строку или блок на холсте, чтобы оформить его здесь. Перетащите блоки со вкладки <strong style="color: var(--ed-text); font-weight: 600;">Блоки</strong>; дважды щёлкните по тексту, чтобы редактировать его на месте.',
|
|
47
|
+
'inspector.shortcuts': 'Горячие клавиши',
|
|
48
|
+
'shortcut.undoRedo': '⌘Z / ⌘⇧Z — отменить, повторить',
|
|
49
|
+
'shortcut.duplicate': '⌘D — дублировать выделение',
|
|
50
|
+
'shortcut.delete': '⌫ — удалить выделение',
|
|
51
|
+
'shortcut.export': '⌘E — экспортировать HTML',
|
|
52
|
+
'shortcut.escape': 'ESC — снять выделение, закрыть',
|
|
53
|
+
'blocks.dragHint': 'Перетащите на холст',
|
|
54
|
+
'blocks.count': '{count} блоков',
|
|
55
|
+
'rows.sectionLayouts': 'Макеты секций',
|
|
56
|
+
'rows.customMarkup': 'Свой код',
|
|
57
|
+
'rows.htmlRowHint': 'Перетащите, чтобы вставить, или щёлкните, чтобы добавить — строка на всю ширину, которую вы заполняете исходным HTML',
|
|
58
|
+
'rows.rawHtmlSection': 'Секция с исходным HTML',
|
|
59
|
+
'rows.rawHtmlDesc': 'Секция на всю ширину, ваш собственный код, всё ещё перетаскивается',
|
|
60
|
+
'rows.canvasModel': 'Модель холста',
|
|
61
|
+
'rows.modeRowBased': 'На основе строк',
|
|
62
|
+
'rows.modeFreeStack': 'Свободный стек',
|
|
63
|
+
'rows.hintRows':
|
|
64
|
+
'На основе секций: сначала поместите макет, затем блоки в его колонки — у каждой секции свой фон, граница, настройки flex или сетки.',
|
|
65
|
+
'rows.hintStack': 'Свободный стек: без макетов — каждый добавленный блок становится собственной секцией на всю ширину, уложенной по порядку.',
|
|
66
|
+
'files.libraryCount': 'Библиотека — {count} файлов',
|
|
67
|
+
'files.openManager': 'Открыть файловый менеджер',
|
|
68
|
+
'files.dragToCanvas': 'Перетащите любой файл прямо на холст, чтобы разместить его как блок изображения.',
|
|
69
|
+
'layers.structure': 'Структура',
|
|
70
|
+
'layers.sectionSingle': 'Секция',
|
|
71
|
+
'layers.sectionMulti': 'Секция · {count} кол.',
|
|
72
|
+
'layers.blockCount': '{count} бл.',
|
|
73
|
+
'theme.globalStyles': 'Глобальные стили',
|
|
74
|
+
'vars.title': 'Переменные',
|
|
75
|
+
'vars.fromCode': '{count} из вашего кода',
|
|
76
|
+
'vars.declaredNote': 'Объявлены вашим приложением — холст всегда показывает токен, никогда значение.',
|
|
77
|
+
'vars.filterPlaceholder': 'Фильтр переменных…',
|
|
78
|
+
'vars.insertHint': 'Нажмите, чтобы вставить в выбранный текст, заголовок или кнопку',
|
|
79
|
+
'vars.insert': 'вставить',
|
|
80
|
+
'vars.noMatch': 'Нет переменных, соответствующих этому фильтру.',
|
|
81
|
+
'vars.noneDeclared': 'Ваше приложение ещё не объявило переменные.',
|
|
82
|
+
'vars.rteHint': 'При редактировании текста вы также можете выбрать переменную прямо из выпадающего списка встроенной панели инструментов.',
|
|
83
|
+
'modal.fileManager': 'Файловый менеджер',
|
|
84
|
+
'modal.assetsTitle': 'Файлы',
|
|
85
|
+
'modal.replaceImage': 'Заменить изображение',
|
|
86
|
+
'library.searchPlaceholder': 'Поиск файлов…',
|
|
87
|
+
'action.upload': 'Загрузить',
|
|
88
|
+
'library.clickToPlace': 'Нажмите на файл, чтобы разместить · или перетащите файл на холст',
|
|
89
|
+
'library.clickToReplace': 'Нажмите на файл, чтобы заменить выбранное изображение',
|
|
90
|
+
'library.storageLabel': '{count} файлов · {size}',
|
|
91
|
+
'library.folders': 'Папки',
|
|
92
|
+
'library.dropHint': 'Перетащите файлы изображений сюда для загрузки — или используйте кнопку «Загрузить».',
|
|
93
|
+
'library.deleteFileHint': 'Удалить файл',
|
|
94
|
+
'library.del': 'УДАЛ',
|
|
95
|
+
'toast.assetDeleted': '{name} удалён',
|
|
96
|
+
'modal.export': 'Экспорт',
|
|
97
|
+
'modal.exportTitle': 'HTML письма на основе таблиц',
|
|
98
|
+
'export.copy': 'Копировать',
|
|
99
|
+
'export.copied': 'Скопировано',
|
|
100
|
+
'action.download': 'Скачать',
|
|
101
|
+
'export.meta': '{kb} КБ · таблицы + встроенные стили · ширины, безопасные для Outlook',
|
|
102
|
+
'modal.rawHtmlTitle': 'Исходный HTML, живой просмотр',
|
|
103
|
+
'code.statusEdited': 'Просмотр кода — изменён — просмотр в реальном времени, ещё не применено',
|
|
104
|
+
'code.statusSynced': 'Просмотр кода — синхронизирован с холстом',
|
|
105
|
+
'action.reload': 'Обновить',
|
|
106
|
+
'action.reloadHint': 'Обновить исходник из холста',
|
|
107
|
+
'action.applyToCanvas': 'Применить к холсту',
|
|
108
|
+
'action.applyToCanvasHint': 'Разобрать исходник обратно в редактируемые строки',
|
|
109
|
+
'action.closeWithoutApplyingHint': 'Закрыть без применения',
|
|
110
|
+
'code.source': 'Исходник',
|
|
111
|
+
'code.livePreview': 'Живой просмотр',
|
|
112
|
+
'code.liveHtmlPreviewTitle': 'Живой просмотр HTML',
|
|
113
|
+
'code.applyNote':
|
|
114
|
+
'Применение разбирает каждую строку таблицы верхнего уровня в строку холста, которую вы всё ещё можете выбирать, переупорядочивать и удалять — написанный вручную код переживает этот процесс.',
|
|
115
|
+
'code.meta': '{kb} КБ · {lines} строк',
|
|
116
|
+
'toast.sourceReloaded': 'Исходник обновлён из холста',
|
|
117
|
+
'toast.sourceAppliedOne': 'Исходник применён — 1 строка на холсте',
|
|
118
|
+
'toast.sourceAppliedMany': 'Исходник применён — {rows} строк на холсте',
|
|
119
|
+
'toast.parseError': 'Не удалось разобрать этот HTML',
|
|
120
|
+
'modal.copyAssist': 'Помощник по тексту',
|
|
121
|
+
'modal.draftCopyTitle': 'Составить текст для этой кампании',
|
|
122
|
+
'ai.goal': 'Цель',
|
|
123
|
+
'ai.tone': 'Тон',
|
|
124
|
+
'ai.briefLabel': 'О чём это письмо?',
|
|
125
|
+
'ai.briefPlaceholder': 'напр. Осенняя коллекция, 15% для подписчиков, бесплатная доставка от 150$',
|
|
126
|
+
'ai.generate': 'Сгенерировать текст',
|
|
127
|
+
'ai.writing': 'Пишем…',
|
|
128
|
+
'ai.kindHeadline': 'Заголовок',
|
|
129
|
+
'ai.kindBody': 'Основной текст',
|
|
130
|
+
'ai.kindButton': 'Текст кнопки',
|
|
131
|
+
'ai.actionInsertHeading': 'Вставить как заголовок',
|
|
132
|
+
'ai.actionInsertText': 'Вставить как текстовый блок',
|
|
133
|
+
'ai.actionInsertButton': 'Вставить как кнопку',
|
|
134
|
+
'toast.headingAdded': 'Заголовок добавлен',
|
|
135
|
+
'toast.textBlockAdded': 'Текстовый блок добавлен',
|
|
136
|
+
'toast.buttonAdded': 'Кнопка добавлена',
|
|
137
|
+
'preview.kickerMobile': 'Просмотр — телефон 375px',
|
|
138
|
+
'preview.kickerDark': 'Просмотр — тёмные входящие',
|
|
139
|
+
'preview.kickerDesktop': 'Просмотр — компьютер {width}px',
|
|
140
|
+
'action.close': 'Закрыть',
|
|
141
|
+
'toast.duplicated': 'Продублировано',
|
|
142
|
+
'toast.fileUploadedOne': 'Загружен 1 файл',
|
|
143
|
+
'toast.fileUploadedMany': 'Загружено файлов: {count}',
|
|
144
|
+
'toast.imageReplaced': 'Изображение заменено',
|
|
145
|
+
'toast.imageAdded': 'Изображение добавлено на холст',
|
|
146
|
+
'toast.htmlCopied': 'HTML скопирован в буфер обмена',
|
|
147
|
+
'toast.templateLoaded': '{name} загружен',
|
|
148
|
+
'toast.snippetDefaultLabel': 'Фрагмент',
|
|
149
|
+
'toast.snippetInserted': '{name} вставлен',
|
|
150
|
+
'toast.snippetCopied': '{name} скопирован — выберите текстовый блок, чтобы вставить',
|
|
151
|
+
};
|
|
152
|
+
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/** Slovak (Slovenčina) — `sk`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
+
export const SK = {
|
|
3
|
+
'action.undoHint': 'Späť — ⌘Z',
|
|
4
|
+
'action.redoHint': 'Znova — ⌘⇧Z',
|
|
5
|
+
'action.chromeToDark': 'Tmavý',
|
|
6
|
+
'action.chromeToLight': 'Svetlý',
|
|
7
|
+
'action.chromeHint': 'Motív editora svetlý / tmavý',
|
|
8
|
+
'action.aiCopy': 'Text',
|
|
9
|
+
'action.aiCopyHint': 'Napísať text pomocou AI',
|
|
10
|
+
'action.code': 'Kód',
|
|
11
|
+
'action.codeHint': 'Upraviť surové HTML so živým náhľadom',
|
|
12
|
+
'action.preview': 'Náhľad',
|
|
13
|
+
'action.export': 'Exportovať',
|
|
14
|
+
'device.desktop': 'Počítač',
|
|
15
|
+
'device.desktopHint': 'Šírka pre počítač',
|
|
16
|
+
'device.mobile': 'Mobil',
|
|
17
|
+
'device.mobileHint': 'Šírka pre mobil',
|
|
18
|
+
'device.dark': 'Tmavý',
|
|
19
|
+
'device.darkHint': 'Tmavý režim schránky',
|
|
20
|
+
'status.autosaveOn': 'automatické ukladanie zapnuté',
|
|
21
|
+
'status.saved': 'uložené {time}',
|
|
22
|
+
'status.saveFailed': 'neuložené — úložisko je plné',
|
|
23
|
+
'canvas.meta': '{rows} riadkov · {blocks} blokov · {width}px',
|
|
24
|
+
'tab.design': 'Štýl',
|
|
25
|
+
'tab.designHint': 'Štylizovať výber',
|
|
26
|
+
'tab.blocks': 'Bloky',
|
|
27
|
+
'tab.blocksHint': 'Bloky obsahu a premenné',
|
|
28
|
+
'tab.rows': 'Sekcie',
|
|
29
|
+
'tab.rowsHint': 'Rozloženia sekcií a model plátna',
|
|
30
|
+
'tab.files': 'Súbory',
|
|
31
|
+
'tab.filesHint': 'Knižnica súborov',
|
|
32
|
+
'tab.layers': 'Štruktúra',
|
|
33
|
+
'tab.layersHint': 'Štruktúra dokumentu',
|
|
34
|
+
'tab.theme': 'Motív',
|
|
35
|
+
'tab.themeHint': 'Globálne štýly',
|
|
36
|
+
'tab.data': 'Prem.',
|
|
37
|
+
'tab.dataHint': 'Premenné poskytnuté vaším kódom',
|
|
38
|
+
'inspector.blockProperties': 'Vlastnosti bloku',
|
|
39
|
+
'inspector.sectionProperties': 'Vlastnosti sekcie',
|
|
40
|
+
'inspector.title': 'Inšpektor',
|
|
41
|
+
'inspector.sectionLabel': 'Sekcia',
|
|
42
|
+
'inspector.nothingSelected': 'Nič nie je vybraté',
|
|
43
|
+
'action.duplicateHint': 'Duplikovať — ⌘D',
|
|
44
|
+
'action.deleteHint': 'Odstrániť — ⌫',
|
|
45
|
+
'inspector.emptyBody':
|
|
46
|
+
'Vyberte riadok alebo blok na plátne a štylizujte ho tu. Presuňte bloky z karty <strong style="color: var(--ed-text); font-weight: 600;">Bloky</strong>; dvojklikom na text ho upravíte priamo na mieste.',
|
|
47
|
+
'inspector.shortcuts': 'Skratky',
|
|
48
|
+
'shortcut.undoRedo': '⌘Z / ⌘⇧Z — späť, znova',
|
|
49
|
+
'shortcut.duplicate': '⌘D — duplikovať výber',
|
|
50
|
+
'shortcut.delete': '⌫ — odstrániť výber',
|
|
51
|
+
'shortcut.export': '⌘E — exportovať HTML',
|
|
52
|
+
'shortcut.escape': 'ESC — zrušiť výber, zavrieť',
|
|
53
|
+
'blocks.dragHint': 'Presuňte na plátno',
|
|
54
|
+
'blocks.count': '{count} blokov',
|
|
55
|
+
'rows.sectionLayouts': 'Rozloženia sekcií',
|
|
56
|
+
'rows.customMarkup': 'Vlastný kód',
|
|
57
|
+
'rows.htmlRowHint': 'Presuňte pre vloženie alebo kliknite pre pridanie — riadok na celú šírku, ktorý vyplníte surovým HTML',
|
|
58
|
+
'rows.rawHtmlSection': 'Sekcia so surovým HTML',
|
|
59
|
+
'rows.rawHtmlDesc': 'Sekcia na celú šírku, váš vlastný kód, stále presúvateľná',
|
|
60
|
+
'rows.canvasModel': 'Model plátna',
|
|
61
|
+
'rows.modeRowBased': 'Založené na riadkoch',
|
|
62
|
+
'rows.modeFreeStack': 'Voľný zásobník',
|
|
63
|
+
'rows.hintRows':
|
|
64
|
+
'Založené na sekciách: najprv umiestnite rozloženie, potom bloky do jeho stĺpcov — každá sekcia má vlastné pozadie, ohraničenie, nastavenia flex alebo mriežky.',
|
|
65
|
+
'rows.hintStack': 'Voľný zásobník: bez rozložení — každý umiestnený blok sa stane vlastnou sekciou na celú šírku, zoradenou postupne.',
|
|
66
|
+
'files.libraryCount': 'Knižnica — {count} súborov',
|
|
67
|
+
'files.openManager': 'Otvoriť správcu súborov',
|
|
68
|
+
'files.dragToCanvas': 'Presuňte ľubovoľný súbor priamo na plátno a umiestnite ho ako obrazový blok.',
|
|
69
|
+
'layers.structure': 'Štruktúra',
|
|
70
|
+
'layers.sectionSingle': 'Sekcia',
|
|
71
|
+
'layers.sectionMulti': 'Sekcia · {count} stĺpcov',
|
|
72
|
+
'layers.blockCount': '{count} bl.',
|
|
73
|
+
'theme.globalStyles': 'Globálne štýly',
|
|
74
|
+
'vars.title': 'Premenné',
|
|
75
|
+
'vars.fromCode': '{count} z vášho kódu',
|
|
76
|
+
'vars.declaredNote': 'Deklarované vašou aplikáciou — plátno vždy zobrazuje token, nikdy hodnotu.',
|
|
77
|
+
'vars.filterPlaceholder': 'Filtrovať premenné…',
|
|
78
|
+
'vars.insertHint': 'Kliknite pre vloženie do vybraného textu, nadpisu alebo tlačidla',
|
|
79
|
+
'vars.insert': 'vložiť',
|
|
80
|
+
'vars.noMatch': 'Žiadna premenná nezodpovedá tomuto filtru.',
|
|
81
|
+
'vars.noneDeclared': 'Vaša aplikácia zatiaľ nedeklarovala žiadne premenné.',
|
|
82
|
+
'vars.rteHint': 'Pri úprave textu môžete premennú vybrať aj priamo z rozbaľovacej ponuky vloženého panela nástrojov.',
|
|
83
|
+
'modal.fileManager': 'Správca súborov',
|
|
84
|
+
'modal.assetsTitle': 'Zdroje',
|
|
85
|
+
'modal.replaceImage': 'Nahradiť obrázok',
|
|
86
|
+
'library.searchPlaceholder': 'Hľadať súbory…',
|
|
87
|
+
'action.upload': 'Nahrať',
|
|
88
|
+
'library.clickToPlace': 'Kliknite na súbor pre umiestnenie · alebo presuňte súbor na plátno',
|
|
89
|
+
'library.clickToReplace': 'Kliknite na súbor pre nahradenie vybraného obrázka',
|
|
90
|
+
'library.storageLabel': '{count} súborov · {size}',
|
|
91
|
+
'library.folders': 'Priečinky',
|
|
92
|
+
'library.dropHint': 'Sem presuňte obrázkové súbory na nahranie — alebo použite tlačidlo Nahrať.',
|
|
93
|
+
'library.deleteFileHint': 'Odstrániť súbor',
|
|
94
|
+
'library.del': 'ZMAZ',
|
|
95
|
+
'toast.assetDeleted': '{name} odstránený',
|
|
96
|
+
'modal.export': 'Exportovať',
|
|
97
|
+
'modal.exportTitle': 'HTML e-mailu založené na tabuľkách',
|
|
98
|
+
'export.copy': 'Kopírovať',
|
|
99
|
+
'export.copied': 'Skopírované',
|
|
100
|
+
'action.download': 'Stiahnuť',
|
|
101
|
+
'export.meta': '{kb} KB · tabuľky + vložené štýly · šírky bezpečné pre Outlook',
|
|
102
|
+
'modal.rawHtmlTitle': 'Surové HTML, živý náhľad',
|
|
103
|
+
'code.statusEdited': 'Zobrazenie kódu — upravené — náhľad naživo, zatiaľ neaplikované',
|
|
104
|
+
'code.statusSynced': 'Zobrazenie kódu — synchronizované s plátnom',
|
|
105
|
+
'action.reload': 'Znova načítať',
|
|
106
|
+
'action.reloadHint': 'Znova načítať zdroj z plátna',
|
|
107
|
+
'action.applyToCanvas': 'Použiť na plátno',
|
|
108
|
+
'action.applyToCanvasHint': 'Znova rozobrať zdroj na upraviteľné riadky',
|
|
109
|
+
'action.closeWithoutApplyingHint': 'Zavrieť bez použitia',
|
|
110
|
+
'code.source': 'Zdroj',
|
|
111
|
+
'code.livePreview': 'Živý náhľad',
|
|
112
|
+
'code.liveHtmlPreviewTitle': 'Živý náhľad HTML',
|
|
113
|
+
'code.applyNote':
|
|
114
|
+
'Použitie rozoberie každý riadok tabuľky najvyššej úrovne na riadok plátna, ktorý možno stále vybrať, preusporiadať a odstrániť — ručne písaný kód proces prežije bez zmeny.',
|
|
115
|
+
'code.meta': '{kb} KB · {lines} riadkov',
|
|
116
|
+
'toast.sourceReloaded': 'Zdroj znova načítaný z plátna',
|
|
117
|
+
'toast.sourceAppliedOne': 'Zdroj použitý — 1 riadok na plátne',
|
|
118
|
+
'toast.sourceAppliedMany': 'Zdroj použitý — {rows} riadkov na plátne',
|
|
119
|
+
'toast.parseError': 'Toto HTML sa nepodarilo spracovať',
|
|
120
|
+
'modal.copyAssist': 'Asistent pre text',
|
|
121
|
+
'modal.draftCopyTitle': 'Napísať text pre túto kampaň',
|
|
122
|
+
'ai.goal': 'Cieľ',
|
|
123
|
+
'ai.tone': 'Tón',
|
|
124
|
+
'ai.briefLabel': 'O čom je tento e-mail?',
|
|
125
|
+
'ai.briefPlaceholder': 'napr. Jesenná kolekcia, 15 % pre odberateľov, doprava zdarma nad 150 €',
|
|
126
|
+
'ai.generate': 'Vygenerovať text',
|
|
127
|
+
'ai.writing': 'Píše sa…',
|
|
128
|
+
'ai.kindHeadline': 'Nadpis',
|
|
129
|
+
'ai.kindBody': 'Hlavný text',
|
|
130
|
+
'ai.kindButton': 'Text tlačidla',
|
|
131
|
+
'ai.actionInsertHeading': 'Vložiť ako nadpis',
|
|
132
|
+
'ai.actionInsertText': 'Vložiť ako textový blok',
|
|
133
|
+
'ai.actionInsertButton': 'Vložiť ako tlačidlo',
|
|
134
|
+
'toast.headingAdded': 'Nadpis pridaný',
|
|
135
|
+
'toast.textBlockAdded': 'Textový blok pridaný',
|
|
136
|
+
'toast.buttonAdded': 'Tlačidlo pridané',
|
|
137
|
+
'preview.kickerMobile': 'Náhľad — mobil 375px',
|
|
138
|
+
'preview.kickerDark': 'Náhľad — tmavá schránka',
|
|
139
|
+
'preview.kickerDesktop': 'Náhľad — počítač {width}px',
|
|
140
|
+
'action.close': 'Zavrieť',
|
|
141
|
+
'toast.duplicated': 'Duplikované',
|
|
142
|
+
'toast.fileUploadedOne': 'Nahraný 1 súbor',
|
|
143
|
+
'toast.fileUploadedMany': 'Nahratých súborov: {count}',
|
|
144
|
+
'toast.imageReplaced': 'Obrázok nahradený',
|
|
145
|
+
'toast.imageAdded': 'Obrázok pridaný na plátno',
|
|
146
|
+
'toast.htmlCopied': 'HTML skopírované do schránky',
|
|
147
|
+
'toast.templateLoaded': '{name} načítané',
|
|
148
|
+
'toast.snippetDefaultLabel': 'Úryvok',
|
|
149
|
+
'toast.snippetInserted': '{name} vložené',
|
|
150
|
+
'toast.snippetCopied': '{name} skopírované — vyberte textový blok na vloženie',
|
|
151
|
+
};
|
|
152
|
+
|