@abtnode/ux 1.16.25-beta-e3dbef52 → 1.16.25-beta-44800645

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 (49) hide show
  1. package/es/actions.js +3 -1
  2. package/es/blocklet/actions.js +11 -7
  3. package/es/blocklet/router/action/add-rule.js +12 -0
  4. package/es/blocklet/router/action/config-routing-rule.js +55 -4
  5. package/es/blocklet/router/action/update-rule.js +12 -0
  6. package/es/blocklet/router/rule-list.js +10 -2
  7. package/es/locales/ar.js +12 -3
  8. package/es/locales/de.js +12 -3
  9. package/es/locales/en.js +11 -2
  10. package/es/locales/es.js +12 -3
  11. package/es/locales/fr.js +12 -3
  12. package/es/locales/hi.js +12 -3
  13. package/es/locales/i18n.db +0 -0
  14. package/es/locales/id.js +12 -3
  15. package/es/locales/ja.js +12 -3
  16. package/es/locales/ko.js +12 -3
  17. package/es/locales/pt.js +12 -3
  18. package/es/locales/ru.js +12 -3
  19. package/es/locales/th.js +12 -3
  20. package/es/locales/vi.js +12 -3
  21. package/es/locales/zh-tw.js +12 -3
  22. package/es/locales/zh.js +12 -3
  23. package/es/team/members/actions.js +61 -5
  24. package/es/team/members/index.js +87 -15
  25. package/lib/actions.js +3 -1
  26. package/lib/blocklet/actions.js +11 -7
  27. package/lib/blocklet/router/action/add-rule.js +12 -0
  28. package/lib/blocklet/router/action/config-routing-rule.js +52 -3
  29. package/lib/blocklet/router/action/update-rule.js +13 -0
  30. package/lib/blocklet/router/rule-list.js +10 -1
  31. package/lib/locales/ar.js +12 -3
  32. package/lib/locales/de.js +12 -3
  33. package/lib/locales/en.js +11 -2
  34. package/lib/locales/es.js +12 -3
  35. package/lib/locales/fr.js +12 -3
  36. package/lib/locales/hi.js +12 -3
  37. package/lib/locales/i18n.db +0 -0
  38. package/lib/locales/id.js +12 -3
  39. package/lib/locales/ja.js +12 -3
  40. package/lib/locales/ko.js +12 -3
  41. package/lib/locales/pt.js +12 -3
  42. package/lib/locales/ru.js +12 -3
  43. package/lib/locales/th.js +12 -3
  44. package/lib/locales/vi.js +12 -3
  45. package/lib/locales/zh-tw.js +12 -3
  46. package/lib/locales/zh.js +12 -3
  47. package/lib/team/members/actions.js +61 -5
  48. package/lib/team/members/index.js +93 -19
  49. package/package.json +15 -14
