@myissue/vue-website-page-builder 3.3.65 → 3.3.67

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.
Files changed (36) hide show
  1. package/README.md +70 -4
  2. package/dist/vue-website-page-builder.js +14959 -12086
  3. package/dist/vue-website-page-builder.umd.cjs +78 -57
  4. package/package.json +2 -1
  5. package/src/Components/PageBuilder/EditorMenu/Editables/BackgroundColorEditor.vue +2 -2
  6. package/src/Components/PageBuilder/EditorMenu/Editables/BorderRadius.vue +19 -13
  7. package/src/Components/PageBuilder/EditorMenu/Editables/Borders.vue +9 -7
  8. package/src/Components/PageBuilder/EditorMenu/Editables/ClassEditor.vue +8 -7
  9. package/src/Components/PageBuilder/EditorMenu/Editables/ManageBackgroundOpacity.vue +7 -3
  10. package/src/Components/PageBuilder/EditorMenu/Editables/ManageOpacity.vue +5 -3
  11. package/src/Components/PageBuilder/EditorMenu/Editables/Margin.vue +9 -5
  12. package/src/Components/PageBuilder/EditorMenu/Editables/OpacityEditor.vue +1 -1
  13. package/src/Components/PageBuilder/EditorMenu/Editables/Padding.vue +9 -5
  14. package/src/Components/PageBuilder/EditorMenu/Editables/StyleEditor.vue +8 -7
  15. package/src/Components/PageBuilder/EditorMenu/Editables/Typography.vue +25 -9
  16. package/src/Components/PageBuilder/EditorMenu/RightSidebarEditor.vue +9 -12
  17. package/src/Components/PageBuilder/Settings/PageBuilderSettings.vue +3 -3
  18. package/src/Components/PageBuilder/ToolbarOption/ToolbarOption.vue +4 -4
  19. package/src/PageBuilder/PageBuilder.vue +83 -5
  20. package/src/composables/builderInstance.ts +3 -2
  21. package/src/i18n.ts +28 -0
  22. package/src/locales/ar.json +136 -0
  23. package/src/locales/de.json +136 -0
  24. package/src/locales/en.json +136 -0
  25. package/src/locales/es.json +136 -0
  26. package/src/locales/fr.json +136 -0
  27. package/src/locales/hi.json +136 -0
  28. package/src/locales/ja.json +136 -0
  29. package/src/locales/pt.json +136 -0
  30. package/src/locales/ru.json +136 -0
  31. package/src/locales/zh-Hans.json +136 -0
  32. package/src/main.ts +10 -5
  33. package/src/services/PageBuilderService.ts +150 -29
  34. package/src/tests/PageBuilderTest.vue +24 -54
  35. package/src/tests/pageBuilderService.test.ts +7 -1
  36. package/src/types/index.ts +7 -1
