@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/tr.js
CHANGED
|
@@ -1,152 +1,196 @@
|
|
|
1
|
-
/** Turkish (Türkçe) — `tr`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
-
export const TR = {
|
|
3
|
-
'action.undoHint': 'Geri al — ⌘Z',
|
|
4
|
-
'action.redoHint': 'Yinele — ⌘⇧Z',
|
|
5
|
-
'action.chromeToDark': 'Koyu',
|
|
6
|
-
'action.chromeToLight': 'Açık',
|
|
7
|
-
'action.chromeHint': 'Düzenleyici teması açık / koyu',
|
|
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
|
+
/** Turkish (Türkçe) — `tr`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
+
export const TR = {
|
|
3
|
+
'action.undoHint': 'Geri al — ⌘Z',
|
|
4
|
+
'action.redoHint': 'Yinele — ⌘⇧Z',
|
|
5
|
+
'action.chromeToDark': 'Koyu',
|
|
6
|
+
'action.chromeToLight': 'Açık',
|
|
7
|
+
'action.chromeHint': 'Düzenleyici teması açık / koyu',
|
|
8
|
+
'action.chromeHintToDark': 'Koyu mod',
|
|
9
|
+
'action.chromeHintToLight': 'Açık mod',
|
|
10
|
+
'action.aiDraft': 'Taslak',
|
|
11
|
+
'action.aiDraftHint': 'E-posta içeriğini yapay zekâ ile yaz',
|
|
12
|
+
'action.code': 'Kod',
|
|
13
|
+
'action.codeHint': 'Ham HTML’yi canlı önizlemeyle düzenle',
|
|
14
|
+
'action.preview': 'Önizleme',
|
|
15
|
+
'action.previewHint': 'E-postayı önizleyin',
|
|
16
|
+
'action.export': 'Dışa aktar',
|
|
17
|
+
'action.exportHint': 'E-postanızı dışa aktarın',
|
|
18
|
+
'device.desktop': 'Masaüstü',
|
|
19
|
+
'device.desktopHint': 'Masaüstü genişliği',
|
|
20
|
+
'device.mobile': 'Mobil',
|
|
21
|
+
'device.mobileHint': 'Mobil genişliği',
|
|
22
|
+
'status.autosaveOn': 'otomatik kayıt açık',
|
|
23
|
+
'status.saved': 'kaydedildi {time}',
|
|
24
|
+
'status.saveFailed': 'kaydedilmedi — depolama alanı dolu',
|
|
25
|
+
'canvas.meta': '{rows} satır · {blocks} blok · {width}px',
|
|
26
|
+
'tab.design': 'Stil',
|
|
27
|
+
'tab.designHint': 'Seçimi biçimlendir',
|
|
28
|
+
'tab.blocks': 'Bloklar',
|
|
29
|
+
'tab.blocksHint': 'İçerik blokları ve değişkenler',
|
|
30
|
+
'tab.rows': 'Bölümler',
|
|
31
|
+
'tab.rowsHint': 'Bölüm düzenleri ve tuval modeli',
|
|
32
|
+
'tab.files': 'Dosyalar',
|
|
33
|
+
'tab.filesHint': 'Varlık kitaplığı',
|
|
34
|
+
'tab.layers': 'Yapı',
|
|
35
|
+
'tab.layersHint': 'Belge yapısı',
|
|
36
|
+
'tab.settings': 'Ayarlar',
|
|
37
|
+
'tab.settingsHint': 'E-posta ayarları',
|
|
38
|
+
'tab.data': 'Değ.',
|
|
39
|
+
'tab.dataHint': 'Kodunuz tarafından sağlanan değişkenler',
|
|
40
|
+
'inspector.blockProperties': 'Blok özellikleri',
|
|
41
|
+
'inspector.sectionProperties': 'Bölüm özellikleri',
|
|
42
|
+
'inspector.title': 'Denetçi',
|
|
43
|
+
'inspector.sectionLabel': 'Bölüm',
|
|
44
|
+
'inspector.nothingSelected': 'Hiçbir şey seçilmedi',
|
|
45
|
+
'action.duplicateHint': 'Çoğalt — ⌘D',
|
|
46
|
+
'action.deleteHint': 'Sil — ⌫',
|
|
47
|
+
'inspector.emptyBody':
|
|
48
|
+
'Burada biçimlendirmek için tuval üzerinde bir satır veya blok seçin. Blokları <strong style="color: var(--ed-text); font-weight: 600;">Bloklar</strong> sekmesinden sürükleyin; herhangi bir metni doğrudan düzenlemek için üzerine çift tıklayın.',
|
|
49
|
+
'inspector.shortcuts': 'Kısayollar',
|
|
50
|
+
'shortcut.undoRedo': '⌘Z / ⌘⇧Z — geri al, yinele',
|
|
51
|
+
'shortcut.duplicate': '⌘D — seçimi çoğalt',
|
|
52
|
+
'shortcut.delete': '⌫ — seçimi sil',
|
|
53
|
+
'shortcut.export': '⌘E — HTML dışa aktar',
|
|
54
|
+
'shortcut.escape': 'ESC — seçimi kaldır, kapat',
|
|
55
|
+
'blocks.dragHint': 'Tuvale sürükleyin',
|
|
56
|
+
'blocks.count': '{count} blok',
|
|
57
|
+
'rows.sectionLayouts': 'Bölüm düzenleri',
|
|
58
|
+
'rows.customMarkup': 'Özel işaretleme',
|
|
59
|
+
'rows.htmlRowHint': 'Eklemek için sürükleyin veya eklemek için tıklayın — ham HTML ile doldurduğunuz tam genişlikte bir satır',
|
|
60
|
+
'rows.rawHtmlSection': 'Ham HTML bölümü',
|
|
61
|
+
'rows.rawHtmlDesc': 'Tam genişlikte bölüm, kendi işaretlemeniz, hâlâ sürüklenebilir',
|
|
62
|
+
'rows.canvasModel': 'Tuval modeli',
|
|
63
|
+
'rows.modeRowBased': 'Satır tabanlı',
|
|
64
|
+
'rows.modeFreeStack': 'Serbest yığın',
|
|
65
|
+
'rows.hintRows':
|
|
66
|
+
'Bölüm tabanlı: önce bir düzen bırakın, ardından sütunlarına bloklar bırakın — her bölümün kendi arka planı, kenarlığı, flex veya ızgara ayarları vardır.',
|
|
67
|
+
'rows.hintStack': 'Serbest yığın: düzen olmadan — bıraktığınız her blok, sırayla istiflenen kendi tam genişlikteki bölümü haline gelir.',
|
|
68
|
+
'files.libraryCount': 'Kitaplık — {count} dosya',
|
|
69
|
+
'files.openManager': 'Dosya yöneticisini aç',
|
|
70
|
+
'files.dragToCanvas': 'Görsel blok olarak yerleştirmek için herhangi bir dosyayı doğrudan tuvale sürükleyin.',
|
|
71
|
+
'layers.structure': 'Yapı',
|
|
72
|
+
'layers.sectionSingle': 'Bölüm',
|
|
73
|
+
'layers.sectionMulti': 'Bölüm · {count} sütun',
|
|
74
|
+
'layers.column': 'Sütun {index}',
|
|
75
|
+
'layers.blockCount': '{count} blok',
|
|
76
|
+
'vars.title': 'Değişkenler',
|
|
77
|
+
'vars.fromCode': 'Kodunuzdan {count}',
|
|
78
|
+
'vars.declaredNote': 'Uygulamanız tarafından tanımlandı — tuval her zaman değeri değil, jetonu gösterir.',
|
|
79
|
+
'vars.filterPlaceholder': 'Değişkenleri filtrele…',
|
|
80
|
+
'vars.insertHint': 'Seçili metne, başlığa veya düğmeye eklemek için tıklayın',
|
|
81
|
+
'vars.insert': 'ekle',
|
|
82
|
+
'vars.noMatch': 'Bu filtreyle eşleşen değişken yok.',
|
|
83
|
+
'vars.noneDeclared': 'Uygulamanız henüz herhangi bir değişken tanımlamadı.',
|
|
84
|
+
'vars.rteHint': 'Metni düzenlerken, satır içi araç çubuğunun açılır menüsünden doğrudan bir değişken de seçebilirsiniz.',
|
|
85
|
+
'modal.fileManager': 'Dosya yöneticisi',
|
|
86
|
+
'modal.assetsTitle': 'Varlıklar',
|
|
87
|
+
'modal.replaceImage': 'Görseli değiştir',
|
|
88
|
+
'library.searchPlaceholder': 'Dosyaları ara…',
|
|
89
|
+
'action.upload': 'Yükle',
|
|
90
|
+
'library.clickToPlace': 'Yerleştirmek için bir dosyaya tıklayın · veya bir dosyayı tuvale sürükleyin',
|
|
91
|
+
'library.clickToReplace': 'Seçili görseli değiştirmek için bir dosyaya tıklayın',
|
|
92
|
+
'library.storageLabel': '{count} dosya · {size}',
|
|
93
|
+
'library.folders': 'Klasörler',
|
|
94
|
+
'library.dropHint': 'Yüklemek için görsel dosyalarını buraya bırakın — veya Yükle düğmesini kullanın.',
|
|
95
|
+
'library.deleteFileHint': 'Dosyayı sil',
|
|
96
|
+
'library.del': 'SİL',
|
|
97
|
+
'toast.assetDeleted': '{name} silindi',
|
|
98
|
+
'library.allFiles': 'Tüm dosyalar',
|
|
99
|
+
'library.loadMore': 'Daha fazla yükle',
|
|
100
|
+
'library.empty': 'Burada henüz dosya yok.',
|
|
101
|
+
'storage.loading': 'Dosyalar yükleniyor…',
|
|
102
|
+
'storage.uploading': '{count} yükleniyor…',
|
|
103
|
+
'storage.errLoadFailed': 'Dosya kitaplığı yüklenemedi — {reason}',
|
|
104
|
+
'storage.errNoLimits': 'Yüklemeler kapalı: bu uygulama hiçbir yükleme sınırı belirlemedi.',
|
|
105
|
+
'storage.errNoAccept': 'Yüklemeler kapalı: hiçbir dosya biçimine izin verilmedi.',
|
|
106
|
+
'storage.errNoMaxBytes': 'Yüklemeler kapalı: en büyük dosya boyutu belirlenmedi.',
|
|
107
|
+
'storage.errTooLarge': '{name} {size} — sınır {max}.',
|
|
108
|
+
'storage.errFormat': '{name} bir {type} dosyası ve burada izin verilmiyor.',
|
|
109
|
+
'storage.errSvg': '{name} bir SVG ve bu uygulama SVG kabul etmiyor.',
|
|
110
|
+
'storage.errDimensions': '{name} {w}×{ht}px — sınır {maxW}×{maxH}px.',
|
|
111
|
+
'storage.errTooMany': 'Bir seferde yalnızca {max} dosya yüklenebilir.',
|
|
112
|
+
'storage.errUnreadable': '{name} okunabilir bir görsel değil.',
|
|
113
|
+
'storage.errUploadFailed': '{name} yüklenemedi — {reason}',
|
|
114
|
+
'storage.errDeleteFailed': '{name} silinemedi — {reason}',
|
|
115
|
+
'modal.export': 'Dışa aktar',
|
|
116
|
+
'modal.exportTitle': 'Tabloya dayalı e-posta HTML’si',
|
|
117
|
+
'export.copy': 'Kopyala',
|
|
118
|
+
'export.copied': 'Kopyalandı',
|
|
119
|
+
'action.download': 'İndir',
|
|
120
|
+
'export.meta': '{kb} KB · tablolar + satır içi stiller · Outlook için güvenli genişlikler',
|
|
121
|
+
'modal.rawHtmlTitle': 'Ham HTML, canlı önizleme',
|
|
122
|
+
'code.statusEdited': 'Kod görünümü — düzenlendi — önizleme canlı, henüz uygulanmadı',
|
|
123
|
+
'code.statusSynced': 'Kod görünümü — tuvalle senkronize',
|
|
124
|
+
'action.reload': 'Yeniden yükle',
|
|
125
|
+
'action.reloadHint': 'Kaynağı tuvalden yeniden yükle',
|
|
126
|
+
'action.applyToCanvas': 'Tuvale uygula',
|
|
127
|
+
'action.applyToCanvasHint': 'Kaynağı tekrar düzenlenebilir satırlara ayrıştır',
|
|
128
|
+
'action.closeWithoutApplyingHint': 'Uygulamadan kapat',
|
|
129
|
+
'code.source': 'Kaynak',
|
|
130
|
+
'code.livePreview': 'Canlı önizleme',
|
|
131
|
+
'code.liveHtmlPreviewTitle': 'Canlı HTML önizlemesi',
|
|
132
|
+
'code.applyNote':
|
|
133
|
+
'Uygulama, en üst düzey her tablo satırını, hâlâ seçebileceğiniz, yeniden sıralayabileceğiniz ve silebileceğiniz bir tuval satırına ayrıştırır — elle yazılmış kod bu süreçten değişmeden çıkar.',
|
|
134
|
+
'code.meta': '{kb} KB · {lines} satır',
|
|
135
|
+
'toast.sourceReloaded': 'Kaynak tuvalden yeniden yüklendi',
|
|
136
|
+
'toast.sourceAppliedOne': 'Kaynak uygulandı — tuvalde 1 satır',
|
|
137
|
+
'toast.sourceAppliedMany': 'Kaynak uygulandı — tuvalde {rows} satır',
|
|
138
|
+
'toast.parseError': 'Bu HTML ayrıştırılamadı',
|
|
139
|
+
'modal.aiDraft': 'Yapay zekâ yazma asistanı',
|
|
140
|
+
'modal.aiDraftTitle': 'E-postanızı yapay zekâ ile yazın',
|
|
141
|
+
'ai.disclosure': 'Yapay zekâ, özetinizden öneriler üretir. Göndermeden önce sonucu gözden geçirin ve düzenleyin.',
|
|
142
|
+
'ai.goal': 'Hedef',
|
|
143
|
+
'ai.tone': 'Ton',
|
|
144
|
+
'ai.briefLabel': 'Bu e-posta ne hakkında?',
|
|
145
|
+
'ai.briefPlaceholder': 'örn. Sonbahar koleksiyonu, aboneler için %15, 150₺ üzeri ücretsiz kargo',
|
|
146
|
+
'ai.generate': 'Metin oluştur',
|
|
147
|
+
'ai.writing': 'Yazılıyor…',
|
|
148
|
+
'ai.kindHeadline': 'Başlık',
|
|
149
|
+
'ai.kindBody': 'Gövde metni',
|
|
150
|
+
'ai.kindButton': 'Düğme metni',
|
|
151
|
+
'ai.actionInsertHeading': 'Başlık olarak ekle',
|
|
152
|
+
'ai.actionInsertText': 'Metin bloğu olarak ekle',
|
|
153
|
+
'ai.actionInsertButton': 'Düğme olarak ekle',
|
|
154
|
+
'toast.headingAdded': 'Başlık eklendi',
|
|
155
|
+
'toast.textBlockAdded': 'Metin bloğu eklendi',
|
|
156
|
+
'toast.buttonAdded': 'Düğme eklendi',
|
|
157
|
+
'preview.kickerMobile': 'Önizleme — mobil 375px',
|
|
158
|
+
'preview.kickerDesktop': 'Önizleme — masaüstü {width}px',
|
|
159
|
+
'action.close': 'Kapat',
|
|
160
|
+
'toast.duplicated': 'Çoğaltıldı',
|
|
161
|
+
'toast.fileUploadedOne': '1 dosya yüklendi',
|
|
162
|
+
'toast.fileUploadedMany': '{count} dosya yüklendi',
|
|
163
|
+
'toast.imageReplaced': 'Görsel değiştirildi',
|
|
164
|
+
'toast.imageAdded': 'Görsel tuvale eklendi',
|
|
165
|
+
'toast.htmlCopied': 'HTML panoya kopyalandı',
|
|
166
|
+
'toast.templateLoaded': '{name} yüklendi',
|
|
167
|
+
'toast.snippetDefaultLabel': 'Snippet',
|
|
168
|
+
'toast.snippetInserted': '{name} eklendi',
|
|
169
|
+
'toast.snippetCopied': '{name} kopyalandı — eklemek için bir metin bloğu seçin',
|
|
170
|
+
'rte.textStyle': 'Metin stili',
|
|
171
|
+
'rte.mergeTags': 'Birleştirme alanları',
|
|
172
|
+
'rte.noMergeTags': 'Kullanılabilir birleştirme alanı yok',
|
|
173
|
+
'rte.textColor': 'Metin rengi',
|
|
174
|
+
'rte.highlightColor': 'Vurgu rengi',
|
|
175
|
+
'rte.removeHighlight': 'Vurguyu kaldır',
|
|
176
|
+
'rte.clearFormatting': 'Biçimlendirmeyi temizle',
|
|
177
|
+
'action.downloadPng': 'PNG indir',
|
|
178
|
+
'action.screenshot': 'Ekran görüntüsü',
|
|
179
|
+
'action.screenshotHint': 'Şablonun tamamını görsel olarak görün, sonra indirin',
|
|
180
|
+
'toast.pngSaved': 'Ekran görüntüsü indirildi',
|
|
181
|
+
'toast.pngFailed': 'Ekran görüntüsü alınamadı — dış bir görsel yüklenemedi',
|
|
182
|
+
'toast.pngCopied': 'Ekran görüntüsü panoya kopyalandı',
|
|
183
|
+
'toast.pngCopyFailed': 'Bu tarayıcı panoya görsel almayı kabul etmedi',
|
|
184
|
+
'story.kicker': 'Ekran görüntüsü',
|
|
185
|
+
'story.rendering': 'Ekran görüntüsü oluşturuluyor',
|
|
186
|
+
'story.renderingHint': 'Her blok 2× çiziliyor — uzun bir şablonda bu biraz sürer.',
|
|
187
|
+
'story.failed': 'Ekran görüntüsü alınamadı',
|
|
188
|
+
'story.failedHint': 'Şablondaki bir görsel, yakalama için yüklenemedi.',
|
|
189
|
+
'story.retry': 'Yeniden deneyin',
|
|
190
|
+
'story.play': 'Oynat',
|
|
191
|
+
'story.pause': 'Duraklat',
|
|
192
|
+
'story.replay': 'Yeniden oynat',
|
|
193
|
+
'story.copy': 'Kopyala',
|
|
194
|
+
'story.meta': '{w}×{h} · ekran {i}/{n}',
|
|
195
|
+
'footer.poweredBy': 'SELISE Blocks tarafından desteklenir © 2026',
|
|
196
|
+
};
|