@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,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bangla (বাংলা) — `bn`.
|
|
3
|
+
*
|
|
4
|
+
* AI-drafted, not reviewed by a native speaker. Correctable one key at a
|
|
5
|
+
* time via `.messages` overrides -- `createTranslator` falls back to
|
|
6
|
+
* English per-key, so a partial fix is safe to ship incrementally.
|
|
7
|
+
*/
|
|
8
|
+
export const BN = {
|
|
9
|
+
'action.undoHint': 'পূর্বাবস্থায় ফেরান — ⌘Z',
|
|
10
|
+
'action.redoHint': 'পুনরায় করুন — ⌘⇧Z',
|
|
11
|
+
'action.chromeToDark': 'ডার্ক',
|
|
12
|
+
'action.chromeToLight': 'লাইট',
|
|
13
|
+
'action.chromeHint': 'সম্পাদক থিম লাইট/ডার্ক',
|
|
14
|
+
'action.aiCopy': 'কপি',
|
|
15
|
+
'action.aiCopyHint': 'AI দিয়ে কপি লিখুন',
|
|
16
|
+
'action.code': 'কোড',
|
|
17
|
+
'action.codeHint': 'লাইভ প্রিভিউসহ HTML সম্পাদনা করুন',
|
|
18
|
+
'action.preview': 'প্রিভিউ',
|
|
19
|
+
'action.export': 'রপ্তানি',
|
|
20
|
+
|
|
21
|
+
'device.desktop': 'ডেস্কটপ',
|
|
22
|
+
'device.desktopHint': 'ডেস্কটপ প্রস্থ',
|
|
23
|
+
'device.mobile': 'মোবাইল',
|
|
24
|
+
'device.mobileHint': 'মোবাইল প্রস্থ',
|
|
25
|
+
'device.dark': 'ডার্ক',
|
|
26
|
+
'device.darkHint': 'ডার্ক-মোড ইনবক্স',
|
|
27
|
+
|
|
28
|
+
'status.autosaveOn': 'অটোসেভ চালু',
|
|
29
|
+
'status.saved': 'সংরক্ষিত হয়েছে {time}',
|
|
30
|
+
'status.saveFailed': 'সংরক্ষণ হয়নি — স্টোরেজ পূর্ণ',
|
|
31
|
+
|
|
32
|
+
'canvas.meta': '{rows}টি সারি · {blocks}টি ব্লক · {width}px',
|
|
33
|
+
|
|
34
|
+
'tab.design': 'স্টাইল',
|
|
35
|
+
'tab.designHint': 'নির্বাচিত অংশ স্টাইল করুন',
|
|
36
|
+
'tab.blocks': 'ব্লক',
|
|
37
|
+
'tab.blocksHint': 'কন্টেন্ট ব্লক ও ভেরিয়েবল',
|
|
38
|
+
'tab.rows': 'সেকশন',
|
|
39
|
+
'tab.rowsHint': 'সেকশন লেআউট ও ক্যানভাস মডেল',
|
|
40
|
+
'tab.files': 'ফাইল',
|
|
41
|
+
'tab.filesHint': 'অ্যাসেট লাইব্রেরি',
|
|
42
|
+
'tab.layers': 'কাঠামো',
|
|
43
|
+
'tab.layersHint': 'ডকুমেন্ট কাঠামো',
|
|
44
|
+
'tab.theme': 'থিম',
|
|
45
|
+
'tab.themeHint': 'গ্লোবাল স্টাইল',
|
|
46
|
+
'tab.data': 'ভেরিয়েবল',
|
|
47
|
+
'tab.dataHint': 'আপনার কোড থেকে দেওয়া ভেরিয়েবল',
|
|
48
|
+
|
|
49
|
+
'inspector.blockProperties': 'ব্লকের বৈশিষ্ট্য',
|
|
50
|
+
'inspector.sectionProperties': 'সেকশনের বৈশিষ্ট্য',
|
|
51
|
+
'inspector.title': 'ইন্সপেক্টর',
|
|
52
|
+
'inspector.sectionLabel': 'সেকশন',
|
|
53
|
+
'inspector.nothingSelected': 'কিছু নির্বাচিত নয়',
|
|
54
|
+
'action.duplicateHint': 'নকল করুন — ⌘D',
|
|
55
|
+
'action.deleteHint': 'মুছুন — ⌫',
|
|
56
|
+
'inspector.emptyBody':
|
|
57
|
+
'ক্যানভাসে একটি সারি বা ব্লক নির্বাচন করে এখানে স্টাইল করুন। <strong style="color: var(--ed-text); font-weight: 600;">ব্লক</strong> ট্যাব থেকে ব্লক টেনে আনুন; সরাসরি সম্পাদনার জন্য যেকোনো লেখায় ডাবল-ক্লিক করুন।',
|
|
58
|
+
'inspector.shortcuts': 'শর্টকাট',
|
|
59
|
+
'shortcut.undoRedo': '⌘Z / ⌘⇧Z — পূর্বাবস্থা, পুনরায়',
|
|
60
|
+
'shortcut.duplicate': '⌘D — নির্বাচন নকল করুন',
|
|
61
|
+
'shortcut.delete': '⌫ — নির্বাচন মুছুন',
|
|
62
|
+
'shortcut.export': '⌘E — HTML রপ্তানি করুন',
|
|
63
|
+
'shortcut.escape': 'ESC — নির্বাচন বাতিল, বন্ধ করুন',
|
|
64
|
+
|
|
65
|
+
'blocks.dragHint': 'ক্যানভাসে টেনে আনুন',
|
|
66
|
+
'blocks.count': '{count}টি ব্লক',
|
|
67
|
+
|
|
68
|
+
'rows.sectionLayouts': 'সেকশন লেআউট',
|
|
69
|
+
'rows.customMarkup': 'কাস্টম মার্কআপ',
|
|
70
|
+
'rows.htmlRowHint': 'টেনে আনুন, বা যোগ করতে ক্লিক করুন — একটি ফুল-ব্লিড সারি যা আপনি raw HTML দিয়ে পূরণ করেন',
|
|
71
|
+
'rows.rawHtmlSection': 'Raw HTML সেকশন',
|
|
72
|
+
'rows.rawHtmlDesc': 'ফুল-ব্লিড সেকশন, আপনার নিজস্ব মার্কআপ, তবুও টানা যায়',
|
|
73
|
+
'rows.canvasModel': 'ক্যানভাস মডেল',
|
|
74
|
+
'rows.modeRowBased': 'সারি-ভিত্তিক',
|
|
75
|
+
'rows.modeFreeStack': 'ফ্রি স্ট্যাক',
|
|
76
|
+
'rows.hintRows':
|
|
77
|
+
'সেকশন-ভিত্তিক: প্রথমে একটি লেআউট রাখুন, তারপর এর কলামে ব্লক রাখুন — প্রতিটি সেকশনের নিজস্ব ব্যাকগ্রাউন্ড, বর্ডার, ফ্লেক্স বা গ্রিড সেটিংস থাকে।',
|
|
78
|
+
'rows.hintStack': 'ফ্রি স্ট্যাক: লেআউট ছাড়াই — আপনি যে ব্লকই রাখুন না কেন তা নিজেই একটি পূর্ণ-প্রস্থ সেকশন হয়ে ক্রমানুসারে সাজে।',
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
'files.libraryCount': 'লাইব্রেরি — {count}টি ফাইল',
|
|
82
|
+
'files.openManager': 'ফাইল ম্যানেজার খুলুন',
|
|
83
|
+
'files.dragToCanvas': 'একটি ইমেজ ব্লক হিসেবে বসাতে যেকোনো ফাইল সরাসরি ক্যানভাসে টেনে আনুন।',
|
|
84
|
+
|
|
85
|
+
'layers.structure': 'কাঠামো',
|
|
86
|
+
'layers.sectionSingle': 'সেকশন',
|
|
87
|
+
'layers.sectionMulti': 'সেকশন · {count}টি কলাম',
|
|
88
|
+
'layers.blockCount': '{count}টি ব্লক',
|
|
89
|
+
|
|
90
|
+
'theme.globalStyles': 'গ্লোবাল স্টাইল',
|
|
91
|
+
|
|
92
|
+
'vars.title': 'ভেরিয়েবল',
|
|
93
|
+
'vars.fromCode': 'আপনার কোড থেকে {count}টি',
|
|
94
|
+
'vars.declaredNote': 'আপনার অ্যাপ্লিকেশন দ্বারা ঘোষিত — ক্যানভাস সবসময় টোকেন দেখায়, কখনো মান নয়।',
|
|
95
|
+
'vars.filterPlaceholder': 'ভেরিয়েবল ফিল্টার করুন…',
|
|
96
|
+
'vars.insertHint': 'নির্বাচিত টেক্সট, হেডিং বা বাটনে বসাতে ক্লিক করুন',
|
|
97
|
+
'vars.insert': 'বসান',
|
|
98
|
+
'vars.noMatch': 'সেই ফিল্টারের সাথে কোনো ভেরিয়েবল মেলেনি।',
|
|
99
|
+
'vars.noneDeclared': 'আপনার অ্যাপ্লিকেশন এখনো কোনো ভেরিয়েবল ঘোষণা করেনি।',
|
|
100
|
+
'vars.rteHint': 'টেক্সট সম্পাদনার সময় আপনি ইনলাইন টুলবারের ড্রপডাউন থেকেও ভেরিয়েবল বেছে নিতে পারেন।',
|
|
101
|
+
|
|
102
|
+
'modal.fileManager': 'ফাইল ম্যানেজার',
|
|
103
|
+
'modal.assetsTitle': 'অ্যাসেট',
|
|
104
|
+
'modal.replaceImage': 'ইমেজ প্রতিস্থাপন করুন',
|
|
105
|
+
'library.searchPlaceholder': 'ফাইল খুঁজুন…',
|
|
106
|
+
'action.upload': 'আপলোড',
|
|
107
|
+
'library.clickToPlace': 'বসাতে একটি ফাইলে ক্লিক করুন · অথবা ক্যানভাসে ফাইল টেনে আনুন',
|
|
108
|
+
'library.clickToReplace': 'নির্বাচিত ইমেজ প্রতিস্থাপন করতে একটি ফাইলে ক্লিক করুন',
|
|
109
|
+
'library.storageLabel': '{count}টি ফাইল · {size}',
|
|
110
|
+
'library.folders': 'ফোল্ডার',
|
|
111
|
+
'library.dropHint': 'আপলোড করতে এখানে ইমেজ ফাইল ড্রপ করুন — অথবা আপলোড বোতাম ব্যবহার করুন।',
|
|
112
|
+
'library.deleteFileHint': 'ফাইল মুছুন',
|
|
113
|
+
'library.del': 'মুছুন',
|
|
114
|
+
'toast.assetDeleted': '{name} মুছে ফেলা হয়েছে',
|
|
115
|
+
|
|
116
|
+
'modal.export': 'রপ্তানি',
|
|
117
|
+
'modal.exportTitle': 'টেবিল-ভিত্তিক ইমেইল HTML',
|
|
118
|
+
'export.copy': 'কপি',
|
|
119
|
+
'export.copied': 'কপি হয়েছে',
|
|
120
|
+
'action.download': 'ডাউনলোড',
|
|
121
|
+
'export.meta': '{kb} KB · টেবিল + ইনলাইন স্টাইল · Outlook-নিরাপদ প্রস্থ',
|
|
122
|
+
|
|
123
|
+
'modal.rawHtmlTitle': 'Raw HTML, লাইভ প্রিভিউ',
|
|
124
|
+
'code.statusEdited': 'কোড ভিউ — সম্পাদিত — প্রিভিউ লাইভ, এখনো প্রয়োগ হয়নি',
|
|
125
|
+
'code.statusSynced': 'কোড ভিউ — ক্যানভাসের সাথে সিঙ্ক করা আছে',
|
|
126
|
+
'action.reload': 'রিলোড',
|
|
127
|
+
'action.reloadHint': 'ক্যানভাস থেকে সোর্স পুনরায় লোড করুন',
|
|
128
|
+
'action.applyToCanvas': 'ক্যানভাসে প্রয়োগ করুন',
|
|
129
|
+
'action.applyToCanvasHint': 'সোর্সটি সম্পাদনাযোগ্য সারিতে পার্স করুন',
|
|
130
|
+
'action.closeWithoutApplyingHint': 'প্রয়োগ না করে বন্ধ করুন',
|
|
131
|
+
'code.source': 'সোর্স',
|
|
132
|
+
'code.livePreview': 'লাইভ প্রিভিউ',
|
|
133
|
+
'code.liveHtmlPreviewTitle': 'লাইভ HTML প্রিভিউ',
|
|
134
|
+
'code.applyNote':
|
|
135
|
+
'প্রয়োগ করলে প্রতিটি টেবিল সারি একটি ক্যানভাস সারিতে পার্স হয় যা আপনি এখনও নির্বাচন, পুনর্বিন্যাস ও মুছতে পারবেন — হাতে-লেখা মার্কআপ অক্ষত থাকে।',
|
|
136
|
+
'code.meta': '{kb} KB · {lines}টি লাইন',
|
|
137
|
+
'toast.sourceReloaded': 'ক্যানভাস থেকে সোর্স পুনরায় লোড হয়েছে',
|
|
138
|
+
'toast.sourceAppliedOne': 'সোর্স প্রয়োগ হয়েছে — ক্যানভাসে ১টি সারি',
|
|
139
|
+
'toast.sourceAppliedMany': 'সোর্স প্রয়োগ হয়েছে — ক্যানভাসে {rows}টি সারি',
|
|
140
|
+
'toast.parseError': 'সেই HTML পার্স করা যায়নি',
|
|
141
|
+
|
|
142
|
+
'modal.copyAssist': 'কপি সহায়ক',
|
|
143
|
+
'modal.draftCopyTitle': 'এই ক্যাম্পেইনের জন্য কপি লিখুন',
|
|
144
|
+
'ai.goal': 'লক্ষ্য',
|
|
145
|
+
'ai.tone': 'সুর',
|
|
146
|
+
'ai.briefLabel': 'এই ইমেইলটি কী সম্পর্কে?',
|
|
147
|
+
'ai.briefPlaceholder': 'যেমন: শরৎকালীন আউটারওয়্যার, সাবস্ক্রাইবারদের জন্য ১৫% ছাড়, $১৫০-এর উপরে ফ্রি শিপিং',
|
|
148
|
+
'ai.generate': 'কপি তৈরি করুন',
|
|
149
|
+
'ai.writing': 'লেখা হচ্ছে…',
|
|
150
|
+
'ai.kindHeadline': 'হেডলাইন',
|
|
151
|
+
'ai.kindBody': 'মূল লেখা',
|
|
152
|
+
'ai.kindButton': 'বাটন লেবেল',
|
|
153
|
+
'ai.actionInsertHeading': 'হেডিং হিসেবে বসান',
|
|
154
|
+
'ai.actionInsertText': 'টেক্সট ব্লক হিসেবে বসান',
|
|
155
|
+
'ai.actionInsertButton': 'বাটন হিসেবে বসান',
|
|
156
|
+
'toast.headingAdded': 'হেডিং যোগ হয়েছে',
|
|
157
|
+
'toast.textBlockAdded': 'টেক্সট ব্লক যোগ হয়েছে',
|
|
158
|
+
'toast.buttonAdded': 'বাটন যোগ হয়েছে',
|
|
159
|
+
|
|
160
|
+
'preview.kickerMobile': 'প্রিভিউ — মোবাইল ৩৭৫px',
|
|
161
|
+
'preview.kickerDark': 'প্রিভিউ — ডার্ক ইনবক্স',
|
|
162
|
+
'preview.kickerDesktop': 'প্রিভিউ — ডেস্কটপ {width}px',
|
|
163
|
+
'action.close': 'বন্ধ করুন',
|
|
164
|
+
|
|
165
|
+
'toast.duplicated': 'নকল করা হয়েছে',
|
|
166
|
+
'toast.fileUploadedOne': '১টি ফাইল আপলোড হয়েছে',
|
|
167
|
+
'toast.fileUploadedMany': '{count}টি ফাইল আপলোড হয়েছে',
|
|
168
|
+
'toast.imageReplaced': 'ইমেজ প্রতিস্থাপিত হয়েছে',
|
|
169
|
+
'toast.imageAdded': 'ক্যানভাসে ইমেজ যোগ হয়েছে',
|
|
170
|
+
'toast.htmlCopied': 'HTML ক্লিপবোর্ডে কপি হয়েছে',
|
|
171
|
+
'toast.templateLoaded': '{name} লোড হয়েছে',
|
|
172
|
+
'toast.snippetDefaultLabel': 'স্নিপেট',
|
|
173
|
+
'toast.snippetInserted': '{name} বসানো হয়েছে',
|
|
174
|
+
'toast.snippetCopied': '{name} কপি হয়েছে — বসাতে একটি টেক্সট ব্লক নির্বাচন করুন',
|
|
175
|
+
};
|
|
176
|
+
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/** Catalan (Català) — `ca`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
+
export const CA = {
|
|
3
|
+
'action.undoHint': 'Desfés — ⌘Z',
|
|
4
|
+
'action.redoHint': 'Refés — ⌘⇧Z',
|
|
5
|
+
'action.chromeToDark': 'Fosc',
|
|
6
|
+
'action.chromeToLight': 'Clar',
|
|
7
|
+
'action.chromeHint': 'Tema de l’editor clar / fosc',
|
|
8
|
+
'action.aiCopy': 'Text',
|
|
9
|
+
'action.aiCopyHint': 'Redactar text amb IA',
|
|
10
|
+
'action.code': 'Codi',
|
|
11
|
+
'action.codeHint': 'Editar l’HTML en brut amb previsualització en directe',
|
|
12
|
+
'action.preview': 'Previsualització',
|
|
13
|
+
'action.export': 'Exporta',
|
|
14
|
+
'device.desktop': 'Escriptori',
|
|
15
|
+
'device.desktopHint': 'Amplada d’escriptori',
|
|
16
|
+
'device.mobile': 'Mòbil',
|
|
17
|
+
'device.mobileHint': 'Amplada mòbil',
|
|
18
|
+
'device.dark': 'Fosc',
|
|
19
|
+
'device.darkHint': 'Bústia en mode fosc',
|
|
20
|
+
'status.autosaveOn': 'desament automàtic activat',
|
|
21
|
+
'status.saved': 'desat {time}',
|
|
22
|
+
'status.saveFailed': 'no desat — emmagatzematge ple',
|
|
23
|
+
'canvas.meta': '{rows} files · {blocks} blocs · {width}px',
|
|
24
|
+
'tab.design': 'Estil',
|
|
25
|
+
'tab.designHint': 'Aplica estil a la selecció',
|
|
26
|
+
'tab.blocks': 'Blocs',
|
|
27
|
+
'tab.blocksHint': 'Blocs de contingut i variables',
|
|
28
|
+
'tab.rows': 'Seccions',
|
|
29
|
+
'tab.rowsHint': 'Dissenys de secció i model de llenç',
|
|
30
|
+
'tab.files': 'Fitxers',
|
|
31
|
+
'tab.filesHint': 'Biblioteca de recursos',
|
|
32
|
+
'tab.layers': 'Estruct.',
|
|
33
|
+
'tab.layersHint': 'Estructura del document',
|
|
34
|
+
'tab.theme': 'Tema',
|
|
35
|
+
'tab.themeHint': 'Estils globals',
|
|
36
|
+
'tab.data': 'Var.',
|
|
37
|
+
'tab.dataHint': 'Variables proporcionades pel vostre codi',
|
|
38
|
+
'inspector.blockProperties': 'Propietats del bloc',
|
|
39
|
+
'inspector.sectionProperties': 'Propietats de la secció',
|
|
40
|
+
'inspector.title': 'Inspector',
|
|
41
|
+
'inspector.sectionLabel': 'Secció',
|
|
42
|
+
'inspector.nothingSelected': 'Res seleccionat',
|
|
43
|
+
'action.duplicateHint': 'Duplica — ⌘D',
|
|
44
|
+
'action.deleteHint': 'Elimina — ⌫',
|
|
45
|
+
'inspector.emptyBody':
|
|
46
|
+
'Seleccioneu una fila o un bloc al llenç per donar-li estil aquí. Arrossegueu blocs des de la pestanya <strong style="color: var(--ed-text); font-weight: 600;">Blocs</strong>; feu doble clic a qualsevol text per editar-lo directament.',
|
|
47
|
+
'inspector.shortcuts': 'Dreceres',
|
|
48
|
+
'shortcut.undoRedo': '⌘Z / ⌘⇧Z — desfés, refés',
|
|
49
|
+
'shortcut.duplicate': '⌘D — duplica la selecció',
|
|
50
|
+
'shortcut.delete': '⌫ — elimina la selecció',
|
|
51
|
+
'shortcut.export': '⌘E — exporta HTML',
|
|
52
|
+
'shortcut.escape': 'ESC — desselecciona, tanca',
|
|
53
|
+
'blocks.dragHint': 'Arrossegueu al llenç',
|
|
54
|
+
'blocks.count': '{count} blocs',
|
|
55
|
+
'rows.sectionLayouts': 'Dissenys de secció',
|
|
56
|
+
'rows.customMarkup': 'Marcat personalitzat',
|
|
57
|
+
'rows.htmlRowHint': 'Arrossegueu per inserir, o feu clic per afegir — una fila d’amplada completa que ompliu amb HTML en brut',
|
|
58
|
+
'rows.rawHtmlSection': 'Secció d’HTML en brut',
|
|
59
|
+
'rows.rawHtmlDesc': 'Secció d’amplada completa, el vostre propi marcat, encara es pot arrossegar',
|
|
60
|
+
'rows.canvasModel': 'Model de llenç',
|
|
61
|
+
'rows.modeRowBased': 'Basat en files',
|
|
62
|
+
'rows.modeFreeStack': 'Pila lliure',
|
|
63
|
+
'rows.hintRows':
|
|
64
|
+
'Basat en seccions: primer deixeu anar un disseny, després blocs a les seves columnes — cada secció té el seu propi fons, vora, configuració flex o de graella.',
|
|
65
|
+
'rows.hintStack': 'Pila lliure: sense dissenys — cada bloc que deixeu anar esdevé la seva pròpia secció d’amplada completa, apilada en ordre.',
|
|
66
|
+
'files.libraryCount': 'Biblioteca — {count} fitxers',
|
|
67
|
+
'files.openManager': 'Obre el gestor de fitxers',
|
|
68
|
+
'files.dragToCanvas': 'Arrossegueu qualsevol fitxer directament al llenç per col·locar-lo com a bloc d’imatge.',
|
|
69
|
+
'layers.structure': 'Estructura',
|
|
70
|
+
'layers.sectionSingle': 'Secció',
|
|
71
|
+
'layers.sectionMulti': 'Secció · {count} col.',
|
|
72
|
+
'layers.blockCount': '{count} bl.',
|
|
73
|
+
'theme.globalStyles': 'Estils globals',
|
|
74
|
+
'vars.title': 'Variables',
|
|
75
|
+
'vars.fromCode': '{count} del vostre codi',
|
|
76
|
+
'vars.declaredNote': 'Declarades per la vostra aplicació — el llenç sempre mostra el testimoni, mai un valor.',
|
|
77
|
+
'vars.filterPlaceholder': 'Filtra variables…',
|
|
78
|
+
'vars.insertHint': 'Feu clic per inserir al text, títol o botó seleccionat',
|
|
79
|
+
'vars.insert': 'insereix',
|
|
80
|
+
'vars.noMatch': 'Cap variable coincideix amb aquest filtre.',
|
|
81
|
+
'vars.noneDeclared': 'La vostra aplicació encara no ha declarat cap variable.',
|
|
82
|
+
'vars.rteHint': 'Mentre editeu text, també podeu triar una variable directament des del menú desplegable de la barra d’eines en línia.',
|
|
83
|
+
'modal.fileManager': 'Gestor de fitxers',
|
|
84
|
+
'modal.assetsTitle': 'Recursos',
|
|
85
|
+
'modal.replaceImage': 'Substitueix la imatge',
|
|
86
|
+
'library.searchPlaceholder': 'Cerca fitxers…',
|
|
87
|
+
'action.upload': 'Puja',
|
|
88
|
+
'library.clickToPlace': 'Feu clic a un fitxer per col·locar-lo · o arrossegueu un fitxer al llenç',
|
|
89
|
+
'library.clickToReplace': 'Feu clic a un fitxer per substituir la imatge seleccionada',
|
|
90
|
+
'library.storageLabel': '{count} fitxers · {size}',
|
|
91
|
+
'library.folders': 'Carpetes',
|
|
92
|
+
'library.dropHint': 'Deixeu anar fitxers d’imatge aquí per pujar-los — o utilitzeu el botó Puja.',
|
|
93
|
+
'library.deleteFileHint': 'Elimina el fitxer',
|
|
94
|
+
'library.del': 'ELIM',
|
|
95
|
+
'toast.assetDeleted': '{name} eliminat',
|
|
96
|
+
'modal.export': 'Exporta',
|
|
97
|
+
'modal.exportTitle': 'HTML de correu basat en taules',
|
|
98
|
+
'export.copy': 'Copia',
|
|
99
|
+
'export.copied': 'Copiat',
|
|
100
|
+
'action.download': 'Descarrega',
|
|
101
|
+
'export.meta': '{kb} KB · taules + estils en línia · amplades segures per a Outlook',
|
|
102
|
+
'modal.rawHtmlTitle': 'HTML en brut, previsualització en directe',
|
|
103
|
+
'code.statusEdited': 'Vista de codi — editat — previsualització en directe, encara no aplicat',
|
|
104
|
+
'code.statusSynced': 'Vista de codi — sincronitzat amb el llenç',
|
|
105
|
+
'action.reload': 'Recarrega',
|
|
106
|
+
'action.reloadHint': 'Recarrega la font des del llenç',
|
|
107
|
+
'action.applyToCanvas': 'Aplica al llenç',
|
|
108
|
+
'action.applyToCanvasHint': 'Torna a analitzar la font en files editables',
|
|
109
|
+
'action.closeWithoutApplyingHint': 'Tanca sense aplicar',
|
|
110
|
+
'code.source': 'Font',
|
|
111
|
+
'code.livePreview': 'Previsualització en directe',
|
|
112
|
+
'code.liveHtmlPreviewTitle': 'Previsualització d’HTML en directe',
|
|
113
|
+
'code.applyNote':
|
|
114
|
+
'Aplicar analitza cada fila de taula de nivell superior en una fila de llenç que encara podeu seleccionar, reordenar i eliminar — el marcatge escrit a mà sobreviu al procés.',
|
|
115
|
+
'code.meta': '{kb} KB · {lines} línies',
|
|
116
|
+
'toast.sourceReloaded': 'Font recarregada des del llenç',
|
|
117
|
+
'toast.sourceAppliedOne': 'Font aplicada — 1 fila al llenç',
|
|
118
|
+
'toast.sourceAppliedMany': 'Font aplicada — {rows} files al llenç',
|
|
119
|
+
'toast.parseError': 'No s’ha pogut analitzar aquest HTML',
|
|
120
|
+
'modal.copyAssist': 'Assistent de redacció',
|
|
121
|
+
'modal.draftCopyTitle': 'Redacta text per a aquesta campanya',
|
|
122
|
+
'ai.goal': 'Objectiu',
|
|
123
|
+
'ai.tone': 'To',
|
|
124
|
+
'ai.briefLabel': 'De què tracta aquest correu?',
|
|
125
|
+
'ai.briefPlaceholder': 'p. ex. Col·lecció de tardor, 15% per a subscriptors, enviament gratuït a partir de 150 €',
|
|
126
|
+
'ai.generate': 'Genera text',
|
|
127
|
+
'ai.writing': 'S’està escrivint…',
|
|
128
|
+
'ai.kindHeadline': 'Titular',
|
|
129
|
+
'ai.kindBody': 'Cos del text',
|
|
130
|
+
'ai.kindButton': 'Text del botó',
|
|
131
|
+
'ai.actionInsertHeading': 'Insereix com a capçalera',
|
|
132
|
+
'ai.actionInsertText': 'Insereix com a bloc de text',
|
|
133
|
+
'ai.actionInsertButton': 'Insereix com a botó',
|
|
134
|
+
'toast.headingAdded': 'Capçalera afegida',
|
|
135
|
+
'toast.textBlockAdded': 'Bloc de text afegit',
|
|
136
|
+
'toast.buttonAdded': 'Botó afegit',
|
|
137
|
+
'preview.kickerMobile': 'Previsualització — mòbil 375px',
|
|
138
|
+
'preview.kickerDark': 'Previsualització — bústia fosca',
|
|
139
|
+
'preview.kickerDesktop': 'Previsualització — escriptori {width}px',
|
|
140
|
+
'action.close': 'Tanca',
|
|
141
|
+
'toast.duplicated': 'Duplicat',
|
|
142
|
+
'toast.fileUploadedOne': '1 fitxer pujat',
|
|
143
|
+
'toast.fileUploadedMany': '{count} fitxers pujats',
|
|
144
|
+
'toast.imageReplaced': 'Imatge substituïda',
|
|
145
|
+
'toast.imageAdded': 'Imatge afegida al llenç',
|
|
146
|
+
'toast.htmlCopied': 'HTML copiat al porta-retalls',
|
|
147
|
+
'toast.templateLoaded': '{name} carregat',
|
|
148
|
+
'toast.snippetDefaultLabel': 'Fragment',
|
|
149
|
+
'toast.snippetInserted': '{name} inserit',
|
|
150
|
+
'toast.snippetCopied': '{name} copiat — seleccioneu un bloc de text per inserir-lo',
|
|
151
|
+
};
|
|
152
|
+
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/** Czech (Čeština) — `cs`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
+
export const CS = {
|
|
3
|
+
'action.undoHint': 'Zpět — ⌘Z',
|
|
4
|
+
'action.redoHint': 'Znovu — ⌘⇧Z',
|
|
5
|
+
'action.chromeToDark': 'Tmavý',
|
|
6
|
+
'action.chromeToLight': 'Světlý',
|
|
7
|
+
'action.chromeHint': 'Motiv editoru světlý / tmavý',
|
|
8
|
+
'action.aiCopy': 'Text',
|
|
9
|
+
'action.aiCopyHint': 'Napsat text pomocí AI',
|
|
10
|
+
'action.code': 'Kód',
|
|
11
|
+
'action.codeHint': 'Upravit surové HTML s živým náhledem',
|
|
12
|
+
'action.preview': 'Náhled',
|
|
13
|
+
'action.export': 'Exportovat',
|
|
14
|
+
'device.desktop': 'Počítač',
|
|
15
|
+
'device.desktopHint': 'Šířka pro počítač',
|
|
16
|
+
'device.mobile': 'Mobil',
|
|
17
|
+
'device.mobileHint': 'Šířka pro mobil',
|
|
18
|
+
'device.dark': 'Tmavý',
|
|
19
|
+
'device.darkHint': 'Tmavý režim schránky',
|
|
20
|
+
'status.autosaveOn': 'automatické ukládání zapnuto',
|
|
21
|
+
'status.saved': 'uloženo {time}',
|
|
22
|
+
'status.saveFailed': 'neuloženo — úložiště je plné',
|
|
23
|
+
'canvas.meta': '{rows} řádků · {blocks} bloků · {width}px',
|
|
24
|
+
'tab.design': 'Styl',
|
|
25
|
+
'tab.designHint': 'Stylovat výběr',
|
|
26
|
+
'tab.blocks': 'Bloky',
|
|
27
|
+
'tab.blocksHint': 'Bloky obsahu a proměnné',
|
|
28
|
+
'tab.rows': 'Sekce',
|
|
29
|
+
'tab.rowsHint': 'Rozvržení sekcí a model plátna',
|
|
30
|
+
'tab.files': 'Soubory',
|
|
31
|
+
'tab.filesHint': 'Knihovna souborů',
|
|
32
|
+
'tab.layers': 'Struktura',
|
|
33
|
+
'tab.layersHint': 'Struktura dokumentu',
|
|
34
|
+
'tab.theme': 'Motiv',
|
|
35
|
+
'tab.themeHint': 'Globální styly',
|
|
36
|
+
'tab.data': 'Prom.',
|
|
37
|
+
'tab.dataHint': 'Proměnné poskytnuté vaším kódem',
|
|
38
|
+
'inspector.blockProperties': 'Vlastnosti bloku',
|
|
39
|
+
'inspector.sectionProperties': 'Vlastnosti sekce',
|
|
40
|
+
'inspector.title': 'Inspektor',
|
|
41
|
+
'inspector.sectionLabel': 'Sekce',
|
|
42
|
+
'inspector.nothingSelected': 'Nic není vybráno',
|
|
43
|
+
'action.duplicateHint': 'Duplikovat — ⌘D',
|
|
44
|
+
'action.deleteHint': 'Smazat — ⌫',
|
|
45
|
+
'inspector.emptyBody':
|
|
46
|
+
'Vyberte řádek nebo blok na plátně a stylujte jej zde. Přetáhněte bloky z karty <strong style="color: var(--ed-text); font-weight: 600;">Bloky</strong>; dvojklikem na text jej upravíte přímo na místě.',
|
|
47
|
+
'inspector.shortcuts': 'Zkratky',
|
|
48
|
+
'shortcut.undoRedo': '⌘Z / ⌘⇧Z — zpět, znovu',
|
|
49
|
+
'shortcut.duplicate': '⌘D — duplikovat výběr',
|
|
50
|
+
'shortcut.delete': '⌫ — smazat výběr',
|
|
51
|
+
'shortcut.export': '⌘E — exportovat HTML',
|
|
52
|
+
'shortcut.escape': 'ESC — zrušit výběr, zavřít',
|
|
53
|
+
'blocks.dragHint': 'Přetáhněte na plátno',
|
|
54
|
+
'blocks.count': '{count} bloků',
|
|
55
|
+
'rows.sectionLayouts': 'Rozvržení sekcí',
|
|
56
|
+
'rows.customMarkup': 'Vlastní kód',
|
|
57
|
+
'rows.htmlRowHint': 'Přetáhněte pro vložení nebo klikněte pro přidání — řádek na celou šířku, který vyplníte surovým HTML',
|
|
58
|
+
'rows.rawHtmlSection': 'Sekce se surovým HTML',
|
|
59
|
+
'rows.rawHtmlDesc': 'Sekce na celou šířku, váš vlastní kód, stále přetažitelná',
|
|
60
|
+
'rows.canvasModel': 'Model plátna',
|
|
61
|
+
'rows.modeRowBased': 'Založeno na řádcích',
|
|
62
|
+
'rows.modeFreeStack': 'Volný zásobník',
|
|
63
|
+
'rows.hintRows':
|
|
64
|
+
'Založeno na sekcích: nejprve umístěte rozvržení, poté bloky do jeho sloupců — každá sekce má vlastní pozadí, ohraničení, nastavení flex nebo mřížky.',
|
|
65
|
+
'rows.hintStack': 'Volný zásobník: bez rozvržení — každý umístěný blok se stane vlastní sekcí na celou šířku, seřazenou postupně.',
|
|
66
|
+
'files.libraryCount': 'Knihovna — {count} souborů',
|
|
67
|
+
'files.openManager': 'Otevřít správce souborů',
|
|
68
|
+
'files.dragToCanvas': 'Přetáhněte libovolný soubor přímo na plátno a umístěte jej jako obrazový blok.',
|
|
69
|
+
'layers.structure': 'Struktura',
|
|
70
|
+
'layers.sectionSingle': 'Sekce',
|
|
71
|
+
'layers.sectionMulti': 'Sekce · {count} sloupců',
|
|
72
|
+
'layers.blockCount': '{count} bl.',
|
|
73
|
+
'theme.globalStyles': 'Globální styly',
|
|
74
|
+
'vars.title': 'Proměnné',
|
|
75
|
+
'vars.fromCode': '{count} z vašeho kódu',
|
|
76
|
+
'vars.declaredNote': 'Deklarované vaší aplikací — plátno vždy zobrazuje token, nikdy hodnotu.',
|
|
77
|
+
'vars.filterPlaceholder': 'Filtrovat proměnné…',
|
|
78
|
+
'vars.insertHint': 'Klikněte pro vložení do vybraného textu, nadpisu nebo tlačítka',
|
|
79
|
+
'vars.insert': 'vložit',
|
|
80
|
+
'vars.noMatch': 'Žádná proměnná neodpovídá tomuto filtru.',
|
|
81
|
+
'vars.noneDeclared': 'Vaše aplikace zatím nedeklarovala žádné proměnné.',
|
|
82
|
+
'vars.rteHint': 'Při úpravě textu můžete proměnnou vybrat i přímo z rozbalovací nabídky vloženého panelu nástrojů.',
|
|
83
|
+
'modal.fileManager': 'Správce souborů',
|
|
84
|
+
'modal.assetsTitle': 'Zdroje',
|
|
85
|
+
'modal.replaceImage': 'Nahradit obrázek',
|
|
86
|
+
'library.searchPlaceholder': 'Hledat soubory…',
|
|
87
|
+
'action.upload': 'Nahrát',
|
|
88
|
+
'library.clickToPlace': 'Klikněte na soubor pro umístění · nebo přetáhněte soubor na plátno',
|
|
89
|
+
'library.clickToReplace': 'Klikněte na soubor pro nahrazení vybraného obrázku',
|
|
90
|
+
'library.storageLabel': '{count} souborů · {size}',
|
|
91
|
+
'library.folders': 'Složky',
|
|
92
|
+
'library.dropHint': 'Sem přetáhněte obrázkové soubory pro nahrání — nebo použijte tlačítko Nahrát.',
|
|
93
|
+
'library.deleteFileHint': 'Smazat soubor',
|
|
94
|
+
'library.del': 'SMAZ',
|
|
95
|
+
'toast.assetDeleted': '{name} smazán',
|
|
96
|
+
'modal.export': 'Exportovat',
|
|
97
|
+
'modal.exportTitle': 'HTML e-mailu založené na tabulkách',
|
|
98
|
+
'export.copy': 'Kopírovat',
|
|
99
|
+
'export.copied': 'Zkopírováno',
|
|
100
|
+
'action.download': 'Stáhnout',
|
|
101
|
+
'export.meta': '{kb} KB · tabulky + vložené styly · šířky bezpečné pro Outlook',
|
|
102
|
+
'modal.rawHtmlTitle': 'Surové HTML, živý náhled',
|
|
103
|
+
'code.statusEdited': 'Zobrazení kódu — upraveno — náhled živě, zatím neaplikováno',
|
|
104
|
+
'code.statusSynced': 'Zobrazení kódu — synchronizováno s plátnem',
|
|
105
|
+
'action.reload': 'Znovu načíst',
|
|
106
|
+
'action.reloadHint': 'Znovu načíst zdroj z plátna',
|
|
107
|
+
'action.applyToCanvas': 'Použít na plátno',
|
|
108
|
+
'action.applyToCanvasHint': 'Znovu rozebrat zdroj na editovatelné řádky',
|
|
109
|
+
'action.closeWithoutApplyingHint': 'Zavřít bez použití',
|
|
110
|
+
'code.source': 'Zdroj',
|
|
111
|
+
'code.livePreview': 'Živý náhled',
|
|
112
|
+
'code.liveHtmlPreviewTitle': 'Živý náhled HTML',
|
|
113
|
+
'code.applyNote':
|
|
114
|
+
'Použití rozebere každý řádek tabulky nejvyšší úrovně do řádku plátna, který lze stále vybírat, přeuspořádávat a mazat — ručně psaný kód proces přežije beze změny.',
|
|
115
|
+
'code.meta': '{kb} KB · {lines} řádků',
|
|
116
|
+
'toast.sourceReloaded': 'Zdroj znovu načten z plátna',
|
|
117
|
+
'toast.sourceAppliedOne': 'Zdroj použit — 1 řádek na plátně',
|
|
118
|
+
'toast.sourceAppliedMany': 'Zdroj použit — {rows} řádků na plátně',
|
|
119
|
+
'toast.parseError': 'Toto HTML se nepodařilo rozebrat',
|
|
120
|
+
'modal.copyAssist': 'Asistent pro text',
|
|
121
|
+
'modal.draftCopyTitle': 'Napsat text pro tuto kampaň',
|
|
122
|
+
'ai.goal': 'Cíl',
|
|
123
|
+
'ai.tone': 'Tón',
|
|
124
|
+
'ai.briefLabel': 'O čem tento e-mail je?',
|
|
125
|
+
'ai.briefPlaceholder': 'např. Podzimní kolekce, 15 % pro odběratele, doprava zdarma nad 150 €',
|
|
126
|
+
'ai.generate': 'Vygenerovat text',
|
|
127
|
+
'ai.writing': 'Píše se…',
|
|
128
|
+
'ai.kindHeadline': 'Nadpis',
|
|
129
|
+
'ai.kindBody': 'Hlavní text',
|
|
130
|
+
'ai.kindButton': 'Text tlačítka',
|
|
131
|
+
'ai.actionInsertHeading': 'Vložit jako nadpis',
|
|
132
|
+
'ai.actionInsertText': 'Vložit jako textový blok',
|
|
133
|
+
'ai.actionInsertButton': 'Vložit jako tlačítko',
|
|
134
|
+
'toast.headingAdded': 'Nadpis přidán',
|
|
135
|
+
'toast.textBlockAdded': 'Textový blok přidán',
|
|
136
|
+
'toast.buttonAdded': 'Tlačítko přidáno',
|
|
137
|
+
'preview.kickerMobile': 'Náhled — mobil 375px',
|
|
138
|
+
'preview.kickerDark': 'Náhled — tmavá schránka',
|
|
139
|
+
'preview.kickerDesktop': 'Náhled — počítač {width}px',
|
|
140
|
+
'action.close': 'Zavřít',
|
|
141
|
+
'toast.duplicated': 'Duplikováno',
|
|
142
|
+
'toast.fileUploadedOne': 'Nahrán 1 soubor',
|
|
143
|
+
'toast.fileUploadedMany': 'Nahráno souborů: {count}',
|
|
144
|
+
'toast.imageReplaced': 'Obrázek nahrazen',
|
|
145
|
+
'toast.imageAdded': 'Obrázek přidán na plátno',
|
|
146
|
+
'toast.htmlCopied': 'HTML zkopírováno do schránky',
|
|
147
|
+
'toast.templateLoaded': '{name} načteno',
|
|
148
|
+
'toast.snippetDefaultLabel': 'Úryvek',
|
|
149
|
+
'toast.snippetInserted': '{name} vloženo',
|
|
150
|
+
'toast.snippetCopied': '{name} zkopírováno — vyberte textový blok pro vložení',
|
|
151
|
+
};
|
|
152
|
+
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/** Danish (Dansk) — `da`. AI-drafted, not reviewed by a native speaker. Correctable one key at a time via `.messages` overrides. */
|
|
2
|
+
export const DA = {
|
|
3
|
+
'action.undoHint': 'Fortryd — ⌘Z',
|
|
4
|
+
'action.redoHint': 'Gentag — ⌘⇧Z',
|
|
5
|
+
'action.chromeToDark': 'Mørk',
|
|
6
|
+
'action.chromeToLight': 'Lys',
|
|
7
|
+
'action.chromeHint': 'Redigeringstema lys / mørk',
|
|
8
|
+
'action.aiCopy': 'Tekst',
|
|
9
|
+
'action.aiCopyHint': 'Skriv tekst med AI',
|
|
10
|
+
'action.code': 'Kode',
|
|
11
|
+
'action.codeHint': 'Rediger rå HTML med direkte forhåndsvisning',
|
|
12
|
+
'action.preview': 'Forhåndsvisning',
|
|
13
|
+
'action.export': 'Eksportér',
|
|
14
|
+
'device.desktop': 'Computer',
|
|
15
|
+
'device.desktopHint': 'Bredde til computer',
|
|
16
|
+
'device.mobile': 'Mobil',
|
|
17
|
+
'device.mobileHint': 'Bredde til mobil',
|
|
18
|
+
'device.dark': 'Mørk',
|
|
19
|
+
'device.darkHint': 'Mørk tilstand for indbakke',
|
|
20
|
+
'status.autosaveOn': 'automatisk gemning slået til',
|
|
21
|
+
'status.saved': 'gemt {time}',
|
|
22
|
+
'status.saveFailed': 'ikke gemt — lagerplads fuld',
|
|
23
|
+
'canvas.meta': '{rows} rækker · {blocks} blokke · {width}px',
|
|
24
|
+
'tab.design': 'Stil',
|
|
25
|
+
'tab.designHint': 'Formatér markeringen',
|
|
26
|
+
'tab.blocks': 'Blokke',
|
|
27
|
+
'tab.blocksHint': 'Indholdsblokke og variabler',
|
|
28
|
+
'tab.rows': 'Sektioner',
|
|
29
|
+
'tab.rowsHint': 'Sektionslayouts og lærredsmodel',
|
|
30
|
+
'tab.files': 'Filer',
|
|
31
|
+
'tab.filesHint': 'Ressourcebibliotek',
|
|
32
|
+
'tab.layers': 'Struktur',
|
|
33
|
+
'tab.layersHint': 'Dokumentstruktur',
|
|
34
|
+
'tab.theme': 'Tema',
|
|
35
|
+
'tab.themeHint': 'Globale stilarter',
|
|
36
|
+
'tab.data': 'Var.',
|
|
37
|
+
'tab.dataHint': 'Variabler leveret af din kode',
|
|
38
|
+
'inspector.blockProperties': 'Blokegenskaber',
|
|
39
|
+
'inspector.sectionProperties': 'Sektionsegenskaber',
|
|
40
|
+
'inspector.title': 'Inspektør',
|
|
41
|
+
'inspector.sectionLabel': 'Sektion',
|
|
42
|
+
'inspector.nothingSelected': 'Intet valgt',
|
|
43
|
+
'action.duplicateHint': 'Dupliker — ⌘D',
|
|
44
|
+
'action.deleteHint': 'Slet — ⌫',
|
|
45
|
+
'inspector.emptyBody':
|
|
46
|
+
'Vælg en række eller en blok på lærredet for at formatere den her. Træk blokke fra fanen <strong style="color: var(--ed-text); font-weight: 600;">Blokke</strong>; dobbeltklik på tekst for at redigere direkte.',
|
|
47
|
+
'inspector.shortcuts': 'Genveje',
|
|
48
|
+
'shortcut.undoRedo': '⌘Z / ⌘⇧Z — fortryd, gentag',
|
|
49
|
+
'shortcut.duplicate': '⌘D — dupliker markering',
|
|
50
|
+
'shortcut.delete': '⌫ — slet markering',
|
|
51
|
+
'shortcut.export': '⌘E — eksportér HTML',
|
|
52
|
+
'shortcut.escape': 'ESC — fjern markering, luk',
|
|
53
|
+
'blocks.dragHint': 'Træk til lærredet',
|
|
54
|
+
'blocks.count': '{count} blokke',
|
|
55
|
+
'rows.sectionLayouts': 'Sektionslayouts',
|
|
56
|
+
'rows.customMarkup': 'Tilpasset kode',
|
|
57
|
+
'rows.htmlRowHint': 'Træk for at indsætte, eller klik for at tilføje — en fuldbredde-række, du fylder med rå HTML',
|
|
58
|
+
'rows.rawHtmlSection': 'Rå HTML-sektion',
|
|
59
|
+
'rows.rawHtmlDesc': 'Fuldbredde-sektion, din egen kode, stadig trækbar',
|
|
60
|
+
'rows.canvasModel': 'Lærredsmodel',
|
|
61
|
+
'rows.modeRowBased': 'Rækkebaseret',
|
|
62
|
+
'rows.modeFreeStack': 'Fri stak',
|
|
63
|
+
'rows.hintRows':
|
|
64
|
+
'Sektionsbaseret: slip et layout først, derefter blokke i dets kolonner — hver sektion har sin egen baggrund, kant, flex- eller gitterindstillinger.',
|
|
65
|
+
'rows.hintStack': 'Fri stak: uden layouts — hver blok, du slipper, bliver sin egen fuldbredde-sektion, stablet i rækkefølge.',
|
|
66
|
+
'files.libraryCount': 'Bibliotek — {count} filer',
|
|
67
|
+
'files.openManager': 'Åbn filhåndtering',
|
|
68
|
+
'files.dragToCanvas': 'Træk en vilkårlig fil direkte til lærredet for at placere den som en billedblok.',
|
|
69
|
+
'layers.structure': 'Struktur',
|
|
70
|
+
'layers.sectionSingle': 'Sektion',
|
|
71
|
+
'layers.sectionMulti': 'Sektion · {count} kol.',
|
|
72
|
+
'layers.blockCount': '{count} bl.',
|
|
73
|
+
'theme.globalStyles': 'Globale stilarter',
|
|
74
|
+
'vars.title': 'Variabler',
|
|
75
|
+
'vars.fromCode': '{count} fra din kode',
|
|
76
|
+
'vars.declaredNote': 'Erklæret af din applikation — lærredet viser altid tokenet, aldrig en værdi.',
|
|
77
|
+
'vars.filterPlaceholder': 'Filtrér variabler…',
|
|
78
|
+
'vars.insertHint': 'Klik for at indsætte i markeret tekst, overskrift eller knap',
|
|
79
|
+
'vars.insert': 'indsæt',
|
|
80
|
+
'vars.noMatch': 'Ingen variabel matcher det filter.',
|
|
81
|
+
'vars.noneDeclared': 'Din applikation har endnu ikke erklæret nogen variabler.',
|
|
82
|
+
'vars.rteHint': 'Når du redigerer tekst, kan du også vælge en variabel direkte fra rullemenuen i den indlejrede værktøjslinje.',
|
|
83
|
+
'modal.fileManager': 'Filhåndtering',
|
|
84
|
+
'modal.assetsTitle': 'Ressourcer',
|
|
85
|
+
'modal.replaceImage': 'Erstat billede',
|
|
86
|
+
'library.searchPlaceholder': 'Søg i filer…',
|
|
87
|
+
'action.upload': 'Upload',
|
|
88
|
+
'library.clickToPlace': 'Klik på en fil for at placere den · eller træk en fil til lærredet',
|
|
89
|
+
'library.clickToReplace': 'Klik på en fil for at erstatte det markerede billede',
|
|
90
|
+
'library.storageLabel': '{count} filer · {size}',
|
|
91
|
+
'library.folders': 'Mapper',
|
|
92
|
+
'library.dropHint': 'Slip billedfiler her for at uploade — eller brug knappen Upload.',
|
|
93
|
+
'library.deleteFileHint': 'Slet fil',
|
|
94
|
+
'library.del': 'SLET',
|
|
95
|
+
'toast.assetDeleted': '{name} slettet',
|
|
96
|
+
'modal.export': 'Eksportér',
|
|
97
|
+
'modal.exportTitle': 'Tabelbaseret e-mail-HTML',
|
|
98
|
+
'export.copy': 'Kopiér',
|
|
99
|
+
'export.copied': 'Kopieret',
|
|
100
|
+
'action.download': 'Download',
|
|
101
|
+
'export.meta': '{kb} KB · tabeller + inline-stilarter · Outlook-sikre bredder',
|
|
102
|
+
'modal.rawHtmlTitle': 'Rå HTML, direkte forhåndsvisning',
|
|
103
|
+
'code.statusEdited': 'Kodevisning — redigeret — forhåndsvisning live, endnu ikke anvendt',
|
|
104
|
+
'code.statusSynced': 'Kodevisning — synkroniseret med lærredet',
|
|
105
|
+
'action.reload': 'Genindlæs',
|
|
106
|
+
'action.reloadHint': 'Genindlæs kilde fra lærredet',
|
|
107
|
+
'action.applyToCanvas': 'Anvend på lærred',
|
|
108
|
+
'action.applyToCanvasHint': 'Fortolk kilden tilbage til redigerbare rækker',
|
|
109
|
+
'action.closeWithoutApplyingHint': 'Luk uden at anvende',
|
|
110
|
+
'code.source': 'Kilde',
|
|
111
|
+
'code.livePreview': 'Direkte forhåndsvisning',
|
|
112
|
+
'code.liveHtmlPreviewTitle': 'Direkte HTML-forhåndsvisning',
|
|
113
|
+
'code.applyNote':
|
|
114
|
+
'Anvend fortolker hver tabelrække på øverste niveau til en lærredsrække, du stadig kan markere, omarrangere og slette — håndskrevet kode overlever processen uændret.',
|
|
115
|
+
'code.meta': '{kb} KB · {lines} linjer',
|
|
116
|
+
'toast.sourceReloaded': 'Kilde genindlæst fra lærredet',
|
|
117
|
+
'toast.sourceAppliedOne': 'Kilde anvendt — 1 række på lærredet',
|
|
118
|
+
'toast.sourceAppliedMany': 'Kilde anvendt — {rows} rækker på lærredet',
|
|
119
|
+
'toast.parseError': 'Kunne ikke fortolke den HTML',
|
|
120
|
+
'modal.copyAssist': 'Tekstassistent',
|
|
121
|
+
'modal.draftCopyTitle': 'Skriv tekst til denne kampagne',
|
|
122
|
+
'ai.goal': 'Mål',
|
|
123
|
+
'ai.tone': 'Tone',
|
|
124
|
+
'ai.briefLabel': 'Hvad handler denne e-mail om?',
|
|
125
|
+
'ai.briefPlaceholder': 'f.eks. Efterårskollektion, 15% til abonnenter, fragtfrit over 150 kr',
|
|
126
|
+
'ai.generate': 'Generér tekst',
|
|
127
|
+
'ai.writing': 'Skriver…',
|
|
128
|
+
'ai.kindHeadline': 'Overskrift',
|
|
129
|
+
'ai.kindBody': 'Brødtekst',
|
|
130
|
+
'ai.kindButton': 'Knaptekst',
|
|
131
|
+
'ai.actionInsertHeading': 'Indsæt som overskrift',
|
|
132
|
+
'ai.actionInsertText': 'Indsæt som tekstblok',
|
|
133
|
+
'ai.actionInsertButton': 'Indsæt som knap',
|
|
134
|
+
'toast.headingAdded': 'Overskrift tilføjet',
|
|
135
|
+
'toast.textBlockAdded': 'Tekstblok tilføjet',
|
|
136
|
+
'toast.buttonAdded': 'Knap tilføjet',
|
|
137
|
+
'preview.kickerMobile': 'Forhåndsvisning — mobil 375px',
|
|
138
|
+
'preview.kickerDark': 'Forhåndsvisning — mørk indbakke',
|
|
139
|
+
'preview.kickerDesktop': 'Forhåndsvisning — computer {width}px',
|
|
140
|
+
'action.close': 'Luk',
|
|
141
|
+
'toast.duplicated': 'Duplikeret',
|
|
142
|
+
'toast.fileUploadedOne': '1 fil uploadet',
|
|
143
|
+
'toast.fileUploadedMany': '{count} filer uploadet',
|
|
144
|
+
'toast.imageReplaced': 'Billede erstattet',
|
|
145
|
+
'toast.imageAdded': 'Billede tilføjet til lærredet',
|
|
146
|
+
'toast.htmlCopied': 'HTML kopieret til udklipsholder',
|
|
147
|
+
'toast.templateLoaded': '{name} indlæst',
|
|
148
|
+
'toast.snippetDefaultLabel': 'Uddrag',
|
|
149
|
+
'toast.snippetInserted': '{name} indsat',
|
|
150
|
+
'toast.snippetCopied': '{name} kopieret — vælg en tekstblok for at indsætte den',
|
|
151
|
+
};
|
|
152
|
+
|