@seliseblocks/mailcraft 0.1.1 → 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 +238 -10
- 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 +234 -22
- 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/pt.js
CHANGED
|
@@ -1,152 +1,196 @@
|
|
|
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.
|
|
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
|
+
/** 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.chromeHintToDark': 'Modo escuro',
|
|
9
|
+
'action.chromeHintToLight': 'Modo claro',
|
|
10
|
+
'action.aiDraft': 'Rascunho',
|
|
11
|
+
'action.aiDraftHint': 'Escrever o conteúdo do e-mail com IA',
|
|
12
|
+
'action.code': 'Código',
|
|
13
|
+
'action.codeHint': 'Editar o HTML bruto com pré-visualização ao vivo',
|
|
14
|
+
'action.preview': 'Pré-visualizar',
|
|
15
|
+
'action.previewHint': 'Pré-visualizar o e-mail',
|
|
16
|
+
'action.export': 'Exportar',
|
|
17
|
+
'action.exportHint': 'Exportar o seu e-mail',
|
|
18
|
+
'device.desktop': 'Desktop',
|
|
19
|
+
'device.desktopHint': 'Largura desktop',
|
|
20
|
+
'device.mobile': 'Móvel',
|
|
21
|
+
'device.mobileHint': 'Largura móvel',
|
|
22
|
+
'status.autosaveOn': 'salvamento automático ativado',
|
|
23
|
+
'status.saved': 'salvo {time}',
|
|
24
|
+
'status.saveFailed': 'não salvo — armazenamento cheio',
|
|
25
|
+
'canvas.meta': '{rows} linhas · {blocks} blocos · {width}px',
|
|
26
|
+
'tab.design': 'Estilo',
|
|
27
|
+
'tab.designHint': 'Estilizar a seleção',
|
|
28
|
+
'tab.blocks': 'Blocos',
|
|
29
|
+
'tab.blocksHint': 'Blocos de conteúdo e variáveis',
|
|
30
|
+
'tab.rows': 'Seções',
|
|
31
|
+
'tab.rowsHint': 'Layouts de seção e modelo de tela',
|
|
32
|
+
'tab.files': 'Arquivos',
|
|
33
|
+
'tab.filesHint': 'Biblioteca de recursos',
|
|
34
|
+
'tab.layers': 'Estrutura',
|
|
35
|
+
'tab.layersHint': 'Estrutura do documento',
|
|
36
|
+
'tab.settings': 'Definições',
|
|
37
|
+
'tab.settingsHint': 'Definições do e-mail',
|
|
38
|
+
'tab.data': 'Var.',
|
|
39
|
+
'tab.dataHint': 'Variáveis fornecidas pelo seu código',
|
|
40
|
+
'inspector.blockProperties': 'Propriedades do bloco',
|
|
41
|
+
'inspector.sectionProperties': 'Propriedades da seção',
|
|
42
|
+
'inspector.title': 'Inspetor',
|
|
43
|
+
'inspector.sectionLabel': 'Seção',
|
|
44
|
+
'inspector.nothingSelected': 'Nada selecionado',
|
|
45
|
+
'action.duplicateHint': 'Duplicar — ⌘D',
|
|
46
|
+
'action.deleteHint': 'Excluir — ⌫',
|
|
47
|
+
'inspector.emptyBody':
|
|
48
|
+
'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.',
|
|
49
|
+
'inspector.shortcuts': 'Atalhos',
|
|
50
|
+
'shortcut.undoRedo': '⌘Z / ⌘⇧Z — desfazer, refazer',
|
|
51
|
+
'shortcut.duplicate': '⌘D — duplicar seleção',
|
|
52
|
+
'shortcut.delete': '⌫ — excluir seleção',
|
|
53
|
+
'shortcut.export': '⌘E — exportar HTML',
|
|
54
|
+
'shortcut.escape': 'ESC — desmarcar, fechar',
|
|
55
|
+
'blocks.dragHint': 'Arraste para a tela',
|
|
56
|
+
'blocks.count': '{count} blocos',
|
|
57
|
+
'rows.sectionLayouts': 'Layouts de seção',
|
|
58
|
+
'rows.customMarkup': 'Marcação personalizada',
|
|
59
|
+
'rows.htmlRowHint': 'Arraste para inserir, ou clique para adicionar — uma linha de sangria total que você preenche com HTML bruto',
|
|
60
|
+
'rows.rawHtmlSection': 'Seção de HTML bruto',
|
|
61
|
+
'rows.rawHtmlDesc': 'Seção de sangria total, sua própria marcação, ainda arrastável',
|
|
62
|
+
'rows.canvasModel': 'Modelo de tela',
|
|
63
|
+
'rows.modeRowBased': 'Baseado em linhas',
|
|
64
|
+
'rows.modeFreeStack': 'Pilha livre',
|
|
65
|
+
'rows.hintRows':
|
|
66
|
+
'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.',
|
|
67
|
+
'rows.hintStack': 'Pilha livre: sem layouts — cada bloco que você solta se torna sua própria seção de largura total, empilhada em ordem.',
|
|
68
|
+
'files.libraryCount': 'Biblioteca — {count} arquivos',
|
|
69
|
+
'files.openManager': 'Abrir gerenciador de arquivos',
|
|
70
|
+
'files.dragToCanvas': 'Arraste qualquer arquivo diretamente para a tela para colocá-lo como bloco de imagem.',
|
|
71
|
+
'layers.structure': 'Estrutura',
|
|
72
|
+
'layers.sectionSingle': 'Seção',
|
|
73
|
+
'layers.sectionMulti': 'Seção · {count} col.',
|
|
74
|
+
'layers.column': 'Coluna {index}',
|
|
75
|
+
'layers.blockCount': '{count} bl.',
|
|
76
|
+
'vars.title': 'Variáveis',
|
|
77
|
+
'vars.fromCode': '{count} do seu código',
|
|
78
|
+
'vars.declaredNote': 'Declaradas pela sua aplicação — a tela sempre mostra o token, nunca um valor.',
|
|
79
|
+
'vars.filterPlaceholder': 'Filtrar variáveis…',
|
|
80
|
+
'vars.insertHint': 'Clique para inserir no texto, título ou botão selecionado',
|
|
81
|
+
'vars.insert': 'inserir',
|
|
82
|
+
'vars.noMatch': 'Nenhuma variável corresponde a esse filtro.',
|
|
83
|
+
'vars.noneDeclared': 'Sua aplicação ainda não declarou nenhuma variável.',
|
|
84
|
+
'vars.rteHint': 'Ao editar texto, você também pode escolher uma variável diretamente no menu da barra de ferramentas em linha.',
|
|
85
|
+
'modal.fileManager': 'Gerenciador de arquivos',
|
|
86
|
+
'modal.assetsTitle': 'Recursos',
|
|
87
|
+
'modal.replaceImage': 'Substituir imagem',
|
|
88
|
+
'library.searchPlaceholder': 'Pesquisar arquivos…',
|
|
89
|
+
'action.upload': 'Enviar',
|
|
90
|
+
'library.clickToPlace': 'Clique em um arquivo para posicioná-lo · ou arraste um arquivo para a tela',
|
|
91
|
+
'library.clickToReplace': 'Clique em um arquivo para substituir a imagem selecionada',
|
|
92
|
+
'library.storageLabel': '{count} arquivos · {size}',
|
|
93
|
+
'library.folders': 'Pastas',
|
|
94
|
+
'library.dropHint': 'Solte arquivos de imagem aqui para enviá-los — ou use o botão Enviar.',
|
|
95
|
+
'library.deleteFileHint': 'Excluir arquivo',
|
|
96
|
+
'library.del': 'EXCL',
|
|
97
|
+
'toast.assetDeleted': '{name} excluído',
|
|
98
|
+
'library.allFiles': 'Todos os ficheiros',
|
|
99
|
+
'library.loadMore': 'Carregar mais',
|
|
100
|
+
'library.empty': 'Ainda não há ficheiros aqui.',
|
|
101
|
+
'storage.loading': 'A carregar ficheiros…',
|
|
102
|
+
'storage.uploading': 'A carregar {count}…',
|
|
103
|
+
'storage.errLoadFailed': 'Não foi possível carregar a biblioteca de ficheiros — {reason}',
|
|
104
|
+
'storage.errNoLimits': 'Os carregamentos estão desativados: esta aplicação não definiu limites de carregamento.',
|
|
105
|
+
'storage.errNoAccept': 'Os carregamentos estão desativados: não foi permitido nenhum formato de ficheiro.',
|
|
106
|
+
'storage.errNoMaxBytes': 'Os carregamentos estão desativados: não foi definido um tamanho máximo de ficheiro.',
|
|
107
|
+
'storage.errTooLarge': '{name} tem {size} — o limite é {max}.',
|
|
108
|
+
'storage.errFormat': '{name} é um ficheiro {type}, que não é permitido aqui.',
|
|
109
|
+
'storage.errSvg': '{name} é um SVG, que esta aplicação não aceita.',
|
|
110
|
+
'storage.errDimensions': '{name} tem {w}×{ht}px — o limite é {maxW}×{maxH}px.',
|
|
111
|
+
'storage.errTooMany': 'Só é possível carregar {max} ficheiros de cada vez.',
|
|
112
|
+
'storage.errUnreadable': '{name} não é uma imagem legível.',
|
|
113
|
+
'storage.errUploadFailed': 'Não foi possível carregar {name} — {reason}',
|
|
114
|
+
'storage.errDeleteFailed': 'Não foi possível eliminar {name} — {reason}',
|
|
115
|
+
'modal.export': 'Exportar',
|
|
116
|
+
'modal.exportTitle': 'HTML de e-mail baseado em tabelas',
|
|
117
|
+
'export.copy': 'Copiar',
|
|
118
|
+
'export.copied': 'Copiado',
|
|
119
|
+
'action.download': 'Baixar',
|
|
120
|
+
'export.meta': '{kb} KB · tabelas + estilos inline · larguras seguras para o Outlook',
|
|
121
|
+
'modal.rawHtmlTitle': 'HTML bruto, pré-visualização ao vivo',
|
|
122
|
+
'code.statusEdited': 'Visualização de código — editado — pré-visualização ao vivo, ainda não aplicado',
|
|
123
|
+
'code.statusSynced': 'Visualização de código — sincronizado com a tela',
|
|
124
|
+
'action.reload': 'Recarregar',
|
|
125
|
+
'action.reloadHint': 'Recarregar a origem a partir da tela',
|
|
126
|
+
'action.applyToCanvas': 'Aplicar à tela',
|
|
127
|
+
'action.applyToCanvasHint': 'Analisar a origem novamente em linhas editáveis',
|
|
128
|
+
'action.closeWithoutApplyingHint': 'Fechar sem aplicar',
|
|
129
|
+
'code.source': 'Origem',
|
|
130
|
+
'code.livePreview': 'Pré-visualização ao vivo',
|
|
131
|
+
'code.liveHtmlPreviewTitle': 'Pré-visualização de HTML ao vivo',
|
|
132
|
+
'code.applyNote':
|
|
133
|
+
'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.',
|
|
134
|
+
'code.meta': '{kb} KB · {lines} linhas',
|
|
135
|
+
'toast.sourceReloaded': 'Origem recarregada a partir da tela',
|
|
136
|
+
'toast.sourceAppliedOne': 'Origem aplicada — 1 linha na tela',
|
|
137
|
+
'toast.sourceAppliedMany': 'Origem aplicada — {rows} linhas na tela',
|
|
138
|
+
'toast.parseError': 'Não foi possível analisar esse HTML',
|
|
139
|
+
'modal.aiDraft': 'Assistente de escrita com IA',
|
|
140
|
+
'modal.aiDraftTitle': 'Escreva o seu e-mail com IA',
|
|
141
|
+
'ai.disclosure': 'A IA cria sugestões a partir do seu resumo. Reveja e edite o resultado antes de enviar.',
|
|
142
|
+
'ai.goal': 'Objetivo',
|
|
143
|
+
'ai.tone': 'Tom',
|
|
144
|
+
'ai.briefLabel': 'Sobre o que é este e-mail?',
|
|
145
|
+
'ai.briefPlaceholder': 'ex. Coleção de outono, 15% para assinantes, frete grátis acima de R$150',
|
|
146
|
+
'ai.generate': 'Gerar texto',
|
|
147
|
+
'ai.writing': 'Escrevendo…',
|
|
148
|
+
'ai.kindHeadline': 'Título',
|
|
149
|
+
'ai.kindBody': 'Corpo do texto',
|
|
150
|
+
'ai.kindButton': 'Texto do botão',
|
|
151
|
+
'ai.actionInsertHeading': 'Inserir como título',
|
|
152
|
+
'ai.actionInsertText': 'Inserir como bloco de texto',
|
|
153
|
+
'ai.actionInsertButton': 'Inserir como botão',
|
|
154
|
+
'toast.headingAdded': 'Título adicionado',
|
|
155
|
+
'toast.textBlockAdded': 'Bloco de texto adicionado',
|
|
156
|
+
'toast.buttonAdded': 'Botão adicionado',
|
|
157
|
+
'preview.kickerMobile': 'Pré-visualização — móvel 375px',
|
|
158
|
+
'preview.kickerDesktop': 'Pré-visualização — desktop {width}px',
|
|
159
|
+
'action.close': 'Fechar',
|
|
160
|
+
'toast.duplicated': 'Duplicado',
|
|
161
|
+
'toast.fileUploadedOne': '1 arquivo enviado',
|
|
162
|
+
'toast.fileUploadedMany': '{count} arquivos enviados',
|
|
163
|
+
'toast.imageReplaced': 'Imagem substituída',
|
|
164
|
+
'toast.imageAdded': 'Imagem adicionada à tela',
|
|
165
|
+
'toast.htmlCopied': 'HTML copiado para a área de transferência',
|
|
166
|
+
'toast.templateLoaded': '{name} carregado',
|
|
167
|
+
'toast.snippetDefaultLabel': 'Trecho',
|
|
168
|
+
'toast.snippetInserted': '{name} inserido',
|
|
169
|
+
'toast.snippetCopied': '{name} copiado — selecione um bloco de texto para inseri-lo',
|
|
170
|
+
'rte.textStyle': 'Estilo do texto',
|
|
171
|
+
'rte.mergeTags': 'Campos de intercalação',
|
|
172
|
+
'rte.noMergeTags': 'Não há campos de intercalação disponíveis',
|
|
173
|
+
'rte.textColor': 'Cor do texto',
|
|
174
|
+
'rte.highlightColor': 'Cor de destaque',
|
|
175
|
+
'rte.removeHighlight': 'Remover destaque',
|
|
176
|
+
'rte.clearFormatting': 'Limpar formatação',
|
|
177
|
+
'action.downloadPng': 'Transferir PNG',
|
|
178
|
+
'action.screenshot': 'Captura de ecrã',
|
|
179
|
+
'action.screenshotHint': 'Ver todo o modelo como imagem e transferi-lo',
|
|
180
|
+
'toast.pngSaved': 'Captura transferida',
|
|
181
|
+
'toast.pngFailed': 'A captura falhou — não foi possível carregar uma imagem externa',
|
|
182
|
+
'toast.pngCopied': 'Captura copiada para a área de transferência',
|
|
183
|
+
'toast.pngCopyFailed': 'Este navegador não aceitou uma imagem na área de transferência',
|
|
184
|
+
'story.kicker': 'Captura de ecrã',
|
|
185
|
+
'story.rendering': 'A gerar a captura',
|
|
186
|
+
'story.renderingHint': 'Cada bloco é desenhado a 2× — num modelo longo demora um momento.',
|
|
187
|
+
'story.failed': 'A captura falhou',
|
|
188
|
+
'story.failedHint': 'Não foi possível carregar uma imagem do modelo para a captura.',
|
|
189
|
+
'story.retry': 'Tentar novamente',
|
|
190
|
+
'story.play': 'Reproduzir',
|
|
191
|
+
'story.pause': 'Pausa',
|
|
192
|
+
'story.replay': 'Reproduzir de novo',
|
|
193
|
+
'story.copy': 'Copiar',
|
|
194
|
+
'story.meta': '{w}×{h} · ecrã {i} de {n}',
|
|
195
|
+
'footer.poweredBy': 'Com tecnologia SELISE Blocks © 2026',
|
|
196
|
+
};
|