@abtnode/ux 1.16.26-beta-4831bf3f → 1.16.26-beta-346cba92

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 (53) hide show
  1. package/es/blocklet/actions.js +32 -11
  2. package/es/blocklet/component/add-component-core.js +28 -29
  3. package/es/blocklet/component/select-store.js +9 -10
  4. package/es/blocklet/icons.js +3 -1
  5. package/es/blocklet/publish/connect-store-list.js +8 -4
  6. package/es/blocklet/publish/release-list.js +0 -1
  7. package/es/locales/ar.js +5 -2
  8. package/es/locales/de.js +5 -2
  9. package/es/locales/en.js +3 -0
  10. package/es/locales/es.js +5 -2
  11. package/es/locales/fr.js +5 -2
  12. package/es/locales/hi.js +5 -2
  13. package/es/locales/i18n.db +0 -0
  14. package/es/locales/id.js +5 -2
  15. package/es/locales/ja.js +5 -2
  16. package/es/locales/ko.js +5 -2
  17. package/es/locales/pt.js +5 -2
  18. package/es/locales/ru.js +5 -2
  19. package/es/locales/th.js +5 -2
  20. package/es/locales/vi.js +5 -2
  21. package/es/locales/zh-tw.js +6 -3
  22. package/es/locales/zh.js +6 -3
  23. package/es/store/connect-actions.js +130 -0
  24. package/es/store/delete.js +8 -2
  25. package/es/store/item.js +5 -9
  26. package/es/util/join-url-keep-search.js +15 -0
  27. package/lib/blocklet/actions.js +36 -13
  28. package/lib/blocklet/component/add-component-core.js +27 -28
  29. package/lib/blocklet/component/select-store.js +9 -10
  30. package/lib/blocklet/icons.js +3 -1
  31. package/lib/blocklet/publish/connect-store-list.js +8 -4
  32. package/lib/blocklet/publish/release-list.js +0 -1
  33. package/lib/locales/ar.js +5 -2
  34. package/lib/locales/de.js +5 -2
  35. package/lib/locales/en.js +3 -0
  36. package/lib/locales/es.js +5 -2
  37. package/lib/locales/fr.js +5 -2
  38. package/lib/locales/hi.js +5 -2
  39. package/lib/locales/i18n.db +0 -0
  40. package/lib/locales/id.js +5 -2
  41. package/lib/locales/ja.js +5 -2
  42. package/lib/locales/ko.js +5 -2
  43. package/lib/locales/pt.js +5 -2
  44. package/lib/locales/ru.js +5 -2
  45. package/lib/locales/th.js +5 -2
  46. package/lib/locales/vi.js +5 -2
  47. package/lib/locales/zh-tw.js +6 -3
  48. package/lib/locales/zh.js +6 -3
  49. package/lib/store/connect-actions.js +138 -0
  50. package/lib/store/delete.js +8 -2
  51. package/lib/store/item.js +5 -9
  52. package/lib/util/join-url-keep-search.js +22 -0
  53. package/package.json +7 -7
@@ -29,6 +29,7 @@ import { getServerUrl } from './util';
29
29
  import { useNodeContext } from '../contexts/node';
30
30
  import Confirm from '../confirm';
31
31
  import Icons from './icons';
