@abtnode/ux 1.16.28-beta-b30865b3 → 1.16.28-beta-cec13afc
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/lib/blocklet/component/add-component/add-component-core.js +3 -2
- package/lib/blocklet/publish/create-release/header.js +36 -31
- package/lib/blocklet/publish/create-release/index.js +54 -21
- package/lib/blocklet/publish/create-release/release-stepper.js +4 -4
- package/lib/blocklet/publish/create-release/{resources.js → resource-select.js} +4 -4
- package/lib/blocklet/publish/create-release/resource-upload.js +105 -0
- package/lib/blocklet/publish/project-list.js +6 -0
- package/lib/blocklet/publish/utils/validate-params.js +4 -4
- package/lib/locales/ar.js +7 -4
- package/lib/locales/de.js +7 -4
- package/lib/locales/en.js +6 -3
- package/lib/locales/es.js +7 -4
- package/lib/locales/fr.js +7 -4
- package/lib/locales/hi.js +7 -4
- package/lib/locales/i18n.db +0 -0
- package/lib/locales/id.js +7 -4
- package/lib/locales/ja.js +7 -4
- package/lib/locales/ko.js +7 -4
- package/lib/locales/pt.js +7 -4
- package/lib/locales/ru.js +7 -4
- package/lib/locales/th.js +7 -4
- package/lib/locales/vi.js +7 -4
- package/lib/locales/zh-tw.js +7 -4
- package/lib/locales/zh.js +7 -4
- package/package.json +7 -7
|
@@ -282,20 +282,21 @@ export default function AddComponentCore({
|
|
|
282
282
|
componentDid = ''
|
|
283
283
|
} = params;
|
|
284
284
|
// eslint-disable-next-line no-shadow
|
|
285
|
+
const meta = component.current?.meta || {};
|
|
285
286
|
const {
|
|
286
287
|
configs = [],
|
|
287
288
|
registryUrl,
|
|
288
289
|
inStore,
|
|
289
290
|
inputUrl,
|
|
290
291
|
dist
|
|
291
|
-
} =
|
|
292
|
+
} = meta;
|
|
292
293
|
const downloadTokenList = component.current?.downloadTokenList;
|
|
293
294
|
const url = inStore ? getBlockletMetaUrl(registryUrl, bundleDid, dist) : inputUrl;
|
|
294
295
|
setLoading(true);
|
|
295
296
|
const installInput = {
|
|
296
297
|
rootDid: blocklet.meta.did,
|
|
297
298
|
url,
|
|
298
|
-
mountPoint: urlPathFriendly(mountPoint)
|
|
299
|
+
mountPoint: mountPoint ? urlPathFriendly(mountPoint) : `/${urlPathFriendly(meta.title || meta.name)}`,
|
|
299
300
|
title,
|
|
300
301
|
name: componentName,
|
|
301
302
|
did: componentDid,
|
|
@@ -19,7 +19,7 @@ import ConnectStoreList from './connect-store-list';
|
|
|
19
19
|
import { validateParams } from '../utils/validate-params';
|
|
20
20
|
import { waitGetConnectedStore } from '../utils/wait-connect';
|
|
21
21
|
import uploadImageToProject from '../utils/upload-image-to-project';
|
|
22
|
-
import { uploadResource } from './
|
|
22
|
+
import { uploadResource } from './resource-select';
|
|
23
23
|
import ClickToCopy from '../../../click-to-copy';
|
|
24
24
|
import { formatError } from '../../../util';
|
|
25
25
|
import { useNodeContext } from '../../../contexts/node';
|
|
@@ -44,7 +44,7 @@ function Header({
|
|
|
44
44
|
resourceRelateComponents,
|
|
45
45
|
disabledSelectComponents,
|
|
46
46
|
saveSelectedEventsRef,
|
|
47
|
-
|
|
47
|
+
hasSelectedResources,
|
|
48
48
|
initLogoUrl,
|
|
49
49
|
setLoading,
|
|
50
50
|
releaseUsedLast,
|
|
@@ -72,7 +72,7 @@ function Header({
|
|
|
72
72
|
const onRelease = async status => {
|
|
73
73
|
const errors = validateParams({
|
|
74
74
|
params,
|
|
75
|
-
|
|
75
|
+
hasSelectedResources,
|
|
76
76
|
projectId,
|
|
77
77
|
status,
|
|
78
78
|
t
|
|
@@ -140,32 +140,37 @@ function Header({
|
|
|
140
140
|
return;
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
return
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
143
|
+
if (params.resourceFromSelect) {
|
|
144
|
+
_params.uploadedResource = '';
|
|
145
|
+
try {
|
|
146
|
+
const saveKeys = Object.keys(saveSelectedEventsRef.current);
|
|
147
|
+
await pAll(saveKeys.map(x => {
|
|
148
|
+
return () => {
|
|
149
|
+
const item = saveSelectedEventsRef.current[x];
|
|
150
|
+
return uploadResource({
|
|
151
|
+
api,
|
|
152
|
+
locale,
|
|
153
|
+
projectId,
|
|
154
|
+
releaseId: releaseUsedLast ? '' : releaseId,
|
|
155
|
+
appDid: blocklet.meta.did,
|
|
156
|
+
component: item.component,
|
|
157
|
+
resources: item.resources,
|
|
158
|
+
initUrl
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
}), {
|
|
162
|
+
concurrency: 2
|
|
163
|
+
});
|
|
164
|
+
} catch (err) {
|
|
165
|
+
Toast.error(err?.response?.data?.error?.message || err.message);
|
|
166
|
+
setLoading(false);
|
|
167
|
+
setParamsErrTip({
|
|
168
|
+
resources: 'Invalid save the resource'
|
|
169
|
+
});
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
} else {
|
|
173
|
+
_params.blockletComponents = [];
|
|
169
174
|
}
|
|
170
175
|
_params.blockletTitle = (_params.blockletTitle || '').trim();
|
|
171
176
|
_params.blockletDescription = (_params.blockletDescription || '').trim();
|
|
@@ -345,7 +350,7 @@ function Header({
|
|
|
345
350
|
mr: 0.5
|
|
346
351
|
},
|
|
347
352
|
color: "inherit"
|
|
348
|
-
}), t('
|
|
353
|
+
}), t('blocklet.publish.createRelease')]
|
|
349
354
|
}), isPublished && /*#__PURE__*/_jsxs(_Fragment, {
|
|
350
355
|
children: [installButton, /*#__PURE__*/_jsx("a", {
|
|
351
356
|
href: joinURL(`${WELLKNOWN_SERVICE_PATH_PREFIX}/api/project/${blocklet.meta.did}/${projectId}/${releaseId}/download/${(release.files || [])[0]}`),
|
|
@@ -406,7 +411,7 @@ Header.propTypes = {
|
|
|
406
411
|
resourceRelateComponents: PropTypes.object.isRequired,
|
|
407
412
|
disabledSelectComponents: PropTypes.bool.isRequired,
|
|
408
413
|
saveSelectedEventsRef: PropTypes.object.isRequired,
|
|
409
|
-
|
|
414
|
+
hasSelectedResources: PropTypes.bool.isRequired,
|
|
410
415
|
initLogoUrl: PropTypes.string.isRequired,
|
|
411
416
|
setLoading: PropTypes.func.isRequired,
|
|
412
417
|
releaseUsedLast: PropTypes.bool.isRequired,
|
|
@@ -4,10 +4,10 @@ import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
|
|
|
4
4
|
import Tabs from '@arcblock/ux/lib/Tabs';
|
|
5
5
|
import Toast from '@arcblock/ux/lib/Toast';
|
|
6
6
|
import styled from '@emotion/styled';
|
|
7
|
-
import { Box, Tooltip, Typography, useMediaQuery } from '@mui/material';
|
|
7
|
+
import { Box, FormControlLabel, Radio, RadioGroup, Tooltip, Typography, useMediaQuery } from '@mui/material';
|
|
8
8
|
import pick from 'lodash/pick';
|
|
9
9
|
import PropTypes from 'prop-types';
|
|
10
|
-
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
10
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
11
11
|
import { useParams } from 'react-router-dom';
|
|
12
12
|
import useSetState from 'react-use/lib/useSetState';
|
|
13
13
|
import semver from 'semver';
|
|
@@ -17,14 +17,15 @@ import { useNodeContext } from '../../../contexts/node';
|
|
|
17
17
|
import EmptySpinner from '../../../empty-spinner';
|
|
18
18
|
import { formatError } from '../../../util';
|
|
19
19
|
import Blocklets from './blocklets';
|
|
20
|
-
import
|
|
20
|
+
import ResourceSelect from './resource-select';
|
|
21
21
|
import Branding from './branding';
|
|
22
22
|
import Header from './header';
|
|
23
23
|
import Introduction from './introduction';
|
|
24
24
|
import ReleaseStepper from './release-stepper';
|
|
25
25
|
import StopBox from './stop-box';
|
|
26
26
|
import Version from './version';
|
|
27
|
-
import
|
|
27
|
+
import ResourceUpload from './resource-upload';
|
|
28
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
28
29
|
const addComponentTabs = ({
|
|
29
30
|
tabs,
|
|
30
31
|
blocklet,
|
|
@@ -52,7 +53,7 @@ const addComponentTabs = ({
|
|
|
52
53
|
});
|
|
53
54
|
};
|
|
54
55
|
const pickParams = (baseParams, app) => {
|
|
55
|
-
const params = pick(baseParams, ['blockletVersion', 'blockletTitle', 'blockletDescription', 'blockletLogo', 'blockletIntroduction', 'blockletScreenshots', 'connectedStores', 'blockletComponents', 'lastReleaseId', 'note']);
|
|
56
|
+
const params = pick(baseParams, ['blockletVersion', 'blockletTitle', 'blockletDescription', 'blockletLogo', 'blockletIntroduction', 'blockletScreenshots', 'connectedStores', 'blockletComponents', 'lastReleaseId', 'uploadedResource', 'note']);
|
|
56
57
|
if (!params.blockletComponents) {
|
|
57
58
|
params.blockletComponents = (app.children || []).map(x => ({
|
|
58
59
|
did: x.meta.did,
|
|
@@ -65,6 +66,7 @@ const pickParams = (baseParams, app) => {
|
|
|
65
66
|
included: true
|
|
66
67
|
}));
|
|
67
68
|
}
|
|
69
|
+
params.resourceFromSelect = !params.uploadedResource;
|
|
68
70
|
return params;
|
|
69
71
|
};
|
|
70
72
|
const stepsToLabel = {
|
|
@@ -100,7 +102,9 @@ export default function CreateRelease({
|
|
|
100
102
|
const [params, setParams] = useSetState({
|
|
101
103
|
blockletScreenshots: [],
|
|
102
104
|
publishedStoreIds: [],
|
|
103
|
-
connectedStores: []
|
|
105
|
+
connectedStores: [],
|
|
106
|
+
uploadedResource: '',
|
|
107
|
+
resourceFromSelect: true
|
|
104
108
|
});
|
|
105
109
|
const [paramsErrTip, setParamsErrTip] = useSetState({});
|
|
106
110
|
const [loading, setLoading] = useState(false);
|
|
@@ -272,7 +276,7 @@ export default function CreateRelease({
|
|
|
272
276
|
}
|
|
273
277
|
}
|
|
274
278
|
}, [setParams, projectId, initUrl, mode]);
|
|
275
|
-
const
|
|
279
|
+
const hasSelectedResources = useMemo(() => {
|
|
276
280
|
return !!Object.keys(selectedResourceIds).find(key => {
|
|
277
281
|
if (selectedResourceIds[key].length) {
|
|
278
282
|
return true;
|
|
@@ -339,7 +343,7 @@ export default function CreateRelease({
|
|
|
339
343
|
resourceRelateComponents: resourceRelateComponents,
|
|
340
344
|
resourceItem: resourceItem,
|
|
341
345
|
saveSelectedEventsRef: saveSelectedEventsRef,
|
|
342
|
-
|
|
346
|
+
hasSelectedResources: hasSelectedResources,
|
|
343
347
|
releaseUsedLast: releaseUsedLast,
|
|
344
348
|
setReleaseUsedLast: setReleaseUsedLast,
|
|
345
349
|
setRelease: setRelease
|
|
@@ -361,7 +365,7 @@ export default function CreateRelease({
|
|
|
361
365
|
steps: steps,
|
|
362
366
|
viewMode: mode === 'view',
|
|
363
367
|
params: params,
|
|
364
|
-
|
|
368
|
+
hasSelectedResources: hasSelectedResources || params.uploadedResource,
|
|
365
369
|
paramsErrTip: paramsErrTip,
|
|
366
370
|
activeStep: activeStep,
|
|
367
371
|
setActiveStep: setActiveStep,
|
|
@@ -455,17 +459,38 @@ export default function CreateRelease({
|
|
|
455
459
|
sx: {
|
|
456
460
|
flex: 1
|
|
457
461
|
},
|
|
458
|
-
children: [
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
462
|
+
children: [/*#__PURE__*/_jsxs(RadioGroup, {
|
|
463
|
+
onChange: () => setParams({
|
|
464
|
+
resourceFromSelect: !params.resourceFromSelect
|
|
465
|
+
}),
|
|
466
|
+
children: [/*#__PURE__*/_jsx(FormControlLabel, {
|
|
467
|
+
value: "select",
|
|
468
|
+
disabled: readOnly,
|
|
469
|
+
control: /*#__PURE__*/_jsx(Radio, {
|
|
470
|
+
size: "small",
|
|
471
|
+
checked: params.resourceFromSelect
|
|
472
|
+
}),
|
|
473
|
+
label: t('blocklet.publish.resourceSelect')
|
|
474
|
+
}), /*#__PURE__*/_jsx(FormControlLabel, {
|
|
475
|
+
value: "select",
|
|
476
|
+
disabled: readOnly,
|
|
477
|
+
control: /*#__PURE__*/_jsx(Radio, {
|
|
478
|
+
size: "small",
|
|
479
|
+
checked: !params.resourceFromSelect
|
|
480
|
+
}),
|
|
481
|
+
label: t('blocklet.publish.resourceUpload')
|
|
482
|
+
})]
|
|
483
|
+
}), params.resourceFromSelect && /*#__PURE__*/_jsxs(_Fragment, {
|
|
484
|
+
children: [!componentDid && /*#__PURE__*/_jsx(Tabs, {
|
|
485
|
+
tabs: tabs,
|
|
486
|
+
current: tab,
|
|
487
|
+
onChange: onTabChange,
|
|
488
|
+
sx: {
|
|
489
|
+
ml: -2,
|
|
490
|
+
mt: 2,
|
|
491
|
+
maxWidth: isMobile ? window.innerWidth - 24 : '100%'
|
|
492
|
+
}
|
|
493
|
+
}), /*#__PURE__*/_jsx(ResourceSelect, {
|
|
469
494
|
loading: loading,
|
|
470
495
|
initialResources: initialResources,
|
|
471
496
|
saveSelectedEventsRef: saveSelectedEventsRef,
|
|
@@ -478,13 +503,21 @@ export default function CreateRelease({
|
|
|
478
503
|
component: resourceItem,
|
|
479
504
|
componentDid: componentDid,
|
|
480
505
|
initUrl: initUrl,
|
|
506
|
+
params: params,
|
|
507
|
+
setParams: setParams,
|
|
481
508
|
projectId: projectId === UNOWNED_DID ? '' : projectId,
|
|
482
509
|
releaseUsedLast: releaseUsedLast,
|
|
483
510
|
release: {
|
|
484
511
|
...release,
|
|
485
512
|
id: releaseId
|
|
486
513
|
}
|
|
487
|
-
})
|
|
514
|
+
})]
|
|
515
|
+
}), !params.resourceFromSelect && /*#__PURE__*/_jsx(ResourceUpload, {
|
|
516
|
+
app: blocklet,
|
|
517
|
+
readOnly: readOnly,
|
|
518
|
+
projectId: projectId === UNOWNED_DID ? '' : projectId,
|
|
519
|
+
params: params,
|
|
520
|
+
setParams: setParams
|
|
488
521
|
})]
|
|
489
522
|
})
|
|
490
523
|
})
|
|
@@ -8,7 +8,7 @@ export default function ReleaseStepper({
|
|
|
8
8
|
steps,
|
|
9
9
|
activeStep,
|
|
10
10
|
setActiveStep,
|
|
11
|
-
|
|
11
|
+
hasSelectedResources,
|
|
12
12
|
params,
|
|
13
13
|
loading,
|
|
14
14
|
paramsErrTip,
|
|
@@ -37,7 +37,7 @@ export default function ReleaseStepper({
|
|
|
37
37
|
return '';
|
|
38
38
|
};
|
|
39
39
|
const readOnly = viewMode || validateParams({
|
|
40
|
-
|
|
40
|
+
hasSelectedResources,
|
|
41
41
|
params,
|
|
42
42
|
projectId,
|
|
43
43
|
t
|
|
@@ -57,7 +57,7 @@ export default function ReleaseStepper({
|
|
|
57
57
|
children: steps.map((step, index) => {
|
|
58
58
|
const labelProps = {};
|
|
59
59
|
const ok = loading || !validateParamsStep({
|
|
60
|
-
|
|
60
|
+
hasSelectedResources,
|
|
61
61
|
params,
|
|
62
62
|
projectId,
|
|
63
63
|
step: index,
|
|
@@ -149,7 +149,7 @@ ReleaseStepper.propTypes = {
|
|
|
149
149
|
viewMode: PropTypes.string.isRequired,
|
|
150
150
|
loading: PropTypes.bool.isRequired,
|
|
151
151
|
projectId: PropTypes.string.isRequired,
|
|
152
|
-
|
|
152
|
+
hasSelectedResources: PropTypes.bool.isRequired,
|
|
153
153
|
paramsErrTip: PropTypes.shape({
|
|
154
154
|
projectId: PropTypes.string,
|
|
155
155
|
blockletVersion: PropTypes.string,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styled from '@emotion/styled';
|
|
2
2
|
import classnames from 'classnames';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import { useEffect, useRef } from 'react';
|
|
4
|
+
import React, { useEffect, useRef } from 'react';
|
|
5
5
|
import useSetState from 'react-use/lib/useSetState';
|
|
6
6
|
import { joinURL } from 'ufo';
|
|
7
7
|
import { Box } from '@mui/material';
|
|
@@ -90,7 +90,7 @@ const getNodeIdDependencies = (node, nodeIds) => {
|
|
|
90
90
|
};
|
|
91
91
|
return getDependencies(node, {});
|
|
92
92
|
};
|
|
93
|
-
export default function
|
|
93
|
+
export default function ResourceSelect({
|
|
94
94
|
app,
|
|
95
95
|
component,
|
|
96
96
|
projectId,
|
|
@@ -257,7 +257,7 @@ export default function Resources({
|
|
|
257
257
|
})]
|
|
258
258
|
});
|
|
259
259
|
}
|
|
260
|
-
|
|
260
|
+
ResourceSelect.propTypes = {
|
|
261
261
|
component: PropTypes.object.isRequired,
|
|
262
262
|
app: PropTypes.object.isRequired,
|
|
263
263
|
projectId: PropTypes.string.isRequired,
|
|
@@ -276,7 +276,7 @@ Resources.propTypes = {
|
|
|
276
276
|
selectedResourceIds: PropTypes.array.isRequired,
|
|
277
277
|
setSelectedResourceIds: PropTypes.func.isRequired
|
|
278
278
|
};
|
|
279
|
-
|
|
279
|
+
ResourceSelect.defaultProps = {
|
|
280
280
|
error: '',
|
|
281
281
|
release: {
|
|
282
282
|
id: ''
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import { UNOWNED_DID, WELLKNOWN_SERVICE_PATH_PREFIX } from '@abtnode/constant';
|
|
3
|
+
import React, { Suspense, useRef, lazy } from 'react';
|
|
4
|
+
import { Stack, Box, Button, Typography } from '@mui/material';
|
|
5
|
+
import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
|
|
6
|
+
import Toast from '@arcblock/ux/lib/Toast/index';
|
|
7
|
+
import EmptySpinner from '../../../empty-spinner';
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const allowedFileTypes = ['.zip', '.gz'];
|
|
10
|
+
const maxFileSize = 1024 * 1024 * 100; // 100 MB
|
|
11
|
+
|
|
12
|
+
// eslint-disable-next-line import/no-unresolved
|
|
13
|
+
const UploaderComponent = /*#__PURE__*/lazy(() => import('@blocklet/uploader/react').then(res => ({
|
|
14
|
+
default: res.Uploader
|
|
15
|
+
})));
|
|
16
|
+
export default function ResourceUpload({
|
|
17
|
+
app,
|
|
18
|
+
projectId,
|
|
19
|
+
readOnly,
|
|
20
|
+
params,
|
|
21
|
+
setParams
|
|
22
|
+
}) {
|
|
23
|
+
const {
|
|
24
|
+
t
|
|
25
|
+
} = useLocaleContext();
|
|
26
|
+
const uploaderRef = useRef(null);
|
|
27
|
+
const checkCanUpload = () => {
|
|
28
|
+
if (readOnly) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
if (!projectId || projectId === UNOWNED_DID) {
|
|
32
|
+
Toast.error(t('blocklet.publish.errorTip.noFirstDid'));
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return true;
|
|
36
|
+
};
|
|
37
|
+
const uploadPrefix = `${WELLKNOWN_SERVICE_PATH_PREFIX}/api/project/${app.meta.did}/${projectId}/resource/upload`;
|
|
38
|
+
return /*#__PURE__*/_jsxs(Box, {
|
|
39
|
+
sx: {
|
|
40
|
+
mt: 3
|
|
41
|
+
},
|
|
42
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
|
43
|
+
gutterBottom: true,
|
|
44
|
+
children: t('blocklet.publish.resourceUpload')
|
|
45
|
+
}), /*#__PURE__*/_jsxs(Stack, {
|
|
46
|
+
direction: "row",
|
|
47
|
+
alignItems: "center",
|
|
48
|
+
spacing: 1,
|
|
49
|
+
sx: {
|
|
50
|
+
flex: 1,
|
|
51
|
+
cursor: readOnly ? 'default' : 'pointer'
|
|
52
|
+
},
|
|
53
|
+
children: [!!params.uploadedResource && /*#__PURE__*/_jsx(Typography, {
|
|
54
|
+
component: "a",
|
|
55
|
+
href: `${uploadPrefix}/params.uploadedResource`,
|
|
56
|
+
children: params.uploadedResource
|
|
57
|
+
}), !readOnly && /*#__PURE__*/_jsx(Button, {
|
|
58
|
+
variant: "outlined",
|
|
59
|
+
size: "small",
|
|
60
|
+
onClick: () => {
|
|
61
|
+
if (!checkCanUpload()) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
uploaderRef.current?.open();
|
|
65
|
+
},
|
|
66
|
+
children: params.uploadedResource ? t('common.change') : t('common.upload')
|
|
67
|
+
})]
|
|
68
|
+
}), /*#__PURE__*/_jsx(Suspense, {
|
|
69
|
+
fallback: /*#__PURE__*/_jsx(EmptySpinner, {}),
|
|
70
|
+
children: /*#__PURE__*/_jsx(UploaderComponent, {
|
|
71
|
+
ref: uploaderRef,
|
|
72
|
+
popup: true,
|
|
73
|
+
onUploadFinish: result => {
|
|
74
|
+
setParams({
|
|
75
|
+
uploadedResource: result.data.filename
|
|
76
|
+
});
|
|
77
|
+
uploaderRef.current?.close();
|
|
78
|
+
},
|
|
79
|
+
plugins: ['ImageEditor'],
|
|
80
|
+
installerProps: {
|
|
81
|
+
disabled: true
|
|
82
|
+
},
|
|
83
|
+
apiPathProps: {
|
|
84
|
+
uploader: uploadPrefix,
|
|
85
|
+
disableMediaKitPrefix: true
|
|
86
|
+
},
|
|
87
|
+
coreProps: {
|
|
88
|
+
restrictions: {
|
|
89
|
+
allowedFileTypes,
|
|
90
|
+
maxFileSize,
|
|
91
|
+
maxNumberOfFiles: 1
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}, "uploader-resource")
|
|
95
|
+
})]
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
ResourceUpload.propTypes = {
|
|
99
|
+
app: PropTypes.object.isRequired,
|
|
100
|
+
projectId: PropTypes.string.isRequired,
|
|
101
|
+
readOnly: PropTypes.bool.isRequired,
|
|
102
|
+
params: PropTypes.object.isRequired,
|
|
103
|
+
setParams: PropTypes.func.isRequired
|
|
104
|
+
};
|
|
105
|
+
ResourceUpload.defaultProps = {};
|
|
@@ -182,6 +182,9 @@ export default function ProjectList({
|
|
|
182
182
|
name: 'blockletDid',
|
|
183
183
|
options: {
|
|
184
184
|
customBodyRender: did => {
|
|
185
|
+
if (!did) {
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
185
188
|
return /*#__PURE__*/_jsx(DidAddress, {
|
|
186
189
|
size: 14,
|
|
187
190
|
compact: true,
|
|
@@ -195,6 +198,9 @@ export default function ProjectList({
|
|
|
195
198
|
name: 'createdBy',
|
|
196
199
|
options: {
|
|
197
200
|
customBodyRender: did => {
|
|
201
|
+
if (!did) {
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
198
204
|
return /*#__PURE__*/_jsx(DidAddress, {
|
|
199
205
|
onClick: () => {
|
|
200
206
|
navigate(`/.well-known/service/admin/members?did=${did}`);
|
|
@@ -3,7 +3,7 @@ import { UNOWNED_DID } from '@abtnode/constant';
|
|
|
3
3
|
import semver from 'semver';
|
|
4
4
|
export const validateParams = ({
|
|
5
5
|
params,
|
|
6
|
-
|
|
6
|
+
hasSelectedResources,
|
|
7
7
|
projectId,
|
|
8
8
|
status,
|
|
9
9
|
t
|
|
@@ -21,7 +21,7 @@ export const validateParams = ({
|
|
|
21
21
|
message: t('blocklet.publish.errorTip.noDid')
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
-
if (!
|
|
24
|
+
if (!params.uploadedResource && !hasSelectedResources) {
|
|
25
25
|
errors.push({
|
|
26
26
|
param: 'blockletResources',
|
|
27
27
|
message: t('blocklet.publish.errorTip.noResource')
|
|
@@ -56,7 +56,7 @@ export const validateParams = ({
|
|
|
56
56
|
};
|
|
57
57
|
export const validateParamsStep = ({
|
|
58
58
|
params,
|
|
59
|
-
|
|
59
|
+
hasSelectedResources,
|
|
60
60
|
step,
|
|
61
61
|
t,
|
|
62
62
|
projectId
|
|
@@ -73,7 +73,7 @@ export const validateParamsStep = ({
|
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
if (step === 2) {
|
|
76
|
-
if (!
|
|
76
|
+
if (!params.uploadedResource && !hasSelectedResources) {
|
|
77
77
|
return t('blocklet.publish.errorTip.noResource');
|
|
78
78
|
}
|
|
79
79
|
}
|
package/lib/locales/ar.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: 'تحميل',
|
|
356
356
|
blockletStudio: 'استوديو',
|
|
357
357
|
visitStore: 'زيارة المتجر',
|
|
358
|
-
reconnect: 'إعادة الاتصال'
|
|
358
|
+
reconnect: 'إعادة الاتصال',
|
|
359
|
+
change: 'تغيير'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: 'خارجي',
|
|
@@ -675,7 +676,7 @@ export default {
|
|
|
675
676
|
componentNotRunning: 'البلوكليت {name} لا يعمل، يرجى تشغيله أولا',
|
|
676
677
|
releaseEmptyTip: 'لا توجد أي إصدارات هنا',
|
|
677
678
|
createReleaseTip: 'يمكنك إنشاء إصدار للـ بلوكليت، جنباً إلى جنب مع ملاحظات الإصدار والموارد، ليستخدمها الآخرون.',
|
|
678
|
-
createRelease: 'إصدار
|
|
679
|
+
createRelease: 'إنشاء إصدار',
|
|
679
680
|
deleteReleaseTip: 'لا يمكن استعادة الإصدار بعد الحذف',
|
|
680
681
|
createBlockletDid: 'أنشئ من محفظة DID',
|
|
681
682
|
createReleaseSuccess: 'تم إنشاء الإصدار بنجاح',
|
|
@@ -695,7 +696,7 @@ export default {
|
|
|
695
696
|
noDescription: 'الوصف المطلوب للكتلة',
|
|
696
697
|
noNote: 'ملاحظة الإصدار مطلوبة',
|
|
697
698
|
inValidVersion: 'نسخة الوحدة غير صالحة',
|
|
698
|
-
noResource: 'يرجى
|
|
699
|
+
noResource: 'يرجى تحديد موارد التحميل لتضمينها في البلوكليت',
|
|
699
700
|
noFirstDid: 'يرجى إنشاء بلوكليت ديد أولاً'
|
|
700
701
|
},
|
|
701
702
|
packTip: 'حالياً ، يمكن تثبيت البلوكليتس مباشرة كتطبيقات. سيتم تضمين المكونات وتكوينات التطبيق تلقائيًا في البلوكليت.',
|
|
@@ -741,7 +742,9 @@ export default {
|
|
|
741
742
|
branding: 'صف معلوماتك الأساسية للبلوكليت الخاص بك. ستُعرض هذه المعلومات للمستخدمين في المتجر.'
|
|
742
743
|
},
|
|
743
744
|
branding: 'العلامة التجارية',
|
|
744
|
-
brandingHelp: 'سيتم عرض مزيد من المعلومات حول البلوكلت في المتجر'
|
|
745
|
+
brandingHelp: 'سيتم عرض مزيد من المعلومات حول البلوكلت في المتجر',
|
|
746
|
+
resourceSelect: 'اختر موردًا من Blocklets',
|
|
747
|
+
resourceUpload: 'قم بتحميل الموارد من قرصك'
|
|
745
748
|
},
|
|
746
749
|
titleValidationError: 'يجب أن يكون طول العنوان على الأقل 3 أحرف',
|
|
747
750
|
descriptionValidationError: 'يجب أن تكون طول الوصف بين 3 و 160 حرفًا'
|
package/lib/locales/de.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: 'Hochladen',
|
|
356
356
|
blockletStudio: 'Studio',
|
|
357
357
|
visitStore: 'Besuche den Laden',
|
|
358
|
-
reconnect: 'Verbinden wiederherstellen'
|
|
358
|
+
reconnect: 'Verbinden wiederherstellen',
|
|
359
|
+
change: 'Ändern'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: 'Extern',
|
|
@@ -675,7 +676,7 @@ export default {
|
|
|
675
676
|
componentNotRunning: 'Blocklet {name} läuft nicht, bitte starte es zuerst',
|
|
676
677
|
releaseEmptyTip: 'Es gibt hier keine Veröffentlichungen',
|
|
677
678
|
createReleaseTip: 'Du kannst eine Veröffentlichung des Blocklets erstellen, zusammen mit Versionshinweisen und Ressourcen, die andere Personen nutzen können.',
|
|
678
|
-
createRelease: '
|
|
679
|
+
createRelease: 'Erstellen Sie Freigabe',
|
|
679
680
|
deleteReleaseTip: 'Die Veröffentlichung kann nach Löschung nicht wiederhergestellt werden',
|
|
680
681
|
createBlockletDid: 'Erstelle aus dem DID Wallet',
|
|
681
682
|
createReleaseSuccess: 'Freigabe erfolgreich erstellt',
|
|
@@ -695,7 +696,7 @@ export default {
|
|
|
695
696
|
noDescription: 'Blocklet-Beschreibung ist erforderlich',
|
|
696
697
|
noNote: 'Versionshinweis wird benötigt',
|
|
697
698
|
inValidVersion: 'Ungültige Blocklet-Version',
|
|
698
|
-
noResource: 'Bitte wählen Sie die
|
|
699
|
+
noResource: 'Bitte wählen Sie die hochzuladenden Ressourcen aus, die im Blocklet enthalten sein sollen',
|
|
699
700
|
noFirstDid: 'Bitte erstellen Sie zuerst eine Blocklet-DID'
|
|
700
701
|
},
|
|
701
702
|
packTip: 'Derzeit können Blocklets direkt als Anwendungen installiert werden. Komponenten und Anwendungskonfigurationen werden automatisch in das Blocklet aufgenommen.',
|
|
@@ -741,7 +742,9 @@ export default {
|
|
|
741
742
|
branding: 'Beschreiben Sie die grundlegenden Informationen Ihres Blocklets. Diese Informationen werden den Benutzern im Store angezeigt.'
|
|
742
743
|
},
|
|
743
744
|
branding: 'Branding',
|
|
744
|
-
brandingHelp: 'Weitere Informationen über den Blocklet werden im Store angezeigt'
|
|
745
|
+
brandingHelp: 'Weitere Informationen über den Blocklet werden im Store angezeigt',
|
|
746
|
+
resourceSelect: 'Wählen Sie eine Ressource aus Blocklets',
|
|
747
|
+
resourceUpload: 'Ressourcen vom Datenträger hochladen'
|
|
745
748
|
},
|
|
746
749
|
titleValidationError: 'Die Länge des Titels muss mindestens 3 Zeichen betragen',
|
|
747
750
|
descriptionValidationError: 'Die Beschreibungslänge muss zwischen 3 und 160 Zeichen liegen'
|
package/lib/locales/en.js
CHANGED
|
@@ -97,6 +97,8 @@ export default {
|
|
|
97
97
|
invalid: 'Invalid',
|
|
98
98
|
about: 'About',
|
|
99
99
|
access: 'Access',
|
|
100
|
+
change: 'Change',
|
|
101
|
+
upload: 'Upload',
|
|
100
102
|
accessKey: 'Access Keys',
|
|
101
103
|
action: 'Action',
|
|
102
104
|
actions: 'Actions',
|
|
@@ -168,7 +170,6 @@ export default {
|
|
|
168
170
|
uploadToStore: 'Upload to Store',
|
|
169
171
|
connectToStore: 'Connect to Store',
|
|
170
172
|
blockletStudio: 'Studio',
|
|
171
|
-
upload: 'Upload',
|
|
172
173
|
uploaded: 'Uploaded',
|
|
173
174
|
downloading: 'Downloading',
|
|
174
175
|
edit: 'Edit',
|
|
@@ -669,6 +670,8 @@ export default {
|
|
|
669
670
|
versionTitle: 'Versioning',
|
|
670
671
|
imgTitle: 'Images',
|
|
671
672
|
resourceTitle: 'Resources',
|
|
673
|
+
resourceSelect: 'Select resource from following blocklets',
|
|
674
|
+
resourceUpload: 'Upload resource from your disk (index.html is required in the archive)',
|
|
672
675
|
blockletEmptyTip: 'There aren’t any blocklets here',
|
|
673
676
|
createBlockletTip: 'You can create new blocklet through existing resources, components, and configuration in this application',
|
|
674
677
|
createBlocklet: 'New blocklet',
|
|
@@ -679,7 +682,7 @@ export default {
|
|
|
679
682
|
resourceEmptyTip: 'No available resources',
|
|
680
683
|
viewLastRelease: 'View last release',
|
|
681
684
|
createReleaseTip: 'You can create a release of the blocklet, along with release notes and resources, for other people to use',
|
|
682
|
-
createRelease: '
|
|
685
|
+
createRelease: 'Create release',
|
|
683
686
|
deleteReleaseTip: 'The release cannot be recovered after deletion',
|
|
684
687
|
createBlockletDid: 'Create from DID Wallet',
|
|
685
688
|
createReleaseSuccess: 'Release created successfully',
|
|
@@ -726,7 +729,7 @@ export default {
|
|
|
726
729
|
noTitle: 'Blocklet Title is required',
|
|
727
730
|
noVersion: 'Blocklet Version is required',
|
|
728
731
|
inValidVersion: 'Invalid Blocklet Version',
|
|
729
|
-
noResource: 'Please select
|
|
732
|
+
noResource: 'Please select upload resource to be included in the blocklet',
|
|
730
733
|
noDescription: 'Blocklet Description is required',
|
|
731
734
|
noNote: 'Release Note is required'
|
|
732
735
|
},
|
package/lib/locales/es.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: 'Subir',
|
|
356
356
|
blockletStudio: 'Estudio',
|
|
357
357
|
visitStore: 'Visitar tienda',
|
|
358
|
-
reconnect: 'Reconecta'
|
|
358
|
+
reconnect: 'Reconecta',
|
|
359
|
+
change: 'Cambiar'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: 'Externo',
|
|
@@ -675,7 +676,7 @@ export default {
|
|
|
675
676
|
componentNotRunning: 'El Blocklet {name} no está en ejecución, por favor inícialo primero',
|
|
676
677
|
releaseEmptyTip: 'No hay ninguna versión aquí',
|
|
677
678
|
createReleaseTip: 'Puedes crear una versión de la blocklet, junto con notas de lanzamiento y recursos, para que otras personas la puedan utilizar',
|
|
678
|
-
createRelease: '
|
|
679
|
+
createRelease: 'Crear versión',
|
|
679
680
|
deleteReleaseTip: 'La versión no se puede recuperar después de la eliminación',
|
|
680
681
|
createBlockletDid: 'Crear desde la billetera DID',
|
|
681
682
|
createReleaseSuccess: 'Liberación creada exitosamente',
|
|
@@ -695,7 +696,7 @@ export default {
|
|
|
695
696
|
noDescription: 'La descripción de Blocklet es requerida',
|
|
696
697
|
noNote: 'Se requiere la Nota de Lanzamiento',
|
|
697
698
|
inValidVersion: 'Versión de Blocklet no válida',
|
|
698
|
-
noResource: 'Por favor
|
|
699
|
+
noResource: 'Por favor seleccione cargar recurso para incluirlo en el blocklet',
|
|
699
700
|
noFirstDid: 'Por favor, crea Blocklet DID primero'
|
|
700
701
|
},
|
|
701
702
|
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',
|
|
@@ -741,7 +742,9 @@ export default {
|
|
|
741
742
|
branding: 'Describe la información básica de tu Blocklet. Esta información se presentará a los usuarios en la tienda.'
|
|
742
743
|
},
|
|
743
744
|
branding: 'Branding',
|
|
744
|
-
brandingHelp: 'Se mostrará más información sobre el blocklet en la tienda'
|
|
745
|
+
brandingHelp: 'Se mostrará más información sobre el blocklet en la tienda',
|
|
746
|
+
resourceSelect: 'Seleccionar recurso de blocklets',
|
|
747
|
+
resourceUpload: 'Cargar recursos desde su disco'
|
|
745
748
|
},
|
|
746
749
|
titleValidationError: 'La longitud del título debe ser de al menos 3 caracteres',
|
|
747
750
|
descriptionValidationError: 'La longitud de la descripción debe estar entre 3 y 160 caracteres'
|
package/lib/locales/fr.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: 'Télécharger',
|
|
356
356
|
blockletStudio: 'Studio',
|
|
357
357
|
visitStore: 'Visiter le magasin',
|
|
358
|
-
reconnect: 'Reconnecter'
|
|
358
|
+
reconnect: 'Reconnecter',
|
|
359
|
+
change: 'Changer'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: 'Externe',
|
|
@@ -675,7 +676,7 @@ export default {
|
|
|
675
676
|
componentNotRunning: "Le bloc {name} ne fonctionne pas, veuillez le démarrer d'abord",
|
|
676
677
|
releaseEmptyTip: "Il n'y a pas de sorties ici",
|
|
677
678
|
createReleaseTip: "Vous pouvez créer une version du blocklet, ainsi que des notes de version et des ressources, pour que d'autres personnes puissent les utiliser.",
|
|
678
|
-
createRelease: '
|
|
679
|
+
createRelease: 'Créer une version',
|
|
679
680
|
deleteReleaseTip: 'La version ne peut pas être récupérée après la suppression',
|
|
680
681
|
createBlockletDid: 'Créez à partir du portefeuille DID',
|
|
681
682
|
createReleaseSuccess: 'Création de la version réussie',
|
|
@@ -695,7 +696,7 @@ export default {
|
|
|
695
696
|
noDescription: 'La description du Blocklet est requise',
|
|
696
697
|
noNote: 'La note de version est requise',
|
|
697
698
|
inValidVersion: 'Version de Blocklet invalide',
|
|
698
|
-
noResource: 'Veuillez sélectionner
|
|
699
|
+
noResource: 'Veuillez sélectionner les ressources à télécharger à inclure dans le blocklet',
|
|
699
700
|
noFirstDid: "Veuillez créer d'abord un DID de Blocklet"
|
|
700
701
|
},
|
|
701
702
|
packTip: "Actuellement, les bloclets peuvent être installés directement en tant qu'applications. Les composants et les configurations d'application seront automatiquement inclus dans le bloclet.",
|
|
@@ -741,7 +742,9 @@ export default {
|
|
|
741
742
|
branding: 'Décrivez les informations de base de votre Blocklet. Ces informations seront présentées aux utilisateurs dans le magasin.'
|
|
742
743
|
},
|
|
743
744
|
branding: 'Branding',
|
|
744
|
-
brandingHelp: "Plus d'informations sur le blocklet seront affichées dans le magasin"
|
|
745
|
+
brandingHelp: "Plus d'informations sur le blocklet seront affichées dans le magasin",
|
|
746
|
+
resourceSelect: 'Sélectionnez une ressource des blocklets',
|
|
747
|
+
resourceUpload: 'Télécharger des ressources depuis votre disque'
|
|
745
748
|
},
|
|
746
749
|
titleValidationError: "La longueur du titre doit être d'au moins 3 caractères",
|
|
747
750
|
descriptionValidationError: 'La longueur de la description doit être comprise entre 3 et 160 caractères'
|
package/lib/locales/hi.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: 'अपलोड करें',
|
|
356
356
|
blockletStudio: 'स्टूडियो',
|
|
357
357
|
visitStore: 'स्टोर को देखें',
|
|
358
|
-
reconnect: 'पुनः कनेक्ट करें'
|
|
358
|
+
reconnect: 'पुनः कनेक्ट करें',
|
|
359
|
+
change: 'परिवर्तन'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: 'बाहरी',
|
|
@@ -675,7 +676,7 @@ export default {
|
|
|
675
676
|
componentNotRunning: 'ब्लॉकलेट {name} चल रहा नहीं है, कृपया पहले इसे स्टार्ट करें',
|
|
676
677
|
releaseEmptyTip: 'यहां कोई रिलीज़ नहीं हैं',
|
|
677
678
|
createReleaseTip: 'आप ब्लॉकलेट का एक रिलीज़ बना सकते हैं, रिलीज़ नोट्स और संसाधनों के साथ, जिन्हें दूसरे लोगों का उपयोग कर सकते हैं।',
|
|
678
|
-
createRelease: '
|
|
679
|
+
createRelease: 'रिलीज़ बनाएं',
|
|
679
680
|
deleteReleaseTip: 'हटाने के बाद रिलीज़ को पुनर्प्राप्त नहीं किया जा सकता है',
|
|
680
681
|
createBlockletDid: 'डीआईडी वॉलेट से बनाएं',
|
|
681
682
|
createReleaseSuccess: 'सफलतापूर्वक रिलीज़ बनाया गया',
|
|
@@ -695,7 +696,7 @@ export default {
|
|
|
695
696
|
noDescription: 'ब्लॉकलेट विवरण आवश्यक है',
|
|
696
697
|
noNote: 'रिलीज़ नोट आवश्यक है',
|
|
697
698
|
inValidVersion: 'अमान्य ब्लॉकलेट संस्करण',
|
|
698
|
-
noResource: 'कृपया
|
|
699
|
+
noResource: 'कृपया चुनें, ब्लॉकलेट में शामिल करने के लिए अपलोड संसाधन',
|
|
699
700
|
noFirstDid: 'कृपया पहले ब्लॉकलेट डीआईडी बनाएं'
|
|
700
701
|
},
|
|
701
702
|
packTip: 'वर्तमान में ब्लॉकलेट सीधे अनुप्रयोग के रूप में स्थापित किए जा सकते हैं। कंपोनेंट और अनुप्रयोग कॉन्फ़िगरेशन स्वचालित रूप से ब्लॉकलेट में शामिल किए जाएंगे।',
|
|
@@ -741,7 +742,9 @@ export default {
|
|
|
741
742
|
branding: 'अपने ब्लॉकलेट की मूलभूत जानकारी वर्णित करें। यह जानकारी स्टोर में उपयोगकर्ताओं को प्रस्तुत की जाएगी।'
|
|
742
743
|
},
|
|
743
744
|
branding: 'ब्रांडिंग',
|
|
744
|
-
brandingHelp: 'स्टोर में ब्लॉकलेट के बारे में अधिक जानकारी दी जाएगी'
|
|
745
|
+
brandingHelp: 'स्टोर में ब्लॉकलेट के बारे में अधिक जानकारी दी जाएगी',
|
|
746
|
+
resourceSelect: 'ब्लॉकलेट से संसाधन का चयन करें',
|
|
747
|
+
resourceUpload: 'अपने डिस्क से संसाधन अपलोड करें'
|
|
745
748
|
},
|
|
746
749
|
titleValidationError: 'शीर्षक की लंबाई कम से कम 3 अक्षर होनी चाहिए',
|
|
747
750
|
descriptionValidationError: 'विवरण की लंबाई 3 और 160 वर्णों के बीच होनी चाहिए'
|
package/lib/locales/i18n.db
CHANGED
|
Binary file
|
package/lib/locales/id.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: 'Unggah',
|
|
356
356
|
blockletStudio: 'Studio',
|
|
357
357
|
visitStore: 'Kunjungi Toko',
|
|
358
|
-
reconnect: 'Menghubungkan kembali'
|
|
358
|
+
reconnect: 'Menghubungkan kembali',
|
|
359
|
+
change: 'Perubahan'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: 'Eksternal',
|
|
@@ -675,7 +676,7 @@ export default {
|
|
|
675
676
|
componentNotRunning: 'Blocklet {name} tidak berjalan, harap mulai terlebih dahulu',
|
|
676
677
|
releaseEmptyTip: 'Tidak ada rilis di sini',
|
|
677
678
|
createReleaseTip: 'Anda dapat membuat rilis dari blocklet, bersama dengan catatan rilis dan sumber daya, agar orang lain dapat menggunakannya',
|
|
678
|
-
createRelease: '
|
|
679
|
+
createRelease: 'Membuat rilis',
|
|
679
680
|
deleteReleaseTip: 'Rilis tidak dapat dikembalikan setelah dihapus',
|
|
680
681
|
createBlockletDid: 'Buat dari Dompet DID',
|
|
681
682
|
createReleaseSuccess: 'Rilis berhasil dibuat',
|
|
@@ -695,7 +696,7 @@ export default {
|
|
|
695
696
|
noDescription: 'Deskripsi Blocklet diperlukan',
|
|
696
697
|
noNote: 'Catatan Rilis diperlukan',
|
|
697
698
|
inValidVersion: 'Versi Blok Tidak Valid',
|
|
698
|
-
noResource: '
|
|
699
|
+
noResource: 'Silahkan pilihunggah sumber daya untuk disertakan dalam blocklet',
|
|
699
700
|
noFirstDid: 'Silakan buat DID Blocklet terlebih dahulu'
|
|
700
701
|
},
|
|
701
702
|
packTip: 'Saat ini, blok dapat diinstal langsung sebagai aplikasi. Komponen dan konfigurasi aplikasi akan secara otomatis disertakan dalam Blocklet.',
|
|
@@ -741,7 +742,9 @@ export default {
|
|
|
741
742
|
branding: 'Deskripsikan informasi dasar tentang Blocklet Anda. Informasi ini akan ditampilkan kepada pengguna di toko.'
|
|
742
743
|
},
|
|
743
744
|
branding: 'Branding',
|
|
744
|
-
brandingHelp: 'Informasi lebih lanjut tentang blocklet akan ditampilkan di Toko'
|
|
745
|
+
brandingHelp: 'Informasi lebih lanjut tentang blocklet akan ditampilkan di Toko',
|
|
746
|
+
resourceSelect: 'Pilih sumber dari blocklets',
|
|
747
|
+
resourceUpload: 'Unggah sumber daya dari disk Anda'
|
|
745
748
|
},
|
|
746
749
|
titleValidationError: 'Panjang judul harus setidaknya 3 karakter',
|
|
747
750
|
descriptionValidationError: 'Panjang deskripsi harus antara 3 dan 160 karakter.'
|
package/lib/locales/ja.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: 'アップロード',
|
|
356
356
|
blockletStudio: 'スタジオ',
|
|
357
357
|
visitStore: '店を訪れる',
|
|
358
|
-
reconnect: '再接続する'
|
|
358
|
+
reconnect: '再接続する',
|
|
359
|
+
change: '変更'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: '外部',
|
|
@@ -675,7 +676,7 @@ export default {
|
|
|
675
676
|
componentNotRunning: 'Blocklet {name} は実行されていません、まず起動してください',
|
|
676
677
|
releaseEmptyTip: 'ここにはリリースがありません',
|
|
677
678
|
createReleaseTip: '他の人が使用できるように、リリースノートやリソースと共にブロックをリリースすることができます',
|
|
678
|
-
createRelease: '
|
|
679
|
+
createRelease: 'リリースを作成',
|
|
679
680
|
deleteReleaseTip: '削除後、リリースは復元できません',
|
|
680
681
|
createBlockletDid: 'DIDウォレットから作成',
|
|
681
682
|
createReleaseSuccess: 'リリースが正常に作成されました',
|
|
@@ -695,7 +696,7 @@ export default {
|
|
|
695
696
|
noDescription: 'Blockletの説明が必要です',
|
|
696
697
|
noNote: 'リリースノートが必要です',
|
|
697
698
|
inValidVersion: '無効な Blocklet バージョン',
|
|
698
|
-
noResource: '
|
|
699
|
+
noResource: 'ブロックレットに含めるアップロードリソースを選択してください',
|
|
699
700
|
noFirstDid: '最初にBlocklet DIDを作成してください'
|
|
700
701
|
},
|
|
701
702
|
packTip: '現在、Blockletとしてブロックを直接アプリケーションとしてインストールすることができます。コンポーネントとアプリケーションの設定は自動的にBlockletに含まれます',
|
|
@@ -741,7 +742,9 @@ export default {
|
|
|
741
742
|
branding: 'ブロックレットの基本情報を説明してください。この情報はストアのユーザーに表示されます。'
|
|
742
743
|
},
|
|
743
744
|
branding: 'ブランディング',
|
|
744
|
-
brandingHelp: 'ストアにブロックレットの詳細情報が表示されます'
|
|
745
|
+
brandingHelp: 'ストアにブロックレットの詳細情報が表示されます',
|
|
746
|
+
resourceSelect: 'ブロックレットからリソースを選択する',
|
|
747
|
+
resourceUpload: 'ディスクからリソースをアップロードする'
|
|
745
748
|
},
|
|
746
749
|
titleValidationError: 'タイトルの長さは最低3文字以上である必要があります',
|
|
747
750
|
descriptionValidationError: '説明の長さは3から160文字の間でなければなりません'
|
package/lib/locales/ko.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: '업로드',
|
|
356
356
|
blockletStudio: '스튜디오',
|
|
357
357
|
visitStore: '가게 방문하기',
|
|
358
|
-
reconnect: '재연결'
|
|
358
|
+
reconnect: '재연결',
|
|
359
|
+
change: '변경'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: '외부의',
|
|
@@ -675,7 +676,7 @@ export default {
|
|
|
675
676
|
componentNotRunning: '{name} 블록릿이 실행되고 있지 않습니다, 먼저 시작하십시오',
|
|
676
677
|
releaseEmptyTip: '여기에는 출시 정보가 없습니다',
|
|
677
678
|
createReleaseTip: '다른 사람들이 사용할 수 있도록 블록릿의 릴리스와 릴리스 노트 및 자원을 생성할 수 있습니다',
|
|
678
|
-
createRelease: '
|
|
679
|
+
createRelease: '릴리스 생성',
|
|
679
680
|
deleteReleaseTip: '삭제 후에는 복구할 수 없는 릴리스입니다',
|
|
680
681
|
createBlockletDid: 'DID 지갑에서 작성',
|
|
681
682
|
createReleaseSuccess: '릴리스가 성공적으로 생성되었습니다',
|
|
@@ -695,7 +696,7 @@ export default {
|
|
|
695
696
|
noDescription: 'Blocklet 설명이 필요합니다',
|
|
696
697
|
noNote: '릴리즈 노트가 필요합니다',
|
|
697
698
|
inValidVersion: '잘못된 블록릿 버전',
|
|
698
|
-
noResource: '
|
|
699
|
+
noResource: '블록렛에 포함할 업로드 리소스를 선택하십시오',
|
|
699
700
|
noFirstDid: '먼저 Blocklet DID를 생성하세요'
|
|
700
701
|
},
|
|
701
702
|
packTip: '현재 블록렛은 직접 애플리케이션으로 설치할 수 있습니다. 컴포넌트와 애플리케이션 구성은 자동으로 블록렛에 포함됩니다',
|
|
@@ -741,7 +742,9 @@ export default {
|
|
|
741
742
|
branding: 'Blocklet의 기본 정보를 설명하세요. 이 정보는 상점에 사용자에게 제공됩니다.'
|
|
742
743
|
},
|
|
743
744
|
branding: '브랜딩',
|
|
744
|
-
brandingHelp: '블록릿에 대한 자세한 정보가 스토어에 표시됩니다'
|
|
745
|
+
brandingHelp: '블록릿에 대한 자세한 정보가 스토어에 표시됩니다',
|
|
746
|
+
resourceSelect: '블록릿에서 리소스 선택',
|
|
747
|
+
resourceUpload: '디스크에서 리소스 업로드하기'
|
|
745
748
|
},
|
|
746
749
|
titleValidationError: '제목 길이는 최소 3자 이상이어야 합니다',
|
|
747
750
|
descriptionValidationError: '설명 길이는 3에서 160자 사이여야 합니다'
|
package/lib/locales/pt.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: 'Upload',
|
|
356
356
|
blockletStudio: 'Estúdio',
|
|
357
357
|
visitStore: 'Visite a loja',
|
|
358
|
-
reconnect: 'Reconectar'
|
|
358
|
+
reconnect: 'Reconectar',
|
|
359
|
+
change: 'Mudança'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: 'Externo',
|
|
@@ -675,7 +676,7 @@ export default {
|
|
|
675
676
|
componentNotRunning: 'O Blocklet {name} não está em execução, por favor, inicie-o primeiro',
|
|
676
677
|
releaseEmptyTip: 'Não há nenhum lançamento aqui',
|
|
677
678
|
createReleaseTip: 'Você pode criar um lançamento do blocklet, juntamente com notas de lançamento e recursos, para que outras pessoas possam usar',
|
|
678
|
-
createRelease: '
|
|
679
|
+
createRelease: 'Criar lançamento',
|
|
679
680
|
deleteReleaseTip: 'A liberação não pode ser recuperada após exclusão',
|
|
680
681
|
createBlockletDid: 'Criar a partir da Carteira DID',
|
|
681
682
|
createReleaseSuccess: 'Lançamento criado com sucesso',
|
|
@@ -695,7 +696,7 @@ export default {
|
|
|
695
696
|
noDescription: 'A descrição do Blocklet é obrigatória',
|
|
696
697
|
noNote: 'Nota de lançamento é obrigatória',
|
|
697
698
|
inValidVersion: 'Versão de Bloco Inválida',
|
|
698
|
-
noResource: 'Por favor, selecione o recurso
|
|
699
|
+
noResource: 'Por favor, selecione o recurso para ser incluído no blocklet',
|
|
699
700
|
noFirstDid: 'Por favor, crie um DID do Blocklet primeiro'
|
|
700
701
|
},
|
|
701
702
|
packTip: 'Atualmente, os blocos podem ser instalados diretamente como aplicativos. Componentes e configurações de aplicativos serão automaticamente incluídos no Blocklet.',
|
|
@@ -741,7 +742,9 @@ export default {
|
|
|
741
742
|
branding: 'Descreva as informações básicas do seu Blocklet. Essas informações serão apresentadas aos usuários na loja.'
|
|
742
743
|
},
|
|
743
744
|
branding: 'Marca',
|
|
744
|
-
brandingHelp: 'Mais informações sobre o blocklet serão exibidas na Loja'
|
|
745
|
+
brandingHelp: 'Mais informações sobre o blocklet serão exibidas na Loja',
|
|
746
|
+
resourceSelect: 'Selecionar recurso dos blocos',
|
|
747
|
+
resourceUpload: 'Carregar recursos do seu disco'
|
|
745
748
|
},
|
|
746
749
|
titleValidationError: 'O comprimento do título deve ter pelo menos 3 caracteres',
|
|
747
750
|
descriptionValidationError: 'O comprimento da descrição deve estar entre 3 e 160 caracteres.'
|
package/lib/locales/ru.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: 'Загрузить',
|
|
356
356
|
blockletStudio: 'Студия',
|
|
357
357
|
visitStore: 'Посетите магазин',
|
|
358
|
-
reconnect: 'Восстановить соединение'
|
|
358
|
+
reconnect: 'Восстановить соединение',
|
|
359
|
+
change: 'Изменение'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: 'Внешний',
|
|
@@ -675,7 +676,7 @@ export default {
|
|
|
675
676
|
componentNotRunning: 'Блоклет {name} не запущен, пожалуйста, сначала запустите его',
|
|
676
677
|
releaseEmptyTip: 'Здесь нет никаких релизов',
|
|
677
678
|
createReleaseTip: 'Вы можете создать релиз блоклета вместе с примечаниями к релизу и ресурсами для использования другими людьми.',
|
|
678
|
-
createRelease: '
|
|
679
|
+
createRelease: 'Создать релиз',
|
|
679
680
|
deleteReleaseTip: 'После удаления версия не может быть восстановлена',
|
|
680
681
|
createBlockletDid: 'Создать из кошелька DID',
|
|
681
682
|
createReleaseSuccess: 'Релиз успешно создан',
|
|
@@ -695,7 +696,7 @@ export default {
|
|
|
695
696
|
noDescription: 'Требуется описание блокировки',
|
|
696
697
|
noNote: 'Требуется версия примечания',
|
|
697
698
|
inValidVersion: 'Неверная версия блоклета',
|
|
698
|
-
noResource: 'Пожалуйста, выберите
|
|
699
|
+
noResource: 'Пожалуйста, выберите загружаемые ресурсы для включения в блоклет',
|
|
699
700
|
noFirstDid: 'Пожалуйста, создайте сначала Blocklet DID'
|
|
700
701
|
},
|
|
701
702
|
packTip: 'В настоящее время блоклеты могут быть установлены непосредственно в качестве приложений. Компоненты и конфигурации приложений будут автоматически включены в блоклет.',
|
|
@@ -741,7 +742,9 @@ export default {
|
|
|
741
742
|
branding: 'Опишите основную информацию о вашем блоклете. Эта информация будет представлена пользователям в магазине.'
|
|
742
743
|
},
|
|
743
744
|
branding: 'Брендинг',
|
|
744
|
-
brandingHelp: 'Больше информации о блоклете будет отображаться в магазине'
|
|
745
|
+
brandingHelp: 'Больше информации о блоклете будет отображаться в магазине',
|
|
746
|
+
resourceSelect: 'Выберите ресурс из блоклетов',
|
|
747
|
+
resourceUpload: 'Загрузить ресурсы с вашего диска'
|
|
745
748
|
},
|
|
746
749
|
titleValidationError: 'Длина заголовка должна быть не менее 3 символов',
|
|
747
750
|
descriptionValidationError: 'Длина описания должна быть от 3 до 160 символов'
|
package/lib/locales/th.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: 'อัปโหลด',
|
|
356
356
|
blockletStudio: 'สตูดิโอ',
|
|
357
357
|
visitStore: 'เยี่ยมชมร้านค้า',
|
|
358
|
-
reconnect: 'เชื่อมต่อใหม่'
|
|
358
|
+
reconnect: 'เชื่อมต่อใหม่',
|
|
359
|
+
change: 'เปลี่ยนแปลง'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: 'ภายนอก',
|
|
@@ -675,7 +676,7 @@ export default {
|
|
|
675
676
|
componentNotRunning: 'Blocklet {name} ไม่ทำงาน โปรดเริ่มใช้งานก่อน',
|
|
676
677
|
releaseEmptyTip: 'ไม่มีการเผยแพร่ที่นี่',
|
|
677
678
|
createReleaseTip: 'คุณสามารถสร้างการเปิดตัวของโบล็กเล็ตพร้อมกับบันทึกการเปิดตัวและทรัพยากรสำหรับผู้อื่นที่ต้องการใช้',
|
|
678
|
-
createRelease: '
|
|
679
|
+
createRelease: 'สร้างการปล่อย',
|
|
679
680
|
deleteReleaseTip: 'ไม่สามารถกู้คืนการเผยแพร่หลังจากการลบ',
|
|
680
681
|
createBlockletDid: 'สร้างจากกระเป๋าเงินดิจิทัล',
|
|
681
682
|
createReleaseSuccess: 'สร้างการเผยแพร่เรียบร้อยแล้ว',
|
|
@@ -695,7 +696,7 @@ export default {
|
|
|
695
696
|
noDescription: 'คำอธิบาย Blocklet จำเป็น',
|
|
696
697
|
noNote: 'ต้องใช้หมายเหตุรุ่น',
|
|
697
698
|
inValidVersion: 'รุ่นบล็อกที่ไม่ถูกต้อง',
|
|
698
|
-
noResource: '
|
|
699
|
+
noResource: 'โปรดเลือกอัปโหลดทรัพยากรเพื่อรวมอยู่ในบล็อกเล็ท',
|
|
699
700
|
noFirstDid: 'โปรดสร้าง Blocklet DID ก่อน'
|
|
700
701
|
},
|
|
701
702
|
packTip: 'ปัจจุบัน บล็อกเล็ตสามารถติดตั้งเป็นแอปพลิเคชันโดยตรงได้ เราจะรวมองค์ประกอบและการกำหนดค่าแอปพลิเคชันโดยอัตโนมัติใน Blocklet',
|
|
@@ -741,7 +742,9 @@ export default {
|
|
|
741
742
|
branding: 'อธิบายข้อมูลพื้นฐานของ Blocklet ของคุณ ข้อมูลเหล่านี้จะถูกนำเสนอให้ผู้ใช้ในร้านค้า'
|
|
742
743
|
},
|
|
743
744
|
branding: 'การติดตามแบรนด์',
|
|
744
|
-
brandingHelp: 'ข้อมูลเพิ่มเติมเกี่ยวกับ blocklet จะแสดงในร้านค้า'
|
|
745
|
+
brandingHelp: 'ข้อมูลเพิ่มเติมเกี่ยวกับ blocklet จะแสดงในร้านค้า',
|
|
746
|
+
resourceSelect: 'เลือกทรัพยากรจากบล็อกเล็ต',
|
|
747
|
+
resourceUpload: 'อัปโหลดทรัพยากรจากดิสก์ของคุณ'
|
|
745
748
|
},
|
|
746
749
|
titleValidationError: 'ความยาวของชื่อต้องมีอย่างน้อย 3 ตัวอักษร',
|
|
747
750
|
descriptionValidationError: 'ความยาวคำอธิบายต้องอยู่ระหว่าง 3 ถึง 160 ตัวอักษร.'
|
package/lib/locales/vi.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: 'Tải lên',
|
|
356
356
|
blockletStudio: 'Studio',
|
|
357
357
|
visitStore: 'Ghé cửa hàng',
|
|
358
|
-
reconnect: 'Kết nối lại'
|
|
358
|
+
reconnect: 'Kết nối lại',
|
|
359
|
+
change: 'Thay đổi'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: 'Bên ngoài',
|
|
@@ -675,7 +676,7 @@ export default {
|
|
|
675
676
|
componentNotRunning: 'Blocklet {name} không hoạt động, vui lòng khởi chạy trước',
|
|
676
677
|
releaseEmptyTip: 'Không có bản phát hành ở đây',
|
|
677
678
|
createReleaseTip: 'Bạn có thể tạo một phiên bản của blocklet, cùng với ghi chú về phiên bản và tài nguyên, để mọi người khác có thể sử dụng',
|
|
678
|
-
createRelease: '
|
|
679
|
+
createRelease: 'Tạo bản phát hành',
|
|
679
680
|
deleteReleaseTip: 'Phiên bản không thể khôi phục sau khi xóa',
|
|
680
681
|
createBlockletDid: 'Tạo từ Ví Điện tử DID',
|
|
681
682
|
createReleaseSuccess: 'Phát hành được tạo thành công',
|
|
@@ -695,7 +696,7 @@ export default {
|
|
|
695
696
|
noDescription: 'Yêu cầu miêu tả Blocklet',
|
|
696
697
|
noNote: 'Cần có Ghi chú phát hành',
|
|
697
698
|
inValidVersion: 'Phiên bản Blocklet không hợp lệ',
|
|
698
|
-
noResource: 'Vui lòng chọn tài nguyên để
|
|
699
|
+
noResource: 'Vui lòng chọn tài nguyên tải lên để bao gồm trong blocklet',
|
|
699
700
|
noFirstDid: 'Vui lòng tạo Blocklet DID trước'
|
|
700
701
|
},
|
|
701
702
|
packTip: 'Hiện tại, blocklet có thể được cài đặt trực tiếp như các ứng dụng. Các thành phần và cấu hình ứng dụng sẽ được tự động bao gồm trong Blocklet.',
|
|
@@ -741,7 +742,9 @@ export default {
|
|
|
741
742
|
branding: 'Mô tả thông tin cơ bản về Blocklet của bạn. Thông tin này sẽ được trình bày cho người dùng trong cửa hàng.'
|
|
742
743
|
},
|
|
743
744
|
branding: 'Thương hiệu',
|
|
744
|
-
brandingHelp: 'Thông tin chi tiết về blocklet sẽ được hiển thị trên Cửa hàng'
|
|
745
|
+
brandingHelp: 'Thông tin chi tiết về blocklet sẽ được hiển thị trên Cửa hàng',
|
|
746
|
+
resourceSelect: 'Chọn tài nguyên từ blocklets',
|
|
747
|
+
resourceUpload: 'Tải tài nguyên từ ổ đĩa của bạn'
|
|
745
748
|
},
|
|
746
749
|
titleValidationError: 'Độ dài tiêu đề phải ít nhất 3 ký tự',
|
|
747
750
|
descriptionValidationError: 'Chiều dài mô tả phải từ 3 đến 160 ký tự.'
|
package/lib/locales/zh-tw.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: '上傳',
|
|
356
356
|
blockletStudio: 'Studio',
|
|
357
357
|
visitStore: '訪問 Store',
|
|
358
|
-
reconnect: '重新連接'
|
|
358
|
+
reconnect: '重新連接',
|
|
359
|
+
change: '更改'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: '外部的',
|
|
@@ -675,7 +676,7 @@ export default {
|
|
|
675
676
|
componentNotRunning: 'Blocklet {name} 沒有運行,請先啟動它',
|
|
676
677
|
releaseEmptyTip: '這裡沒有任何發布',
|
|
677
678
|
createReleaseTip: '您可以創建一個區塊釋出,附帶釋出說明和資源,供其他人使用',
|
|
678
|
-
createRelease: '
|
|
679
|
+
createRelease: '創建版本',
|
|
679
680
|
deleteReleaseTip: '刪除後無法還原發布',
|
|
680
681
|
createBlockletDid: '從DID錢包創建',
|
|
681
682
|
createReleaseSuccess: '發佈成功',
|
|
@@ -695,7 +696,7 @@ export default {
|
|
|
695
696
|
noDescription: '需要提供 Blocklet 描述',
|
|
696
697
|
noNote: '需要提供發佈說明',
|
|
697
698
|
inValidVersion: '無效的 Blocklet 版本',
|
|
698
|
-
noResource: '
|
|
699
|
+
noResource: '請選擇上傳的資源以包含在區塊中',
|
|
699
700
|
noFirstDid: '請先建立Blocklet DID'
|
|
700
701
|
},
|
|
701
702
|
packTip: '目前,blocklet可以直接安裝為應用程序。組件和應用程序配置將自動包含在blocklet中',
|
|
@@ -741,7 +742,9 @@ export default {
|
|
|
741
742
|
branding: '描述您的 Blocklet 的基本資訊。此資訊將呈現給商店使用者。'
|
|
742
743
|
},
|
|
743
744
|
branding: '品牌',
|
|
744
|
-
brandingHelp: '將在商店中顯示有關區塊的更多信息'
|
|
745
|
+
brandingHelp: '將在商店中顯示有關區塊的更多信息',
|
|
746
|
+
resourceSelect: '從 blocklets 選擇資源',
|
|
747
|
+
resourceUpload: '從您的磁盤上傳資源'
|
|
745
748
|
},
|
|
746
749
|
titleValidationError: '標題長度必須至少為3到40個字符',
|
|
747
750
|
descriptionValidationError: '描述長度必須介於3到160個字符之間'
|
package/lib/locales/zh.js
CHANGED
|
@@ -355,7 +355,8 @@ export default {
|
|
|
355
355
|
upload: '上传',
|
|
356
356
|
blockletStudio: 'Studio',
|
|
357
357
|
visitStore: '访问 Store',
|
|
358
|
-
reconnect: '重新连接'
|
|
358
|
+
reconnect: '重新连接',
|
|
359
|
+
change: '更改'
|
|
359
360
|
},
|
|
360
361
|
blocklet: {
|
|
361
362
|
external: '外部',
|
|
@@ -680,7 +681,7 @@ export default {
|
|
|
680
681
|
resourceEmptyTip: '没有可用的资源',
|
|
681
682
|
releaseEmptyTip: '这里没有任何发布',
|
|
682
683
|
createReleaseTip: '您可以创建 Blocklet 新版本,在发布中包含说明和资源,以供其他人使用',
|
|
683
|
-
createRelease: '
|
|
684
|
+
createRelease: '创建版本',
|
|
684
685
|
deleteReleaseTip: '此发布删除后不可恢复,是否继续?',
|
|
685
686
|
createBlockletDid: '通过 DID 钱包创建',
|
|
686
687
|
createReleaseSuccess: '发布成功',
|
|
@@ -705,7 +706,7 @@ export default {
|
|
|
705
706
|
noFirstDid: '请先填写 Blocklet DID',
|
|
706
707
|
noTitle: '请填写 Blocklet 名称',
|
|
707
708
|
noVersion: '请填写 Blocklet 版本号',
|
|
708
|
-
noResource: '
|
|
709
|
+
noResource: '请选择上传的资源以包含在区块中',
|
|
709
710
|
noDescription: '请填写 Blocklet 描述',
|
|
710
711
|
noNote: '请填写 发布说明',
|
|
711
712
|
inValidVersion: '无效的 Blocklet 版本'
|
|
@@ -744,7 +745,9 @@ export default {
|
|
|
744
745
|
branding: '描述您的区块链应用的基本信息。此信息将在商店向用户展示。'
|
|
745
746
|
},
|
|
746
747
|
branding: '品牌',
|
|
747
|
-
brandingHelp: '将在商店中显示有关区块链的更多信息'
|
|
748
|
+
brandingHelp: '将在商店中显示有关区块链的更多信息',
|
|
749
|
+
resourceSelect: '从 blocklets 选择资源',
|
|
750
|
+
resourceUpload: '从您的磁盘上传资源'
|
|
748
751
|
},
|
|
749
752
|
titleValidationError: '标题长度必须至少为3到40个字符',
|
|
750
753
|
descriptionValidationError: '描述长度必须在3到160个字符之间'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abtnode/ux",
|
|
3
|
-
"version": "1.16.28-beta-
|
|
3
|
+
"version": "1.16.28-beta-cec13afc",
|
|
4
4
|
"description": "UX components shared across abtnode packages",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
|
|
26
26
|
"license": "Apache-2.0",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@abtnode/auth": "1.16.28-beta-
|
|
29
|
-
"@abtnode/constant": "1.16.28-beta-
|
|
30
|
-
"@abtnode/util": "1.16.28-beta-
|
|
28
|
+
"@abtnode/auth": "1.16.28-beta-cec13afc",
|
|
29
|
+
"@abtnode/constant": "1.16.28-beta-cec13afc",
|
|
30
|
+
"@abtnode/util": "1.16.28-beta-cec13afc",
|
|
31
31
|
"@ahooksjs/use-url-state": "^3.5.1",
|
|
32
32
|
"@arcblock/did": "^1.18.123",
|
|
33
33
|
"@arcblock/did-connect": "^2.10.0",
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
"@arcblock/react-hooks": "^2.10.0",
|
|
38
38
|
"@arcblock/terminal": "^2.10.0",
|
|
39
39
|
"@arcblock/ux": "^2.10.0",
|
|
40
|
-
"@blocklet/constant": "1.16.28-beta-
|
|
40
|
+
"@blocklet/constant": "1.16.28-beta-cec13afc",
|
|
41
41
|
"@blocklet/launcher-layout": "2.3.22",
|
|
42
42
|
"@blocklet/list": "^0.12.114",
|
|
43
|
-
"@blocklet/meta": "1.16.28-beta-
|
|
43
|
+
"@blocklet/meta": "1.16.28-beta-cec13afc",
|
|
44
44
|
"@blocklet/ui-react": "^2.10.0",
|
|
45
45
|
"@blocklet/uploader": "^0.1.10",
|
|
46
46
|
"@emotion/react": "^11.10.4",
|
|
@@ -107,5 +107,5 @@
|
|
|
107
107
|
"jest": "^29.7.0",
|
|
108
108
|
"jest-environment-jsdom": "^29.7.0"
|
|
109
109
|
},
|
|
110
|
-
"gitHead": "
|
|
110
|
+
"gitHead": "6ab117057365e4687296dba666f27470b4e31af2"
|
|
111
111
|
}
|