@@ -156,7 +156,7 @@ const openHTMLSettings = function () {
156
156
  <!-- Component Start -->
157
157
  <div class="pbx-relative pbx-group">
158
158
  <button type="button" class="pbx-mySecondaryButton pbx-font-normal pbx-text-xs">
159
- <span> Options </span>
159
+ <span> {{ $t('options.button') }} </span>
160
160
  </button>
161
161
  <div
162
162
  class="pbx-absolute pbx-left-0 -pbx-ml-16 -pbx-mt-2 pbx-flex pbx-flex-col pbx-gap-3 pbx-shadow-lg pbx-bg-white pbx-w-max pbx-border-solid pbx-border pbx-border-gray-100 pbx-rounded-2xl pbx-transition-all pbx-duration-200 pbx-ease-out pbx-pt-4 pbx-pr-4 pbx-pb-4 pbx-pl-2 pbx-z-30 pbx-opacity-0 pbx-pointer-events-none pbx-translate-y-2 group-hover:pbx-opacity-100 group-hover:pbx-pointer-events-auto group-hover:pbx-translate-y-0"
@@ -172,7 +172,7 @@ const openHTMLSettings = function () {
172
172
  class="pbx-mySecondaryButton pbx-text-xs pbx-font-normal"
173
173
  type="button"
174
174
  >
175
- Config Overview
175
+ <span> {{ $t('options.configOverview') }} </span>
176
176
  </button>
177
177
  <!-- Main Settings End -->
178
178
 
@@ -182,7 +182,7 @@ const openHTMLSettings = function () {
182
182
  class="pbx-mySecondaryButton pbx-text-xs pbx-font-normal"
183
183
  type="button"
184
184
  >
185
- HTML Overview
185
+ <span> {{ $t('options.htmlOverview') }} </span>
186
186
  </button>
187
187
  <!-- HTML Settings End -->
188
188
 
@@ -192,7 +192,7 @@ const openHTMLSettings = function () {
192
192
  class="pbx-myPrimaryDeleteButton pbx-text-xs pbx-font-normal"
193
193
  type="button"
194
194
  >
195
- Delete Layout
195
+ <span> {{ $t('options.deleteLayout') }} </span>
196
196
  </button>
197
197
  <!-- Delete Layout End -->
198
198
  </div>
@@ -13,6 +13,8 @@ import { useDebounce } from '../composables/useDebounce.ts'
13
13
  import DynamicModalBuilder from '../Components/Modals/DynamicModalBuilder.vue'
14
14
  import GlobalLoader from '../Components/Loaders/GlobalLoader.vue'
15
15
  import { getPageBuilder } from '../composables/builderInstance'
16
+ import { useI18n } from 'vue-i18n'
17
+
16
18
  const pageBuilderService = getPageBuilder()
17
19
  /**
18
20
  * Props for PageBuilder component
@@ -149,6 +151,28 @@ const getHasLocalDraftForUpdate = computed(() => {
149
151
  return pageBuilderStateStore.getHasLocalDraftForUpdate
150
152
  })
151
153
 
154
+ const { locale } = useI18n()
155
+
156
+ watch(locale, (newLocale) => {
157
+ const config = pageBuilderStateStore.getPageBuilderConfig
158
+ if (config && config.userSettings && config.userSettings.language) {
159
+ // Update the store with a full config (if you want to update the store)
160
+ const updatedConfig = {
161
+ ...config,
162
+ userSettings: {
163
+ ...config.userSettings,
164
+ language: {
165
+ ...config.userSettings.language,
166
+ default: newLocale,
167
+ },
168
+ },
169
+ }
170
+
171
+ pageBuilderStateStore.setPageBuilderConfig(updatedConfig)
172
+ pageBuilderService.saveBuilderConfigToLocalStorage(updatedConfig)
173
+ }
174
+ })
175
+
152
176
  watch(getHasLocalDraftForUpdate, (newVal) => {
153
177
  if (newVal) {
154
178
  handlerRumeEditingForUpdate()
@@ -539,7 +563,7 @@ onMounted(async () => {
539
563
  ></span>
540
564
  </span>
541
565
  </div>
542
- <div>Save</div>
566
+ <div>{{ $t('button.save') }}</div>
543
567
  </button>
544
568
  <!-- Save End -->
545
569
 
@@ -582,7 +606,7 @@ onMounted(async () => {
582
606
  </span>
583
607
  </div>
584
608
  <div class="lg:pbx-block pbx-hidden">
585
- <span> Reset Page </span>
609
+ <span>{{ $t('button.resetPage') }}</span>
586
610
  </div>
587
611
  </button>
588
612
  </template>
@@ -619,7 +643,9 @@ onMounted(async () => {
619
643
  class="pbx-flex pbx-items-center pbx-justify-center pbx-gap-2 pbx-border-gray-200"
620
644
  >
621
645
  <span class="lg:pbx-block pbx-hidden">
622
- <div class="pbx-whitespace-nowrap pbx-cursor-pointer">Add new Components</div>
646
+ <div class="pbx-whitespace-nowrap pbx-cursor-pointer">
647
+ {{ $t('button.addComponents') }}
648
+ </div>
623
649
  </span>
624
650
  <span
625
651
  class="pbx-h-10 pbx-w-10 pbx-cursor-pointer pbx-rounded-full pbx-flex pbx-items-center pbx-border-none pbx-justify-center pbx-bg-gray-50 pbx-aspect-square hover:pbx-bg-myPrimaryLinkColor hover:pbx-text-white focus-visible:pbx-ring-0"
@@ -698,10 +724,62 @@ onMounted(async () => {
698
724
  }
699
725
  "
700
726
  >
701
- Publish
727
+ {{ $t('button.publish') }}
702
728
  </button>
703
729
  </div>
704
730
  </template>
731
+ <!-- Select language -->
732
+ <template
733
+ v-if="
734
+ getPageBuilderConfig &&
735
+ getPageBuilderConfig.userSettings &&
736
+ getPageBuilderConfig.userSettings.language &&
737
+ !getPageBuilderConfig.userSettings.language.disableLanguageDropDown
738
+ "
739
+ >
740
+ <template
741
+ v-if="
742
+ getPageBuilderConfig &&
743
+ getPageBuilderConfig.userSettings &&
744
+ getPageBuilderConfig.userSettings.language
745
+ "
746
+ >
747
+ <div class="pbx-flex pbx-justify-center pbx-items-center pbx-ml-2">
748
+ <select
749
+ class="pbx-myPrimarySelect pbx-min-w-20 pbx-max-w-2pbx-min-w-20 pbx-w-max"
750
+ v-model="$i18n.locale"
751
+ >
752
+ <template
753
+ v-if="
754
+ Array.isArray(getPageBuilderConfig.userSettings.language.enable) &&
755
+ getPageBuilderConfig.userSettings.language.enable.length >= 1
756
+ "
757
+ >
758
+ <template
759
+ v-for="lang in pageBuilderService
760
+ .availableLanguage()
761
+ .filter((l) => getPageBuilderConfig.userSettings.language.enable.includes(l))"
762
+ :key="lang"
763
+ >
764
+ <option :value="lang">{{ lang }}</option>
765
+ </template>
766
+ </template>
767
+ <template
768
+ v-if="
769
+ !getPageBuilderConfig.userSettings.language.enable ||
770
+ (Array.isArray(getPageBuilderConfig.userSettings.language.enable) &&
771
+ getPageBuilderConfig.userSettings.language.enable.length === 0)
772
+ "
773
+ >
774
+ <template v-for="lang in pageBuilderService.availableLanguage()" :key="lang">
775
+ <option :value="lang">{{ lang }}</option>
776
+ </template>
777
+ </template>
778
+ </select>
779
+ </div>
780
+ </template>
781
+ </template>
782
+
705
783
  <template v-if="showCloseButton">
706
784
  <div class="pbx-ml-2">
707
785
  <button
@@ -854,7 +932,7 @@ onMounted(async () => {
854
932
  class="pbx-flex pbx-items-center pbx-justify-center pbx-gap-2 pbx-cursor-pointer"
855
933
  >
856
934
  <span class="lg:pbx-block pbx-hidden">
857
- <div class="pbx-whitespace-nowrap">Add to the bottom</div>
935
+ <div class="pbx-whitespace-nowrap">{{ $t('button.addComponentsToBottom') }}</div>
858
936
  </span>
859
937
  <div class="pbx-flex pbx-gap-2 pbx-items-center pbx-justify-center">
860
938
  <button
@@ -1,15 +1,16 @@
1
1
  // builderInstance.ts
2
2
  import { PageBuilderService } from '../services/PageBuilderService'
3
+ import type { I18n } from 'vue-i18n'
3
4
  import { sharedPageBuilderStore } from '../stores/shared-store'
4
5
 
5
6
  // Singleton instance
6
7
  let instance: PageBuilderService | null = null
7
8
 
8
9
  // Used to create and store the single instance
9
- export function initPageBuilder(): PageBuilderService {
10
+ export function initPageBuilder(i18n: I18n): PageBuilderService {
10
11
  if (!instance) {
11
12
  const pageBuilderStateStore = sharedPageBuilderStore
12
- instance = new PageBuilderService(pageBuilderStateStore)
13
+ instance = new PageBuilderService(pageBuilderStateStore, i18n)
13
14
  }
14
15
  return instance
15
16
  }
package/src/i18n.ts ADDED
@@ -0,0 +1,28 @@
1
+ import { createI18n } from 'vue-i18n'
2
+
3
+ // Function to load all locale messages from JSON files
4
+ async function loadLocaleMessages() {
5
+ const locales = import.meta.glob('./locales/*.json')
6
+ const messages: Record<string, object> = {}
7
+ for (const path in locales) {
8
+ const matched = path.match(/([A-Za-z0-9-_]+)\.json$/i)
9
+ if (matched && matched.length > 1) {
10
+ const locale = matched[1]
11
+ const module = (await locales[path]()) as { default: object }
12
+ messages[locale] = module.default
13
+ }
14
+ }
15
+ return messages
16
+ }
17
+
18
+ // Use this in main.ts: const i18n = await setupI18n()
19
+ export async function setupI18n() {
20
+ const messages = await loadLocaleMessages()
21
+ return createI18n({
22
+ legacy: false, // you must set `false`, to use Composition API
23
+ locale: 'en', // set locale
24
+ fallbackLocale: 'en', // set fallback locale
25
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
+ messages: messages as any, // typecast to satisfy vue-i18n
27
+ })
28
+ }
@@ -0,0 +1,136 @@
1
+ {
2
+ "language": "لغة",
3
+ "button": {
4
+ "addComponentsToBottom": "إضافة مكونات إلى الأسفل",
5
+ "publish": "نشر",
6
+ "addComponents": "إضافة مكونات جديدة",
7
+ "save": "حفظ",
8
+ "resetPage": "إعادة تعيين الصفحة"
9
+ },
10
+ "options": {
11
+ "button": "خيارات",
12
+ "configOverview": "نظرة عامة على الإعدادات",
13
+ "htmlOverview": "نظرة عامة على HTML",
14
+ "deleteLayout": "حذف التخطيط"
15
+ },
16
+ "features": {
17
+ "liveDragDropBuilder": {
18
+ "name": "منشئ السحب والإفلات المباشر",
19
+ "description": "انقر واسحب المحتوى على الصفحة وشاهد صفحاتك تنبض بالحياة. حوّل رؤيتك إلى واقع وأنشئ صفحات رائعة باستخدام منشئ الصفحات بالسحب والإفلات."
20
+ },
21
+ "trueVisualEditing": {
22
+ "name": "تحرير بصري حقيقي",
23
+ "description": "شاهد تغييراتك في الوقت الفعلي. عزز رؤيتك الإبداعية وأنشئ صفحات باستخدام منشئ صفحات بديهي. تخلص من قيود التصميم وحول أفكارك إلى واقع."
24
+ },
25
+ "features": {
26
+ "name": "الميزات",
27
+ "description": "السحب والإفلات، إعادة الترتيب، التحرير البصري الحقيقي، التحرير المتجاوب، تخصيص الخطوط، التراجع والإعادة، تحرير النص، مكتبة الوسائط، تكامل Unsplash، فيديوهات YouTube."
28
+ },
29
+ "technologies": {
30
+ "name": "التقنيات",
31
+ "description": "تم التطوير باستخدام TypeScript وVue 3 وComposition API وPinia وCSS وTailwind CSS وHTML."
32
+ },
33
+ "setBrandAndLinkColors": {
34
+ "name": "تعيين ألوان العلامة التجارية والروابط في مكان واحد",
35
+ "description": "أنماط عالمية للخطوط والتصاميم والألوان. عيّن ألوان العلامة التجارية والروابط مرة واحدة وطبقها بسهولة عبر المنصة بأكملها."
36
+ },
37
+ "mobileFirstApproach": {
38
+ "name": "نهج الجوال أولاً",
39
+ "description": "تم التطوير بنهج الجوال أولاً. يعمل منشئ الصفحات حتى على الهواتف المحمولة."
40
+ },
41
+ "mediaLibrary": {
42
+ "name": "مكتبة الوسائط",
43
+ "description": "مكتبة وسائط جميلة وسهلة الاستخدام تتيح لك تغيير الصور وتحديثها. يتضمن تكامل Unsplash."
44
+ },
45
+ "minimalIntuitiveDesign": {
46
+ "name": "تصميم بسيط وبديهي",
47
+ "description": "تصميم جميل وأنيق وبديهي. عزز تفاعل المستخدم مع تجربة بصرية مذهلة."
48
+ }
49
+ },
50
+ "branding": {
51
+ "mainHeader": "حوّل رؤيتك إلى واقع وأنشئ صفحات رائعة باستخدام منشئ الصفحات بالسحب والإفلات",
52
+ "description": "منشئ الصفحات للصفحات المذهلة. مكّن المستخدمين من تصميم ونشر صفحات حديثة بأي نطاق. أنشئ صفحات متجاوبة مثل القوائم أو الوظائف أو منشورات المدونة وأدر المحتوى بسهولة باستخدام منشئ الصفحات المجاني بالسحب والإفلات. تم التطوير باستخدام TypeScript وVue 3 وComposition API وPinia وCSS وTailwind CSS وHTML. قم بتنزيل أو تثبيت منشئ الصفحات المجاني والقوي والمرن وسهل الاستخدام لـ Vue 3.",
53
+ "downloadDescription": "قم بتنزيل أو تثبيت منشئ الصفحات المجاني والقوي والمرن وسهل الاستخدام لـ Vue 3 عبر"
54
+ },
55
+ "typography": {
56
+ "title": "الخطوط",
57
+ "appearance": "مظهر الخط",
58
+ "fontSize": "حجم الخط",
59
+ "fontTabletSize": "حجم الخط للأجهزة اللوحية",
60
+ "fontMobileSize": "الشاشات الصغيرة",
61
+ "fontWeight": "سُمك الخط",
62
+ "fontFamily": "عائلة الخط",
63
+ "fontStyle": "نمط الخط"
64
+ },
65
+ "opacity": {
66
+ "label": "الشفافية",
67
+ "transparent": "شفاف"
68
+ },
69
+ "backgroundOpacity": {
70
+ "label": "شفافية الخلفية",
71
+ "transparent": "شفاف"
72
+ },
73
+ "padding": {
74
+ "title": "الحشو",
75
+ "vertical": "الحشو العمودي",
76
+ "horizontal": "الحشو الأفقي",
77
+ "select": "اختر"
78
+ },
79
+ "margin": {
80
+ "title": "الهامش",
81
+ "vertical": "الهامش العمودي",
82
+ "horizontal": "الهامش الأفقي",
83
+ "select": "اختر"
84
+ },
85
+ "opacityEditor": {
86
+ "title": "الشفافية وعدم الشفافية"
87
+ },
88
+ "borderRadius": {
89
+ "title": "نصف قطر الحدود",
90
+ "global": "عام",
91
+ "specific": "محدد",
92
+ "label": "نصف قطر الحدود",
93
+ "topLeft": "نصف قطر الحدود العلوي الأيسر",
94
+ "topRight": "نصف قطر الحدود العلوي الأيمن",
95
+ "bottomLeft": "نصف قطر الحدود السفلي الأيسر",
96
+ "bottomRight": "نصف قطر الحدود السفلي الأيمن",
97
+ "select": "اختر"
98
+ },
99
+ "borders": {
100
+ "title": "نمط الحدود والعرض واللون",
101
+ "border": "الحدود",
102
+ "style": "نمط الحدود",
103
+ "width": "عرض الحدود",
104
+ "color": "لون الحدود",
105
+ "select": "اختر"
106
+ },
107
+ "classEditor": {
108
+ "title": "CSS المُولّد",
109
+ "info": "هذا هو CSS الذي يطبقه المنشئ. أضف CSS الخاص بك واضغط Enter لتطبيقه على العنصر المحدد.",
110
+ "add": "أضف CSS الخاص بك.",
111
+ "prefix": "يتم إضافة البادئة pbx- تلقائيًا.",
112
+ "placeholder": "اكتب الفئة",
113
+ "addButton": "إضافة"
114
+ },
115
+ "styleEditor": {
116
+ "title": "أنماط مضمنة",
117
+ "info": "هذه هي الأنماط المضمنة التي يطبقها المنشئ. أضف أنماطك الخاصة واضغط Enter لتطبيقها على العنصر المحدد.",
118
+ "add": "أضف نمطك الخاص.",
119
+ "propertyPlaceholder": "خاصية",
120
+ "valuePlaceholder": "قيمة",
121
+ "addButton": "إضافة"
122
+ },
123
+ "rightSidebar": {
124
+ "backgroundColorEditor": {
125
+ "label": "لون الخلفية",
126
+ "transparent": "شفاف"
127
+ },
128
+ "editing": "تحرير",
129
+ "globalPageStylesTitle": "أنماط الصفحة العامة",
130
+ "globalPageStylesDescription": "قم بتطبيق الأنماط التي تؤثر على الصفحة بأكملها. تتضمن هذه الإعدادات عائلة الخط العالمية، ولون النص، ولون الخلفية، والأنماط العامة الأخرى التي تنطبق على جميع الأقسام.",
131
+ "updatePageStyles": "تحديث أنماط الصفحة",
132
+ "downloadHtmlTitle": "تنزيل HTML",
133
+ "downloadHtmlDescription": "صدّر الصفحة بأكملها كملف HTML مستقل. يتضمن ذلك جميع الأقسام والمحتوى والأنماط المطبقة، مما يجعله جاهزًا للاستخدام أو الدمج في مكان آخر.",
134
+ "downloadHtmlButton": "تنزيل ملف HTML"
135
+ }
136
+ }
@@ -0,0 +1,136 @@
1
+ {
2
+ "language": "Sprache",
3
+ "button": {
4
+ "addComponentsToBottom": "Komponenten unten hinzufügen",
5
+ "publish": "Veröffentlichen",
6
+ "addComponents": "Neue Komponenten hinzufügen",
7
+ "save": "Speichern",
8
+ "resetPage": "Seite zurücksetzen"
9
+ },
10
+ "options": {
11
+ "button": "Optionen",
12
+ "configOverview": "Konfigurationsübersicht",
13
+ "htmlOverview": "HTML-Übersicht",
14
+ "deleteLayout": "Layout löschen"
15
+ },
16
+ "features": {
17
+ "liveDragDropBuilder": {
18
+ "name": "Live Drag & Drop Builder",
19
+ "description": "Klicken und ziehen Sie Inhalte auf eine Seite und sehen Sie, wie Ihre Seiten zum Leben erwachen. Erwecken Sie Ihre Vision zum Leben und erstellen Sie beeindruckende Seiten mit einem Drag & Drop Page Builder."
20
+ },
21
+ "trueVisualEditing": {
22
+ "name": "Echtes visuelles Bearbeiten",
23
+ "description": "Sehen Sie Ihre Änderungen in Echtzeit. Erhöhen Sie Ihre kreative Vision und erstellen Sie Seiten mit einem intuitiven Page Builder. Brechen Sie Designgrenzen und setzen Sie Ihre Ideen um."
24
+ },
25
+ "features": {
26
+ "name": "Funktionen",
27
+ "description": "Drag & Drop, Umordnen, echtes visuelles Bearbeiten, responsives Bearbeiten, Schriftanpassung, Rückgängig & Wiederholen, Textbearbeitung, Medienbibliothek, Unsplash-Integration, YouTube-Videos."
28
+ },
29
+ "technologies": {
30
+ "name": "Technologien",
31
+ "description": "Entwickelt mit TypeScript, Vue 3, Composition API, Pinia, CSS, Tailwind CSS und HTML."
32
+ },
33
+ "setBrandAndLinkColors": {
34
+ "name": "Marken- und Linkfarben an einem Ort festlegen",
35
+ "description": "Globale Stile für Schriftarten, Designs und Farben. Legen Sie Marken- und Linkfarben einmal fest und wenden Sie sie einfach auf der gesamten Plattform an."
36
+ },
37
+ "mobileFirstApproach": {
38
+ "name": "Mobile-First-Ansatz",
39
+ "description": "Entwickelt mit Mobile-First-Ansatz. Der Page Builder funktioniert sogar auf Mobiltelefonen."
40
+ },
41
+ "mediaLibrary": {
42
+ "name": "Medienbibliothek",
43
+ "description": "Eine schöne und benutzerfreundliche Medienbibliothek, mit der Sie Bilder ändern und aktualisieren können. Unsplash-Integration ist enthalten."
44
+ },
45
+ "minimalIntuitiveDesign": {
46
+ "name": "Minimales und intuitives Design",
47
+ "description": "Schönes, elegantes und intuitives Design. Steigern Sie das Nutzerengagement mit einer großartigen visuellen Erfahrung."
48
+ }
49
+ },
50
+ "branding": {
51
+ "mainHeader": "Erwecken Sie Ihre Vision zum Leben und erstellen Sie beeindruckende Seiten mit einem Drag & Drop Page Builder",
52
+ "description": "Der Web-Builder für beeindruckende Seiten. Ermöglichen Sie es Nutzern, moderne Seiten in jeder Größenordnung zu entwerfen und zu veröffentlichen. Erstellen Sie responsive Seiten wie Listen, Jobs oder Blogbeiträge und verwalten Sie Inhalte einfach mit dem kostenlosen Drag & Drop Page Builder. Entwickelt mit TypeScript, Vue 3, Composition API, Pinia, CSS, Tailwind CSS und HTML. Laden Sie unseren leistungsstarken, flexiblen und einfach zu bedienenden kostenlosen Vue 3 Page Builder herunter oder installieren Sie ihn.",
53
+ "downloadDescription": "Laden Sie unseren leistungsstarken, flexiblen und einfach zu bedienenden kostenlosen Vue 3 Page Builder herunter oder installieren Sie ihn über"
54
+ },
55
+ "typography": {
56
+ "title": "Typografie",
57
+ "appearance": "Schriftbild",
58
+ "fontSize": "Schriftgröße",
59
+ "fontTabletSize": "Schriftgröße für Tablet",
60
+ "fontMobileSize": "Kleine Bildschirme",
61
+ "fontWeight": "Schriftstärke",
62
+ "fontFamily": "Schriftfamilie",
63
+ "fontStyle": "Schriftstil"
64
+ },
65
+ "opacity": {
66
+ "label": "Transparenz",
67
+ "transparent": "Transparent"
68
+ },
69
+ "backgroundOpacity": {
70
+ "label": "Hintergrundtransparenz",
71
+ "transparent": "Transparent"
72
+ },
73
+ "padding": {
74
+ "title": "Abstand innen",
75
+ "vertical": "Vertikaler Abstand innen",
76
+ "horizontal": "Horizontaler Abstand innen",
77
+ "select": "Auswählen"
78
+ },
79
+ "margin": {
80
+ "title": "Außenabstand",
81
+ "vertical": "Vertikaler Außenabstand",
82
+ "horizontal": "Horizontaler Außenabstand",
83
+ "select": "Auswählen"
84
+ },
85
+ "opacityEditor": {
86
+ "title": "Deckkraft & Transparenz"
87
+ },
88
+ "borderRadius": {
89
+ "title": "Rahmenradius",
90
+ "global": "Global",
91
+ "specific": "Spezifisch",
92
+ "label": "Rahmenradius",
93
+ "topLeft": "Rahmenradius oben links",
94
+ "topRight": "Rahmenradius oben rechts",
95
+ "bottomLeft": "Rahmenradius unten links",
96
+ "bottomRight": "Rahmenradius unten rechts",
97
+ "select": "Auswählen"
98
+ },
99
+ "borders": {
100
+ "title": "Rahmenstil, -breite & -farbe",
101
+ "border": "Rahmen",
102
+ "style": "Rahmenstil",
103
+ "width": "Rahmenbreite",
104
+ "color": "Rahmenfarbe",
105
+ "select": "Auswählen"
106
+ },
107
+ "classEditor": {
108
+ "title": "Generiertes CSS",
109
+ "info": "Dies ist das vom Builder angewendete CSS. Fügen Sie Ihr eigenes CSS hinzu und drücken Sie die Eingabetaste, um es auf das ausgewählte Element anzuwenden.",
110
+ "add": "Fügen Sie Ihr CSS hinzu.",
111
+ "prefix": "Das pbx- Präfix wird automatisch hinzugefügt.",
112
+ "placeholder": "Klasse eingeben",
113
+ "addButton": "Hinzufügen"
114
+ },
115
+ "styleEditor": {
116
+ "title": "Inline-Stile",
117
+ "info": "Dies sind die vom Builder angewendeten Inline-Stile. Fügen Sie Ihre eigenen Stile hinzu und drücken Sie die Eingabetaste, um sie auf das ausgewählte Element anzuwenden.",
118
+ "add": "Fügen Sie Ihren eigenen Stil hinzu.",
119
+ "propertyPlaceholder": "Eigenschaft",
120
+ "valuePlaceholder": "Wert",
121
+ "addButton": "Hinzufügen"
122
+ },
123
+ "rightSidebar": {
124
+ "backgroundColorEditor": {
125
+ "label": "Hintergrundfarbe",
126
+ "transparent": "Transparent"
127
+ },
128
+ "editing": "Bearbeiten",
129
+ "globalPageStylesTitle": "Globale Seitenstile",
130
+ "globalPageStylesDescription": "Wenden Sie Stile an, die die gesamte Seite betreffen. Diese Einstellungen umfassen globale Schriftfamilie, Textfarbe, Hintergrundfarbe und andere universelle Stile, die für alle Abschnitte gelten.",
131
+ "updatePageStyles": "Seitenstile aktualisieren",
132
+ "downloadHtmlTitle": "HTML herunterladen",
133
+ "downloadHtmlDescription": "Exportieren Sie die gesamte Seite als eigenständige HTML-Datei. Dies umfasst alle Abschnitte, Inhalte und angewendeten Stile und ist bereit zur Verwendung oder Integration an anderer Stelle.",
134
+ "downloadHtmlButton": "HTML-Datei herunterladen"
135
+ }
136
+ }
@@ -0,0 +1,136 @@
1
+ {
2
+ "language": "Language",
3
+ "button": {
4
+ "addComponentsToBottom": "Add Components to the bottom",
5
+ "publish": "Publish",
6
+ "addComponents": "Add new Components",
7
+ "save": "Save",
8
+ "resetPage": "Reset Page"
9
+ },
10
+ "options": {
11
+ "button": "Options",
12
+ "configOverview": "Config Overview",
13
+ "htmlOverview": "HTML Overview",
14
+ "deleteLayout": "Delete Layout"
15
+ },
16
+ "features": {
17
+ "liveDragDropBuilder": {
18
+ "name": "Live Drag & Drop Builder",
19
+ "description": "Click & Drop content on a page and watch your pages come to life. Bring your vision to life and create impressive pages using a click & drop Page Builder"
20
+ },
21
+ "trueVisualEditing": {
22
+ "name": "True Visual Editing",
23
+ "description": "See your changes in real-time as you make them. Elevate your creative vision and create pages using an intuitive click & drop page builder. Break free from design limitations and turn your visions into reality."
24
+ },
25
+ "features": {
26
+ "name": "Features",
27
+ "description": "Click & Drop, Reordering, True Visual Editing, Responsive Editing, Font Customization, Undo & Redo, Text Editing, Media Library, Unsplash Integration, YouTube Videos."
28
+ },
29
+ "technologies": {
30
+ "name": "Technologies",
31
+ "description": "Developed with TypeScript, Vue 3, Composition API, Pinia, CSS, Tailwind CSS and HTML."
32
+ },
33
+ "setBrandAndLinkColors": {
34
+ "name": "Set Brand and Link Colors one place",
35
+ "description": "Global Styles for fonts, designs, & colors. Set Brand and Link Colors once and apply them across the entire Platform with ease."
36
+ },
37
+ "mobileFirstApproach": {
38
+ "name": "Mobile-First Approach",
39
+ "description": "Developed with Mobile-First approach. The Page Builder even works on mobile phones."
40
+ },
41
+ "mediaLibrary": {
42
+ "name": "Media Library",
43
+ "description": "A beautiful and user-friendly media library that allows you to change and update images. Unsplash Integration is included."
44
+ },
45
+ "minimalIntuitiveDesign": {
46
+ "name": "Minimal and Intuitive Design",
47
+ "description": "Beautiful, elegant and intuitive design. Enhance user engagement with amazing visual experience."
48
+ }
49
+ },
50
+ "branding": {
51
+ "mainHeader": "Bring your vision to life and create impressive pages using a click & drop Page Builder",
52
+ "description": "The web builder for stunning pages. Enable users to design and publish modern pages at any scale. Build responsive pages like listings, jobs or blog posts and manage content easily using the free click & drop Page Builder. Developed with TypeScript, Vue 3, Composition API, Pinia, CSS, Tailwind CSS and HTML. Download or install our powerful, flexible, and easy-to-use free Vue 3 Page Builder.",
53
+ "downloadDescription": "Download or install our powerful, flexible, and easy-to-use free Vue 3 Page Builder via"
54
+ },
55
+ "typography": {
56
+ "title": "Typography",
57
+ "appearance": "Font Appearance",
58
+ "fontSize": "Font Size",
59
+ "fontTabletSize": "Font Tablet Size",
60
+ "fontMobileSize": "Font Small Screens",
61
+ "fontWeight": "Font Weight",
62
+ "fontFamily": "Font Family",
63
+ "fontStyle": "Font Style"
64
+ },
65
+ "opacity": {
66
+ "label": "Opacity",
67
+ "transparent": "Transparent"
68
+ },
69
+ "backgroundOpacity": {
70
+ "label": "Background Opacity",
71
+ "transparent": "Transparent"
72
+ },
73
+ "padding": {
74
+ "title": "Padding",
75
+ "vertical": "Vertical Padding",
76
+ "horizontal": "Horizontal Padding",
77
+ "select": "Select"
78
+ },
79
+ "margin": {
80
+ "title": "Margin",
81
+ "vertical": "Vertical Margin",
82
+ "horizontal": "Horizontal Margin",
83
+ "select": "Select"
84
+ },
85
+ "opacityEditor": {
86
+ "title": "Opacity & Transparency"
87
+ },
88
+ "borderRadius": {
89
+ "title": "Border Radius",
90
+ "global": "Global",
91
+ "specific": "Specific",
92
+ "label": "Border Radius",
93
+ "topLeft": "Border Radius top left",
94
+ "topRight": "Border Radius top right",
95
+ "bottomLeft": "Border Radius bottom left",
96
+ "bottomRight": "Border Radius bottom right",
97
+ "select": "Select"
98
+ },
99
+ "borders": {
100
+ "title": "Border Style, Width & Color",
101
+ "border": "Border",
102
+ "style": "Border Style",
103
+ "width": "Border Width",
104
+ "color": "Border Color",
105
+ "select": "Select"
106
+ },
107
+ "classEditor": {
108
+ "title": "Generated CSS",
109
+ "info": "This is the CSS applied by the builder. Add your own CSS and press Enter to apply it to the selected element.",
110
+ "add": "Add your CSS.",
111
+ "prefix": "The pbx- prefix is added automatically.",
112
+ "placeholder": "Type class",
113
+ "addButton": "Add"
114
+ },
115
+ "styleEditor": {
116
+ "title": "Inline Styles",
117
+ "info": "These are the inline styles applied by the builder. Add your own styles and press Enter to apply them to the selected element.",
118
+ "add": "Add your own style.",
119
+ "propertyPlaceholder": "property",
120
+ "valuePlaceholder": "value",
121
+ "addButton": "Add"
122
+ },
123
+ "backgroundColorEditor": {
124
+ "label": "Background Color",
125
+ "transparent": "Transparent"
126
+ },
127
+ "rightSidebar": {
128
+ "editing": "Editing",
129
+ "globalPageStylesTitle": "Global Page Styles",
130
+ "globalPageStylesDescription": "Apply styles that affect the entire page. These settings include global font family, text color, background color, and other universal styles that apply to all sections.",
131
+ "updatePageStyles": "Update Page Styles",
132
+ "downloadHtmlTitle": "Download HTML",
133
+ "downloadHtmlDescription": "Export the entire page as a standalone HTML file. This includes all sections, content, and applied styles, making it ready for use or integration elsewhere.",
134
+ "downloadHtmlButton": "Download HTML file"
135
+ }
136
+ }