32
+ import joinUrlKeepSearch from '../util/join-url-keep-search';
32
33
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
33
34
  export default function BlockletActions({
34
35
  blocklet,
@@ -36,6 +37,7 @@ export default function BlockletActions({
36
37
  onComplete,
37
38
  variant,
38
39
  hasPermission,
40
+ getComponentUrl,
39
41
  useBlockletUrlEvaluation,
40
42
  ...rest
41
43
  }) {
@@ -64,6 +66,14 @@ export default function BlockletActions({
64
66
  const {
65
67
  inService
66
68
  } = node;
69
+ const handleOpenDashboard = () => {
70
+ const mountPoint = `/${blocklet.mountPoint || '/'}`.replace(/\/+/g, '/');
71
+ const href = getComponentUrl?.({
72
+ mountPoint,
73
+ blocklet
74
+ });
75
+ window.open(joinUrlKeepSearch(href, '.well-known/service/admin'));
76
+ };
67
77
  const createHandler = (action, fn, requireUserConfirm = false) => async () => {
68
78
  const onConfirm = async params => {
69
79
  onStart({
@@ -329,17 +339,26 @@ export default function BlockletActions({
329
339
  name: t('common.restart'),
330
340
  handler: createHandler('restart', node.api.restartBlocklet, true),
331
341
  disabled: disableStart || blocklet.status !== 'running'
332
- },
333
- // hidden reload: https://github.com/ArcBlock/blocklet-server/issues/8655
334
- // {
335
- // action: 'reload',
336
- // icon: Icons.Reload,
337
- // name: t('common.reload'),
338
- // handler: createHandler('reload', node.api.reloadBlocklet),
339
- // disabled: disableStart || blocklet.status !== 'running',
340
- // },
341
-
342
- isDownloading(blocklet.status) ? cancelDownloadAction : removeAction, {
342
+ }, isDownloading(blocklet.status) ? cancelDownloadAction : removeAction, {
343
+ separator: true
344
+ }, !inService ? {
345
+ action: 'dashboard',
346
+ icon: ({
347
+ style,
348
+ ...restProps
349
+ }) => /*#__PURE__*/_jsx(Icons.Dashboard, {
350
+ ...restProps,
351
+ style: {
352
+ ...style,
353
+ width: '26px',
354
+ height: '26px',
355
+ paddingRight: '3px'
356
+ }
357
+ }),
358
+ name: t('sidebar.dashboard'),
359
+ handler: handleOpenDashboard,
360
+ disabled: disableStart || blocklet.status !== 'running'
361
+ } : null, {
343
362
  separator: true
344
363
  }, {
345
364
  onlyInMenu: true,
@@ -467,6 +486,7 @@ export default function BlockletActions({
467
486
  });
468
487
  }
469
488
  BlockletActions.propTypes = {
489
+ getComponentUrl: PropTypes.func,
470
490
  blocklet: PropTypes.object.isRequired,
471
491
  onStart: PropTypes.func.isRequired,
472
492
  onComplete: PropTypes.func.isRequired,
@@ -475,6 +495,7 @@ BlockletActions.propTypes = {
475
495
  useBlockletUrlEvaluation: PropTypes.func
476
496
  };
477
497
  BlockletActions.defaultProps = {
498
+ getComponentUrl: null,
478
499
  variant: 'menu',
479
500
  hasPermission: false,
480
501
  useBlockletUrlEvaluation: () => ({
@@ -1,45 +1,45 @@
1
1
  /* eslint-disable react/no-unstable-nested-components */
2
- import { useState, useRef, useImperativeHandle, forwardRef, useEffect } from 'react';
3
2
  import PropTypes from 'prop-types';
3
+ import { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';
4
4
  import { useParams } from 'react-router-dom';
5
- import uniqBy from 'lodash/uniqBy';
6
- import flatten from 'lodash/flatten';
7
- import isEmpty from 'lodash/isEmpty';
8
- import isNil from 'lodash/isNil';
9
- import PageHeader from '@blocklet/launcher-layout/lib/page-header';
10
- import Spinner from '@mui/material/CircularProgress';
11
- import Typography from '@mui/material/Typography';
12
- import TextField from '@mui/material/TextField';
13
- import AddIcon from '@mui/icons-material/Link';
14
- import CheckIcon from '@mui/icons-material/Check';
15
- import useMediaQuery from '@mui/material/useMediaQuery';
16
- import styled from '@emotion/styled';
5
+ import { isInServerlessMode } from '@abtnode/util/lib/serverless';
6
+ import Alert from '@arcblock/ux/lib/Alert';
7
+ import AnimationWaiter from '@arcblock/ux/lib/AnimationWaiter';
8
+ import Button from '@arcblock/ux/lib/Button';
17
9
  import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
18
- import { BLOCKLET_CONFIGURABLE_KEY, BlockletStatus, BlockletEvents, BLOCKLET_APP_SPACE_REQUIREMENT } from '@blocklet/constant';
10
+ import { BLOCKLET_APP_SPACE_REQUIREMENT, BLOCKLET_CONFIGURABLE_KEY, BlockletEvents, BlockletStatus } from '@blocklet/constant';
19
11
  import Layout from '@blocklet/launcher-layout';
20
12
  import { StepProvider, useStepContext } from '@blocklet/launcher-layout/lib/context/step';
21
- import Box from '@mui/material/Box';
22
- import { NODE_MODES } from '@abtnode/constant';
23
- import Button from '@arcblock/ux/lib/Button';
24
- import Alert from '@arcblock/ux/lib/Alert';
25
- import AnimationWaiter from '@arcblock/ux/lib/AnimationWaiter';
26
13
  import ResultMessage from '@blocklet/launcher-layout/lib/launch-result-message';
27
- import { getDisplayName, isFreeBlocklet, getSharedConfigObj, hasStartEngine } from '@blocklet/meta/lib/util';
14
+ import PageHeader from '@blocklet/launcher-layout/lib/page-header';
15
+ import styled from '@emotion/styled';
16
+ import CheckIcon from '@mui/icons-material/Check';
17
+ import AddIcon from '@mui/icons-material/Link';
18
+ import Box from '@mui/material/Box';
19
+ import Spinner from '@mui/material/CircularProgress';
20
+ import TextField from '@mui/material/TextField';
21
+ import Typography from '@mui/material/Typography';
22
+ import useMediaQuery from '@mui/material/useMediaQuery';
23
+ import flatten from 'lodash/flatten';
24
+ import isEmpty from 'lodash/isEmpty';
25
+ import isNil from 'lodash/isNil';
26
+ import uniqBy from 'lodash/uniqBy';
28
27
  import urlPathFriendly from '@blocklet/meta/lib/url-path-friendly';
28
+ import { getDisplayName, getSharedConfigObj, hasStartEngine, isFreeBlocklet } from '@blocklet/meta/lib/util';
29
29
  import Toast from '@arcblock/ux/lib/Toast';
30
- import { useNodeContext } from '../../contexts/node';
31
30
  import { useBlockletContext } from '../../contexts/blocklet';
32
- import { getBlockletLogoUrl, getBlockletMetaUrl, isNewStoreUrl, getStoreList, formatError, formatMountPoint } from '../../util';
33
- import SchemaForm from '../../schema-form';
31
+ import { ConfigSpaceProvider } from '../../contexts/config-space';
32
+ import { useNodeContext } from '../../contexts/node';
34
33
  import Required from '../../form/required';
35
- import { ComponentPurchaseSelect } from '../purchase';
36
- import { validatePathPrefix } from '../router/util';
34
+ import SchemaForm from '../../schema-form';
35
+ import { formatError, formatMountPoint, getBlockletLogoUrl, getBlockletMetaUrl, getStoreList, isNewStoreUrl } from '../../util';
37
36
  import Agreement from '../agreement';
38
37
  import InstallFromUrl from '../install-from-url';
38
+ import { ComponentPurchaseSelect } from '../purchase';
39
+ import { validatePathPrefix } from '../router/util';
40
+ import DidSpace from './did-space';
39
41
  import SelectStore from './select-store';
40
42
  import BlockletList from './store-blocklet-list';
41
- import DidSpace from './did-space';
42
- import { ConfigSpaceProvider } from '../../contexts/config-space';
43
43
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
44
44
  const requirePurchase = meta => meta.inStore && isFreeBlocklet(meta) === false;
45
45
  const isRequiredOnSetup = meta => {
@@ -209,7 +209,6 @@ export default function AddComponentCore({
209
209
  const {
210
210
  meta
211
211
  } = component.current;
212
- const isServerlessMode = nodeInfo.mode === NODE_MODES.SERVERLESS;
213
212
  const updateParams = obj => setParams(x => ({
214
213
  ...x,
215
214
  ...obj
@@ -725,7 +724,7 @@ export default function AddComponentCore({
725
724
  }
726
725
  }), /*#__PURE__*/_jsx(SelectStore, {
727
726
  stores: stores,
728
- extra: !isServerlessMode ? /*#__PURE__*/_jsxs(Button, {
727
+ extra: !isInServerlessMode(nodeInfo) ? /*#__PURE__*/_jsxs(Button, {
729
728
  variant: "text",
730
729
  color: "primary",
731
730
  "data-cy": "add-component-from-url",
@@ -1,17 +1,17 @@
1
- import { useState, useRef } from 'react';
2
1
  import PropTypes from 'prop-types';
3
- import styled from '@emotion/styled';
4
- import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
5
- import TextField from '@mui/material/TextField';
6
- import MenuItem from '@mui/material/MenuItem';
7
- import { NODE_MODES } from '@abtnode/constant';
2
+ import { useRef, useState } from 'react';
3
+ import { isInServerlessMode } from '@abtnode/util/lib/serverless';
8
4
  import Button from '@arcblock/ux/lib/Button';
5
+ import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
6
+ import styled from '@emotion/styled';
9
7
  import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
8
+ import MenuItem from '@mui/material/MenuItem';
9
+ import TextField from '@mui/material/TextField';
10
10
  import Typography from '@mui/material/Typography';
11
- import useLocalStorage from 'react-use/lib/useLocalStorage';
12
11
  import uniqBy from 'lodash/uniqBy';
13
- import { useNodeContext } from '../../contexts/node';
12
+ import useLocalStorage from 'react-use/lib/useLocalStorage';
14
13
  import { useBlockletContext } from '../../contexts/blocklet';
14
+ import { useNodeContext } from '../../contexts/node';
15
15
  import AddStore from '../../store/add';
16
16
  import StoreItem from '../../store/item';
17
17
  import { getStoreList } from '../../util';
@@ -52,7 +52,6 @@ export default function SelectStore({
52
52
  protected: true
53
53
  })), ...appStoreList], 'url');
54
54
  const currentRegistry = storeUrl && storeList.find(x => storeUrl === x.url) || storeList[0];
55
- const isServerlessMode = nodeInfo.mode === NODE_MODES.SERVERLESS;
56
55
  return /*#__PURE__*/_jsxs(_Fragment, {
57
56
  children: [/*#__PURE__*/_jsxs(SelectStoreTitle, {
58
57
  children: [/*#__PURE__*/_jsx(Button, {
@@ -126,7 +125,7 @@ export default function SelectStore({
126
125
  }
127
126
  })
128
127
  }, x.url);
129
- }), !isServerlessMode && /*#__PURE__*/_jsx(AddStore, {
128
+ }), !isInServerlessMode(nodeInfo) && /*#__PURE__*/_jsx(AddStore, {
130
129
  disabled: loading,
131
130
  storeList: storeList,
132
131
  teamDid: teamDid,
@@ -7,6 +7,7 @@ import Config from '@mui/icons-material/Settings';
7
7
  import Log from '@mui/icons-material/Receipt';
8
8
  import Group from '@mui/icons-material/Group';
9
9
  import Cancel from '@mui/icons-material/NotInterested';
10
+ import Dashboard from '@arcblock/icons/lib/Dashboard';
10
11
  export default {
11
12
  Start,
12
13
  Stop,
@@ -16,5 +17,6 @@ export default {
16
17
  Config,
17
18
  Log,
18
19
  Group,
19
- Cancel
20
+ Cancel,
21
+ Dashboard
20
22
  };
@@ -10,7 +10,8 @@ function ConnectStoreList({
10
10
  projectId,
11
11
  releaseType,
12
12
  publishedStoreIds,
13
- onPublish
13
+ onPublish,
14
+ onDelete
14
15
  }) {
15
16
  const storeList = blocklet?.settings?.storeList || [];
16
17
  const connectedMap = useMemo(() => {
@@ -37,13 +38,14 @@ function ConnectStoreList({
37
38
  store: x,
38
39
  published: publishedStoreIds?.indexOf(x.id) > -1,
39
40
  connected: !!connectedMap[x.url],
40
- onPublish: onPublish
41
+ onPublish: onPublish,
42
+ onDelete: onDelete
41
43
  })
42
44
  })
43
45
  }, x.url)), /*#__PURE__*/_jsx(AddStore, {
44
46
  onAdd: handleAddStore,
45
47
  teamDid: did,
46
- blockletRegistryList: storeList
48
+ storeList: storeList
47
49
  })]
48
50
  });
49
51
  }
@@ -53,10 +55,12 @@ ConnectStoreList.propTypes = {
53
55
  releaseId: PropTypes.string.isRequired,
54
56
  releaseType: PropTypes.string.isRequired,
55
57
  onPublish: PropTypes.func,
58
+ onDelete: PropTypes.func,
56
59
  publishedStoreIds: PropTypes.arrayOf(PropTypes.string)
57
60
  };
58
61
  ConnectStoreList.defaultProps = {
59
62
  publishedStoreIds: [],
60
- onPublish: () => {}
63
+ onPublish: () => {},
64
+ onDelete: () => {}
61
65
  };
62
66
  export default ConnectStoreList;
@@ -232,7 +232,6 @@ export default function ReleaseList() {
232
232
  installUrl = url.href;
233
233
  downloadUrl = joinUrl(`${WELLKNOWN_SERVICE_PATH_PREFIX}/api/project/${blocklet.meta.did}/${project.id}/${project.lastReleaseId}/download/${(project.lastReleaseFiles || [])[0]}`);
234
234
  }
235
- console.error('--debug--', release);
236
235
  return /*#__PURE__*/_jsxs(Box, {
237
236
  display: "flex",
238
237
  alignItems: "center",
package/es/locales/ar.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'تم التحميل',
354
354
  uploadToStore: 'تحميل إلى المتجر',
355
355
  upload: 'تحميل',
356
- blockletStudio: 'استوديو بلوكليت'
356
+ blockletStudio: 'استوديو بلوكليت',
357
+ visitStore: 'قم بزيارة المتجر',
358
+ reconnect: 'إعادة الاتصال'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'خارجي',
@@ -700,7 +702,8 @@ export default {
700
702
  publishToStoreSuccess: 'تم نشر بلوكليت بنجاح في المتجر',
701
703
  connectStoreSuccess: 'تم الاتصال بمتجر البلوكليت بنجاح',
702
704
  uploadToStoreSuccess: 'تم تحميل بلوكليت بنجاح في المتجر ، تحتاج إلى نشره في المتجر',
703
- viewLastRelease: 'عرض آخر إصدار'
705
+ viewLastRelease: 'عرض آخر إصدار',
706
+ reconnectStoreTip: 'بعد إعادة الاتصال، سيتم ربط مطور جديد. هل أنت متأكد أنك تريد إعادة الاتصال؟'
704
707
  },
705
708
  titleValidationError: 'يجب أن يكون طول العنوان على الأقل 3 أحرف',
706
709
  descriptionValidationError: 'يجب أن تكون طول الوصف بين 3 و 160 حرفًا'
package/es/locales/de.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'Hochgeladen',
354
354
  uploadToStore: 'Upload in den Shop',
355
355
  upload: 'Hochladen',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: 'Besuche den Laden',
358
+ reconnect: 'Verbinden wiederherstellen'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'Extern',
@@ -700,7 +702,8 @@ export default {
700
702
  publishToStoreSuccess: 'Blocklet erfolgreich im Store veröffentlicht',
701
703
  connectStoreSuccess: 'Blocklet Store erfolgreich verbunden',
702
704
  uploadToStoreSuccess: 'Blocklet erfolgreich im Store hochgeladen, du musst es im Store veröffentlichen',
703
- viewLastRelease: 'Letzte Version anzeigen'
705
+ viewLastRelease: 'Letzte Version anzeigen',
706
+ reconnectStoreTip: 'Nach dem erneuten Verbinden wird ein neuer Entwickler zugewiesen. Bist du sicher, dass du dich erneut verbinden möchtest?'
704
707
  },
705
708
  titleValidationError: 'Die Länge des Titels muss mindestens 3 Zeichen betragen',
706
709
  descriptionValidationError: 'Die Beschreibungslänge muss zwischen 3 und 160 Zeichen liegen'
package/es/locales/en.js CHANGED
@@ -242,6 +242,7 @@ export default {
242
242
  noticeTitle: 'Notice',
243
243
  notification: 'Notification',
244
244
  open: 'Open',
245
+ visitStore: 'Visit store',
245
246
  management: 'Management',
246
247
  os: 'Operating System',
247
248
  overview: 'Overview',
@@ -256,6 +257,7 @@ export default {
256
257
  protected: 'Protected',
257
258
  protocol: 'Protocol',
258
259
  purchase: 'Purchase',
260
+ reconnect: 'Reconnect',
259
261
  readMore: 'More',
260
262
  redirect: 'Redirect',
261
263
  redirectCode: 'Redirect Code',
@@ -659,6 +661,7 @@ export default {
659
661
  createBlockletTip: 'You can create new blocklet through existing resources, components, and configuration in this application',
660
662
  createBlocklet: 'New blocklet',
661
663
  deleteBlockletTip: 'The blocklet cannot be recovered after deletion, please confirm',
664
+ reconnectStoreTip: 'After reconnecting, a new developer will be bound. Are you sure you want to reconnect?',
662
665
  componentNotRunning: 'Component {name} is not running, please start it first',
663
666
  releaseEmptyTip: 'There aren’t any releases here',
664
667
  viewLastRelease: 'View last release',
package/es/locales/es.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'Subido',
354
354
  uploadToStore: 'Subir a la tienda',
355
355
  upload: 'Subir',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: 'Visita la tienda',
358
+ reconnect: 'Reconecta'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'Externo',
@@ -700,7 +702,8 @@ export default {
700
702
  publishToStoreSuccess: 'Bloque publicado en la tienda exitosamente',
701
703
  connectStoreSuccess: 'La tienda de Blocklet se conectó correctamente',
702
704
  uploadToStoreSuccess: 'Bloque de carga a la tienda exitosamente, necesitas publicarlo en la tienda',
703
- viewLastRelease: 'Ver última versión'
705
+ viewLastRelease: 'Ver última versión',
706
+ reconnectStoreTip: 'Después de reconectar, se vinculará un nuevo desarrollador. ¿Estás seguro de que deseas reconectar?'
704
707
  },
705
708
  titleValidationError: 'La longitud del título debe ser de al menos 3 caracteres',
706
709
  descriptionValidationError: 'La longitud de la descripción debe estar entre 3 y 160 caracteres'
package/es/locales/fr.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'Téléchargé',
354
354
  uploadToStore: 'Télécharger vers le magasin',
355
355
  upload: 'Télécharger',
356
- blockletStudio: 'Studio Blocklet'
356
+ blockletStudio: 'Studio Blocklet',
357
+ visitStore: 'Visitez le magasin',
358
+ reconnect: 'Reconnecter'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'Externe',
@@ -700,7 +702,8 @@ export default {
700
702
  publishToStoreSuccess: 'Blocklet publié avec succès dans le magasin',
701
703
  connectStoreSuccess: 'Connexion réussie au Blocklet Store',
702
704
  uploadToStoreSuccess: 'Blocklet téléchargé avec succès dans le Store, vous devez le publier dans le Store',
703
- viewLastRelease: 'Voir la dernière version'
705
+ viewLastRelease: 'Voir la dernière version',
706
+ reconnectStoreTip: 'Après la reconnexion, un nouveau développeur sera lié. Êtes-vous sûr de vouloir vous reconnecter ?'
704
707
  },
705
708
  titleValidationError: "La longueur du titre doit être d'au moins 3 caractères",
706
709
  descriptionValidationError: 'La longueur de la description doit être comprise entre 3 et 160 caractères'
package/es/locales/hi.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'अपलोड किया गया',
354
354
  uploadToStore: 'स्टोर में अपलोड करें',
355
355
  upload: 'अपलोड करें',
356
- blockletStudio: 'ब्लॉकलेट स्टूडियो'
356
+ blockletStudio: 'ब्लॉकलेट स्टूडियो',
357
+ visitStore: 'दुकान पर जाइये',
358
+ reconnect: 'पुनः कनेक्ट करें'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'बाहरी',
@@ -700,7 +702,8 @@ export default {
700
702
  publishToStoreSuccess: 'सफलतापूर्वक स्टोर में ब्लॉकलेट प्रकाशित',
701
703
  connectStoreSuccess: 'ब्लॉकलेट स्टोर सफलतापूर्वक कनेक्ट हो गया',
702
704
  uploadToStoreSuccess: 'ब्लॉकलेट को स्टोर में सफलतापूर्वक अपलोड किया गया है, आपको इसे स्टोर में प्रकाशित करने की आवश्यकता है',
703
- viewLastRelease: 'अंतिम रिलीज़ देखें'
705
+ viewLastRelease: 'अंतिम रिलीज़ देखें',
706
+ reconnectStoreTip: 'पुनर्संयोजन करने के बाद, एक नया डेवलपर बाउंड हो जाएगा। क्या आप वाकई पुनः संयोजित होना चाहते हैं?'
704
707
  },
705
708
  titleValidationError: 'शीर्षक की लंबाई कम से कम 3 अक्षर होनी चाहिए',
706
709
  descriptionValidationError: 'विवरण की लंबाई 3 और 160 वर्णों के बीच होनी चाहिए'
Binary file
package/es/locales/id.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'Diunggah',
354
354
  uploadToStore: 'Unggah ke Toko',
355
355
  upload: 'Unggah',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: 'Kunjungi toko',
358
+ reconnect: 'Menghubungkan kembali'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'Eksternal',
@@ -700,7 +702,8 @@ export default {
700
702
  publishToStoreSuccess: 'Blocklet berhasil dipublikasikan ke Store',
701
703
  connectStoreSuccess: 'Penyimpanan Blocklet berhasil terhubung',
702
704
  uploadToStoreSuccess: 'Blocklet berhasil diunggah ke Store, Anda perlu mempublikasikannya di Store',
703
- viewLastRelease: 'Tampilkan rilis terakhir'
705
+ viewLastRelease: 'Tampilkan rilis terakhir',
706
+ reconnectStoreTip: 'Setelah terhubung kembali, pengembang baru akan terikat. Apakah Anda yakin ingin terhubung kembali?'
704
707
  },
705
708
  titleValidationError: 'Panjang judul harus setidaknya 3 karakter',
706
709
  descriptionValidationError: 'Panjang deskripsi harus antara 3 dan 160 karakter.'
package/es/locales/ja.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'アップロードされました',
354
354
  uploadToStore: 'ストアにアップロード',
355
355
  upload: 'アップロード',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: '店舗を訪れる',
358
+ reconnect: '再接続する'
357
359
  },
358
360
  blocklet: {
359
361
  external: '外部',
@@ -700,7 +702,8 @@ export default {
700
702
  publishToStoreSuccess: 'ブロックレットが正常にストアに公開されました',
701
703
  connectStoreSuccess: 'Blockletストアが正常に接続されました',
702
704
  uploadToStoreSuccess: 'ブロックレットがストアに正常にアップロードされました。ストアで公開する必要があります',
703
- viewLastRelease: '最新リリースを表示する'
705
+ viewLastRelease: '最新リリースを表示する',
706
+ reconnectStoreTip: '再接続後、新しい開発者がバインドされます。再接続しますか?'
704
707
  },
705
708
  titleValidationError: 'タイトルの長さは最低3文字以上である必要があります',
706
709
  descriptionValidationError: '説明の長さは3から160文字の間でなければなりません'
package/es/locales/ko.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: '업로드되었습니다',
354
354
  uploadToStore: '스토어에 업로드',
355
355
  upload: '업로드',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: '상점 방문하기',
358
+ reconnect: '재연결'
357
359
  },
358
360
  blocklet: {
359
361
  external: '외부의',
@@ -700,7 +702,8 @@ export default {
700
702
  publishToStoreSuccess: 'Store에 블록릿 성공적으로 발행됐습니다',
701
703
  connectStoreSuccess: '블록렛 스토어가 성공적으로 연결되었습니다',
702
704
  uploadToStoreSuccess: '블록렛이 성공적으로 스토어에 업로드되었습니다. 스토어에서 게시해야 합니다',
703
- viewLastRelease: '최신 릴리스 보기'
705
+ viewLastRelease: '최신 릴리스 보기',
706
+ reconnectStoreTip: '재연결 후에는 새로운 개발자가 연결됩니다. 재연결 하시겠습니까?'
704
707
  },
705
708
  titleValidationError: '제목 길이는 최소 3자 이상이어야 합니다',
706
709
  descriptionValidationError: '설명 길이는 3에서 160자 사이여야 합니다'
package/es/locales/pt.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'Carregado',
354
354
  uploadToStore: 'Enviar para a Loja',
355
355
  upload: 'Upload',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: 'Visite a loja',
358
+ reconnect: 'Reconectar'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'Externo',
@@ -700,7 +702,8 @@ export default {
700
702
  publishToStoreSuccess: 'Blocklet publicado na loja com sucesso',
701
703
  connectStoreSuccess: 'Loja de Blocos conectada com sucesso',
702
704
  uploadToStoreSuccess: 'Blocklet enviado para a Store com sucesso, você precisa publicá-lo na Store',
703
- viewLastRelease: 'Visualizar última versão'
705
+ viewLastRelease: 'Visualizar última versão',
706
+ reconnectStoreTip: 'Após reconectar, um novo desenvolvedor será vinculado. Você tem certeza de que deseja reconectar?'
704
707
  },
705
708
  titleValidationError: 'O comprimento do título deve ter pelo menos 3 caracteres',
706
709
  descriptionValidationError: 'O comprimento da descrição deve estar entre 3 e 160 caracteres.'
package/es/locales/ru.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'Загружено',
354
354
  uploadToStore: 'Загрузить в магазин',
355
355
  upload: 'Загрузить',
356
- blockletStudio: 'Студия Блоклет'
356
+ blockletStudio: 'Студия Блоклет',
357
+ visitStore: 'Посетите магазин',
358
+ reconnect: 'Восстановить соединение'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'Внешний',
@@ -700,7 +702,8 @@ export default {
700
702
  publishToStoreSuccess: 'Блоклет успешно опубликован в магазине',
701
703
  connectStoreSuccess: 'Успешное подключение к Blocklet Store',
702
704
  uploadToStoreSuccess: 'Блоклет успешно загружен в магазин, вам нужно опубликовать его в магазине',
703
- viewLastRelease: 'Просмотр последнего релиза'
705
+ viewLastRelease: 'Просмотр последнего релиза',
706
+ reconnectStoreTip: 'После переподключения будет назначен новый разработчик. Вы уверены, что хотите переподключиться?'
704
707
  },
705
708
  titleValidationError: 'Длина заголовка должна быть не менее 3 символов',
706
709
  descriptionValidationError: 'Длина описания должна быть от 3 до 160 символов'
package/es/locales/th.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'อัปโหลดแล้ว',
354
354
  uploadToStore: 'อัปโหลดไปยังร้านค้า',
355
355
  upload: 'อัปโหลด',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: 'เยี่ยมชมร้านค้า',
358
+ reconnect: 'เชื่อมต่อใหม่'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'ภายนอก',
@@ -700,7 +702,8 @@ export default {
700
702
  publishToStoreSuccess: 'Blocklet ได้เผยแพร่ในร้านค้าเรียบร้อยแล้ว',
701
703
  connectStoreSuccess: 'เชื่อมต่อ Blocklet Store สำเร็จ',
702
704
  uploadToStoreSuccess: 'อัพโหลด Blocklet เข้าสู่ Store สำเร็จแล้ว คุณต้องเผยแพร่ในร้านค้า',
703
- viewLastRelease: 'ดูรายการอัพเดตล่าสุด'
705
+ viewLastRelease: 'ดูรายการอัพเดตล่าสุด',
706
+ reconnectStoreTip: 'หลังจากเชื่อมต่อใหม่ จะมีนักพัฒนารุ่นใหม่เข้ามาเป็นที่ผูกพัน คุณแน่ใจหรือไม่ว่าต้องการที่จะเชื่อมต่อใหม่หรือไม่?'
704
707
  },
705
708
  titleValidationError: 'ความยาวของชื่อต้องมีอย่างน้อย 3 ตัวอักษร',
706
709
  descriptionValidationError: 'ความยาวคำอธิบายต้องอยู่ระหว่าง 3 ถึง 160 ตัวอักษร.'
package/es/locales/vi.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'Đã tải lên',
354
354
  uploadToStore: 'Tải lên Cửa hàng',
355
355
  upload: 'Tải lên',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: 'Ghé thăm cửa hàng',
358
+ reconnect: 'Kết nối lại'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'Bên ngoài',
@@ -700,7 +702,8 @@ export default {
700
702
  publishToStoreSuccess: 'Blocklet đã được xuất bản vào cửa hàng thành công',
701
703
  connectStoreSuccess: 'Kết nối Blocklet Store thành công',
702
704
  uploadToStoreSuccess: 'Blocklet đã tải lên Store thành công, bạn cần phải xuất bản nó trong Store',
703
- viewLastRelease: 'Xem phiên bản phát hành gần đây nhất'
705
+ viewLastRelease: 'Xem phiên bản phát hành gần đây nhất',
706
+ reconnectStoreTip: 'Sau khi kết nối lại, một nhà phát triển mới sẽ được liên kết. Bạn có chắc chắn muốn kết nối lại không?'
704
707
  },
705
708
  titleValidationError: 'Độ dài tiêu đề phải ít nhất 3 ký tự',
706
709
  descriptionValidationError: 'Chiều dài mô tả phải từ 3 đến 160 ký tự.'
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: '已上傳',
354
354
  uploadToStore: '上傳至 Store',
355
355
  upload: '上傳',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: '訪問 Store',
358
+ reconnect: '重新連接'
357
359
  },
358
360
  blocklet: {
359
361
  external: '外部的',
@@ -660,7 +662,7 @@ export default {
660
662
  resourceTitle: '資源',
661
663
  blockletEmptyTip: '這裡沒有任何區塊元件',
662
664
  createBlockletTip: '您可以透過現有的資源、元件和設定,在此應用程式中建立新的 blocklet',
663
- createBlocklet: '新的區塊',
665
+ createBlocklet: '新增 Blocklet',
664
666
  deleteBlockletTip: '刪除後無法恢復區塊,請確認',
665
667
  componentNotRunning: '{name}元件未運行,請先啟動。',
666
668
  releaseEmptyTip: '這裡沒有任何發布',
@@ -700,7 +702,8 @@ export default {
700
702
  publishToStoreSuccess: '成功發佈到 Store 的區塊鏈',
701
703
  connectStoreSuccess: 'Store 連線成功',
702
704
  uploadToStoreSuccess: 'Blocklet 成功上傳至 Store,請在 Store 中發布',
703
- viewLastRelease: '查看最新版本'
705
+ viewLastRelease: '查看最新版本',
706
+ reconnectStoreTip: '重新連接後,將綁定一個新的開發者。你確定要重新連接嗎?'
704
707
  },
705
708
  titleValidationError: '標題長度必須至少為3到40個字符',
706
709
  descriptionValidationError: '描述長度必須介於3到160個字符之間'
package/es/locales/zh.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: '已上传',
354
354
  uploadToStore: '上传到 Store',
355
355
  upload: '上传',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: '访问 Store',
358
+ reconnect: '重新连接'
357
359
  },
358
360
  blocklet: {
359
361
  external: '外部',
@@ -663,7 +665,7 @@ export default {
663
665
  resourceTitle: '资源型 Blocklet',
664
666
  blockletEmptyTip: '这里没有任何 Blocklet',
665
667
  createBlockletTip: '你可以使用此应用的资源,组件,配置制作新的 Blocklet',
666
- createBlocklet: '新的块',
668
+ createBlocklet: '新建 Blocklet',
667
669
  deleteBlockletTip: '此 Blocklet 删除后不可恢复,是否继续?',
668
670
  componentNotRunning: '组件 {name} 未运行',
669
671
  releaseEmptyTip: '这里没有任何发布',
@@ -703,7 +705,8 @@ export default {
703
705
  publishToStoreSuccess: '成功发布 Blocklet 到 Store',
704
706
  connectStoreSuccess: 'Blocklet 成功连接 Store',
705
707
  uploadToStoreSuccess: 'Blocklet 成功上传至 Store,请在 Store 中发布',
706
- viewLastRelease: '查看最新版本'
708
+ viewLastRelease: '查看最新版本',
709
+ reconnectStoreTip: '重新连接后,将绑定一个新的开发者。你确定要重新连接吗?'
707
710
  },
708
711
  titleValidationError: '标题长度必须至少为3到40个字符',
709
712
  descriptionValidationError: '描述长度必须在3到160个字符之间'