@myissue/vue-website-page-builder 3.3.80 → 3.3.81

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 (30) hide show
  1. package/dist/{ar-BKP2GbBb.js → ar-BFnbxHvs.js} +59 -29
  2. package/dist/{de-CX2p6WRg.js → de-CXrApoe-.js} +33 -3
  3. package/dist/{en-hbIz7x2o.js → en-BBXHMa80.js} +43 -13
  4. package/dist/{es-BxsOdyOn.js → es-HxtF5isZ.js} +47 -19
  5. package/dist/{fr-SEE-rKYV.js → fr-BuBVt239.js} +59 -31
  6. package/dist/{hi-DZd4Kv3J.js → hi-BgJTsN-7.js} +55 -27
  7. package/dist/{ja-BGzkN2We.js → ja-DHO3LNTk.js} +59 -31
  8. package/dist/{pt-BMfrvh-9.js → pt-DbEpIKz5.js} +47 -19
  9. package/dist/{ru-wi4VbdJp.js → ru-Dmz_Bfpt.js} +57 -29
  10. package/dist/vue-website-page-builder.js +793 -791
  11. package/dist/vue-website-page-builder.umd.cjs +38 -38
  12. package/dist/{zh-Hans-B4txt13y.js → zh-Hans-BkEKxp4g.js} +73 -45
  13. package/package.json +1 -1
  14. package/src/Components/DemoUnsplash.vue +25 -22
  15. package/src/Components/PageBuilder/EditorMenu/Editables/ComponentTopMenu.vue +1 -1
  16. package/src/Components/PageBuilder/EditorMenu/Editables/EditGetElement.vue +9 -10
  17. package/src/Components/PageBuilder/EditorMenu/Editables/ImageEditor.vue +6 -6
  18. package/src/Components/PageBuilder/ToolbarOption/ToolbarOption.vue +2 -2
  19. package/src/Components/TipTap/TipTapInput.vue +1 -1
  20. package/src/PageBuilder/PageBuilder.vue +9 -8
  21. package/src/locales/ar.json +23 -1
  22. package/src/locales/de.json +23 -1
  23. package/src/locales/en.json +24 -2
  24. package/src/locales/es.json +23 -2
  25. package/src/locales/fr.json +23 -2
  26. package/src/locales/hi.json +23 -2
  27. package/src/locales/ja.json +23 -2
  28. package/src/locales/pt.json +23 -2
  29. package/src/locales/ru.json +23 -2
  30. package/src/locales/zh-Hans.json +24 -3
