@abtnode/ux 1.16.25-beta-023ec101 → 1.16.25-beta-bc165d9b

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 (69) hide show
  1. package/es/blocklet/actions.js +19 -10
  2. package/es/blocklet/component/add-component-core.js +5 -0
  3. package/es/blocklet/component/component-cell.js +2 -1
  4. package/es/blocklet/icons.js +3 -1
  5. package/es/blocklet/overview.js +13 -7
  6. package/es/blocklet/publish/create-release.js +150 -43
  7. package/es/blocklet/publish/index.js +0 -4
  8. package/es/blocklet/publish/project-list.js +133 -29
  9. package/es/blocklet/publish/release-list.js +18 -4
  10. package/es/blocklet/publish/resource.js +35 -32
  11. package/es/blocklet/router/rule-list.js +2 -1
  12. package/es/locales/ar.js +13 -8
  13. package/es/locales/de.js +13 -8
  14. package/es/locales/en.js +12 -7
  15. package/es/locales/es.js +13 -8
  16. package/es/locales/fr.js +13 -8
  17. package/es/locales/hi.js +13 -8
  18. package/es/locales/i18n.db +0 -0
  19. package/es/locales/id.js +13 -8
  20. package/es/locales/ja.js +13 -8
  21. package/es/locales/ko.js +13 -8
  22. package/es/locales/pt.js +13 -8
  23. package/es/locales/ru.js +13 -8
  24. package/es/locales/th.js +13 -8
  25. package/es/locales/vi.js +13 -8
  26. package/es/locales/zh-tw.js +13 -8
  27. package/es/locales/zh.js +17 -12
  28. package/es/subscription/blocklet.js +175 -0
  29. package/es/subscription/chip-label.js +21 -0
  30. package/es/{subscription.js → subscription/server.js} +31 -30
  31. package/es/team/members/connections.js +2 -1
  32. package/es/team/members/member.js +2 -1
  33. package/es/util/index.js +42 -9
  34. package/lib/blocklet/actions.js +22 -11
  35. package/lib/blocklet/component/add-component-core.js +1 -1
  36. package/lib/blocklet/component/component-cell.js +2 -1
  37. package/lib/blocklet/icons.js +3 -1
  38. package/lib/blocklet/overview.js +13 -7
  39. package/lib/blocklet/publish/create-release.js +154 -43
  40. package/lib/blocklet/publish/index.js +0 -4
  41. package/lib/blocklet/publish/project-list.js +133 -29
  42. package/lib/blocklet/publish/release-list.js +18 -4
  43. package/lib/blocklet/publish/resource.js +34 -31
  44. package/lib/blocklet/router/rule-list.js +2 -1
  45. package/lib/locales/ar.js +13 -8
  46. package/lib/locales/de.js +13 -8
  47. package/lib/locales/en.js +12 -7
  48. package/lib/locales/es.js +13 -8
  49. package/lib/locales/fr.js +13 -8
  50. package/lib/locales/hi.js +13 -8
  51. package/lib/locales/i18n.db +0 -0
  52. package/lib/locales/id.js +13 -8
  53. package/lib/locales/ja.js +13 -8
  54. package/lib/locales/ko.js +13 -8
  55. package/lib/locales/pt.js +13 -8
  56. package/lib/locales/ru.js +13 -8
  57. package/lib/locales/th.js +13 -8
  58. package/lib/locales/vi.js +13 -8
  59. package/lib/locales/zh-tw.js +13 -8
  60. package/lib/locales/zh.js +17 -12
  61. package/lib/subscription/blocklet.js +189 -0
  62. package/lib/subscription/chip-label.js +29 -0
  63. package/lib/{subscription.js → subscription/server.js} +37 -37
  64. package/lib/team/members/connections.js +2 -1
  65. package/lib/team/members/member.js +2 -1
  66. package/lib/util/index.js +51 -18
  67. package/package.json +16 -16
  68. package/es/blocklet/publish/create-project.js +0 -205
  69. package/lib/blocklet/publish/create-project.js +0 -215
@@ -1,16 +1,23 @@
1
1
  /* eslint-disable react/no-unstable-nested-components */
2
2
  import React, { useState, useEffect } from 'react';
3
- import { Link, useParams } from 'react-router-dom';
3
+ import { Link, useNavigate, useParams } from 'react-router-dom';
4
4
  import styled from '@emotion/styled';
5
+ import joinUrl from 'url-join';
5
6
  import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
6
7
  import Box from '@mui/material/Box';
8
+ import AddIcon from '@mui/icons-material/Add';
7
9
  import IconButton from '@mui/material/IconButton';
10
+ import LibraryAddIcon from '@mui/icons-material/LibraryAdd';
8
11
  import DeleteIcon from '@mui/icons-material/Delete';