package/es/actions.js CHANGED
@@ -50,7 +50,9 @@ export default function Actions({
50
50
  keepMounted: true,
51
51
  open: open,
52
52
  onClose: onClose,
53
- PaperProps: {},
53
+ slotProps: {
54
+ paper: {}
55
+ },
54
56
  children: actions.map((action, index) => {
55
57
  if (typeof action === 'function') {
56
58
  return action({
@@ -321,13 +321,17 @@ export default function BlockletActions({
321
321
  name: t('common.restart'),
322
322
  handler: createHandler('restart', node.api.restartBlocklet, true),
323
323
  disabled: disableStart || blocklet.status !== 'running'
324
- }, {
325
- action: 'reload',
326
- icon: Icons.Reload,
327
- name: t('common.reload'),
328
- handler: createHandler('reload', node.api.reloadBlocklet),
329
- disabled: disableStart || blocklet.status !== 'running'
330
- }, isDownloading(blocklet.status) ? cancelDownloadAction : removeAction, {
324
+ },
325
+ // hidden reload: https://github.com/ArcBlock/blocklet-server/issues/8655
326
+ // {
327
+ // action: 'reload',
328
+ // icon: Icons.Reload,
329
+ // name: t('common.reload'),
330
+ // handler: createHandler('reload', node.api.reloadBlocklet),
331
+ // disabled: disableStart || blocklet.status !== 'running',
332
+ // },
333
+
334
+ isDownloading(blocklet.status) ? cancelDownloadAction : removeAction, {
331
335
  separator: true
332
336
  }, {
333
337
  onlyInMenu: true,
@@ -65,6 +65,13 @@ export default function AddRule({
65
65
  if (params.type === ROUTING_RULE_TYPES.GENERAL_REWRITE) {
66
66
  rule.to.url = urlPathFriendly(params.url);
67
67
  }
68
+ if (params.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE) {
69
+ rule.to.response = {
70
+ status: 200,
71
+ contentType: params.responseType,
72
+ body: params.responseBody
73
+ };
74
+ }
68
75
  await api.addRoutingRule({
69
76
  input: {
70
77
  id: siteId,
@@ -134,6 +141,9 @@ export default function AddRule({
134
141
  if (params.type === ROUTING_RULE_TYPES.GENERAL_REWRITE && !params.url) {
135
142
  disable = true;
136
143
  }
144
+ if (params.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE && (!params.responseType || !params.responseBody)) {
145
+ disable = true;
146
+ }
137
147
  if (!e.target.value.trim()) {
138
148
  disable = true;
139
149
  setError(t('router.validation.pathPrefixRequired'));
@@ -167,6 +177,8 @@ export default function AddRule({
167
177
  componentId: '',
168
178
  pageGroup: '',
169
179
  redirectCode: 302,
180
+ responseType: 'text/plain',
181
+ responseBody: '',
170
182
  __disableConfirm: true
171
183
  },
172
184
  onConfirm,
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
3
3
  import TextField from '@mui/material/TextField';
4
4
  import MenuItem from '@mui/material/MenuItem';
5
5
  import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
6
- import { ROUTING_RULE_TYPES } from '@abtnode/constant';
6
+ import { ROUTING_RULE_TYPES, ROUTING_RESPONSE_TYPES } from '@abtnode/constant';
7
7
  import { BLOCKLET_INTERFACE_TYPE_WEB } from '@blocklet/constant';
8
8
  import { findWebInterface, getDisplayName } from '@blocklet/meta/lib/util';
9
9
  import { useBlockletContext } from '../../../contexts/blocklet';
@@ -194,18 +194,66 @@ export default function ConfigRoutingRule({
194
194
  marginBottom: 32
195
195
  },
196
196
  onChange: e => {
197
+ const value = e.target.value.trim();
197
198
  setParams({
198
199
  ...params,
199
200
  url: e.target.value,
200
- __disableConfirm: !e.target.value.trim()
201
+ __disableConfirm: !value
201
202
  });
202
- if (!e.target.value.trim()) {
203
+ if (!value) {
203
204
  setError(t('router.validation.rewriteUrlRequired'));
204
205
  } else {
205
206
  setError('');
206
207
  }
207
208
  }
208
- }, "url")]
209
+ }, "url"), params.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE && [/*#__PURE__*/_jsx(TextField, {
210
+ select: true,
211
+ label: t('router.rule.add.responseType'),
212
+ autoComplete: "off",
213
+ variant: "outlined",
214
+ name: "responseType",
215
+ fullWidth: true,
216
+ value: params.responseType,
217
+ onChange: e => setParams({
218
+ ...params,
219
+ responseType: e.target.value
220
+ }),
221
+ style: {
222
+ marginBottom: 32
223
+ },
224
+ SelectProps: {},
225
+ children: ROUTING_RESPONSE_TYPES.map(x => /*#__PURE__*/_jsx(MenuItem, {
226
+ value: x.value,
227
+ children: x.text
228
+ }, x.value))
229
+ }, "responseType"), /*#__PURE__*/_jsx(TextField, {
230
+ label: t('router.rule.add.responseBody'),
231
+ autoComplete: "off",
232
+ variant: "outlined",
233
+ name: "responseBody",
234
+ "data-cy": "response-body-input",
235
+ fullWidth: true,
236
+ multiline: true,
237
+ minRows: 3,
238
+ value: params.responseBody,
239
+ helperText: t('router.rule.add.responseBodyTip'),
240
+ style: {
241
+ marginBottom: 32
242
+ },
243
+ onChange: e => {
244
+ const value = e.target.value.trim();
245
+ setParams({
246
+ ...params,
247
+ responseBody: e.target.value,
248
+ __disableConfirm: !value
249
+ });
250
+ if (!value) {
251
+ setError(t('router.rule.add.responseBodyRequired'));
252
+ } else {
253
+ setError('');
254
+ }
255
+ }
256
+ }, "response-body")]]
209
257
  });
210
258
  }
211
259
  ConfigRoutingRule.propTypes = {
@@ -225,6 +273,9 @@ ConfigRoutingRule.defaultProps = {
225
273
  }, {
226
274
  name: 'Rewrite - Route traffic without redirect',
227
275
  value: ROUTING_RULE_TYPES.GENERAL_REWRITE
276
+ }, {
277
+ name: 'Response - Response with provided content',
278
+ value: ROUTING_RULE_TYPES.DIRECT_RESPONSE
228
279
  }, {
229
280
  name: 'Component - Pass traffic to blocklet component',
230
281
  value: ROUTING_RULE_TYPES.COMPONENT
@@ -70,6 +70,13 @@ export default function UpdateRule({
70
70
  if (params.type === ROUTING_RULE_TYPES.GENERAL_REWRITE) {
71
71
  rule.to.url = urlPathFriendly(params.url);
72
72
  }
73
+ if (params.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE) {
74
+ rule.to.response = {
75
+ status: 200,
76
+ contentType: params.responseType,
77
+ body: params.responseBody
78
+ };
79
+ }
73
80
  await api.updateRoutingRule({
74
81
  input: {
75
82
  id: siteId,
@@ -127,6 +134,9 @@ export default function UpdateRule({
127
134
  if (params.type === ROUTING_RULE_TYPES.GENERAL_REWRITE && !params.url) {
128
135
  disable = true;
129
136
  }
137
+ if (params.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE && (!params.responseType || !params.responseBody)) {
138
+ disable = true;
139
+ }
130
140
  if (!e.target.value.trim()) {
131
141
  disable = true;
132
142
  setError(t('router.validation.pathPrefixRequired'));
@@ -162,6 +172,8 @@ export default function UpdateRule({
162
172
  componentId: to.componentId || '',
163
173
  pageGroup: to.pageGroup || '',
164
174
  url: to.url || '',
175
+ responseType: to.response?.contentType || '',
176
+ responseBody: (to.response?.body || '').replace(/\\"/g, '"'),
165
177
  __disableConfirm: false
166
178
  },
167
179
  onConfirm,
@@ -9,8 +9,9 @@ import IconButton from '@mui/material/IconButton';
9
9
  import Avatar from '@mui/material/Avatar';
10
10
  import LockIcon from '@arcblock/icons/lib/LockIcon';
11
11
  import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
12
- import { ROUTING_RULE_TYPES } from '@abtnode/constant';
12
+ import { ROUTING_RESPONSE_TYPES, ROUTING_RULE_TYPES } from '@abtnode/constant';
13
13
  import { getDisplayName } from '@blocklet/meta/lib/util';
14
+ import { TextSnippetOutlined } from '@mui/icons-material';
14
15
  import { getBlockletUrlParams, getAccessUrl, BlockletAdminRoles } from '../../util';
15
16
  import { useBlockletContext } from '../../contexts/blocklet';
16
17
  import { useNodeContext } from '../../contexts/node';
@@ -70,6 +71,13 @@ function RuleList({
70
71
  avatar = rule.to.redirectCode;
71
72
  } else if (rule.to.type === ROUTING_RULE_TYPES.GENERAL_REWRITE) {
72
73
  avatar = 'R';
74
+ } else if (rule.to.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE) {
75
+ avatar = /*#__PURE__*/_jsx(TextSnippetOutlined, {
76
+ sx: {
77
+ color: 'text.secondary',
78
+ fontSize: '45px'
79
+ }
80
+ });
73
81
  } else if (rule.to.type === ROUTING_RULE_TYPES.COMPONENT) {
74
82
  component = blocklet.children.find(x => x.meta.did === rule.to.componentId);
75
83
  avatar = 'C';
@@ -127,7 +135,7 @@ function RuleList({
127
135
  color: '#222',
128
136
  fontSize: 16
129
137
  },
130
- children: [rule.to.type === ROUTING_RULE_TYPES.NONE && t('common.page404'), rule.to.type === ROUTING_RULE_TYPES.REDIRECT && t('common.redirect'), rule.to.type === ROUTING_RULE_TYPES.GENERAL_REWRITE && t('common.rewrite'), rule.to.type === ROUTING_RULE_TYPES.COMPONENT && getDisplayName(component, true)]
138
+ children: [rule.to.type === ROUTING_RULE_TYPES.NONE && t('common.page404'), rule.to.type === ROUTING_RULE_TYPES.REDIRECT && t('common.redirect'), rule.to.type === ROUTING_RULE_TYPES.GENERAL_REWRITE && t('common.rewrite'), rule.to.type === ROUTING_RULE_TYPES.DIRECT_RESPONSE && ROUTING_RESPONSE_TYPES.find(x => x.value === rule.to.response.contentType)?.text, rule.to.type === ROUTING_RULE_TYPES.COMPONENT && getDisplayName(component, true)]
131
139
  }), /*#__PURE__*/_jsxs(Box, {
132
140
  display: "flex",
133
141
  alignItems: "center",
package/es/locales/ar.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'وثيقة المساعدة',
688
688
  componentIncluded: 'مدرج',
689
689
  componentForceRequired: 'مجبر مطلوب'
690
- }
690
+ },
691
+ titleValidationError: 'يجب أن يكون طول العنوان على الأقل 3 أحرف',
692
+ descriptionValidationError: 'يجب أن تكون طول الوصف بين 3 و 160 حرفًا'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'عقدة',
@@ -1037,7 +1039,11 @@ export default {
1037
1039
  pathPrefixTip: "إذا قمت بتعيين البادئة على '/بادئة-الخاصة-بي'، فسيتم توجيه جميع الطلبات التي تبدأ بتلك البادئة إلى البلوكليت المكون",
1038
1040
  blocklet: 'أي Blocklet سيتولى معالجة تلك الطلبات؟',
1039
1041
  port: 'ما هو المنفذ الذي سيتعامل مع طلبات البلوكليت؟',
1040
- portTip: 'هذا يعتمد على المنفذ الرئيسي للبلوكليت بشكل افتراضي ، إذا كان بلوكليت الخاص بك يستمع على منافذ متعددة ، فيمكنك تخصيص ذلك.'
1042
+ portTip: 'هذا يعتمد على المنفذ الرئيسي للبلوكليت بشكل افتراضي ، إذا كان بلوكليت الخاص بك يستمع على منافذ متعددة ، فيمكنك تخصيص ذلك.',
1043
+ responseType: 'نوع الاستجابة',
1044
+ responseBody: 'محتوى الرد',
1045
+ responseBodyTip: 'الصق محتوى الاستجابة الخاص بك هنا ، يجب ألا يتجاوز 4096 حرفًا.',
1046
+ responseBodyRequired: 'لا يمكن أن يكون محتوى الرد فارغاً'
1041
1047
  },
1042
1048
  delete: {
1043
1049
  title: 'حذف تعيين عنوان URL',
@@ -1189,7 +1195,10 @@ export default {
1189
1195
  url: 'عنوان URL مخصص',
1190
1196
  slack: 'خطاف سلاك',
1191
1197
  tested: 'تم إرسال رسالة تجريبية'
1192
- }
1198
+ },
1199
+ activeUserSessions: 'جلسات المستخدم النشطة',
1200
+ forceLogout: 'تسجيل الخروج القسري',
1201
+ forceLogoutDescription: 'هل تؤكد تسجيل خروج هذا المستخدم؟'
1193
1202
  },
1194
1203
  transferNode: {
1195
1204
  name: 'تحويل الملكية',
package/es/locales/de.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'Hilfe-Dokument',
688
688
  componentIncluded: 'Eingeschlossen',
689
689
  componentForceRequired: 'Erzwungen Erforderlich'
690
- }
690
+ },
691
+ titleValidationError: 'Die Länge des Titels muss mindestens 3 Zeichen betragen',
692
+ descriptionValidationError: 'Die Beschreibungslänge muss zwischen 3 und 160 Zeichen liegen'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'Knoten',
@@ -1037,7 +1039,11 @@ export default {
1037
1039
  pathPrefixTip: "Wenn Sie das Präfix auf '/mein-präfix' setzen, werden alle Anfragen, die mit diesem Präfix beginnen, zum konfigurierten Blocklet weitergeleitet",
1038
1040
  blocklet: 'Welcher Blocklet wird diese Anfragen bearbeiten?',
1039
1041
  port: 'Welcher Port des Blocklet wird Anfragen bearbeiten?',
1040
- portTip: 'Dies ist standardmäßig der Hauptport von Blocklet. Wenn Blocklet auf mehreren Ports lauscht, können Sie dies anpassen.'
1042
+ portTip: 'Dies ist standardmäßig der Hauptport von Blocklet. Wenn Blocklet auf mehreren Ports lauscht, können Sie dies anpassen.',
1043
+ responseType: 'Antworttyp',
1044
+ responseBody: 'Antwortinhalt',
1045
+ responseBodyTip: 'Fügen Sie hier Ihren Antwortinhalt ein, der 4096 Zeichen nicht überschreiten sollte.',
1046
+ responseBodyRequired: 'Der Antwortinhalt darf nicht leer sein'
1041
1047
  },
1042
1048
  delete: {
1043
1049
  title: 'URL-Mapping löschen',
@@ -1189,7 +1195,10 @@ export default {
1189
1195
  url: 'Benutzerdefinierte URL',
1190
1196
  slack: 'Slack-Webhook',
1191
1197
  tested: 'Testnachricht gesendet'
1192
- }
1198
+ },
1199
+ activeUserSessions: 'Aktive Benutzersitzungen',
1200
+ forceLogout: 'Erzwungenes Abmelden',
1201
+ forceLogoutDescription: 'Bestätigen Sie die erzwungene Abmeldung dieses Benutzers?'
1193
1202
  },
1194
1203
  transferNode: {
1195
1204
  name: 'Änderung des Eigentums',
package/es/locales/en.js CHANGED
@@ -350,6 +350,8 @@ export default {
350
350
  installFromMarket: 'Install New Blocklets',
351
351
  installFromUrl: 'Install From Url',
352
352
  installFromCreate: 'Create Blocklet',
353
+ titleValidationError: 'Title length must be between 3 and 40 characters',
354
+ descriptionValidationError: 'Description length must be between 3 and 160 characters',
353
355
  installFromDiskBackup: 'Restore from this server',
354
356
  installedAt: 'Installed At',
355
357
  internal: 'Internal',
@@ -1030,7 +1032,11 @@ export default {
1030
1032
  pathPrefixTip: "If you set prefix to '/my-prefix', then all requests that begins with that prefix will be routed to the configured blocklet",
1031
1033
  blocklet: 'Which Blocklet will be handling those requests?',
1032
1034
  port: 'Which port of the blocklet will be handling requests?',
1033
- portTip: 'This defaults to the main port of blocklet, if your blocklet listens on multiple ports, you can customize this'
1035
+ portTip: 'This defaults to the main port of blocklet, if your blocklet listens on multiple ports, you can customize this',
1036
+ responseType: 'Response Type',
1037
+ responseBody: 'Response Content',
1038
+ responseBodyTip: 'Paste your response content here, should not exceed 4096 characters',
1039
+ responseBodyRequired: 'Response content can not be empty'
1034
1040
  },
1035
1041
  delete: {
1036
1042
  title: 'Delete URL Mapping',
@@ -1182,7 +1188,10 @@ export default {
1182
1188
  url: 'Custom URL',
1183
1189
  slack: 'Slack Webhook',
1184
1190
  tested: 'Test message sent'
1185
- }
1191
+ },
1192
+ activeUserSessions: 'Active User Sessions',
1193
+ forceLogout: 'Force logout',
1194
+ forceLogoutDescription: 'Confirm to force logout this user?'
1186
1195
  },
1187
1196
  transferNode: {
1188
1197
  name: 'Transfer Ownership',
package/es/locales/es.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'Ayuda Documento',
688
688
  componentIncluded: 'Incluido',
689
689
  componentForceRequired: 'Obligatorio Requerido'
690
- }
690
+ },
691
+ titleValidationError: 'La longitud del título debe ser de al menos 3 caracteres',
692
+ descriptionValidationError: 'La longitud de la descripción debe estar entre 3 y 160 caracteres'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'Nodo',
@@ -1037,7 +1039,11 @@ export default {
1037
1039
  pathPrefixTip: "Si configuras el prefijo como '/my-prefix', todas las solicitudes que comiencen con ese prefijo se dirigirán al bloque configurado",
1038
1040
  blocklet: '¿Qué Blocklet se encargará de manejar esas solicitudes?',
1039
1041
  port: '¿Qué puerto del blocklet manejará las solicitudes?',
1040
- portTip: 'Esto se establece por defecto en el puerto principal de blocklet, si tu blocklet escucha en varios puertos, puedes personalizar esto'
1042
+ portTip: 'Esto se establece por defecto en el puerto principal de blocklet, si tu blocklet escucha en varios puertos, puedes personalizar esto',
1043
+ responseType: 'Tipo de respuesta',
1044
+ responseBody: 'Contenido de respuesta',
1045
+ responseBodyTip: 'Pega tu contenido de respuesta aquí, no debe exceder los 4096 caracteres',
1046
+ responseBodyRequired: 'El contenido de respuesta no puede estar vacío'
1041
1047
  },
1042
1048
  delete: {
1043
1049
  title: 'Eliminar asignación de URL',
@@ -1189,7 +1195,10 @@ export default {
1189
1195
  url: 'URL personalizada',
1190
1196
  slack: 'Slack Webhook',
1191
1197
  tested: 'Mensaje de prueba enviado'
1192
- }
1198
+ },
1199
+ activeUserSessions: 'Sesiones de usuario activas',
1200
+ forceLogout: 'Cerrar sesión forzada',
1201
+ forceLogoutDescription: '¿Confirmar para forzar el cierre de sesión de este usuario?'
1193
1202
  },
1194
1203
  transferNode: {
1195
1204
  name: 'Transferir propiedad',
package/es/locales/fr.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: "Document d'aide",
688
688
  componentIncluded: 'Inclus',
689
689
  componentForceRequired: 'Forcé Requis'
690
- }
690
+ },
691
+ titleValidationError: "La longueur du titre doit être d'au moins 3 caractères",
692
+ descriptionValidationError: 'La longueur de la description doit être comprise entre 3 et 160 caractères'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'Noeud',
@@ -1037,7 +1039,11 @@ export default {
1037
1039
  pathPrefixTip: "Si vous définissez le préfixe sur '/mon-préfixe', alors toutes les demandes commençant par ce préfixe seront routées vers le blocklet configuré",
1038
1040
  blocklet: 'Quel Blocklet gérera ces demandes ?',
1039
1041
  port: 'Quel port du blocklet gérera les requêtes ?',
1040
- portTip: 'Par défaut, cela correspond au port principal du blocklet. Si votre blocklet écoute sur plusieurs ports, vous pouvez personnaliser cela.'
1042
+ portTip: 'Par défaut, cela correspond au port principal du blocklet. Si votre blocklet écoute sur plusieurs ports, vous pouvez personnaliser cela.',
1043
+ responseType: 'Type de réponse',
1044
+ responseBody: 'Contenu de la réponse',
1045
+ responseBodyTip: 'Veuillez coller votre contenu de réponse ici, ne doit pas dépasser 4096 caractères.',
1046
+ responseBodyRequired: 'Le contenu de la réponse ne peut pas être vide'
1041
1047
  },
1042
1048
  delete: {
1043
1049
  title: "Supprimer la correspondance d'URL",
@@ -1189,7 +1195,10 @@ export default {
1189
1195
  url: 'URL personnalisée',
1190
1196
  slack: 'Webhook Slack',
1191
1197
  tested: 'Message de test envoyé'
1192
- }
1198
+ },
1199
+ activeUserSessions: "Sessions d'utilisateurs actives",
1200
+ forceLogout: 'Déconnexion forcée',
1201
+ forceLogoutDescription: 'Confirmez-vous la déconnexion forcée de cet utilisateur?'
1193
1202
  },
1194
1203
  transferNode: {
1195
1204
  name: 'Transfert de propriété',
package/es/locales/hi.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'सहायता दस्तावेज़',
688
688
  componentIncluded: 'शामिल',
689
689
  componentForceRequired: 'मजबूरी आवश्यक'
690
- }
690
+ },
691
+ titleValidationError: 'शीर्षक की लंबाई कम से कम 3 अक्षर होनी चाहिए',
692
+ descriptionValidationError: 'विवरण की लंबाई 3 और 160 वर्णों के बीच होनी चाहिए'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'नोड',
@@ -1037,7 +1039,11 @@ export default {
1037
1039
  pathPrefixTip: "यदि आप प्रेफिक्स को '/मेरा प्रेफिक्स' सेट करते हैं, तो इस प्रेफिक्स के साथ शुरू होने वाले सभी अनुरोध विन्यासित ब्लॉकलेट को मार्ग-निर्दिष्ट में भेजे जाएंगे",
1038
1040
  blocklet: 'इन अनुरोधों का हैंडलिंग कौन सा ब्लॉकलेट करेगा?',
1039
1041
  port: 'ब्लॉकलेट का कौन सा पोर्ट अनुरोधों को संभालेगा?',
1040
- portTip: 'यह डिफ़ॉल्ट रूप से ब्लॉकलेट के मुख्य पोर्ट के लिए होता है, यदि आपका ब्लॉकलेट कई पोर्टों पर सुनता है, तो आप इसे अनुकूलित कर सकते हैं।'
1042
+ portTip: 'यह डिफ़ॉल्ट रूप से ब्लॉकलेट के मुख्य पोर्ट के लिए होता है, यदि आपका ब्लॉकलेट कई पोर्टों पर सुनता है, तो आप इसे अनुकूलित कर सकते हैं।',
1043
+ responseType: 'प्रतिक्रिया प्रकार',
1044
+ responseBody: 'प्रतिक्रिया सामग्री',
1045
+ responseBodyTip: 'अपनी प्रतिक्रिया सामग्री यहां पेस्ट करें, 4096 वर्णों से अधिक नहीं होनी चाहिए।',
1046
+ responseBodyRequired: 'प्रतिक्रिया सामग्री खाली नहीं हो सकती'
1041
1047
  },
1042
1048
  delete: {
1043
1049
  title: 'URL मैपिंग हटाएं',
@@ -1189,7 +1195,10 @@ export default {
1189
1195
  url: 'कस्टम URL',
1190
1196
  slack: 'स्लैक वेबहुक',
1191
1197
  tested: 'परीक्षण संदेश भेजा गया'
1192
- }
1198
+ },
1199
+ activeUserSessions: 'सक्रिय उपयोगकर्ता सत्र',
1200
+ forceLogout: 'बाहर करें बल',
1201
+ forceLogoutDescription: 'क्या आप इस उपयोगकर्ता को बाहर करने के लिए पुष्टि करें?'
1193
1202
  },
1194
1203
  transferNode: {
1195
1204
  name: 'स्वामित्व स्थानांतरण',
Binary file
package/es/locales/id.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'Dokumen Bantuan',
688
688
  componentIncluded: 'Termasuk',
689
689
  componentForceRequired: 'Dipaksa Diperlukan'
690
- }
690
+ },
691
+ titleValidationError: 'Panjang judul harus setidaknya 3 karakter',
692
+ descriptionValidationError: 'Panjang deskripsi harus antara 3 dan 160 karakter.'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'Node',
@@ -1037,7 +1039,11 @@ export default {
1037
1039
  pathPrefixTip: "Jika Anda mengatur awalan menjadi '/awalan-saya', maka semua permintaan yang dimulai dengan awalan tersebut akan diarahkan ke blok yang dikonfigurasi",
1038
1040
  blocklet: 'Blocklet mana yang akan menangani permintaan tersebut?',
1039
1041
  port: 'Port mana dari blocklet yang akan menangani permintaan?',
1040
- portTip: 'Ini menjadi port utama blocklet, jika blocklet Anda mendengarkan di beberapa port, Anda dapat menyesuaikannya'
1042
+ portTip: 'Ini menjadi port utama blocklet, jika blocklet Anda mendengarkan di beberapa port, Anda dapat menyesuaikannya',
1043
+ responseType: 'Tipe Respons',
1044
+ responseBody: 'Konten Tanggapan',
1045
+ responseBodyTip: 'Tempelkan konten respon Anda di sini, tidak boleh melebihi 4096 karakter',
1046
+ responseBodyRequired: 'Konten respons tidak boleh kosong'
1041
1047
  },
1042
1048
  delete: {
1043
1049
  title: 'Hapus Pemetaan URL',
@@ -1189,7 +1195,10 @@ export default {
1189
1195
  url: 'URL kustom',
1190
1196
  slack: 'Slack Webhook',
1191
1197
  tested: 'Pesan uji terkirim'
1192
- }
1198
+ },
1199
+ activeUserSessions: 'Sesi Pengguna Aktif',
1200
+ forceLogout: 'Keluar paksa',
1201
+ forceLogoutDescription: 'Konfirmasi untuk logout paksa pengguna ini?'
1193
1202
  },
1194
1203
  transferNode: {
1195
1204
  name: 'Pindahkan Kepemilikan',
package/es/locales/ja.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'ヘルプドキュメント',
688
688
  componentIncluded: '含まれています',
689
689
  componentForceRequired: '強制必要'
690
- }
690
+ },
691
+ titleValidationError: 'タイトルの長さは最低3文字以上である必要があります',
692
+ descriptionValidationError: '説明の長さは3から160文字の間でなければなりません'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'ノード',
@@ -1037,7 +1039,11 @@ export default {
1037
1039
  pathPrefixTip: "'/my-prefix' をプレフィックスに設定すると、そのプレフィックスで始まるすべてのリクエストが設定されたブロックにルーティングされます",
1038
1040
  blocklet: 'どのBlockletがそれらのリクエストを処理しますか?',
1039
1041
  port: 'ブロックレットのどのポートがリクエストを処理しますか?',
1040
- portTip: 'これは、Blockletのメインポートにデフォルトで設定されます。Blockletが複数のポートでリッスンする場合は、これをカスタマイズできます'
1042
+ portTip: 'これは、Blockletのメインポートにデフォルトで設定されます。Blockletが複数のポートでリッスンする場合は、これをカスタマイズできます',
1043
+ responseType: 'レスポンスタイプ',
1044
+ responseBody: '応答内容',
1045
+ responseBodyTip: '以下に回答内容を貼り付けてください。4096文字を超えてはいけません。',
1046
+ responseBodyRequired: 'レスポンスの内容は空にできません'
1041
1047
  },
1042
1048
  delete: {
1043
1049
  title: 'URLマッピングを削除する',
@@ -1189,7 +1195,10 @@ export default {
1189
1195
  url: 'カスタムURL',
1190
1196
  slack: 'Slack Webhook',
1191
1197
  tested: 'テストメッセージを送信しました'
1192
- }
1198
+ },
1199
+ activeUserSessions: 'アクティブユーザーセッション',
1200
+ forceLogout: '強制ログアウト',
1201
+ forceLogoutDescription: 'このユーザーを強制的にログアウトしますか?'
1193
1202
  },
1194
1203
  transferNode: {
1195
1204
  name: '権限の移譲',
package/es/locales/ko.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: '도움말 문서',
688
688
  componentIncluded: '포함됨',
689
689
  componentForceRequired: '강제 필수'
690
- }
690
+ },
691
+ titleValidationError: '제목 길이는 최소 3자 이상이어야 합니다',
692
+ descriptionValidationError: '설명 길이는 3에서 160자 사이여야 합니다'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: '노드',
@@ -1037,7 +1039,11 @@ export default {
1037
1039
  pathPrefixTip: "'/my-prefix'로 접두사를 설정하면 해당 접두사로 시작하는 모든 요청이 구성된 블록에 라우팅됩니다",
1038
1040
  blocklet: '어떤 블록이 그 요청을 처리하게 될까요?',
1039
1041
  port: '블록렛의 어떤 포트가 요청을 처리합니까?',
1040
- portTip: '이것은 블록릿의 기본 포트로 설정됩니다. 블록릿이 여러 포트로 수신 대기하는 경우, 이를 사용자 정의할 수 있습니다'
1042
+ portTip: '이것은 블록릿의 기본 포트로 설정됩니다. 블록릿이 여러 포트로 수신 대기하는 경우, 이를 사용자 정의할 수 있습니다',
1043
+ responseType: '응답 유형',
1044
+ responseBody: '응답 내용',
1045
+ responseBodyTip: '답변 내용을 여기에 붙여넣으세요. 4096자를 초과해서는 안 됩니다.',
1046
+ responseBodyRequired: '응답 내용은 비어 있을 수 없습니다'
1041
1047
  },
1042
1048
  delete: {
1043
1049
  title: 'URL 매핑 삭제하기',
@@ -1189,7 +1195,10 @@ export default {
1189
1195
  url: '사용자 정의 URL',
1190
1196
  slack: 'Slack Webhook',
1191
1197
  tested: '테스트 메시지가 전송되었습니다'
1192
- }
1198
+ },
1199
+ activeUserSessions: '활성 사용자 세션',
1200
+ forceLogout: '강제 로그아웃',
1201
+ forceLogoutDescription: '이 사용자를 강제로 로그아웃하시겠습니까?'
1193
1202
  },
1194
1203
  transferNode: {
1195
1204
  name: '소유권 이전',
package/es/locales/pt.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'Documento de ajuda',
688
688
  componentIncluded: 'Incluído',
689
689
  componentForceRequired: 'Forçado Obrigatório'
690
- }
690
+ },
691
+ titleValidationError: 'O comprimento do título deve ter pelo menos 3 caracteres',
692
+ descriptionValidationError: 'O comprimento da descrição deve estar entre 3 e 160 caracteres.'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'Nó',
@@ -1037,7 +1039,11 @@ export default {
1037
1039
  pathPrefixTip: "Se você definir o prefixo como '/meu-prefixo', todas as solicitações que começarem com esse prefixo serão direcionadas para o bloco configurado",
1038
1040
  blocklet: 'Qual Blocklet será responsável por essas solicitações?',
1039
1041
  port: 'Qual porta do blocklet será responsável por lidar com as solicitações?',
1040
- portTip: 'Isso se torna o porto principal do blocklet, se o seu blocklet estiver ouvindo em vários portos, você pode personalizar isso'
1042
+ portTip: 'Isso se torna o porto principal do blocklet, se o seu blocklet estiver ouvindo em vários portos, você pode personalizar isso',
1043
+ responseType: 'Tipo de resposta',
1044
+ responseBody: 'Conteúdo da resposta',
1045
+ responseBodyTip: 'Cole aqui o conteúdo da sua resposta, não deve exceder 4096 caracteres',
1046
+ responseBodyRequired: 'O conteúdo da resposta não pode estar vazio'
1041
1047
  },
1042
1048
  delete: {
1043
1049
  title: 'Excluir mapeamento de URL',
@@ -1189,7 +1195,10 @@ export default {
1189
1195
  url: 'URL personalizado',
1190
1196
  slack: 'Slack Webhook',
1191
1197
  tested: 'Mensagem de teste enviada'
1192
- }
1198
+ },
1199
+ activeUserSessions: 'Sessões de Usuários Ativos',
1200
+ forceLogout: 'Logout forçado',
1201
+ forceLogoutDescription: 'Confirmar o logout forçado deste usuário?'
1193
1202
  },
1194
1203
  transferNode: {
1195
1204
  name: 'Transferir Propriedade',
package/es/locales/ru.js CHANGED
@@ -687,7 +687,9 @@ export default {
687
687
  installResourceHelp: 'Документация помощи',
688
688
  componentIncluded: 'Включено',
689
689
  componentForceRequired: 'Принудительно Требуется'
690
- }
690
+ },
691
+ titleValidationError: 'Длина заголовка должна быть не менее 3 символов',
692
+ descriptionValidationError: 'Длина описания должна быть от 3 до 160 символов'
691
693
  },
692
694
  dashboard: {
693
695
  nodeDid: 'Узел',
@@ -1037,7 +1039,11 @@ export default {
1037
1039
  pathPrefixTip: "Если вы установите префикс на '/мой-префикс', то все запросы, начинающиеся с этого префикса, будут маршрутизироваться к настроенному блоклету",
1038
1040
  blocklet: 'Какой блоклет будет обрабатывать эти запросы?',
1039
1041
  port: 'Какой порт блоклета будет обрабатывать запросы?',
1040
- portTip: 'По умолчанию используется основной порт блоклета. Если блоклет слушает несколько портов, вы можете настроить это.'
1042
+ portTip: 'По умолчанию используется основной порт блоклета. Если блоклет слушает несколько портов, вы можете настроить это.',
1043
+ responseType: 'Тип ответа',
1044
+ responseBody: 'Содержание ответа',
1045
+ responseBodyTip: 'Вставьте сюда содержимое вашего ответа, не превышающее 4096 символов.',
1046
+ responseBodyRequired: 'Содержимое ответа не может быть пустым'
1041
1047
  },
1042
1048
  delete: {
1043
1049
  title: 'Удалить отображение URL',
@@ -1189,7 +1195,10 @@ export default {
1189
1195
  url: 'Пользовательский URL',
1190
1196
  slack: 'Слэк вебхук',
1191
1197
  tested: 'Тестовое сообщение отправлено'
1192
- }
1198
+ },
1199
+ activeUserSessions: 'Активные пользовательские сессии',
1200
+ forceLogout: 'Принудительный выход',
1201
+ forceLogoutDescription: 'Подтвердить выход из системы этого пользователя?'
1193
1202
  },
1194
1203
  transferNode: {
1195
1204
  name: 'Передача собственности',