@@ -1,4 +1,4 @@
1
- const e = "保存", o = "选项", t = "头像", n = "发布", i = "关闭", s = "组件", a = "样式", r = "排版", l = "选择", d = "内边距", p = "边距", c = "全局", u = "具体", g = "边框", y = "透明", h = "添加", m = "属性", T = "值", S = "关闭", C = "编辑", w = "删除", b = "预览", f = "移动", v = "加粗", B = "链接", D = "列表", L = {
1
+ const e = "保存", t = "选项", o = "头像", n = "发布", a = "组件", i = "样式", s = "排版", r = "选择", l = "内边距", d = "边距", c = "全局", p = "具体", u = "边框", g = "透明", y = "添加", h = "属性", m = "值", S = "关闭", T = "编辑", w = "删除", C = "预览", f = "移动", b = "加粗", v = "链接", B = "列表", D = "搜索", L = "横向", P = "纵向", k = "方形", M = "图片", A = "上一页", H = "下一页", R = "信息", x = {
2
2
  "Reset Page": "重置页面",
3
3
  "Global Page Styles": "全局页面样式",
4
4
  "Try the powerful Click & Drop Page Builder—designed for developers and creators who want full control without the hassle. Customize layouts, fonts, and colors. Edit content visually in real time. Add media, embed YouTube videos, or export everything as clean HTML. With responsive editing, local auto-save, Tailwind support, and even Unsplash integration, it's everything you need—wrapped in one seamless builder. Build Stunning Pages in Minutes.": "试试强大的Click & Drop Page Builder——专为希望完全控制而无需麻烦的开发者和创作者设计。自定义布局、字体和颜色。实时可视化编辑内容。添加媒体、嵌入YouTube视频或将所有内容导出为干净的HTML。凭借响应式编辑、本地自动保存、Tailwind支持,甚至Unsplash集成,它是您所需的一切——集成在一个无缝的构建器中。几分钟内构建令人惊叹的页面。",
@@ -9,31 +9,30 @@ const e = "保存", o = "选项", t = "头像", n = "发布", i = "关闭", s =
9
9
  "Download or install our powerful, flexible, and easy-to-use free Vue 3 Page Builder via": "通过下载或安装我们强大、灵活且易于使用的免费 Vue 3 页面构建器",
10
10
  Save: e,
11
11
  "Add new Components": "添加新组件",
12
- Options: o,
12
+ Options: t,
13
13
  "Config Overview": "配置概览",
14
14
  "HTML Overview": "HTML概览",
15
15
  "Delete Layout": "删除布局",
16
- avatar: t,
16
+ avatar: o,
17
17
  Publish: n,
18
18
  "Add Components to Page": "将组件添加到页面",
19
- Close: i,
20
19
  "Helper Components": "辅助组件",
21
20
  "Click to add": "点击添加",
22
- component: s,
21
+ component: a,
23
22
  "Layout Components": "布局组件",
24
23
  "Click to add component": "点击添加组件",
25
24
  "Remove all Components": "删除所有组件",
26
25
  "Are you sure you want to remove all Components?": "您确定要删除所有组件吗?",
27
- Styles: a,
26
+ Styles: i,
28
27
  "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.": "应用影响整个页面的样式。这些设置包括全局字体系列、文本颜色、背景颜色和适用于所有部分的其他通用样式。",
29
28
  "Update Page Styles": "更新页面样式",
30
29
  "Download HTML": "下载HTML",
31
30
  "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.": "将整个页面导出为独立的HTML文件。这包括所有部分、内容和应用的样式,使其可以随时使用或集成到其他地方。",
32
31
  "Download HTML file": "下载HTML文件",
33
- Typographies: r,
32
+ Typographies: s,
34
33
  "Font Appearance": "字体外观",
35
34
  "Font Size": "字体大小",
36
- Select: l,
35
+ Select: r,
37
36
  "Font size": "字体大小",
38
37
  "Font tablet size": "平板字体大小",
39
38
  "Font small screens": "小屏幕字体大小",
@@ -41,38 +40,38 @@ const e = "保存", o = "选项", t = "头像", n = "发布", i = "关闭", s =
41
40
  "Font family": "字体家族",
42
41
  "Font Style": "字体样式",
43
42
  "Opacity & Transparency": "不透明度和透明度",
44
- Padding: d,
43
+ Padding: l,
45
44
  "Vertical Padding": "垂直内边距",
46
45
  "Horizontal Padding": "水平内边距",
47
- Margin: p,
46
+ Margin: d,
48
47
  "Vertical Margin": "垂直边距",
49
48
  "Horizontal Margin": "水平边距",
50
49
  "Border Radius": "边框半径",
51
50
  Global: c,
52
- Specific: u,
51
+ Specific: p,
53
52
  "Border Radius top left": "边框半径 左上",
54
53
  "Border Radius top right": "边框半径 右上",
55
54
  "Border Radius bottom left": "边框半径 左下",
56
55
  "Border Radius bottom right": "边框半径 右下",
57
56
  "Border Style, Width & Color": "边框样式、宽度和颜色",
58
- Border: g,
57
+ Border: u,
59
58
  "Border Style": "边框样式",
60
59
  "Border Width": "边框宽度",
61
60
  "Border Color": "边框颜色",
62
- Transparent: y,
61
+ Transparent: g,
63
62
  "Generated CSS": "生成的CSS",
64
63
  "This is the CSS applied by the builder. Add your own CSS and press Enter to apply it to the selected element.": "这是构建器应用的CSS。添加您自己的CSS并按Enter将其应用于选定的元素。",
65
64
  "Add your CSS.": "添加您的CSS。",
66
65
  "The pbx- prefix is added automatically.": "pbx-前缀会自动添加。",
67
66
  "Type class": "输入类",
68
- Add: h,
67
+ Add: y,
69
68
  "Inline Styles": "内联样式",
70
69
  "These are the inline styles applied by the builder. Add your own styles and press Enter to apply them to the selected element.": "这些是构建器应用的内联样式。添加您自己的样式,然后按 Enter 将其应用于选定的元素。",
71
70
  "Add your own style.": "添加您自己的样式。",
72
- property: m,
73
- value: T,
74
- close: S,
75
- Editing: C,
71
+ property: h,
72
+ value: m,
73
+ Close: S,
74
+ Editing: T,
76
75
  "Loading...": "加载中...",
77
76
  "Background Color": "背景颜色",
78
77
  "Text Color": "文字颜色",
@@ -81,7 +80,7 @@ const e = "保存", o = "选项", t = "头像", n = "发布", i = "关闭", s =
81
80
  "Are you sure you want to remove this Component?": "您确定要删除此组件吗?",
82
81
  Delete: w,
83
82
  "Add to the bottom": "添加到底部",
84
- Preview: b,
83
+ Preview: C,
85
84
  Mobile: f,
86
85
  "Demo Content": "演示内容",
87
86
  "Demo Description": "介绍轻量级和免费的Vue Click & Drop页面构建器。使用Vue轻松创建和增强数字体验。并非所有强大的东西都需要复杂。这款简约轻便的页面构建器提供了一个优雅直观的界面,专注于简单性和速度。创建完全响应式的页面,例如列表、职位板或博客文章,并使用免费的Click & Drop页面构建器轻松管理您的内容。",
@@ -94,39 +93,68 @@ const e = "保存", o = "选项", t = "头像", n = "发布", i = "关闭", s =
94
93
  "Edit text and links": "编辑文本和链接",
95
94
  "Enter URL": "输入URL",
96
95
  "Line break": "换行",
97
- Bold: v,
98
- Link: B,
96
+ Bold: b,
97
+ Link: v,
99
98
  "Header 2": "标题2",
100
99
  "Header 3": "标题3",
101
- List: D,
102
- "Add a valid URL to transform the selected text into a clickable hyperlink that directs users to the specified web address.": "添加一个有效的URL,将选定的文本转换为可点击的超链接,指向指定的网页地址。"
100
+ List: B,
101
+ "Add a valid URL to transform the selected text into a clickable hyperlink that directs users to the specified web address.": "添加一个有效的URL,将选定的文本转换为可点击的超链接,指向指定的网页地址。",
102
+ "Select image": "选择图片",
103
+ "Manage Content": "管理内容",
104
+ "Media Library": "媒体库",
105
+ "Reset changes": "重置更改",
106
+ "Do you want to reset this page?": "您想重置此页面吗?",
107
+ "Are you sure you want to reset this page? This will overwrite your current changes.": "您确定要重置此页面吗?这将覆盖您当前的更改。",
108
+ Search: D,
109
+ "Search...": "搜索...",
110
+ Landscape: L,
111
+ Portrait: P,
112
+ Squarish: k,
113
+ "Total pages": "总页数",
114
+ Images: M,
115
+ "First page": "第一页",
116
+ Prev: A,
117
+ Next: H,
118
+ "By:": "作者:",
119
+ "We did not find any images. Make a new search.": "我们没有找到任何图片。请重新搜索。",
120
+ "No results on current page. Navigate to First Page.": "当前页面没有结果。导航到第一页。",
121
+ Information: R,
122
+ "From:": "来自:",
123
+ " Select image": " 选择图片"
103
124
  };
104
125
  export {
105
- h as Add,
106
- v as Bold,
107
- g as Border,
108
- i as Close,
126
+ y as Add,
127
+ b as Bold,
128
+ u as Border,
129
+ S as Close,
109
130
  w as Delete,
110
- C as Editing,
131
+ T as Editing,
111
132
  c as Global,
112
- B as Link,
113
- D as List,
114
- p as Margin,
133
+ M as Images,
134
+ R as Information,
135
+ L as Landscape,
136
+ v as Link,
137
+ B as List,
138
+ d as Margin,
115
139
  f as Mobile,
116
- o as Options,
117
- d as Padding,
118
- b as Preview,
140
+ H as Next,
141
+ t as Options,
142
+ l as Padding,
143
+ P as Portrait,
144
+ A as Prev,
145
+ C as Preview,
119
146
  n as Publish,
120
147
  e as Save,
121
- l as Select,
122
- u as Specific,
123
- a as Styles,
124
- y as Transparent,
125
- r as Typographies,
126
- t as avatar,
127
- S as close,
128
- s as component,
129
- L as default,
130
- m as property,
131
- T as value
148
+ D as Search,
149
+ r as Select,
150
+ p as Specific,
151
+ k as Squarish,
152
+ i as Styles,
153
+ g as Transparent,
154
+ s as Typographies,
155
+ o as avatar,
156
+ a as component,
157
+ x as default,
158
+ h as property,
159
+ m as value
132
160
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@myissue/vue-website-page-builder",
3
- "version": "3.3.80",
3
+ "version": "3.3.81",
4
4
  "description": "Vue 3 page builder component with drag & drop functionality.",
5
5
  "type": "module",
6
6
  "main": "./dist/vue-website-page-builder.umd.cjs",
@@ -5,6 +5,9 @@ import { usePageBuilderModal } from '../composables/usePageBuilderModal'
5
5
  import { delay } from '../composables/delay'
6
6
  import { preloadImage } from '../composables/preloadImage'
7
7
  import { getPageBuilder } from '../composables/builderInstance'
8
+ import { useTranslations } from '../composables/useTranslations'
9
+ const { translate } = useTranslations()
10
+
8
11
  const pageBuilderService = getPageBuilder()
9
12
 
10
13
  const { closeMediaLibraryModal } = usePageBuilderModal()
@@ -126,7 +129,7 @@ onMounted(async () => {
126
129
  <label
127
130
  for="default-search"
128
131
  class="pbx-mb-2 pbx-text-sm pbx-font-normal pbx-text-gray-900 pbx-sr-only dark:pbx-text-gray-300"
129
- >Search</label
132
+ >{{ translate('Search') }}</label
130
133
  >
131
134
 
132
135
  <div class="pbx-mysearchBarWithOptions">
@@ -142,7 +145,7 @@ onMounted(async () => {
142
145
  v-model="getSearchTerm"
143
146
  class="pbx-myPrimarySearchInput"
144
147
  autocomplete="off"
145
- placeholder="Search..."
148
+ :placeholder="translate('Search...')"
146
149
  />
147
150
  </div>
148
151
 
@@ -156,7 +159,7 @@ onMounted(async () => {
156
159
  type="submit"
157
160
  class="pbx-myPrimaryTag pbx-break-keep pbx-mr-4"
158
161
  >
159
- Search
162
+ {{ translate('Search') }}
160
163
  </button>
161
164
  </div>
162
165
  </form>
@@ -175,7 +178,7 @@ onMounted(async () => {
175
178
  '': getOrientationValue !== 'landscape',
176
179
  }"
177
180
  >
178
- Landscape
181
+ {{ translate('Landscape') }}
179
182
  </button>
180
183
  <button
181
184
  @click="searchByOrientation('portrait')"
@@ -186,7 +189,7 @@ onMounted(async () => {
186
189
  '': getOrientationValue !== 'portrait',
187
190
  }"
188
191
  >
189
- Portrait
192
+ {{ translate('Portrait') }}
190
193
  </button>
191
194
  <button
192
195
  @click="searchByOrientation('squarish')"
@@ -197,7 +200,7 @@ onMounted(async () => {
197
200
  '': getOrientationValue !== 'squarish',
198
201
  }"
199
202
  >
200
- Squarish
203
+ {{ translate('Squarish') }}
201
204
  </button>
202
205
 
203
206
  <svg
@@ -218,10 +221,10 @@ onMounted(async () => {
218
221
  aria-label="Pagination"
219
222
  >
220
223
  <p class="pbx-myPrimaryParagraph pbx-text-xs pbx-italic">
221
- Total pages {{ getUnsplashImages.total_pages }}
224
+ {{ translate('Total pages') }} {{ getUnsplashImages.total_pages }}
222
225
  </p>
223
226
  <p class="pbx-myPrimaryParagraph pbx-text-xs pbx-italic">
224
- Images {{ getUnsplashImages.total }}
227
+ {{ translate('Images') }} {{ getUnsplashImages.total }}
225
228
  </p>
226
229
  <div
227
230
  class="pbx-flex pbx-flex-1 pbx-justify-between sm:pbx-justify-end pbx-items-center pbx-gap-2"
@@ -231,7 +234,7 @@ onMounted(async () => {
231
234
  class="pbx-myPrimaryParagraph pbx-text-xs pbx-italic pbx-pr-2 pbx-pl-1 pbx-cursor-pointer pbx-underline"
232
235
  @click="nextPage(Number((getCurrentPageNumber = 1)))"
233
236
  >
234
- First page
237
+ {{ translate('First page') }}
235
238
  </span>
236
239
  </div>
237
240
  <button
@@ -241,7 +244,7 @@ onMounted(async () => {
241
244
  @click="previousPage(Number(getCurrentPageNumber--))"
242
245
  >
243
246
  {{
244
- `Prev ${Number(getCurrentPageNumber) > 0 ? Number(getCurrentPageNumber) - 1 : Number(getCurrentPageNumber) - 1}`
247
+ `${translate('Prev')} ${Number(getCurrentPageNumber) > 0 ? Number(getCurrentPageNumber) - 1 : Number(getCurrentPageNumber) - 1}`
245
248
  }}
246
249
  </button>
247
250
 
@@ -257,7 +260,7 @@ onMounted(async () => {
257
260
  @click="nextPage(Number(getCurrentPageNumber++))"
258
261
  >
259
262
  {{
260
- `Next ${Number(getCurrentPageNumber) > 0 ? Number(getCurrentPageNumber) + 1 : Number(getCurrentPageNumber) + 1}`
263
+ `${translate('Next')} ${Number(getCurrentPageNumber) > 0 ? Number(getCurrentPageNumber) + 1 : Number(getCurrentPageNumber) + 1}`
261
264
  }}
262
265
  </button>
263
266
  </nav>
@@ -272,7 +275,7 @@ onMounted(async () => {
272
275
  >
273
276
  <span
274
277
  class="!pbx-absolute !pbx-m-px !pbx-h-px !pbx-w-px !pbx-overflow-hidden !pbx-whitespace-nowrap !pbx-border-0 !pbx-p-0 !pbx-[clip:rect(0,0,0,0)]"
275
- >Loading...</span
278
+ >{{ translate('Loading...') }}</span
276
279
  >
277
280
  </div>
278
281
  </div>
@@ -294,7 +297,7 @@ onMounted(async () => {
294
297
  :src="image.urls.thumb"
295
298
  />
296
299
  <p class="pbx-myPrimaryParagraph pbx-text-xs pbx-font-normal pbx-mt-2">
297
- By: {{ image.user.name }}
300
+ {{ translate('By:') }} {{ image.user.name }}
298
301
  </p>
299
302
  </div>
300
303
  </div>
@@ -309,14 +312,14 @@ onMounted(async () => {
309
312
  >
310
313
  <p class="pbx-myPrimaryParagraph pbx-py-4 pbx-px-4">
311
314
  <span v-if="getCurrentPageNumber === 1">
312
- We did not find any images. Make a new search.
315
+ {{ translate('We did not find any images. Make a new search.') }}
313
316
  </span>
314
317
  <span
315
318
  v-if="getCurrentPageNumber > 1"
316
319
  @click="nextPage(1)"
317
320
  class="pbx-myPrimaryLink"
318
321
  >
319
- No results on current page. Navigate to First Page.
322
+ {{ translate('No results on current page. Navigate to First Page.') }}
320
323
  </span>
321
324
  </p>
322
325
  </div>
@@ -330,7 +333,7 @@ onMounted(async () => {
330
333
  >
331
334
  <span
332
335
  class="!pbx-absolute !pbx-m-px !pbx-h-px !pbx-w-px !pbx-overflow-hidden !pbx-whitespace-nowrap !pbx-border-0 !pbx-p-0 !pbx-[clip:rect(0,0,0,0)]"
333
- >Loading...</span
336
+ >{{ translate('Loading...') }}</span
334
337
  >
335
338
  </div>
336
339
  </div>
@@ -344,21 +347,21 @@ onMounted(async () => {
344
347
  <div class="md:pbx-px-3 pbx-px-2">
345
348
  <div>
346
349
  <p class="pbx-myPrimaryParagraph pbx-font-normal pbx-text-gray-900 pbx-pt-4">
347
- Information
350
+ {{ translate('Information') }}
348
351
  </p>
349
352
  <dl
350
- class="pbx-mt-2 pbx-border-solid pbx-border-t pbx-border-solid pbx-border-b pbx-border-gray-200 pbx-divide-y pbx-divide-gray-200"
353
+ class="pbx-mt-2 pbx-border-t pbx-border-b pbx-border-gray-200 pbx-divide-y pbx-divide-gray-200"
351
354
  >
352
355
  <div
353
356
  class="pbx-py-3 pbx-flex pbx-justify-between pbx-text-sm pbx-font-normal pbx-items-center"
354
357
  >
355
- <dt class="pbx-text-gray-500">From:</dt>
358
+ <dt class="pbx-text-gray-500">{{ translate('From:') }}</dt>
356
359
  <dd class="pbx-text-gray-900">Unsplash</dd>
357
360
  </div>
358
361
  <div
359
362
  class="pbx-py-3 pbx-flex pbx-justify-between pbx-text-sm pbx-font-normal pbx-items-center"
360
363
  >
361
- <dt class="pbx-text-gray-500">By:</dt>
364
+ <dt class="pbx-text-gray-500">{{ translate('By:') }}</dt>
362
365
  <dd class="pbx-text-gray-900">{{ getCurrentUser }}</dd>
363
366
  </div>
364
367
  </dl>
@@ -383,7 +386,7 @@ onMounted(async () => {
383
386
  class="pbx-mySecondaryButton"
384
387
  type="button"
385
388
  >
386
- Close
389
+ {{ translate('Close') }}
387
390
  </button>
388
391
  <button
389
392
  v-if="getApplyImageToSelection && typeof getApplyImageToSelection === 'string'"
@@ -391,7 +394,7 @@ onMounted(async () => {
391
394
  class="pbx-myPrimaryButton"
392
395
  type="button"
393
396
  >
394
- Select image
397
+ {{ translate(' Select image') }}
395
398
  </button>
396
399
  </div>
397
400
  <!-- Actions footer # end -->
@@ -1,6 +1,6 @@
1
1
  <script setup>
2
2
  import DynamicModalBuilder from '../../../Modals/DynamicModalBuilder.vue'
3
- import { computed, ref } from 'vue'
3
+ import { ref } from 'vue'
4
4
  import { getPageBuilder } from '../../../../composables/builderInstance'
5
5
  import { useTranslations } from '../../../../composables/useTranslations'
6
6
 
@@ -7,6 +7,9 @@ import TextColorEditor from './TextColorEditor.vue'
7
7
  import BackgroundColorEditor from './BackgroundColorEditor.vue'
8
8
  import { sharedPageBuilderStore } from '../../../../stores/shared-store'
9
9
  import { getPageBuilder } from '../../../../composables/builderInstance'
10
+ import { useTranslations } from '../../../../composables/useTranslations'
11
+
12
+ const { translate } = useTranslations()
10
13
  const pageBuilderService = getPageBuilder()
11
14
 
12
15
  // Use shared store instance
@@ -53,7 +56,7 @@ const handleModalPreviewTiptap = function () {
53
56
 
54
57
  typeModal.value = 'success'
55
58
  gridColumnModal.value = 2
56
- titleModal.value = 'Manage Content'
59
+ titleModal.value = translate('Manage Content')
57
60
  descriptionModal.value = null
58
61
  firstButtonModal.value = null
59
62
  secondButtonModal.value = null
@@ -76,8 +79,6 @@ const getBasePrimaryImage = computed(() => {
76
79
  return pageBuilderStateStore.getBasePrimaryImage
77
80
  })
78
81
 
79
- //
80
- // use media library
81
82
  const showMediaLibraryModal = ref(false)
82
83
  // modal content
83
84
  const titleMedia = ref('')
@@ -92,15 +93,13 @@ const handleAddImage = function () {
92
93
  // open modal to true
93
94
  showMediaLibraryModal.value = true
94
95
 
95
- // set media library modal standards
96
- titleMedia.value = `Media Library`
96
+ titleMedia.value = translate('Media Library')
97
97
  descriptionMedia.value = null
98
- firstButtonMedia.value = 'Close'
99
- secondButtonMedia.value = 'Select image'
98
+ firstButtonMedia.value = translate('Close')
99
+ secondButtonMedia.value = translate(' Select image')
100
100
 
101
101
  // handle click
102
102
  firstMediaButtonFunction.value = function () {
103
- // close media library modal
104
103
  showMediaLibraryModal.value = false
105
104
  }
106
105
  }
@@ -151,7 +150,7 @@ const handleModalIframeSrc = function () {
151
150
  gridColumnModal.value = 2
152
151
  titleModal.value = 'Add video url'
153
152
  descriptionModal.value = null
154
- firstButtonModal.value = 'Close'
153
+ firstButtonModal.value = translate('Close')
155
154
  secondButtonModal.value = 'Save'
156
155
  thirdButtonModal.value = null
157
156
 
@@ -343,7 +342,7 @@ const getRestoredElement = computed(() => {
343
342
  class="pbx-h-10 pbx-w-10 pbx-flex-end pbx-cursor-pointer pbx-rounded-full pbx-flex pbx-items-center pbx-border-none pbx-justify-center pbx-bg-gray-200 pbx-aspect-square hover:pbx-bg-gray-100 hover:pbx-fill-white focus-visible:pbx-ring-0"
344
343
  @click="pageBuilderService.clearHtmlSelection()"
345
344
  >
346
- <span class="material-symbols-outlined"> close </span>
345
+ <span class="material-symbols-outlined"> close</span>
347
346
  </div>
348
347
  </div>
349
348
  </div>
@@ -4,6 +4,9 @@ import MediaLibraryModal from '../../../Modals/MediaLibraryModal.vue'
4
4
  import { sharedPageBuilderStore } from '../../../../stores/shared-store'
5
5
  import { preloadImage } from '../../../../composables/preloadImage'
6
6
  import { delay } from '../../../../composables/delay'
7
+ import { useTranslations } from '../../../../composables/useTranslations'
8
+
9
+ const { translate } = useTranslations()
7
10
 
8
11
  // Use shared store instance
9
12
  const pageBuilderStateStore = sharedPageBuilderStore
@@ -11,7 +14,6 @@ const customMediaComponent = inject('CustomMediaComponent')
11
14
 
12
15
  const getIsLoadingImage = ref(false)
13
16
 
14
- // use media library
15
17
  const showMediaLibraryModal = ref(false)
16
18
  // modal content
17
19
  const titleMedia = ref('')
@@ -34,15 +36,13 @@ const handleAddImage = function () {
34
36
  // open modal to true
35
37
  showMediaLibraryModal.value = true
36
38
 
37
- // set media library modal standards
38
- titleMedia.value = `Media Library`
39
+ titleMedia.value = translate('Media Library')
39
40
  descriptionMedia.value = null
40
- firstButtonMedia.value = 'Close'
41
- secondButtonMedia.value = 'Select image'
41
+ firstButtonMedia.value = translate('Close')
42
+ secondButtonMedia.value = translate(' Select image')
42
43
 
43
44
  // handle click
44
45
  firstMediaButtonFunction.value = function () {
45
- // close media library modal
46
46
  showMediaLibraryModal.value = false
47
47
  }
48
48
  //
@@ -44,9 +44,9 @@ const handleDeleteComponentsFromDOM = function () {
44
44
  gridColumnModal.value = 2
45
45
  titleModal.value = translate('Remove all Components')
46
46
  descriptionModal.value = translate('Are you sure you want to remove all Components?')
47
- firstButtonModal.value = 'Close'
47
+ firstButtonModal.value = translate('Close')
48
48
  secondButtonModal.value = null
49
- thirdButtonModal.value = 'Delete'
49
+ thirdButtonModal.value = translate('Delete')
50
50
 
51
51
  // handle click
52
52
  firstModalButtonFunctionDynamicModalBuilder.value = function () {
@@ -113,7 +113,7 @@ const handleURL = function () {
113
113
  descriptionModal.value = translate(
114
114
  'Add a valid URL to transform the selected text into a clickable hyperlink that directs users to the specified web address.',
115
115
  )
116
- firstButtonModal.value = 'Close'
116
+ firstButtonModal.value = translate('Close')
117
117
  secondButtonModal.value = urlEnteret.value ? 'Remove url' : null
118
118
  thirdButtonModal.value = translate('Save')
119
119
 
@@ -297,12 +297,13 @@ const handleRestoreOriginalContent = async function () {
297
297
  typeModalRestore.value = 'success'
298
298
  showModalRestore.value = true
299
299
 
300
- titleModalRestore.value = 'Do you want to reset this page?'
301
- descriptionModalRestore.value =
302
- 'Are you sure you want to reset this page? This will overwrite your current changes.'
303
- firstButtonRestore.value = 'Close'
300
+ titleModalRestore.value = translate('Do you want to reset this page?')
301
+ descriptionModalRestore.value = translate(
302
+ 'Are you sure you want to reset this page? This will overwrite your current changes.',
303
+ )
304
+ firstButtonRestore.value = translate('Close')
304
305
  secondButtonRestore.value = null
305
- thirdButtonRestore.value = 'Reset changes'
306
+ thirdButtonRestore.value = translate('Reset changes')
306
307
 
307
308
  firstModalButtonRestoreFunction.value = function () {
308
309
  showModalRestore.value = false
@@ -515,7 +516,7 @@ onMounted(async () => {
515
516
 
516
517
  <div
517
518
  id="pagebuilder-toolbar-area"
518
- class="pbx-flex pbx-items-center pbx-justify-between pbx-bg-myPrimaryLightGrayColor pbx-border-0 pbx-border-solid pbx-border-b pbx-border-gray-200 pbx-mb-2 lg:pbx-px-6 pbx-px-4 pbx-font-sans pbx-min-w-max pbx-w-full"
519
+ class="pbx-flex pbx-items-center pbx-justify-between pbx-bg-myPrimaryLightGrayColor pbx-border-0 pbx-border-solid pbx-border-b pbx-border-gray-200 pbx-mb-2 lg:pbx-px-6 pbx-px-4 pbx-font-sans"
519
520
  >
520
521
  <template
521
522
  v-if="
@@ -736,7 +737,7 @@ onMounted(async () => {
736
737
  </div>
737
738
  <!-- Options # Start -->
738
739
 
739
- <!-- Close & Publish buttons start -->
740
+ <!-- Publish buttons start -->
740
741
  <template v-if="showPublishButton">
741
742
  <div class="pbx-flex-1 pbx-ml-2">
742
743
  <button
@@ -776,7 +777,7 @@ onMounted(async () => {
776
777
  </div>
777
778
  </template>
778
779
 
779
- <!-- Close & Publish buttons end -->
780
+ <!-- Publish buttons end -->
780
781
 
781
782
  <template
782
783
  v-if="
@@ -97,5 +97,27 @@
97
97
  "Header 2": "عنوان 2",
98
98
  "Header 3": "عنوان 3",
99
99
  "List": "قائمة",
100
- "Add a valid URL to transform the selected text into a clickable hyperlink that directs users to the specified web address.": "أضف عنوان URL صالحًا لتحويل النص المحدد إلى ارتباط تشعبي قابل للنقر يوجه المستخدمين إلى عنوان الويب المحدد."
100
+ "Add a valid URL to transform the selected text into a clickable hyperlink that directs users to the specified web address.": "أضف عنوان URL صالحًا لتحويل النص المحدد إلى ارتباط تشعبي قابل للنقر يوجه المستخدمين إلى عنوان الويب المحدد.",
101
+ "Select image": "اختر صورة",
102
+ "Manage Content": "إدارة المحتوى",
103
+ "Media Library": "مكتبة الوسائط",
104
+ "Reset changes": "إعادة التغييرات",
105
+ "Do you want to reset this page?": "هل تريد إعادة تعيين هذه الصفحة؟",
106
+ "Are you sure you want to reset this page? This will overwrite your current changes.": "هل أنت متأكد أنك تريد إعادة تعيين هذه الصفحة؟ سيؤدي هذا إلى الكتابة فوق التغييرات الحالية.",
107
+ "Search": "بحث",
108
+ "Search...": "ابحث...",
109
+ "Landscape": "أفقي",
110
+ "Portrait": "عمودي",
111
+ "Squarish": "مربع الشكل",
112
+ "Total pages": "إجمالي الصفحات",
113
+ "Images": "صور",
114
+ "First page": "الصفحة الأولى",
115
+ "Prev": "السابق",
116
+ "Next": "التالي",
117
+ "By:": "بواسطة:",
118
+ "We did not find any images. Make a new search.": "لم نجد أي صور. قم ببحث جديد.",
119
+ "No results on current page. Navigate to First Page.": "لا توجد نتائج في الصفحة الحالية. انتقل إلى الصفحة الأولى.",
120
+ "Information": "معلومات",
121
+ "From:": "من:",
122
+ " Select image": " اختر صورة"
101
123
  }
@@ -99,5 +99,27 @@
99
99
  "Header 2": "Überschrift 2",
100
100
  "Header 3": "Überschrift 3",
101
101
  "List": "Liste",
102
- "Add a valid URL to transform the selected text into a clickable hyperlink that directs users to the specified web address.": "Fügen Sie eine gültige URL hinzu, um den ausgewählten Text in einen anklickbaren Hyperlink zu verwandeln, der Benutzer zur angegebenen Webadresse führt."
102
+ "Add a valid URL to transform the selected text into a clickable hyperlink that directs users to the specified web address.": "Fügen Sie eine gültige URL hinzu, um den ausgewählten Text in einen anklickbaren Hyperlink zu verwandeln, der Benutzer zur angegebenen Webadresse führt.",
103
+ "Select image": "Bild auswählen",
104
+ "Manage Content": "Inhalte verwalten",
105
+ "Media Library": "Medienbibliothek",
106
+ "Reset changes": "Änderungen zurücksetzen",
107
+ "Do you want to reset this page?": "Möchten Sie diese Seite zurücksetzen?",
108
+ "Are you sure you want to reset this page? This will overwrite your current changes.": "Sind Sie sicher, dass Sie diese Seite zurücksetzen möchten? Dadurch werden Ihre aktuellen Änderungen überschrieben.",
109
+ "Search": "Suche",
110
+ "Search...": "Suchen...",
111
+ "Landscape": "Querformat",
112
+ "Portrait": "Hochformat",
113
+ "Squarish": "Quadratisch",
114
+ "Total pages": "Gesamtseiten",
115
+ "Images": "Bilder",
116
+ "First page": "Erste Seite",
117
+ "Prev": "Zurück",
118
+ "Next": "Weiter",
119
+ "By:": "Von:",
120
+ "We did not find any images. Make a new search.": "Wir haben keine Bilder gefunden. Machen Sie eine neue Suche.",
121
+ "No results on current page. Navigate to First Page.": "Keine Ergebnisse auf der aktuellen Seite. Zur ersten Seite navigieren.",
122
+ "Information": "Informationen",
123
+ "From:": "Von:",
124
+ " Select image": " Bild auswählen"
103
125
  }