12
+ import InstallDesktopIcon from '@mui/icons-material/InstallDesktop';
13
+ import DownloadIcon from '@mui/icons-material/Download';
14
+ import { WELLKNOWN_SERVICE_PATH_PREFIX } from '@abtnode/constant';
9
15
  import Datatable from '@arcblock/ux/lib/Datatable';
10
16
  import Button from '@arcblock/ux/lib/Button';
11
17
  import Toast from '@arcblock/ux/lib/Toast';
12
18
  import Tag from '@arcblock/ux/lib/Tag';
13
19
  import RelativeTime from '@arcblock/ux/lib/RelativeTime';
20
+ import { Tooltip } from '@mui/material';
14
21
  import { useBlockletContext } from '../../contexts/blocklet';
15
22
  import { useNodeContext } from '../../contexts/node';
16
23
  import EmptySpinner from '../../empty-spinner';
@@ -18,7 +25,9 @@ import DidAddress from '../../did-address';
18
25
  import Confirm from '../../confirm';
19
26
  import BlockletBundleAvatar from '../bundle-avatar';
20
27
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
28
+ const serverEndpoint = window.env?.serverEndpoint;
21
29
  export default function ProjectList() {
30
+ const navigate = useNavigate();
22
31
  const {
23
32
  t,
24
33
  locale
@@ -50,6 +59,11 @@ export default function ProjectList() {
50
59
  Toast.error(err.message);
51
60
  });
52
61
  };
62
+ const handleNewBlocklet = () => {
63
+ navigate('/.well-known/service/admin/publish/0/create', {
64
+ replace: true
65
+ });
66
+ };
53
67
  const onDeleteProject = project => {
54
68
  setDeleteConfirm(project);
55
69
  };
@@ -76,7 +90,15 @@ export default function ProjectList() {
76
90
  }, []); // eslint-disable-line react-hooks/exhaustive-deps
77
91
 
78
92
  if (!projects && loading) {
79
- return /*#__PURE__*/_jsx(EmptySpinner, {});
93
+ return /*#__PURE__*/_jsx(Box, {
94
+ sx: {
95
+ display: 'flex',
96
+ justifyContent: 'center',
97
+ alignItems: 'center',
98
+ marginTop: '40px'
99
+ },
100
+ children: /*#__PURE__*/_jsx(EmptySpinner, {})
101
+ });
80
102
  }
81
103
  if (!projects) {
82
104
  return null;
@@ -101,12 +123,10 @@ export default function ProjectList() {
101
123
  mb: 3
102
124
  },
103
125
  children: t('blocklet.publish.createBlockletTip')
104
- }), /*#__PURE__*/_jsx(Link, {
105
- to: "create",
106
- children: /*#__PURE__*/_jsx(Button, {
107
- variant: "contained",
108
- children: t('blocklet.publish.createBlocklet')
109
- })
126
+ }), /*#__PURE__*/_jsx(Button, {
127
+ onClick: handleNewBlocklet,
128
+ variant: "contained",
129
+ children: t('blocklet.publish.createBlocklet')
110
130
  })]
111
131
  });
112
132
  }
@@ -191,34 +211,118 @@ export default function ProjectList() {
191
211
  options: {
192
212
  customBodyRenderLite: rawIndex => {
193
213
  const project = projects[rawIndex];
194
- return /*#__PURE__*/_jsx(Box, {
214
+ let installUrl = '';
215
+ let downloadUrl = '';
216
+ if (project.lastReleaseId) {
217
+ const blockletMetaUrl = joinUrl(serverEndpoint, `/api/project/${blocklet.meta.did}/${project.id}/${project.lastReleaseId}/release/blocklet.json`);
218
+ const url = new URL(serverEndpoint);
219
+ url.pathname = joinUrl(url.pathname, '/launch-blocklet/agreement');
220
+ url.searchParams.set('blocklet_meta_url', blockletMetaUrl);
221
+ installUrl = url.href;
222
+ downloadUrl = joinUrl(`${WELLKNOWN_SERVICE_PATH_PREFIX}/api/project/${blocklet.meta.did}/${project.id}/${project.lastReleaseId}/download/${(project.lastReleaseFiles || [])[0]}`);
223
+ }
224
+ return /*#__PURE__*/_jsxs(Box, {
195
225
  display: "flex",
196
- children: /*#__PURE__*/_jsx(IconButton, {
197
- color: "error",
198
- "aria-label": "delete",
199
- onClick: () => onDeleteProject(project),
200
- children: /*#__PURE__*/_jsx(DeleteIcon, {
201
- sx: {
202
- fontSize: 18
203
- }
226
+ children: [/*#__PURE__*/_jsx(Link, {
227
+ to: `${project.id}/create`,
228
+ children: /*#__PURE__*/_jsx(Tooltip, {
229
+ title: t('blocklet.publish.createRelease'),
230
+ placement: "top",
231
+ children: /*#__PURE__*/_jsx(IconButton, {
232
+ color: "primary",
233
+ "aria-label": "create",
234
+ children: /*#__PURE__*/_jsx(LibraryAddIcon, {
235
+ sx: {
236
+ fontSize: 18
237
+ }
238
+ })
239
+ })
240
+ })
241
+ }), !!project.lastReleaseId && project.type === 'pack' && /*#__PURE__*/_jsx(Tooltip, {
242
+ title: t('blocklet.publish.install', {
243
+ name: project.blockletTitle
244
+ }),
245
+ placement: "top",
246
+ children: /*#__PURE__*/_jsx(IconButton, {
247
+ color: "secondary",
248
+ "aria-label": "create",
249
+ children: /*#__PURE__*/_jsx("a", {
250
+ style: {
251
+ display: 'flex'
252
+ },
253
+ href: installUrl,
254
+ target: "_blank",
255
+ rel: "noreferrer",
256
+ children: /*#__PURE__*/_jsx(InstallDesktopIcon, {
257
+ sx: {
258
+ fontSize: 18
259
+ }
260
+ })
261
+ })
262
+ })
263
+ }), !!project.lastReleaseId && /*#__PURE__*/_jsx(Tooltip, {
264
+ title: t('blocklet.publish.download', {
265
+ name: project.blockletTitle
266
+ }),
267
+ placement: "top",
268
+ children: /*#__PURE__*/_jsx(IconButton, {
269
+ color: "primary",
270
+ "aria-label": "create",
271
+ children: /*#__PURE__*/_jsx("a", {
272
+ style: {
273
+ display: 'flex'
274
+ },
275
+ href: downloadUrl,
276
+ children: /*#__PURE__*/_jsx(DownloadIcon, {
277
+ sx: {
278
+ fontSize: 18
279
+ }
280
+ })
281
+ })
282
+ })
283
+ }), /*#__PURE__*/_jsx(Tooltip, {
284
+ title: t('blocklet.publish.delete', {
285
+ name: project.blockletTitle
286
+ }),
287
+ placement: "top",
288
+ children: /*#__PURE__*/_jsx(IconButton, {
289
+ color: "primary",
290
+ "aria-label": "delete",
291
+ onClick: () => onDeleteProject(project),
292
+ children: /*#__PURE__*/_jsx(DeleteIcon, {
293
+ sx: {
294
+ fontSize: 18
295
+ }
296
+ })
204
297
  })
205
- })
298
+ })]
206
299
  });
207
300
  }
208
301
  }
209
302
  }].filter(Boolean);
210
303
  return /*#__PURE__*/_jsxs(Main, {
211
- children: [/*#__PURE__*/_jsx(Box, {
212
- sx: {
213
- textAlign: 'right'
214
- },
215
- children: /*#__PURE__*/_jsx(Link, {
216
- to: "create",
217
- children: /*#__PURE__*/_jsx(Button, {
218
- variant: "contained",
219
- children: t('blocklet.publish.createBlocklet')
220
- })
221
- })
304
+ children: [/*#__PURE__*/_jsxs(Box, {
305
+ display: "flex",
306
+ justifyContent: "space-between",
307
+ alignItems: "center",
308
+ children: [/*#__PURE__*/_jsx(Box, {
309
+ sx: {
310
+ fontSize: '1.2rem',
311
+ fontWeight: 'bold'
312
+ },
313
+ children: t('blocklet.publish.productListTitle')
314
+ }), /*#__PURE__*/_jsxs(Button, {
315
+ onClick: handleNewBlocklet,
316
+ variant: "contained",
317
+ children: [/*#__PURE__*/_jsx(AddIcon, {
318
+ style: {
319
+ fontSize: '1.3em',
320
+ marginRight: 4
321
+ }
322
+ }), t('blocklet.publish.createBlocklet')]
323
+ })]
324
+ }), /*#__PURE__*/_jsx(Box, {
325
+ mt: 3
222
326
  }), /*#__PURE__*/_jsx(Datatable, {
223
327
  className: "main-table",
224
328
  locale: locale,
@@ -11,6 +11,7 @@ import Typography from '@mui/material/Typography';
11
11
  import Breadcrumbs from '@mui/material/Breadcrumbs';
12
12
  import DownloadIcon from '@mui/icons-material/Download';
13
13
  import DeleteIcon from '@mui/icons-material/Delete';
14
+ import AddIcon from '@mui/icons-material/Add';
14
15
  import Datatable from '@arcblock/ux/lib/Datatable';
15
16
  import { WELLKNOWN_SERVICE_PATH_PREFIX } from '@abtnode/constant';
16
17
  import Button from '@arcblock/ux/lib/Button';
@@ -106,7 +107,15 @@ export default function ReleaseList() {
106
107
  setDeleteConfirm(release);
107
108
  };
108
109
  if (!releases && loading) {
109
- return /*#__PURE__*/_jsx(EmptySpinner, {});
110
+ return /*#__PURE__*/_jsx(Box, {
111
+ sx: {
112
+ display: 'flex',
113
+ justifyContent: 'center',
114
+ alignItems: 'center',
115
+ marginTop: '40px'
116
+ },
117
+ children: /*#__PURE__*/_jsx(EmptySpinner, {})
118
+ });
110
119
  }
111
120
  if (!releases) {
112
121
  return null;
@@ -232,7 +241,7 @@ export default function ReleaseList() {
232
241
  }
233
242
  })
234
243
  }), /*#__PURE__*/_jsx(IconButton, {
235
- color: "error",
244
+ color: "primary",
236
245
  "aria-label": "delete",
237
246
  onClick: () => onDeleteRelease(release),
238
247
  children: /*#__PURE__*/_jsx(DeleteIcon, {
@@ -250,9 +259,14 @@ export default function ReleaseList() {
250
259
  className: "header",
251
260
  children: [breadcrumbs, /*#__PURE__*/_jsx(Link, {
252
261
  to: "create",
253
- children: /*#__PURE__*/_jsx(Button, {
262
+ children: /*#__PURE__*/_jsxs(Button, {
254
263
  variant: "contained",
255
- children: t('blocklet.publish.createRelease')
264
+ children: [/*#__PURE__*/_jsx(AddIcon, {
265
+ style: {
266
+ fontSize: '1.3em',
267
+ marginRight: 4
268
+ }
269
+ }), t('blocklet.publish.createRelease')]
256
270
  })
257
271
  })]
258
272
  }), /*#__PURE__*/_jsx(Datatable, {
@@ -10,7 +10,7 @@ import Toast from '@arcblock/ux/lib/Toast';
10
10
  import Tree from './tree';
11
11
  import { useNodeContext } from '../../contexts/node';
12
12
  import { axios } from '../../util/api';
13
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
14
14
  const fillParent = (nodes, parentId) => {
15
15
  nodes.forEach(node => {
16
16
  if (parentId) {
@@ -132,37 +132,40 @@ export default function Resource({
132
132
  })
133
133
  });
134
134
  }
135
- return [/*#__PURE__*/_jsx(Container, {
136
- className: classnames(error && 'error'),
137
- children: /*#__PURE__*/_jsxs(Box, {
138
- children: [/*#__PURE__*/_jsx(Tree, {
139
- data: resources,
140
- value: selectedResourceIds,
141
- onChange: data => {
142
- setSelectedResourceIds(data);
143
- },
144
- disabled: loading || readonly
145
- }), !readonly && /*#__PURE__*/_jsx(Box, {
146
- className: "footer",
147
- children: /*#__PURE__*/_jsx(Button, {
148
- variant: "contained",
149
- disabled: loading,
150
- onClick: () => _onSave(),
151
- children: t('common.save')
152
- })
153
- })]
154
- })
155
- }), !!warning && /*#__PURE__*/_jsx(Box, {
156
- color: "warning.main",
157
- mt: 1,
158
- fontSize: 14,
159
- children: warning
160
- }), !!error && /*#__PURE__*/_jsx(Box, {
161
- color: "error.main",
162
- mt: 1,
163
- fontSize: 14,
164
- children: error
165
- })];
135
+ return /*#__PURE__*/_jsxs(_Fragment, {
136
+ children: [/*#__PURE__*/_jsx(Container, {
137
+ className: classnames(error && 'error'),
138
+ children: /*#__PURE__*/_jsxs(Box, {
139
+ pb: 2,
140
+ children: [/*#__PURE__*/_jsx(Tree, {
141
+ data: resources,
142
+ value: selectedResourceIds,
143
+ onChange: data => {
144
+ setSelectedResourceIds(data);
145
+ },
146
+ disabled: loading || readonly
147
+ }), !readonly && warning && /*#__PURE__*/_jsx(Box, {
148
+ className: "footer",
149
+ children: /*#__PURE__*/_jsx(Button, {
150
+ variant: "contained",
151
+ disabled: loading,
152
+ onClick: () => _onSave(),
153
+ children: t('common.save')
154
+ })
155
+ })]
156
+ })
157
+ }), !!warning && /*#__PURE__*/_jsx(Box, {
158
+ color: "warning.main",
159
+ mt: 1,
160
+ fontSize: 14,
161
+ children: warning
162
+ }), !!error && /*#__PURE__*/_jsx(Box, {
163
+ color: "error.main",
164
+ mt: 1,
165
+ fontSize: 14,
166
+ children: error
167
+ })]
168
+ });
166
169
  }
167
170
  Resource.propTypes = {
168
171
  component: PropTypes.object.isRequired,
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import isUrl from 'is-url';
4
+ import trimEnd from 'lodash/trimEnd';
4
5
  import useTheme from '@mui/material/styles/useTheme';
5
6
  import Tooltip from '@mui/material/Tooltip';
6
7
  import Box from '@mui/material/Box';
@@ -166,7 +167,7 @@ function RuleList({
166
167
  fontSize: 16
167
168
  },
168
169
  underline: "hover",
169
- children: rule.from.pathPrefix
170
+ children: trimEnd(rule.from.pathPrefix, '/') || '/'
170
171
  })
171
172
  }, rule.from.pathPrefix), /*#__PURE__*/_jsx(Box, {
172
173
  children: hasPermission && /*#__PURE__*/_jsx("div", {
package/es/locales/ar.js CHANGED
@@ -655,12 +655,12 @@ export default {
655
655
  resourceTitle: 'موارد',
656
656
  blockletEmptyTip: 'لا توجد أي كتل هنا',
657
657
  createBlockletTip: 'يمكنك إنشاء وحدة جديدة من خلال الموارد والمكونات والتكوين الحالي في هذا التطبيق',
658
- createBlocklet: 'أنشئ كتلة جديدة',
658
+ createBlocklet: 'بلوكليت جديد',
659
659
  deleteBlockletTip: 'لا يمكن استعادة البلوكليت بعد الحذف ، يرجى التأكيد',
660
660
  componentNotRunning: 'المكون {name} غير قيد التشغيل ، يرجى تشغيله أولاً',
661
661
  releaseEmptyTip: 'لا توجد أي إصدارات هنا',
662
662
  createReleaseTip: 'يمكنك إنشاء إصدار للـ بلوكليت، جنباً إلى جنب مع ملاحظات الإصدار والموارد، ليستخدمها الآخرون.',
663
- createRelease: 'أنشئ إصدارًا جديدًا',
663
+ createRelease: 'إصدار جديد',
664
664
  deleteReleaseTip: 'لا يمكن استعادة الإصدار بعد الحذف',
665
665
  createBlockletDid: 'أنشئ من محفظة DID',
666
666
  createReleaseSuccess: 'تم إنشاء الإصدار بنجاح',
@@ -680,13 +680,18 @@ export default {
680
680
  noDescription: 'الوصف المطلوب للكتلة',
681
681
  noNote: 'ملاحظة الإصدار مطلوبة'
682
682
  },
683
- packTip: 'سيتم تضمين مكونات وتكوين التطبيق تلقائيًا في البلوكليت.',
683
+ packTip: 'حالياً ، يمكن تثبيت البلوكليتس مباشرة كتطبيقات. سيتم تضمين المكونات وتكوينات التطبيق تلقائيًا في البلوكليت.',
684
684
  resourceChangedWarning: 'لقد قمت بتعديل المورد، يرجى حفظه في الوقت المناسب',
685
- installResourceTip: 'يرجى إضافة المكون في التطبيق، عنوان URL للمكون:',
685
+ installResourceTip: 'رابط التثبيت:',
686
686
  installResourceTip2: 'إذا كنت ترغب في رؤية المزيد من النصائح، يرجى زيارة',
687
687
  installResourceHelp: 'وثيقة المساعدة',
688
688
  componentIncluded: 'مدرج',
689
- componentForceRequired: 'مجبر مطلوب'
689
+ componentForceRequired: 'مجبر مطلوب',
690
+ productListTitle: 'نشر بلوكلتس',
691
+ download: 'تحميل {name}',
692
+ delete: 'احذف {name}',
693
+ copyInstallUrl: 'انسخ عنوان URL للتثبيت',
694
+ install: 'تثبيت {name}'
690
695
  },
691
696
  titleValidationError: 'يجب أن يكون طول العنوان على الأقل 3 أحرف',
692
697
  descriptionValidationError: 'يجب أن تكون طول الوصف بين 3 و 160 حرفًا'
@@ -790,7 +795,7 @@ export default {
790
795
  switchLabel: 'صفحة الترحيب'
791
796
  },
792
797
  upgrade: {
793
- title: 'ترقية خادم Blocklet {version}',
798
+ title: 'ترقية خادم البلوكليت',
794
799
  description: 'خلال الترقية، سيدخل خادم Blocklet الخاص بك في وضع الصيانة لبضع دقائق أثناء إكمال التحديث.',
795
800
  dialog: "انقر فوق 'تأكيد' لتثبيت التحديث. سيدخل خادم Blocklet في وضع الصيانة حتى يتم الانتهاء من التحديث والعودة تلقائيًا إلى وضع الإنتاج.",
796
801
  confirm: 'تطوير',
@@ -803,7 +808,7 @@ export default {
803
808
  verifying: 'التحقق من خادم بلوكليت الإصدار {version}',
804
809
  rollback: 'مخدم رولباك بلوك ليت',
805
810
  complete: 'تم ترقية النظام بنجاح!',
806
- progress: 'ترقية خادم Blocklet {version}',
811
+ progress: 'ترقية {name}',
807
812
  check: 'التحقق من التحديثات',
808
813
  latest: 'أنت تستخدم أحدث إصدار.'
809
814
  },
@@ -818,7 +823,7 @@ export default {
818
823
  cleanup: 'تأكد من أن كل شيء على ما يرام',
819
824
  rollback: 'قم بتنظيف الحالة القذرة',
820
825
  complete: 'صيانة كاملة!',
821
- progress: 'إعادة تشغيل خادم بلوكليت'
826
+ progress: 'إعادة تشغيل {name}'
822
827
  },
823
828
  register: {
824
829
  titleAdded: 'تمت إضافتها إلى Blocklet Launcher',
package/es/locales/de.js CHANGED
@@ -655,12 +655,12 @@ export default {
655
655
  resourceTitle: 'Ressourcen',
656
656
  blockletEmptyTip: 'Es gibt hier keine Blocklets',
657
657
  createBlockletTip: 'Sie können über vorhandene Ressourcen, Komponenten und Konfigurationen in dieser Anwendung einen neuen Blocklet erstellen',
658
- createBlocklet: 'Erstelle einen neuen Blocklet',
658
+ createBlocklet: 'Neuer Blocklet',
659
659
  deleteBlockletTip: 'Der Blocklet kann nach dem Löschen nicht wiederhergestellt werden, bitte bestätigen',
660
660
  componentNotRunning: 'Komponente {name} läuft nicht, starten Sie sie bitte zuerst',
661
661
  releaseEmptyTip: 'Hier gibt es keine Veröffentlichungen',
662
662
  createReleaseTip: 'Du kannst eine Veröffentlichung des Blocklets erstellen, zusammen mit Versionshinweisen und Ressourcen, die andere Personen nutzen können.',
663
- createRelease: 'Erstellen Sie eine neue Version',
663
+ createRelease: 'Neue Veröffentlichung',
664
664
  deleteReleaseTip: 'Die Veröffentlichung kann nach Löschung nicht wiederhergestellt werden',
665
665
  createBlockletDid: 'Erstelle aus dem DID Wallet',
666
666
  createReleaseSuccess: 'Freigabe erfolgreich erstellt',
@@ -680,13 +680,18 @@ export default {
680
680
  noDescription: 'Blocklet-Beschreibung ist erforderlich',
681
681
  noNote: 'Versionshinweis wird benötigt'
682
682
  },
683
- packTip: 'Komponenten und Anwendungskonfiguration werden automatisch in das Blocklet einbezogen.',
683
+ packTip: 'Derzeit können Blocklets direkt als Anwendungen installiert werden. Komponenten und Anwendungskonfigurationen werden automatisch in das Blocklet aufgenommen.',
684
684
  resourceChangedWarning: 'Sie haben die Ressource geändert, bitte rechtzeitig speichern',
685
- installResourceTip: 'Bitte fügen Sie das Bauteil in einer Anwendung hinzu, Bauteil-URL:',
685
+ installResourceTip: 'Installations-URL:',
686
686
  installResourceTip2: 'Wenn du mehr Tipps sehen möchtest, besuche bitte',
687
687
  installResourceHelp: 'Hilfe-Dokument',
688
688
  componentIncluded: 'Eingeschlossen',
689
- componentForceRequired: 'Erzwungen Erforderlich'
689
+ componentForceRequired: 'Erzwungen Erforderlich',
690
+ productListTitle: 'Veröffentliche Blocklets',
691
+ download: 'Download {name}',
692
+ delete: 'Lösche {name}',
693
+ copyInstallUrl: 'Kopiere Installations-URL',
694
+ install: 'Installiere {name}'
690
695
  },
691
696
  titleValidationError: 'Die Länge des Titels muss mindestens 3 Zeichen betragen',
692
697
  descriptionValidationError: 'Die Beschreibungslänge muss zwischen 3 und 160 Zeichen liegen'
@@ -790,7 +795,7 @@ export default {
790
795
  switchLabel: 'Willkommen Seite'
791
796
  },
792
797
  upgrade: {
793
- title: 'Blocklet-Server aktualisieren {version}',
798
+ title: 'Blocklet-Server aktualisieren',
794
799
  description: 'Während des Upgrades wird Ihr Blocklet Server für einige Minuten in den Wartungsmodus wechseln, während das Update abgeschlossen wird.',
795
800
  dialog: "Klicken Sie auf 'Bestätigen', um das Update zu installieren. Der Blocklet Server wird in den Wartungsmodus wechseln, bis das Update abgeschlossen ist, und kehrt automatisch in den Produktionsmodus zurück.",
796
801
  confirm: 'Upgrade',
@@ -803,7 +808,7 @@ export default {
803
808
  verifying: 'Überprüfe Blocklet Server v{version}',
804
809
  rollback: 'Rollback Blocklet Server',
805
810
  complete: 'Upgrade abgeschlossen!',
806
- progress: 'Blocklet Server {version} wird aktualisiert',
811
+ progress: 'Upgrading {name}',
807
812
  check: 'Such nach Aktualisierungen',
808
813
  latest: 'Sie nutzen die neueste Version.'
809
814
  },
@@ -818,7 +823,7 @@ export default {
818
823
  cleanup: 'Stelle sicher, dass alles in Ordnung ist',
819
824
  rollback: 'Reinige den schmutzigen Zustand',
820
825
  complete: 'Instandhaltung komplett!',
821
- progress: 'Blocklet-Server wird neu gestartet'
826
+ progress: 'Neustart {name}'
822
827
  },
823
828
  register: {
824
829
  titleAdded: 'Hinzugefügt zu Blocklet Launcher',
package/es/locales/en.js CHANGED
@@ -642,6 +642,10 @@ export default {
642
642
  isInProgress: 'Blocklet is in progress, please wait for it to finish'
643
643
  },
644
644
  publish: {
645
+ productListTitle: 'Publish Blocklets',
646
+ download: 'Download {name}',
647
+ delete: 'Delete {name}',
648
+ copyInstallUrl: 'Copy Install URL',
645
649
  createResource: 'Create Resource',
646
650
  addResource: 'Add Release',
647
651
  productTitle: 'Product',
@@ -650,19 +654,20 @@ export default {
650
654
  resourceTitle: 'Resources',
651
655
  blockletEmptyTip: 'There aren’t any blocklets here',
652
656
  createBlockletTip: 'You can create new blocklet through existing resources, components, and configuration in this application',
653
- createBlocklet: 'Create a new blocklet',
657
+ createBlocklet: 'New blocklet',
654
658
  deleteBlockletTip: 'The blocklet cannot be recovered after deletion, please confirm',
655
659
  componentNotRunning: 'Component {name} is not running, please start it first',
656
660
  releaseEmptyTip: 'There aren’t any releases here',
657
661
  createReleaseTip: 'You can create a release of the blocklet, along with release notes and resources, for other people to use',
658
- createRelease: 'Create a new release',
662
+ createRelease: 'New release',
659
663
  deleteReleaseTip: 'The release cannot be recovered after deletion',
660
664
  createBlockletDid: 'Create from DID Wallet',
661
665
  createReleaseSuccess: 'Release created successfully',
662
666
  saveDraftSuccess: 'Draft saved successfully',
663
- packTip: 'Components and application configuration will be automatically included in the blocklet',
667
+ packTip: 'Currently blocklets can be installed directly as applications. Components and application configurations will be automatically included in the Blocklet',
664
668
  resourceChangedWarning: 'You have modified the resource, please save it in time',
665
- installResourceTip: 'Please add the component in an application, component URL:',
669
+ install: 'Install {name}',
670
+ installResourceTip: 'Install Url:',
666
671
  installResourceTip2: 'If you want to see more tips, please visit',
667
672
  installResourceHelp: 'Help Document',
668
673
  componentIncluded: 'Included',
@@ -783,7 +788,7 @@ export default {
783
788
  switchLabel: 'Welcome Page'
784
789
  },
785
790
  upgrade: {
786
- title: 'Upgrade Blocklet Server {version}',
791
+ title: 'Upgrade Blocklet Server',
787
792
  description: 'During the upgrade, your Blocklet Server will enter maintenance mode for a few minutes while the update is completed.',
788
793
  dialog: 'Click on "confirm" to install the update. Blocklet Server will enter maintenance mode until the update is completed and return to production mode automatically.',
789
794
  confirm: 'Upgrade',
@@ -796,7 +801,7 @@ export default {
796
801
  verifying: 'Verifying Blocklet Server v{version}',
797
802
  rollback: 'Rollback Blocklet Server',
798
803
  complete: 'Upgrade complete!',
799
- progress: 'Upgrading Blocklet Server {version}',
804
+ progress: 'Upgrading {name}',
800
805
  check: 'Check for Updates',
801
806
  latest: 'You are running the latest version.'
802
807
  },
@@ -811,7 +816,7 @@ export default {
811
816
  cleanup: 'Ensure everything is OK',
812
817
  rollback: 'Cleanup the dirty state',
813
818
  complete: 'Maintain complete!',
814
- progress: 'Restarting Blocklet Server'
819
+ progress: 'Restarting {name}'
815
820
  },
816
821
  register: {
817
822
  titleAdded: 'Added to Blocklet Launcher',
package/es/locales/es.js CHANGED
@@ -655,12 +655,12 @@ export default {
655
655
  resourceTitle: 'Recursos',
656
656
  blockletEmptyTip: 'Aquí no hay bloqueadores',
657
657
  createBlockletTip: 'Puede crear un nuevo blocklet a través de recursos, componentes y configuración existentes en esta aplicación',
658
- createBlocklet: 'Crear un nuevo blocklet',
658
+ createBlocklet: 'Nuevo bloque',
659
659
  deleteBlockletTip: 'El blocklet no puede ser recuperado después de ser eliminado, por favor confirma',
660
660
  componentNotRunning: 'El componente {name} no está en ejecución, por favor iniciar primero',
661
661
  releaseEmptyTip: 'No hay lanzamientos aquí',
662
662
  createReleaseTip: 'Puedes crear una versión de la blocklet, junto con notas de lanzamiento y recursos, para que otras personas la puedan utilizar',
663
- createRelease: 'Crear una nueva versión',
663
+ createRelease: 'Nuevo lanzamiento',
664
664
  deleteReleaseTip: 'La versión no se puede recuperar después de la eliminación',
665
665
  createBlockletDid: 'Crear desde la billetera DID',
666
666
  createReleaseSuccess: 'Liberación creada exitosamente',
@@ -680,13 +680,18 @@ export default {
680
680
  noDescription: 'La descripción de Blocklet es requerida',
681
681
  noNote: 'Se requiere la Nota de Lanzamiento'
682
682
  },
683
- packTip: 'Los componentes y la configuración de la aplicación se incluirán automáticamente en el blocklet',
683
+ packTip: 'Actualmente, los blocklets se pueden instalar directamente como aplicaciones. Los componentes y las configuraciones de la aplicación se incluirán automáticamente en el Blocklet',
684
684
  resourceChangedWarning: 'Ha modificado el recurso, por favor guárdelo a tiempo',
685
- installResourceTip: 'Por favor agrega el componente en una aplicación, URL del componente:',
685
+ installResourceTip: 'URL de instalación:',
686
686
  installResourceTip2: 'Si desea ver más consejos, visite {name}',
687
687
  installResourceHelp: 'Ayuda Documento',
688
688
  componentIncluded: 'Incluido',
689
- componentForceRequired: 'Obligatorio Requerido'
689
+ componentForceRequired: 'Obligatorio Requerido',
690
+ productListTitle: 'Publicar Blocklets',
691
+ download: 'Descargar {name}',
692
+ delete: 'Eliminar {name}',
693
+ copyInstallUrl: 'Copiar URL de instalación',
694
+ install: 'Instalar {name}'
690
695
  },
691
696
  titleValidationError: 'La longitud del título debe ser de al menos 3 caracteres',
692
697
  descriptionValidationError: 'La longitud de la descripción debe estar entre 3 y 160 caracteres'
@@ -790,7 +795,7 @@ export default {
790
795
  switchLabel: 'Página de bienvenida'
791
796
  },
792
797
  upgrade: {
793
- title: 'Actualizar el servidor Blocklet {version}',
798
+ title: 'Mejorar el servidor de Blocklet',
794
799
  description: 'Durante la actualización, tu servidor de Blocklet entrará en modo de mantenimiento durante unos minutos mientras se completa la actualización.',
795
800
  dialog: 'Haz clic en "confirmar" para instalar la actualización. El servidor Blocklet entrará en modo de mantenimiento hasta que la actualización se complete y volverá automáticamente al modo de producción.',
796
801
  confirm: 'Mejora',
@@ -803,7 +808,7 @@ export default {
803
808
  verifying: 'Verificando el servidor de Blocklet v{version}',
804
809
  rollback: 'Revertir servidor de Blocklet',
805
810
  complete: '¡Actualización completa!',
806
- progress: 'Actualizando el servidor de Blocklet {version}',
811
+ progress: 'Mejorando {name}',
807
812
  check: 'Buscar actualizaciones',
808
813
  latest: 'Estás ejecutando la última versión.'
809
814
  },
@@ -818,7 +823,7 @@ export default {
818
823
  cleanup: 'Asegúrate de que todo esté bien',
819
824
  rollback: 'Limpiar el estado sucio',
820
825
  complete: '¡Mantenimiento completo!',
821
- progress: 'Reiniciando el servidor Blocklet'
826
+ progress: 'Reiniciando {name}'
822
827
  },
823
828
  register: {
824
829
  titleAdded: 'Agregado a Blocklet Launcher',