@object-ui/i18n 17.7.0 → 18.0.0

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.
@@ -13,18 +13,19 @@ const es = {
13
13
  notRestored: 'El servidor aceptó la solicitud pero no restauró su sesión de administrador: sigue suplantando a {{user}}. Cierre sesión y vuelva a iniciarla para terminar.',
14
14
  },
15
15
  },
16
- // objectui#2600 B5 — capability picker scope group headers (labels come from the sys_capability registry).
16
+ // objectui#2600 B5 — capability picker scope group headers (labels come from the capability registry).
17
17
  capability: {
18
18
  label: {
19
19
  manage_users: "Gestionar usuarios",
20
20
  manage_org_users: "Gestionar usuarios de la organización",
21
21
  manage_metadata: "Gestionar metadatos",
22
- manage_org_presentation: "Gestionar la presentación de la organización",
22
+ manage_mailboxes: "Gestionar los buzones",
23
23
  manage_platform_settings: "Gestionar la configuración de la plataforma",
24
24
  setup_access: "Acceso a la configuración",
25
25
  setup_write: "Escritura de la configuración",
26
26
  studio_access: "Acceso a Studio",
27
27
  manage_sharing: "Gestionar el uso compartido",
28
+ view_all_audit_log: "Ver todo el registro de auditoría",
28
29
  },
29
30
  group: {
30
31
  platform: 'Plataforma',
@@ -32,33 +33,6 @@ const es = {
32
33
  other: 'Otro',
33
34
  },
34
35
  },
35
- // objectui#3546 slice six — el resumen de solo lectura de las facetas de
36
- // autorización de PermissionFacetLink. "pestaña" como en list.tabs.
37
- perm: {
38
- facet: {
39
- none: "Ninguno",
40
- more: "+{{count}} más",
41
- objects: "{{count}} objetos",
42
- objects_one: "{{count}} objeto",
43
- objects_many: "{{count}} de objetos",
44
- objects_other: "{{count}} objetos",
45
- fields: "{{count}} reglas de campo",
46
- fields_one: "{{count}} regla de campo",
47
- fields_many: "{{count}} de reglas de campo",
48
- fields_other: "{{count}} reglas de campo",
49
- rls: "{{count}} políticas RLS",
50
- rls_one: "{{count}} política RLS",
51
- rls_many: "{{count}} de políticas RLS",
52
- rls_other: "{{count}} políticas RLS",
53
- tabs: "{{count}} reglas de pestaña",
54
- tabs_one: "{{count}} regla de pestaña",
55
- tabs_many: "{{count}} de reglas de pestaña",
56
- tabs_other: "{{count}} reglas de pestaña",
57
- adminScope: "Administración delegada configurada",
58
- designInStudio: "Diseñar en Studio →",
59
- designInStudioHint: "Diseñar en Studio",
60
- },
61
- },
62
36
  lookup: {
63
37
  recentlyUsed: 'Usados recientemente',
64
38
  allResults: 'Todos los resultados',
@@ -131,6 +105,7 @@ const es = {
131
105
  itemCount_many: "{{count}} de elementos",
132
106
  itemCount_other: "{{count}} elementos",
133
107
  toggleSidebar: "Alternar barra lateral",
108
+ breadcrumb: "Ruta de navegación",
134
109
  package: "Paquete",
135
110
  done: "Listo",
136
111
  editInStudio: "Editar en Studio",
@@ -159,6 +134,7 @@ const es = {
159
134
  copyAll: 'Copiar todo',
160
135
  },
161
136
  notAvailableHere: '«{{action}}» no está disponible en la página actual.',
137
+ notAvailableForRecord: 'No disponible para este registro',
162
138
  completedSuccessfully: 'La acción se completó correctamente',
163
139
  failed: 'La acción falló',
164
140
  parallelFailed: 'Una o más acciones paralelas fallaron',
@@ -200,6 +176,8 @@ const es = {
200
176
  // description, used when the form declares no `description` of its own.
201
177
  dialogDescriptionFallback: "Complete los campos del formulario y luego envíe o cancele.",
202
178
  deniedDescription: "No tienes permiso para editar este campo.",
179
+ serverDefaultHint: "Se establece automáticamente al guardar.",
180
+ maxFileSize: "Tamaño máximo: {{size}}",
203
181
  masterDetail: {
204
182
  loadingColumns: "Cargando columnas…",
205
183
  subtotal: "Subtotal",
@@ -268,10 +246,14 @@ const es = {
268
246
  remove: "Eliminar la imagen {{index}}",
269
247
  enlarge: "Ampliar {{name}}",
270
248
  preview: "Vista previa de la imagen",
249
+ cropPreview: "Vista previa del recorte de la imagen",
271
250
  previous: "Imagen anterior",
272
251
  next: "Imagen siguiente",
273
252
  counter: "{{current}} / {{total}}",
274
253
  },
254
+ percent: {
255
+ slider: "Porcentaje",
256
+ },
275
257
  relativeDate: {
276
258
  overdue: "Atrasado {{count}} d",
277
259
  overdue_one: "Atrasado {{count}} d",
@@ -294,6 +276,8 @@ const es = {
294
276
  exceedsMaxSize: '«{{name}}» supera el tamaño máximo ({{max}} MB)',
295
277
  uploadFailed: 'Error al subir «{{name}}»: {{error}}',
296
278
  uploadIncomplete: 'La subida de «{{name}}» no se completó: no se devolvió ningún identificador de archivo, así que no se guardó nada',
279
+ restricted: 'Archivo restringido',
280
+ restrictedHint: 'No tienes acceso a los detalles de este archivo',
297
281
  },
298
282
  richText: {
299
283
  format: "Formato: {{format}}",
@@ -310,6 +294,10 @@ const es = {
310
294
  search: "Buscar objetos…",
311
295
  empty: "No se encontraron objetos",
312
296
  },
297
+ registryRef: {
298
+ loadFailed: "No se pudo cargar la lista. Todavía puede escribir el nombre.",
299
+ notFound: "{{name}} (no encontrado)",
300
+ },
313
301
  recipient: {
314
302
  selectTypeFirst: "Selecciona primero un tipo de destinatario.",
315
303
  loading: "Cargando…",
@@ -351,6 +339,13 @@ const es = {
351
339
  dateTime: {
352
340
  impossibleDay: "El valor guardado «{{value}}» no es una fecha real. Elige una fecha y una hora para reemplazarlo.",
353
341
  },
342
+ datePicker: {
343
+ today: "Hoy",
344
+ tomorrow: "Mañana",
345
+ clear: "Borrar fecha",
346
+ openCalendar: "Abrir calendario",
347
+ invalid: "No guardado: «{{value}}» no es una fecha. Escríbela como {{format}} o elígela en el calendario.",
348
+ },
354
349
  number: {
355
350
  badInput: "No guardado: el texto de este campo no es un número. Introduce un decimal simple (ejemplo: {{example}}).",
356
351
  },
@@ -365,6 +360,11 @@ const es = {
365
360
  postalCode: "Código postal",
366
361
  country: "País",
367
362
  },
363
+ boolean: {
364
+ offBadge: "{{label}} — Desactivado",
365
+ completed: "Completado",
366
+ notCompleted: "No completado",
367
+ },
368
368
  textarea: {
369
369
  characterCount: "Recuento de caracteres: {{count}} de {{max}}",
370
370
  charactersRemaining: "Caracteres restantes: {{count}}",
@@ -394,10 +394,15 @@ const es = {
394
394
  selectAllRows: "Seleccionar todas las filas",
395
395
  expandRow: "Expandir fila",
396
396
  collapseRow: "Contraer fila",
397
+ rowActions: "Acciones de fila",
397
398
  hideColumn: "Ocultar columna",
398
399
  freezeColumn: "Fijar columna",
399
400
  unfreezeColumn: "Desfijar columna",
400
401
  pageInfo: "Página {{current}} de {{total}}",
402
+ firstPage: "Primera página",
403
+ previousPage: "Página anterior",
404
+ nextPage: "Página siguiente",
405
+ lastPage: "Última página",
401
406
  totalRecords: "{{count}} en total",
402
407
  noResults: "Sin resultados",
403
408
  noResultsHint: "Intente ajustar sus filtros o términos de búsqueda.",
@@ -410,6 +415,10 @@ const es = {
410
415
  modified_one: "{{count}} fila modificada",
411
416
  modified_many: "{{count}} de filas modificadas",
412
417
  modified_other: "{{count}} filas modificadas",
418
+ saved: "{{count}} filas guardadas",
419
+ saved_one: "{{count}} fila guardada",
420
+ saved_many: "{{count}} de filas guardadas",
421
+ saved_other: "{{count}} filas guardadas",
413
422
  saveFailed: 'Error al guardar',
414
423
  selected: "{{count}} seleccionados",
415
424
  selected_one: "{{count}} seleccionado",
@@ -431,6 +440,7 @@ const es = {
431
440
  bulkAllOnPage_other: "Están seleccionados los {{count}} de esta página.",
432
441
  bulkSelectAllMatching: "Seleccionar las {{count}} coincidencias",
433
442
  bulkAllMatchingSelected: "Están seleccionados los {{count}} registros coincidentes.",
443
+ bulkActions: "Acciones masivas",
434
444
  bulk: {
435
445
  confirmDefault: "Esto se aplicará a {{count}} registro(s).",
436
446
  confirmDefault_one: "Esto se aplicará a {{count}} registro.",
@@ -471,6 +481,7 @@ const es = {
471
481
  pullToRefresh: "Desliza para actualizar",
472
482
  refreshing: "Actualizando…",
473
483
  openRecord: "Abrir registro",
484
+ recordUnavailable: "{{object}} · registro no disponible",
474
485
  rowHeight: "Altura de fila: {{mode}}",
475
486
  openMenu: "Abrir menú",
476
487
  empty: "Vacío",
@@ -490,6 +501,7 @@ const es = {
490
501
  // pack controls its own separator and word order.
491
502
  summary: {
492
503
  pattern: "{{label}}: {{value}}",
504
+ pagePattern: "{{label}} (esta página): {{value}}",
493
505
  count: "Recuento",
494
506
  countEmpty: "Vacíos",
495
507
  countFilled: "Rellenos",
@@ -557,9 +569,6 @@ const es = {
557
569
  needMatchFields: "Seleccione al menos un campo por el que coincidir.",
558
570
  matchOnlyField: "(solo coincidencia)",
559
571
  optCreateOptions: "Conservar los valores de opción desconocidos",
560
- optRunAutomations: "Ejecutar automatizaciones y disparadores",
561
- optTreatHistorical: "Importar como datos históricos",
562
- optTreatHistoricalHint: "(importa los registros completados tal cual: omite las comprobaciones de la máquina de estados y conserva sus marcas de tiempo y autor originales en lugar de sellarlos ahora)",
563
572
  optSkipBlankKey: "Omitir las filas con valor de coincidencia vacío",
564
573
  optBackground: "Importar en segundo plano",
565
574
  optBackgroundHint: "(se ejecuta como un trabajo reversible)",
@@ -574,6 +583,7 @@ const es = {
574
583
  invalidBoolean: "«{{value}}» no es un valor verdadero/falso válido",
575
584
  invalidNumber: "«{{value}}» no es un número válido",
576
585
  invalidDate: "«{{value}}» no es una fecha válida",
586
+ invalidTime: "«{{value}}» no es una hora válida",
577
587
  invalidOption: "«{{value}}» no es una de las opciones permitidas",
578
588
  requiredValue: "Este campo es obligatorio",
579
589
  matchAmbiguous: "Coincide con más de un registro existente: use un valor único o el id del registro",
@@ -597,6 +607,10 @@ const es = {
597
607
  undoing: "Deshaciendo…",
598
608
  undoConfirm: "¿Deshacer esta importación? Los registros que creó se eliminarán y los que actualizó se restaurarán a sus valores anteriores.",
599
609
  reverted: "Deshecha",
610
+ undoPartial: "{{count}} filas no se deshicieron. Al deshacer de nuevo, solo se reintentan esas filas.",
611
+ undoPartial_one: "{{count}} fila no se deshizo. Al deshacer de nuevo, solo se reintenta esa fila.",
612
+ undoPartial_many: "{{count}} de filas no se deshicieron. Al deshacer de nuevo, solo se reintentan esas filas.",
613
+ undoPartial_other: "{{count}} filas no se deshicieron. Al deshacer de nuevo, solo se reintentan esas filas.",
600
614
  jobStatus: {
601
615
  pending: "Pendiente",
602
616
  running: "En ejecución",
@@ -664,6 +678,8 @@ const es = {
664
678
  showingRows: "Mostrando {{shown}} de {{total}} filas",
665
679
  importing: "Importando… {{progress}}%",
666
680
  importComplete: "Importación completada",
681
+ importPartial: "Importación finalizada con errores",
682
+ importFailed: "La importación ha fallado",
667
683
  imported: "{{count}} importado(s)",
668
684
  skippedCount: "{{count}} omitido(s)",
669
685
  moreErrors: "…y {{count}} error(es) más",
@@ -727,6 +743,7 @@ const es = {
727
743
  firstRunMessage: "Cree su primer registro para empezar.",
728
744
  noMatches: "No hay registros coincidentes",
729
745
  noMatchesMessage: "Ningún registro coincide con sus filtros o su búsqueda actuales. Pruebe a ajustarlos o borrarlos.",
746
+ viewFilterNoMatchesMessage: "Ningún registro coincide con el filtro de esta vista.",
730
747
  loadErrorTitle: "No se pudieron cargar los registros",
731
748
  loadErrorMessage: "Algo salió mal al cargar estos datos. Compruebe su conexión y vuelva a intentarlo.",
732
749
  loadErrorForbiddenTitle: "No tiene acceso",
@@ -767,15 +784,22 @@ const es = {
767
784
  recordCount_many: "{{count}} de registros",
768
785
  recordCount_other: "{{count}} registros",
769
786
  addRecord: "Agregar registro",
787
+ // objectui#12703 — the compact list's footer link to the object's list or the block's view.
788
+ viewAll: "Ver todo",
770
789
  tabs: "Pestañas",
771
790
  allRecords: "Todos los registros",
772
791
  search: "Buscar",
773
792
  filter: "Filtrar",
774
793
  filterRecords: "Filtrar registros",
794
+ filterActive: "Filtrar, {{count}} activos",
795
+ filterActive_one: "Filtrar, {{count}} activo",
796
+ filterActive_many: "Filtrar, {{count}} activos",
797
+ filterActive_other: "Filtrar, {{count}} activos",
775
798
  sort: "Ordenar",
776
799
  sortRecords: "Ordenar registros",
777
800
  sortByIdSuffix: "(por ID)",
778
801
  sortRelationalHint: "Las columnas que apuntan a otro registro no aparecen aquí: solo pueden ordenarse por el ID almacenado, no por el nombre que se muestra en la celda. Para ordenar por ese nombre, desnormalícelo en este objeto como un campo almacenado, que se escribe cuando cambia el origen, y ordene por él. No un campo de fórmula: es virtual, no se almacena ninguna columna para él y el servidor rechaza ordenar por él.",
802
+ sortRelationalPicked: "Una columna vinculada se ordena por el ID almacenado, no por el nombre mostrado.",
779
803
  resetSortToDefault: "Restablecer al valor predeterminado de la vista",
780
804
  group: "Agrupar",
781
805
  groupBy: "Agrupar por",
@@ -796,14 +820,15 @@ const es = {
796
820
  print: "Imprimir",
797
821
  hideFieldsTitle: "Ocultar campos",
798
822
  dataLimitReached: "Se muestran los primeros {{limit}} registros. Puede haber más datos disponibles.",
799
- viewSettings: "Configuración de vista",
800
- viewSettingsHint: "Agrupación, color, densidad y campos visibles. Se aplica a todos los usuarios de esta vista.",
823
+ display: "Visualización",
824
+ layout: "Diseño",
825
+ rowNumbers: "Números de fila",
826
+ resetToViewDefault: "Restablecer los valores predeterminados de la vista",
801
827
  addGroup: "Agregar campo de grupo",
802
828
  collapsedByDefault: "Contraído por defecto",
803
829
  removeGroup: "Eliminar",
804
830
  inlineEditShort: "Edición en línea",
805
831
  inlineEditLabel: "Editar registros en línea (haga clic en una celda para editar)",
806
- recordEditingTitle: "Edición de registros",
807
832
  },
808
833
  managedByBadge: {
809
834
  systemWritable: {
@@ -834,6 +859,7 @@ const es = {
834
859
  },
835
860
  kanban: {
836
861
  uncategorized: "Sin categoría",
862
+ loadMore: "Cargar más",
837
863
  columns: "columnas",
838
864
  addCard: "Añadir tarjeta",
839
865
  addColumn: "Añadir columna",
@@ -841,13 +867,28 @@ const es = {
841
867
  deleteCard: "Eliminar tarjeta",
842
868
  deleteColumn: "Eliminar columna",
843
869
  noCards: "Sin tarjetas",
870
+ columnCards: "Tarjetas de la columna {{column}}",
871
+ laneCards: "Tarjetas de {{column}} - {{lane}}",
844
872
  cardTitlePlaceholder: "Escriba el título de la tarjeta…",
845
873
  requiredFieldsTitle: "Complete los campos obligatorios",
846
874
  requiredFieldsDescription: "Este movimiento hace que los campos siguientes sean obligatorios. Complételos para continuar.",
875
+ dnd: {
876
+ start: "Tarjeta {{card}} tomada en la columna {{column}}.",
877
+ overCard: "Tarjeta {{card}} sobre la tarjeta {{target}} en la columna {{column}}.",
878
+ overColumn: "Tarjeta {{card}} sobre la columna {{column}}.",
879
+ overNone: "La tarjeta {{card}} no está sobre ninguna columna.",
880
+ moved: "Tarjeta {{card}} movida a la columna {{column}}.",
881
+ dropped: "Tarjeta {{card}} soltada. Sigue en la columna {{column}}.",
882
+ cancelled: "Arrastre cancelado. La tarjeta {{card}} sigue en la columna {{column}}.",
883
+ untitledCard: "sin título",
884
+ unnamedColumn: "sin nombre",
885
+ instructions: "Para mover esta tarjeta a otra columna, arrástrela con el ratón o de forma táctil.",
886
+ dragging: "Arrastrando la tarjeta {{card}}",
887
+ },
847
888
  },
848
889
  timeline: {
849
890
  bucket: {
850
- overdue: "Atrasado",
891
+ earlier: "Antes",
851
892
  today: "Hoy",
852
893
  tomorrow: "Mañana",
853
894
  thisWeek: "Esta semana",
@@ -1031,10 +1072,13 @@ const es = {
1031
1072
  readonlyAriaLabel: "Vista de solo lectura",
1032
1073
  readonlyTooltip: "Vista del sistema — definida en el código, solo lectura.",
1033
1074
  malformedFilter: "El filtro de esta vista no es válido, por lo que no se muestra ningún registro: la condición {{subject}} no se puede aplicar.",
1075
+ noObject: "No se ha indicado ningún objeto: define {{property}} o dataSource.object.",
1034
1076
  },
1035
1077
  designer: {
1036
1078
  undo: "Deshacer",
1037
1079
  redo: "Rehacer",
1080
+ canvasMinimap: "Minimapa del lienzo",
1081
+ versionHistory: "Historial de versiones",
1038
1082
  },
1039
1083
  detail: {
1040
1084
  editInlineHint: "Haga doble clic para editar",
@@ -1119,6 +1163,7 @@ const es = {
1119
1163
  noAttachments: "Aún no hay adjuntos. Suba un archivo para empezar.",
1120
1164
  downloadAttachment: "Descargar",
1121
1165
  deleteAttachment: "Eliminar adjunto",
1166
+ deleteAttachmentConfirm: "¿Está seguro de que desea eliminar el adjunto \"{{name}}\"?",
1122
1167
  attachmentDeleteDenied: "Solo quien lo subió o alguien que pueda editar este registro puede eliminar este adjunto.",
1123
1168
  attachmentParentAccessDenied: "No tiene acceso para adjuntar archivos a este registro.",
1124
1169
  attachmentDownloadDenied: "No tiene acceso para descargar este adjunto.",
@@ -1183,10 +1228,12 @@ const es = {
1183
1228
  lockedByApproval: "Bloqueado para aprobación",
1184
1229
  lockedTooltip: "Este registro tiene una solicitud de aprobación pendiente; la edición está bloqueada",
1185
1230
  writeStrippedTitle: "Guardado, pero algunos campos no se aplicaron",
1231
+ writeWarningsTitle: "Guardado, con advertencias",
1186
1232
  writeStrippedReadonly: "De solo lectura, por lo que no se aplicó: {{fields}}",
1187
1233
  writeStrippedByState: "No editable en el estado actual de este registro, por lo que no se aplicó: {{fields}}",
1188
1234
  writeStrippedPrimaryKey: "El identificador del registro no se puede cambiar al guardar, por lo que no se aplicó: {{fields}}",
1189
1235
  writeStrippedComputed: "Lo calcula el servidor mediante una fórmula, por lo que el valor enviado no se aplicó: {{fields}}",
1236
+ writeStrippedStoredExpression: "Se calcula a partir del registro, por lo que se guardó el valor calculado en lugar del enviado: {{fields}}",
1190
1237
  writeStrippedUnknownReason: "No aplicado por el servidor: {{fields}}",
1191
1238
  approvalPendingEditable: "En aprobación · editable",
1192
1239
  approvalPendingTooltip: "Este registro tiene una solicitud de aprobación pendiente; este paso todavía permite la edición",
@@ -1210,6 +1257,11 @@ const es = {
1210
1257
  linkCopied: "Enlace copiado al portapapeles",
1211
1258
  commentFailed: "Tu comentario no se ha publicado. No se ha guardado nada; inténtalo de nuevo.",
1212
1259
  reactionFailed: "Tu reacción no se ha guardado. Inténtalo de nuevo.",
1260
+ editComment: "Editar comentario",
1261
+ deleteComment: "Eliminar comentario",
1262
+ deleteCommentConfirm: "¿Está seguro de que desea eliminar este comentario?",
1263
+ commentEditFailed: "Tu edición no se ha guardado. El comentario conserva su texto anterior.",
1264
+ commentDeleteFailed: "El comentario no se ha eliminado. Inténtalo de nuevo.",
1213
1265
  linkCopyFailed: "No se pudo copiar el enlace",
1214
1266
  cancel: "Cancelar",
1215
1267
  cancelEdit: "Descartar cambios",
@@ -1626,7 +1678,8 @@ const es = {
1626
1678
  },
1627
1679
  console: {
1628
1680
  studio: {
1629
- backToHome: "Volver al inicio",
1681
+ title: "Studio",
1682
+ accessRequired: "Necesita acceso a Studio para abrir Studio.",
1630
1683
  },
1631
1684
  saveAdvisoryTitle: "Guardado: la comprobación de creación generó {{count}} recomendación(es)",
1632
1685
  saveAdvisoryTitle_one: "Guardado: la comprobación de creación generó {{count}} recomendación",
@@ -1644,13 +1697,13 @@ const es = {
1644
1697
  savedViewsUnreadable: "Esta lista está vacía porque no se pudo leer, no porque este objeto no tenga vistas guardadas. Inténtalo de nuevo e informa del problema si continúa.",
1645
1698
  settingsHub: {
1646
1699
  title: "Configuración",
1647
- subtitle: "Configure su espacio de trabajo, las integraciones y los indicadores de funciones.",
1700
+ subtitle: "Configure su sistema, las integraciones y los indicadores de funciones.",
1648
1701
  loadError: "No se pudo cargar la configuración",
1649
1702
  empty: "No hay configuraciones registradas. Los plugins pueden registrar manifiestos de configuración mediante el SettingsService.",
1650
1703
  settingsCount: "{{n}} configuraciones",
1651
1704
  beta: "Beta",
1652
1705
  categories: {
1653
- Workspace: "Espacio de trabajo",
1706
+ Workspace: "General",
1654
1707
  Communication: "Comunicación",
1655
1708
  Security: "Seguridad",
1656
1709
  Infrastructure: "Infraestructura",
@@ -1695,8 +1748,7 @@ const es = {
1695
1748
  },
1696
1749
  usage: {
1697
1750
  title: "Uso de IA",
1698
- meterBuild: "Crear",
1699
- meterAsk: "Preguntar",
1751
+ poolUsed: "{{percent}} usado",
1700
1752
  statusOk: "Queda bastante",
1701
1753
  statusLow: "Se está agotando",
1702
1754
  statusFull: "Límite alcanzado",
@@ -1713,7 +1765,6 @@ const es = {
1713
1765
  ctaUpgrade: "Mejore el plan para continuar",
1714
1766
  ctaTopUp: "Añada créditos para continuar",
1715
1767
  ariaLabel: "Uso de IA: {{status}}",
1716
- breakdownTitle: "Usado hasta ahora",
1717
1768
  },
1718
1769
  workspaceTitle: "Espacio de trabajo de IA",
1719
1770
  workspaceSubtitle: "Pregunte, inspeccione y retome conversaciones",
@@ -1770,6 +1821,8 @@ const es = {
1770
1821
  liveCanvasUnlisted: "Aplicación en vivo — {{app}} (no listada hasta su publicación)",
1771
1822
  loadingAgents: "Cargando agentes…",
1772
1823
  askAnything: "Pregunte lo que quiera…",
1824
+ askOrChangeApp: "Pregunte por sus datos o pídame que cambie esta app…",
1825
+ describeAppToBuild: "Describa la app que quiere crear o lo que hay que cambiar…",
1773
1826
  emptyTitle: "Iniciar una conversación",
1774
1827
  emptyDescription: "Pregunte lo que quiera — el asistente tiene acceso al contexto de su aplicación actual.",
1775
1828
  switchAssistant: "Cambiar de asistente",
@@ -1791,12 +1844,17 @@ const es = {
1791
1844
  },
1792
1845
  clearConversation: "Borrar",
1793
1846
  sendHint: "para enviar",
1847
+ newlineHint: "para una nueva línea",
1794
1848
  agentActivity: "Actividad del agente",
1795
1849
  toolCompleted: "Completado",
1796
1850
  toolRunning: "En ejecución",
1797
1851
  toolAwaitingApproval: "Esperando aprobación",
1798
1852
  toolFailed: "Error",
1799
1853
  toolDetailsHidden: "Las entradas de las herramientas y los resultados sin procesar están ocultos en esta vista.",
1854
+ toolDenyReason: "Rechazado por el operador desde el chat",
1855
+ builderHandoffTitle: "Crear en el constructor",
1856
+ builderHandoffOpen: "Abrir en el constructor →",
1857
+ builderHandoffSuperseded: "Hay una solicitud más reciente",
1800
1858
  copy: "Copiar",
1801
1859
  copied: "Copiado",
1802
1860
  regenerate: "Regenerar",
@@ -1811,7 +1869,7 @@ const es = {
1811
1869
  publishOk: "Publicado — los objetos ya están activos.",
1812
1870
  seedWarn: "Publicado, pero no se pudieron cargar algunos datos de ejemplo.",
1813
1871
  openBuiltApp: "Abrir la aplicación",
1814
- designBuiltApp: "Diseñar en Studio",
1872
+ viewBuiltAppInStudio: "Ver en Studio",
1815
1873
  previewDraft: "Vista previa",
1816
1874
  previewApp: "Vista previa de la aplicación",
1817
1875
  resizeSplit: "Redimensionar el chat y la vista previa",
@@ -1938,6 +1996,7 @@ const es = {
1938
1996
  collapse: "Contraer el chat",
1939
1997
  maximize: "Abrir como página completa",
1940
1998
  open: "Abrir el asistente",
1999
+ planAwaitingApproval: "Un plan propuesto espera su aprobación",
1941
2000
  },
1942
2001
  group: {
1943
2002
  today: "Hoy",
@@ -1948,12 +2007,9 @@ const es = {
1948
2007
  },
1949
2008
  },
1950
2009
  title: "Consola ObjectStack",
1951
- initializing: "Inicializando aplicación…",
1952
- loadingHint: "Configurar un entorno nuevo puede tardar unos momentos.",
2010
+ initializing: "Abriendo su consola…",
2011
+ skipToContent: "Saltar al contenido",
1953
2012
  breadcrumb: {
1954
- dashboards: "Paneles",
1955
- pages: "Páginas",
1956
- reports: "Informes",
1957
2013
  system: "Sistema",
1958
2014
  marketplace: "Marketplace",
1959
2015
  settings: 'Configuración',
@@ -1983,16 +2039,31 @@ const es = {
1983
2039
  unsavedCount_one: "{{count}} cambio sin guardar",
1984
2040
  unsavedCount_many: "{{count}} de cambios sin guardar",
1985
2041
  unsavedCount_other: "{{count}} cambios sin guardar",
2042
+ fieldErrorsToast: "{{count}} ajustes requieren atención: {{settings}}",
2043
+ fieldErrorsToast_one: "{{count}} ajuste requiere atención: {{settings}}",
2044
+ fieldErrorsToast_many: "{{count}} de ajustes requieren atención: {{settings}}",
2045
+ fieldErrorsToast_other: "{{count}} ajustes requieren atención: {{settings}}",
1986
2046
  cryptoRefusalTitle: "Esta instalación no puede cifrar secretos",
1987
2047
  cryptoRefusalSubjectSuffix: "está declarado como cifrado, por lo que no se escribió nada.",
1988
2048
  cryptoRefusalNoSubject: "El valor declarado como cifrado fue rechazado, por lo que no se escribió nada.",
1989
2049
  cryptoRefusalToast: "No se pueden cifrar los secretos: {{subject}}",
1990
2050
  cryptoRefusalToastNoSubject: "No se pueden cifrar los secretos",
1991
- },
1992
- loadingSteps: {
1993
- connecting: "Conectando a la fuente de datos",
1994
- loadingConfig: "Cargando configuración",
1995
- preparingWorkspace: "Preparando espacio de trabajo",
2051
+ sourceBadgeInherited: "Heredado de {{source}}",
2052
+ sourceBadgeOverrides: "Sobrescribe {{source}}",
2053
+ resetToDefault: "Restablecer valor predeterminado",
2054
+ envLockBadge: "Bloqueado por el entorno",
2055
+ envLockBadgeTitle: "Fijado por una variable de entorno: no se puede editar desde la interfaz.",
2056
+ deprecatedBadge: "Obsoleto",
2057
+ deprecatedBadgeReplacedBy: "Obsoleto → {{replacedBy}}",
2058
+ unsupportedSpecifierType: "Tipo de ajuste no admitido: {{type}}",
2059
+ },
2060
+ workspaceTimezonePrompt: {
2061
+ title: "Configure la zona horaria del sistema",
2062
+ description: "Este sistema aún usa la zona horaria predeterminada de la plataforma, {{current}}. La zona horaria del sistema determina qué significa «hoy» en las fórmulas, cómo agrupan los informes por fecha y cómo se muestran las fechas y horas, para todos en el sistema. Abajo se indica la zona horaria de su navegador.",
2063
+ laterHint: "Puede cambiarla en cualquier momento en la página de Configuración.",
2064
+ decline: "Mantener la predeterminada",
2065
+ confirm: "Configurar zona horaria",
2066
+ saved: "Zona horaria del sistema configurada en {{zone}}",
1996
2067
  },
1997
2068
  error: {
1998
2069
  connectionFailed: "No se puede conectar al servidor",
@@ -2017,27 +2088,28 @@ const es = {
2017
2088
  groups: {
2018
2089
  general: "General",
2019
2090
  navigation: "Navegación",
2020
- dataViews: "Vistas de datos",
2021
2091
  aiChat: "Asistente de IA",
2022
- preferences: "Preferencias",
2023
2092
  },
2024
2093
  openCommandPalette: "Abrir paleta de comandos",
2025
2094
  showShortcuts: "Mostrar atajos de teclado",
2026
2095
  closeDialog: "Cerrar diálogo / panel",
2027
2096
  toggleSidebar: "Alternar barra lateral",
2028
- focusSearch: "Enfocar búsqueda",
2029
- createRecord: "Crear nuevo registro",
2030
- refreshData: "Actualizar datos",
2031
- editRecord: "Editar registro seleccionado",
2032
2097
  newChat: "Nuevo chat",
2033
2098
  toggleChatsList: "Alternar lista de chats",
2034
- toggleDarkMode: "Alternar modo oscuro",
2099
+ goHome: "Volver al inicio",
2100
+ },
2101
+ reportIndex: {
2102
+ title: "Informes",
2103
+ emptyTitle: "No hay informes",
2104
+ emptyDescription: "Esta aplicación no tiene informes que puedas abrir.",
2035
2105
  },
2036
2106
  commandPalette: {
2037
2107
  title: "Paleta de comandos",
2038
2108
  placeholder: "Escriba un comando o busque…",
2039
2109
  noResults: "No se encontraron resultados.",
2040
2110
  objects: "Objetos",
2111
+ packages: "Paquetes",
2112
+ flows: "Flujos",
2041
2113
  dashboards: "Paneles",
2042
2114
  pages: "Páginas",
2043
2115
  reports: "Informes",
@@ -2056,9 +2128,9 @@ const es = {
2056
2128
  },
2057
2129
  // objectui#9954 — see the `en` pack for what raises each case.
2058
2130
  readRate: {
2059
- ratioTitle: 'Volumen de lectura inusual en este entorno',
2131
+ ratioTitle: 'Volumen de lectura inusual en este sistema',
2060
2132
  ratio: 'Se leen {{ratio}} filas por cada fila escrita. La plataforma señala todo lo que supere {{threshold}}. No se limita ni se bloquea nada; es un informe para que se pueda revisar el patrón de lectura.',
2061
- noWritesTitle: 'Lecturas sin ninguna escritura en este entorno',
2133
+ noWritesTitle: 'Lecturas sin ninguna escritura en este sistema',
2062
2134
  noWrites: 'Se están leyendo filas sin escribir ninguna, por lo que la tasa de lectura no tiene límite superior. Es la lectura más grave. La plataforma señala todo lo que supere {{threshold}}. No se limita ni se bloquea nada; es un informe para que se pueda revisar el patrón de lectura.',
2063
2135
  },
2064
2136
  // objectui#10439 — see the `en` pack for what raises each case.
@@ -2099,12 +2171,14 @@ const es = {
2099
2171
  viewNameInvalid: "Use minúsculas, números y guiones bajos; empiece por una letra o un guion bajo.",
2100
2172
  systemViewReadonly: "Vista del sistema definida en el código: solo lectura.",
2101
2173
  cannotEditMetaView: "Esta vista está integrada y definida en el código: no se puede modificar.",
2102
- viewConfigPermissionDenied: "La configuración de la vista se aplica a todos los usuarios que la utilizan, por lo que modificarla requiere el permiso «Administrar metadatos». Pida a un administrador que realice este cambio.",
2174
+ resetView: "Restablecer vista",
2175
+ resetViewTitle: "Devolver esta vista a su propia ordenación, filtros y anchos de columna. Solo cambia su configuración.",
2103
2176
  cannotDeleteMetaView: "Esta vista está integrada y definida en el código: no se puede eliminar.",
2104
2177
  expandToPage: "Abrir como página completa",
2105
2178
  objectNotFound: "Objeto no encontrado",
2106
2179
  objectNotFoundDescription: "El objeto \"{{objectName}}\" no existe en la configuración actual.",
2107
2180
  objectNotFoundHint: "Verifique la configuración de navegación de su aplicación o seleccione un objeto diferente en la barra lateral.",
2181
+ objectPackageDisabled: "El objeto \"{{objectName}}\" pertenece a un paquete deshabilitado, por lo que no se está sirviendo.",
2108
2182
  filterOrNotSavable: "Este filtro une las condiciones con O, algo que una vista guardada aún no puede almacenar. Se sigue aplicando a esta lista: quite la agrupación O para guardarlo en la vista.",
2109
2183
  filterNestedNotSavable: "Este filtro usa grupos de condiciones anidados, que una vista guardada no puede almacenar. Conviértalo en una única lista de condiciones para guardarlo en la vista.",
2110
2184
  allRecords: "Todos los registros",
@@ -2195,6 +2269,10 @@ const es = {
2195
2269
  ufAddField: "+ Agregar campo de filtro…",
2196
2270
  ufShowAllRecords: "Mostrar pestaña \"Todos los registros\"",
2197
2271
  },
2272
+ runtimeDraft: {
2273
+ publishFailed: "Error al publicar",
2274
+ discardFailed: "Error al descartar el borrador",
2275
+ },
2198
2276
  localeSwitcher: {
2199
2277
  label: "Idioma",
2200
2278
  },
@@ -2202,17 +2280,22 @@ const es = {
2202
2280
  nav: {
2203
2281
  pinItem: "Fijar {{name}}",
2204
2282
  unpinItem: "Desfijar {{name}}",
2205
- dragToReorder: "Arrastrar para reordenar",
2206
2283
  favorites: "Favoritos",
2207
2284
  launcherLabel: "Lanzador de aplicaciones",
2208
2285
  menuLabel: "Navegación de la aplicación",
2209
2286
  menuEmpty: "Esta aplicación no tiene entradas de navegación que puedas abrir.",
2287
+ itemMenu: "Más acciones para {{name}}",
2288
+ openInNewTab: "Abrir en nueva pestaña",
2289
+ copyLink: "Copiar enlace",
2290
+ linkCopied: "Enlace copiado al portapapeles",
2291
+ linkCopyFailed: "No se pudo copiar el enlace",
2292
+ design: "Diseñar",
2210
2293
  },
2211
2294
  },
2212
2295
  auth: {
2213
2296
  setPassword: {
2214
2297
  title: "Establecer una contraseña de recuperación",
2215
- description: "Ha iniciado sesión mediante inicio de sesión único. Establezca una contraseña local para poder seguir accediendo directamente a este entorno si el SSO deja de estar disponible.",
2298
+ description: "Ha iniciado sesión mediante inicio de sesión único. Establezca una contraseña local para poder seguir accediendo directamente si el SSO deja de estar disponible.",
2216
2299
  email: "Correo electrónico",
2217
2300
  newPassword: "Nueva contraseña",
2218
2301
  confirmPassword: "Confirmar la contraseña",
@@ -2228,9 +2311,8 @@ const es = {
2228
2311
  signingIn: "Iniciando sesión…",
2229
2312
  ssoHandoff: "Continuar a {{target}}",
2230
2313
  devAdminHint: {
2231
- title: "Instancia de desarrollo",
2232
- body: "Inicie sesión con el administrador de desarrollo predefinido:",
2233
- dismiss: "Descartar",
2314
+ title: "Instancia de desarrollo local",
2315
+ signIn: "Iniciar sesión como administrador de desarrollo",
2234
2316
  },
2235
2317
  title: "Inicia sesión en tu cuenta",
2236
2318
  description: "Ingresa tu correo electrónico y contraseña para continuar",
@@ -2262,6 +2344,20 @@ const es = {
2262
2344
  usePasswordSignInText: "Iniciar sesión con contraseña en su lugar",
2263
2345
  socialButton: "Continuar con {provider}",
2264
2346
  orText: "o continúe con correo electrónico",
2347
+ ssoButton: "Iniciar sesión con SSO",
2348
+ ssoOnlyDescription: "Accede con el inicio de sesión único de tu organización",
2349
+ usePasswordText: "Usar una contraseña en su lugar",
2350
+ backToSsoText: "Volver al inicio de sesión único",
2351
+ // objectui#12600 — the console login card's own header, the password
2352
+ // field's reveal toggle, and the footer's legal links.
2353
+ welcomeTitle: "Bienvenido de nuevo",
2354
+ welcomeDescription: "Inicia sesión para continuar con tu trabajo",
2355
+ showPasswordText: "Mostrar contraseña",
2356
+ hidePasswordText: "Ocultar contraseña",
2357
+ footer: {
2358
+ privacy: "Privacidad",
2359
+ terms: "Términos",
2360
+ },
2265
2361
  },
2266
2362
  register: {
2267
2363
  title: "Crear una cuenta",
@@ -2284,7 +2380,7 @@ const es = {
2284
2380
  orText: "o continúe con correo electrónico",
2285
2381
  errors: {
2286
2382
  userExists: "Ya existe una cuenta con ese correo. Intente iniciar sesión.",
2287
- selfRegistrationClosed: "El registro por cuenta propia no está abierto en este entorno. Solicite una invitación a un administrador.",
2383
+ selfRegistrationClosed: "El registro por cuenta propia no está abierto en este sistema. Solicite una invitación a un administrador.",
2288
2384
  emailDomainNotAllowed: "El dominio de este correo no está autorizado para registrarse aquí. Use el correo de su organización o solicite una invitación a un administrador.",
2289
2385
  },
2290
2386
  verifyInbox: {
@@ -2361,7 +2457,7 @@ const es = {
2361
2457
  checkSpam: "¿No recibió el correo? Revise su carpeta de spam o contacte soporte.",
2362
2458
  or: "O",
2363
2459
  // objectui#3546 slice three.
2364
- resendUnavailable: "Puede que el envío de correos no esté configurado en este entorno. Contacte soporte si el problema persiste.",
2460
+ resendUnavailable: "Puede que el envío de correos no esté configurado en este sistema. Contacte soporte si el problema persiste.",
2365
2461
  },
2366
2462
  setup: {
2367
2463
  welcomeTitle: "Bienvenido a ObjectStack",
@@ -2405,7 +2501,7 @@ const es = {
2405
2501
  disabledDescription: "Esta implementación no tiene habilitada la autorización de dispositivos, por lo que este dispositivo no puede aprobarse aquí.",
2406
2502
  },
2407
2503
  shell: {
2408
- tenantHostHint: "Está iniciando sesión en este espacio de trabajo",
2504
+ tenantHostHint: "Está iniciando sesión en este sistema",
2409
2505
  },
2410
2506
  layout: {
2411
2507
  headline: "Cree aplicaciones empresariales potentes, más rápido.",
@@ -2415,6 +2511,7 @@ const es = {
2415
2511
  signOut: "Cerrar sesión en su lugar",
2416
2512
  password: {
2417
2513
  title: "Su contraseña ha caducado",
2514
+ resetTitle: "Debe cambiar su contraseña",
2418
2515
  fallbackMessage: "Establezca una nueva contraseña para continuar.",
2419
2516
  current: "Contraseña actual",
2420
2517
  next: "Nueva contraseña",
@@ -2440,6 +2537,11 @@ const es = {
2440
2537
  verifying: "Verificando…",
2441
2538
  invalidCode: "Código no válido. Inténtelo de nuevo.",
2442
2539
  },
2540
+ impersonation: {
2541
+ passwordTitle: "{{user}} debe cambiar su contraseña",
2542
+ mfaTitle: "{{user}} debe configurar la autenticación en dos pasos",
2543
+ body: "Está suplantando a {{user}} y solo esa persona puede hacerlo por sí misma. Deje de suplantar para volver a su propia cuenta.",
2544
+ },
2443
2545
  },
2444
2546
  },
2445
2547
  // objectui#3546 slice three — the /oauth/consent screen.
@@ -2448,12 +2550,17 @@ const es = {
2448
2550
  title: "{{appName}} quiere acceder a su cuenta",
2449
2551
  request: "{{appName}} solicita permiso{{suffix}}.",
2450
2552
  unknownApp: "una aplicación",
2553
+ unidentified: "No se pudo identificar esta aplicación.",
2554
+ clientId: "ID de cliente",
2451
2555
  willAllow: "Esta aplicación podrá:",
2452
2556
  scope: {
2453
2557
  openid: "Confirmar su identidad",
2454
2558
  profile: "Leer su perfil básico (nombre, foto)",
2455
2559
  email: "Leer su dirección de correo electrónico",
2456
2560
  offlineAccess: "Mantener la sesión abierta (renovar el acceso)",
2561
+ dataRead: "Leer registros (dentro de sus propios permisos)",
2562
+ dataWrite: "Crear, modificar y eliminar registros (dentro de sus propios permisos)",
2563
+ actionsExecute: "Ejecutar acciones en su nombre (dentro de sus propios permisos)",
2457
2564
  },
2458
2565
  deny: "Denegar",
2459
2566
  authorize: "Autorizar",
@@ -2496,8 +2603,8 @@ const es = {
2496
2603
  password: {
2497
2604
  changeTitle: "Cambiar contraseña",
2498
2605
  setTitle: "Establecer contraseña local",
2499
- changeDescription: "Actualice la contraseña que usa para iniciar sesión en este entorno.",
2500
- setDescription: "Inició sesión mediante inicio de sesión único. Establezca una contraseña local para poder iniciar sesión también con correo y contraseña en este entorno.",
2606
+ changeDescription: "Actualice la contraseña que usa para iniciar sesión.",
2607
+ setDescription: "Inició sesión mediante inicio de sesión único. Establezca una contraseña local para poder iniciar sesión también con correo y contraseña.",
2501
2608
  current: "Contraseña actual",
2502
2609
  new: "Nueva contraseña",
2503
2610
  password: "Contraseña",
@@ -2506,7 +2613,7 @@ const es = {
2506
2613
  mismatch: "Las contraseñas no coinciden",
2507
2614
  enterCurrent: "Introduzca su contraseña actual",
2508
2615
  changed: "Contraseña cambiada.",
2509
- localSet: "Contraseña local establecida. Ahora puede iniciar sesión con correo y contraseña en este entorno.",
2616
+ localSet: "Contraseña local establecida. Ahora puede iniciar sesión con correo y contraseña.",
2510
2617
  changeAction: "Cambiar contraseña",
2511
2618
  setAction: "Establecer contraseña",
2512
2619
  },
@@ -2521,21 +2628,21 @@ const es = {
2521
2628
  unknown: "Ha ocurrido un error inesperado.",
2522
2629
  },
2523
2630
  workspace: {
2524
- label: "Espacios de trabajo",
2525
- default: "Mi espacio de trabajo",
2526
- switch: "Cambiar espacio de trabajo",
2527
- createTitle: "Crear un espacio de trabajo",
2528
- createDescription: "Un espacio de trabajo es un lugar compartido para que tu equipo colabore.",
2529
- createButton: "Crear espacio de trabajo",
2530
- nameLabel: "Nombre del espacio de trabajo",
2631
+ label: "Organizaciones",
2632
+ default: "Mi organización",
2633
+ switch: "Cambiar organización",
2634
+ createTitle: "Crear una organización",
2635
+ createDescription: "Una organización es un lugar compartido para que tu equipo colabore.",
2636
+ createButton: "Crear organización",
2637
+ nameLabel: "Nombre de la organización",
2531
2638
  namePlaceholder: "p.ej., Acme Inc",
2532
2639
  slugLabel: "Slug de URL",
2533
2640
  slugHint: "Se utiliza en URLs. Solo minúsculas, números y guiones.",
2534
2641
  invite: "Invitar miembro",
2535
2642
  members: "Miembros",
2536
- settings: "Configuración del espacio de trabajo",
2643
+ settings: "Configuración de la organización",
2537
2644
  multiOrgDisabled: "La creación de nuevas organizaciones está deshabilitada en esta instancia.",
2538
- createFailed: 'No se pudo crear el espacio de trabajo',
2645
+ createFailed: 'No se pudo crear la organización',
2539
2646
  },
2540
2647
  help: {
2541
2648
  onThisPage: "En esta página",
@@ -2543,6 +2650,12 @@ const es = {
2543
2650
  appDocs: 'Documentación de esta app',
2544
2651
  allDocs: 'Toda la documentación',
2545
2652
  onlineDocs: 'Documentación en línea',
2653
+ loadingDocumentation: 'Cargando documentación',
2654
+ about: 'Acerca de',
2655
+ aboutTitle: 'Acerca de esta consola',
2656
+ aboutDescription: 'La compilación a partir de la cual se generó esta consola.',
2657
+ aboutBuild: 'Compilación de la consola',
2658
+ aboutBuildUnknown: 'Compilación desconocida (no se definió ninguna versión al compilar esta consola)',
2546
2659
  },
2547
2660
  sidebar: {
2548
2661
  packageManagement: "Gestión de paquetes",
@@ -2557,18 +2670,16 @@ const es = {
2557
2670
  area: "Área",
2558
2671
  scope: "Ámbito",
2559
2672
  recent: "Reciente",
2560
- favorites: "Favoritos",
2561
2673
  starred: "Destacados",
2562
2674
  removeFromFavorites: "Quitar {{name}} de favoritos",
2675
+ allReports: "Todos los informes",
2563
2676
  },
2564
2677
  topbar: {
2565
2678
  openAssistant: "Abrir el asistente {{name}}",
2566
2679
  offline: "Sin conexión",
2567
2680
  usersOnline: "Usuarios conectados ahora mismo",
2568
2681
  switchView: "Cambiar de vista",
2569
- switchObject: "Cambiar de objeto",
2570
2682
  connection: {
2571
- connected: "Conectado",
2572
2683
  connecting: "Conectando…",
2573
2684
  reconnecting: "Reconectando…",
2574
2685
  disconnected: "Desconectado",
@@ -2581,23 +2692,22 @@ const es = {
2581
2692
  },
2582
2693
  aiAssistant: "Asistente de IA",
2583
2694
  designInStudio: "Diseñar en Studio",
2695
+ editApp: "Editar aplicación",
2584
2696
  },
2585
2697
  home: {
2586
2698
  build: {
2587
2699
  title: "Crear una aplicación",
2588
- subtitle: "Empiece desde cero — diseñe objetos, formularios, automatizaciones e interfaces.",
2589
- noCapability: "La creación de aplicaciones no está disponible en este espacio de trabajo: requiere el permiso «Gestionar metadatos», que su cuenta no tiene.",
2700
+ noCapability: "La creación de aplicaciones no está disponible en este sistema: requiere el permiso «Gestionar metadatos», que su cuenta no tiene.",
2590
2701
  },
2591
2702
  template: {
2592
2703
  title: "Empezar con una plantilla",
2593
- subtitle: "Instale una aplicación de plantilla desde el mercado y personalícela.",
2594
2704
  marketplaceDisabled: "Este runtime no tiene un marketplace de aplicaciones configurado, por lo que no hay plantillas que instalar aquí.",
2595
2705
  },
2596
2706
  welcomeAdminDescription: "Describa su negocio en una frase — la IA genera los objetos, las pantallas, las API y las herramientas del agente. O configúrelo usted mismo desde el menú de la izquierda.",
2597
2707
  welcomeAdminDescriptionNoBuild: "Configure su primera aplicación desde el menú de Administración de la izquierda. Cuando tenga datos, el asistente de IA podrá ayudarle a explorarlos.",
2598
2708
  welcomeAdminDescriptionNoAi: "Configure su primera aplicación desde el menú de Administración de la izquierda.",
2599
2709
  noAppsTitle: "Todavía no hay aplicaciones",
2600
- noAppsDescription: "Su espacio de trabajo se está preparando — las aplicaciones que su administrador comparta aparecerán aquí.",
2710
+ noAppsDescription: "El sistema se está preparando — las aplicaciones que su administrador comparta aparecerán aquí.",
2601
2711
  buildWithAI: "Crear con IA",
2602
2712
  askAI: "Preguntar a la IA",
2603
2713
  recoveryReminder: {
@@ -2606,10 +2716,16 @@ const es = {
2606
2716
  dismiss: "Descartar",
2607
2717
  },
2608
2718
  pendingDrafts: {
2609
- message: "Tiene {{count}} cambio(s) sin publicar — publíquelos para activarlos.",
2610
- message_one: "Tiene {{count}} cambio sin publicar — publíquelo para activarlo.",
2611
- message_many: "Tiene {{count}} de cambios sin publicar — publíquelos para activarlos.",
2612
- message_other: "Tiene {{count}} cambios sin publicar — publíquelos para activarlos.",
2719
+ // objectui#12602 — the drafts row in Home's "My work" section: the
2720
+ // count, then the first draft names joined by `nameSeparator`, in
2721
+ // their package when they share one.
2722
+ title: "{{count}} cambio(s) sin publicar",
2723
+ title_one: "{{count}} cambio sin publicar",
2724
+ title_many: "{{count}} cambios sin publicar",
2725
+ title_other: "{{count}} cambios sin publicar",
2726
+ inPackage: "{{names}} pendientes de publicar en {{package}}",
2727
+ waiting: "{{names}} pendientes de publicar",
2728
+ nameSeparator: ", ",
2613
2729
  cta: "Publicar",
2614
2730
  publishing: "Publicando…",
2615
2731
  published: "¡Publicado! Sus cambios están activos.",
@@ -2630,11 +2746,18 @@ const es = {
2630
2746
  showMoreApps: "Más",
2631
2747
  showLess: "Mostrar menos",
2632
2748
  continueEmpty: "Los elementos que abras aparecerán aquí.",
2633
- actionCenter: {
2634
- title: "Requiere tu atención",
2635
- empty: "Estás al día",
2749
+ // objectui#12602 — Home's "My work" section: its heading, the link to the
2750
+ // full inbox, each column's title, "view all" link and empty line.
2751
+ myWork: {
2752
+ title: "Mi trabajo",
2753
+ openInbox: "Abrir bandeja de entrada",
2754
+ viewAll: "Ver todo",
2755
+ approvals: "Pendiente de aprobación",
2756
+ approvalsEmpty: "Nada pendiente de su aprobación",
2757
+ notifications: "Notificaciones",
2758
+ notificationsEmpty: "No hay notificaciones sin leer",
2636
2759
  },
2637
- loading: "Cargando espacio de trabajo…",
2760
+ loading: "Cargando…",
2638
2761
  welcome: "Bienvenido a ObjectUI",
2639
2762
  welcomeDescription: "Comienza creando tu primera aplicación o configura los ajustes del sistema.",
2640
2763
  createFirstApp: "Crea tu primera aplicación",
@@ -2645,7 +2768,7 @@ const es = {
2645
2768
  manageObjects: "Gestionar objetos",
2646
2769
  manageObjectsDesc: "Configura modelos de datos",
2647
2770
  systemSettings: "Configuración del sistema",
2648
- systemSettingsDesc: "Configura tu espacio de trabajo",
2771
+ systemSettingsDesc: "Configura tu sistema",
2649
2772
  },
2650
2773
  appCard: {
2651
2774
  noDescription: "Sin descripción",
@@ -2655,7 +2778,18 @@ const es = {
2655
2778
  greetingAfternoon: "Buenas tardes",
2656
2779
  greetingEvening: "Buenas noches",
2657
2780
  greetingNight: "Turno de noche",
2658
- heroTagline: "Continúe donde lo dejó o descubra algo nuevo.",
2781
+ greetingSeparator: ", ",
2782
+ greetingEnd: ".",
2783
+ search: "Buscar aplicaciones, registros, páginas…",
2784
+ summary: {
2785
+ approvals: "Hoy tiene {{count}} aprobaciones pendientes",
2786
+ approvals_one: "Hoy tiene {{count}} aprobación pendiente",
2787
+ approvals_many: "Hoy tiene {{count}} aprobaciones pendientes",
2788
+ approvals_other: "Hoy tiene {{count}} aprobaciones pendientes",
2789
+ none: "Hoy no tiene nada pendiente",
2790
+ },
2791
+ addApp: "Agregar aplicación",
2792
+ appOpened: "{{time}}",
2659
2793
  open: "Abrir",
2660
2794
  recentApps: {
2661
2795
  title: "Abiertos recientemente",
@@ -2664,6 +2798,8 @@ const es = {
2664
2798
  dashboard: "Panel",
2665
2799
  page: "Página",
2666
2800
  report: "Informe",
2801
+ package: "Paquete",
2802
+ view: "Vista de lista",
2667
2803
  record: "Registro",
2668
2804
  metadata: "Metadatos",
2669
2805
  },
@@ -2701,11 +2837,17 @@ const es = {
2701
2837
  manageAllApps: "Administrar todas las aplicaciones",
2702
2838
  systemConsole: "Consola del sistema",
2703
2839
  noAppsConfigured: "Sin aplicaciones configuradas",
2840
+ allApps: "Todas las aplicaciones",
2841
+ editAppInStudio: "Editar {{app}} en Studio",
2842
+ backToHome: "Volver al inicio",
2843
+ settings: "Configuración",
2844
+ productHome: "Inicio de {{product}}",
2704
2845
  },
2705
2846
  activityFeed: {
2706
2847
  title: "Actividad reciente",
2707
2848
  filter: "Filtrar",
2708
2849
  empty: "Sin actividad reciente",
2850
+ accessDenied: "No tiene permiso para ver la actividad.",
2709
2851
  ariaLabel: "Feed de actividad",
2710
2852
  typeCreate: "Crear",
2711
2853
  typeUpdate: "Actualizar",
@@ -2772,11 +2914,19 @@ const es = {
2772
2914
  appAccessDenied: "No tiene acceso a esta aplicación",
2773
2915
  appAccessDeniedDescription: "Esta aplicación existe, pero su cuenta no está autorizada para abrirla. Solicite acceso a un administrador.",
2774
2916
  appAccessDeniedHome: "Volver al inicio",
2917
+ appNothingAvailable: "Aún no hay nada disponible para usted en {{app}}",
2918
+ appNothingAvailableDescription: "Esta aplicación no tiene páginas que su cuenta pueda abrir. Solicite acceso a un administrador.",
2919
+ appNothingAvailableGrantDescription: "Esta aplicación no tiene páginas que su cuenta pueda abrir. Puede conceder el acceso en la configuración.",
2920
+ openSetup: "Abrir la configuración",
2775
2921
  createFirstApp: "Crear primera aplicación",
2776
2922
  systemSettings: "Configuración del sistema",
2777
2923
  back: "Atrás",
2778
2924
  recordNotFound: "Registro no encontrado",
2779
2925
  recordNotFoundDescription: "El registro que busca no existe o puede haber sido eliminado.",
2926
+ recordAccessDenied: "No tiene acceso a los registros de {{object}}",
2927
+ recordAccessDeniedDescription: "No tiene permiso para ver registros de este tipo. Contacte a su administrador si cree que debería tener acceso.",
2928
+ recordLoadFailed: "No se pudo cargar este registro",
2929
+ recordLoadFailedDescription: "Algo salió mal al cargarlo. Compruebe su conexión y vuelva a intentarlo.",
2780
2930
  },
2781
2931
  actionDialog: {
2782
2932
  title: "Parámetros de acción",
@@ -2809,12 +2959,16 @@ const es = {
2809
2959
  updateFailed: "No se pudo actualizar la navegación",
2810
2960
  },
2811
2961
  objectActions: {
2812
- resetPackageSetConfirm: "Este conjunto de permisos viene con un paquete instalado y no se puede eliminar. Al eliminarlo se restablece a la versión original del paquete y se descartan sus personalizaciones en este entorno. ¿Continuar?",
2813
- resetPackageSetSuccess: "Conjunto de permisos restablecido a la versión original del paquete",
2814
2962
  deleteSuccess: "{{label}} eliminado correctamente",
2815
2963
  deleteFailed: "No se pudo eliminar {{label}}",
2816
2964
  noRecordId: "No se proporcionó ID de registro",
2817
2965
  deleteConfirm: "¿Eliminar este registro?",
2966
+ deleteConfirmTitle: "¿Eliminar {{label}} \"{{name}}\"?",
2967
+ bulkDeleteConfirmTitle: "¿Eliminar {{count}} registros de {{label}}?",
2968
+ bulkDeleteConfirmTitle_one: "¿Eliminar {{count}} registro de {{label}}?",
2969
+ bulkDeleteConfirmTitle_many: "¿Eliminar {{count}} de registros de {{label}}?",
2970
+ bulkDeleteConfirmTitle_other: "¿Eliminar {{count}} registros de {{label}}?",
2971
+ deleteConfirmButton: "Eliminar",
2818
2972
  bulkDeleteSuccess: "{{count}} registros de {{label}} eliminados",
2819
2973
  bulkDeleteSuccess_one: "{{count}} registro de {{label}} eliminado",
2820
2974
  bulkDeleteSuccess_many: "{{count}} de registros de {{label}} eliminados",
@@ -2851,6 +3005,7 @@ const es = {
2851
3005
  loading: "Cargando…",
2852
3006
  failedToLoad: "Error al cargar la matriz: {{message}}",
2853
3007
  needsAcross: "El informe de matriz requiere al menos un campo `groupingsAcross`.",
3008
+ forbiddenMessage: "No tienes permiso para ver los datos de este informe.",
2854
3009
  aggregate: {
2855
3010
  count: "Contar",
2856
3011
  countDistinct: "Contar únicos",
@@ -2865,18 +3020,18 @@ const es = {
2865
3020
  },
2866
3021
  },
2867
3022
  organizations: {
2868
- create: "Crear espacio de trabajo",
2869
- mine: "Mis espacios de trabajo",
2870
- title: "Espacios de trabajo",
2871
- heading: "Tus espacios de trabajo",
2872
- subtitle: "Selecciona un espacio de trabajo para continuar o crea uno nuevo.",
2873
- searchPlaceholder: "Buscar un espacio de trabajo",
2874
- new: "Nuevo espacio de trabajo",
2875
- current: "Espacio de trabajo actual",
3023
+ create: "Crear organización",
3024
+ mine: "Mis organizaciones",
3025
+ title: "Organizaciones",
3026
+ heading: "Tus organizaciones",
3027
+ subtitle: "Selecciona una organización para continuar o crea una nueva.",
3028
+ searchPlaceholder: "Buscar una organización",
3029
+ new: "Nueva organización",
3030
+ current: "Organización actual",
2876
3031
  manage: "Administrar",
2877
- emptyTitle: "Aún no hay espacios de trabajo",
2878
- emptyDescription: "Crea tu primer espacio de trabajo para empezar.",
2879
- noMatches: "Ningún espacio de trabajo coincide con tu búsqueda.",
3032
+ emptyTitle: "Aún no hay organizaciones",
3033
+ emptyDescription: "Crea tu primera organización para empezar.",
3034
+ noMatches: "Ninguna organización coincide con tu búsqueda.",
2880
3035
  },
2881
3036
  organization: {
2882
3037
  roles: {
@@ -2961,6 +3116,7 @@ const es = {
2961
3116
  readOnlyNote: "Solo los propietarios pueden cambiar la configuración.",
2962
3117
  nameLabel: "Nombre de la organización",
2963
3118
  slugLabel: "Slug",
3119
+ slugLockedNote: "Esta organización tiene entornos activos, por lo que su slug no se puede cambiar aquí: renombrarla también mueve sus subdominios.",
2964
3120
  logoLabel: "Logo",
2965
3121
  logoUpload: "Subir",
2966
3122
  logoReplace: "Reemplazar",
@@ -3035,8 +3191,14 @@ const es = {
3035
3191
  noPendingApprovals: "Sin aprobaciones pendientes",
3036
3192
  openApprovalsInbox: "Abrir bandeja de aprobaciones",
3037
3193
  badgeTotal: "{{total}} en total",
3038
- badgeNotifications: "{{unread}} notificaciones",
3039
- badgeApprovals: "{{approvals}} aprobaciones pendientes",
3194
+ badgeNotifications: "{{count}} notificaciones",
3195
+ badgeNotifications_one: "{{count}} notificación",
3196
+ badgeNotifications_many: "{{count}} de notificaciones",
3197
+ badgeNotifications_other: "{{count}} notificaciones",
3198
+ badgeApprovals: "{{count}} aprobaciones pendientes",
3199
+ badgeApprovals_one: "{{count}} aprobación pendiente",
3200
+ badgeApprovals_many: "{{count}} de aprobaciones pendientes",
3201
+ badgeApprovals_other: "{{count}} aprobaciones pendientes",
3040
3202
  arrivalMany: "{{count}} mensajes nuevos",
3041
3203
  arrivalMany_one: "{{count}} mensaje nuevo",
3042
3204
  arrivalMany_many: "{{count}} de mensajes nuevos",
@@ -3083,10 +3245,10 @@ const es = {
3083
3245
  body: 'La superficie MCP está apagada (OS_MCP_SERVER_ENABLED=false). Pida a su operador que la vuelva a habilitar.',
3084
3246
  },
3085
3247
  url: {
3086
- title: 'Endpoint MCP de este entorno',
3248
+ title: 'Endpoint MCP de este sistema',
3087
3249
  body: 'Cualquier cliente de IA compatible con MCP se conecta con esta URL. La identidad es autoservicio: la implementación es su propio servidor de autorización OAuth 2.1 — inicia sesión como usted mismo y cada llamada corre bajo sus permisos y seguridad a nivel de fila.',
3088
3250
  downloadSkill: 'Descargar SKILL.md',
3089
- skillHint: 'La skill portátil del agente: enseña a cualquier agente compatible cómo trabajar con este entorno.',
3251
+ skillHint: 'La skill portátil del agente: enseña a cualquier agente compatible cómo trabajar con este sistema.',
3090
3252
  },
3091
3253
  claude: {
3092
3254
  body: 'Configuración → Conectores → Añadir conector personalizado, pegue esta URL e inicie sesión en el navegador.',
@@ -3130,15 +3292,8 @@ const es = {
3130
3292
  importAction: "Importar",
3131
3293
  dismiss: "Descartar",
3132
3294
  },
3133
- cloudOnboarding: {
3134
- hintCreate: "Cree su primer entorno: un espacio de trabajo privado con su propia URL, base de datos y plan. La creación de aplicaciones ocurre dentro de él.",
3135
- hintReady: "Su entorno de producción está listo. Ábralo para crear y ejecutar sus aplicaciones: todo ocurre dentro del entorno.",
3136
- createEnvironment: "Cree su entorno",
3137
- openProduction: "Abrir producción",
3138
- manageEnvironments: "Gestionar entornos",
3139
- },
3140
- cloudPlanStatus: {
3141
- current: "Plan actual",
3295
+ cloudWorkspaceTimezoneNotice: {
3296
+ seeded: "La zona horaria del entorno se configuró en {{zone}} a partir de su navegador al crearlo. Puede cambiarla en Configuración → Localización.",
3142
3297
  },
3143
3298
  ai: {
3144
3299
  nlQuery: {
@@ -3217,8 +3372,8 @@ const es = {
3217
3372
  rowConversational: "Modelo Build / Ask",
3218
3373
  rowStructured: "Estructurado (blueprint / seed)",
3219
3374
  rowReasoning: "Esfuerzo de razonamiento",
3220
- readFailed: "No se pudo leer el modelo de IA efectivo. Puede que este entorno no ejecute un servicio de IA o que no tenga el permiso ai:read.",
3221
- readFailedWithStatus: "No se pudo leer el modelo de IA efectivo (HTTP {{status}}). Puede que este entorno no ejecute un servicio de IA o que no tenga el permiso ai:read.",
3375
+ readFailed: "No se pudo leer el modelo de IA efectivo. Puede que este sistema no ejecute un servicio de IA o que no tenga el permiso ai:read.",
3376
+ readFailedWithStatus: "No se pudo leer el modelo de IA efectivo (HTTP {{status}}). Puede que este sistema no ejecute un servicio de IA o que no tenga el permiso ai:read.",
3222
3377
  overridesInEffect: "Anulaciones vigentes: ",
3223
3378
  noOverrides: "ninguna: se usan los valores predeterminados del código desplegado.",
3224
3379
  adapter: "Adaptador: ",
@@ -3236,9 +3391,13 @@ const es = {
3236
3391
  // against). `humanizeToolName` looks each up as
3237
3392
  // `chatbot.tool.<tool_name>` and falls back to its English
3238
3393
  // title-caser for a custom / third-party tool, so a name
3239
- // missing here is degraded, never broken. The `en` values
3240
- // are deliberately EQUAL to what that title-caser produces:
3241
- // adding the key must not silently reword the English UI.
3394
+ // missing here is degraded, never broken. Every value, `en`
3395
+ // included, is a short sentence in the pack's language
3396
+ // saying what the step does (cloud#2927 Target 3, ruled
3397
+ // 「同意」; objectui#12724): never the tool id, and never
3398
+ // the title-caser's output for it, which is how the step
3399
+ // reads for a tool the pack has no entry for.
3400
+ // `toolLabels-locale-parity-7481` holds both.
3242
3401
  // `toolState.*` — the card-header badge + activity-chip vocabulary. ONE
3243
3402
  // set for both surfaces (they used to carry separate
3244
3403
  // tables and disagreed on casing).
@@ -3256,42 +3415,48 @@ const es = {
3256
3415
  // pin advances, `chatbotToolLabels-locale-parity-7481` starts checking them
3257
3416
  // against the registry instead of against its own hand-held list.
3258
3417
  chatbot: {
3418
+ answer: {
3419
+ showFull: 'Mostrar respuesta completa',
3420
+ collapse: 'Contraer',
3421
+ expandTable: 'Ampliar',
3422
+ exitExpandedTable: 'Cerrar',
3423
+ },
3259
3424
  tool: {
3260
- aggregate_data: "Resumir datos",
3261
- get_record: "Obtener registro",
3262
- query_data: "Consultar datos",
3263
- query_records: "Consultar registros",
3264
- search_knowledge: "Buscar en la base de conocimiento",
3265
- visualize_data: "Crear gráfico",
3266
- add_field: "Añadir campo",
3267
- apply_blueprint: "Construir la aplicación",
3268
- apply_edit: "Aplicar cambios",
3269
- create_metadata: "Crear metadatos",
3270
- create_object: "Crear objeto",
3271
- create_package: "Crear paquete",
3272
- create_seed: "Generar datos de ejemplo",
3273
- delete_field: "Eliminar campo",
3274
- describe_metadata: "Consultar metadatos",
3275
- describe_object: "Consultar la estructura del objeto",
3276
- get_active_package: "Obtener el paquete activo",
3277
- get_authoring_rules: "Leer las reglas de autoría",
3278
- get_metadata_schema: "Obtener el esquema de metadatos",
3279
- get_package: "Obtener paquete",
3280
- list_metadata: "Listar metadatos",
3281
- list_objects: "Listar objetos",
3282
- list_packages: "Listar paquetes",
3283
- load_tools: "Cargar herramientas",
3284
- modify_field: "Modificar campo",
3285
- open_record: "Abrir registro",
3286
- propose_blueprint: "Diseñar el plan de la aplicación",
3287
- set_active_package: "Cambiar el paquete activo",
3288
- suggest_builder: "Sugerir cómo construirlo",
3289
- test_flow: "Probar el flujo",
3290
- todo_write: "Anotar tareas",
3291
- toggle_flow: "Activar o desactivar el flujo",
3292
- update_metadata: "Actualizar metadatos",
3293
- validate_expression: "Validar expresión",
3294
- verify_build: "Verificar la construcción",
3425
+ aggregate_data: "Resumir los datos",
3426
+ get_record: "Leer el registro",
3427
+ query_data: "Consultar los datos necesarios",
3428
+ query_records: "Buscar los registros",
3429
+ search_knowledge: "Consultar la base de conocimiento",
3430
+ visualize_data: "Representar los datos en un gráfico",
3431
+ add_field: "Añadir un campo",
3432
+ apply_blueprint: "Construir la aplicación según el plan",
3433
+ apply_edit: "Aplicar el cambio",
3434
+ create_metadata: "Crear un elemento de metadatos",
3435
+ create_object: "Crear un objeto",
3436
+ create_package: "Crear un paquete",
3437
+ create_seed: "Generar datos de ejemplo para los objetos",
3438
+ delete_field: "Eliminar un campo",
3439
+ describe_metadata: "Revisar los metadatos",
3440
+ describe_object: "Revisar la estructura del objeto",
3441
+ get_active_package: "Comprobar el paquete activo",
3442
+ get_authoring_rules: "Consultar las reglas de autoría",
3443
+ get_metadata_schema: "Consultar el formato de los metadatos",
3444
+ get_package: "Revisar el paquete",
3445
+ list_metadata: "Listar los metadatos existentes",
3446
+ list_objects: "Listar los objetos existentes",
3447
+ list_packages: "Listar los paquetes existentes",
3448
+ load_tools: "Cargar más herramientas",
3449
+ modify_field: "Modificar un campo",
3450
+ open_record: "Abrir el registro",
3451
+ propose_blueprint: "Redactar el plan de la aplicación",
3452
+ set_active_package: "Cambiar al paquete de destino",
3453
+ suggest_builder: "Sugerir construirlo con IA",
3454
+ test_flow: "Hacer una prueba del flujo",
3455
+ todo_write: "Anotar comprobaciones pendientes",
3456
+ toggle_flow: "Encender o apagar el flujo",
3457
+ update_metadata: "Actualizar un elemento de metadatos",
3458
+ validate_expression: "Comprobar la expresión",
3459
+ verify_build: "Comprobar el resultado de la construcción",
3295
3460
  },
3296
3461
  toolState: {
3297
3462
  agentActivity: "Actividad del agente",
@@ -3304,6 +3469,16 @@ const es = {
3304
3469
  denied: "Denegado",
3305
3470
  failed: "Fallido",
3306
3471
  },
3472
+ phase: {
3473
+ build: "Creación",
3474
+ design: "Diseño del plan",
3475
+ stepCount: "{{count}} pasos",
3476
+ stepCount_one: "{{count}} paso",
3477
+ stepCount_many: "{{count}} de pasos",
3478
+ stepCount_other: "{{count}} pasos",
3479
+ expand: "Mostrar pasos",
3480
+ collapse: "Ocultar pasos",
3481
+ },
3307
3482
  plan: {
3308
3483
  countObjects: "{{count}} objetos",
3309
3484
  countObjects_one: "{{count}} objeto",
@@ -3318,10 +3493,17 @@ const es = {
3318
3493
  countDashboards_many: "{{count}} de paneles",
3319
3494
  countDashboards_other: "{{count}} paneles",
3320
3495
  countSeedData: "datos de ejemplo",
3496
+ extendTarget: "Se añade a la app existente: {{app}}",
3497
+ awaitingConfirm: "Pendiente de confirmación",
3498
+ objectsAndFields: "Objetos y campos",
3499
+ views: "Vistas",
3500
+ suggestedField: "sugerido",
3501
+ nameField: "Nombre: {{field}}",
3321
3502
  },
3322
3503
  build: {
3323
3504
  building: "Creando {{app}}…",
3324
3505
  built: "Creación de {{app}} completada",
3506
+ builtAndLive: "Creada y publicada · {{app}}",
3325
3507
  appFallback: "su aplicación",
3326
3508
  addingSampleData: "añadiendo datos de ejemplo",
3327
3509
  group: {
@@ -3332,6 +3514,46 @@ const es = {
3332
3514
  seed: "Datos de ejemplo",
3333
3515
  },
3334
3516
  moreArtifacts: "+{{n}} más",
3517
+ verifying: "Comprobando el cambio…",
3518
+ verifyStep: "paso {{n}}",
3519
+ verified: "Cambio comprobado",
3520
+ unknownPhase: "Fase de creación desconocida",
3521
+ nextStepsLead: "A continuación puede decir: {{steps}}",
3522
+ nextStepQuote: "«{{step}}»",
3523
+ draftPosture: "Los cambios posteriores se guardan como borrador y usted los publica en Studio.",
3524
+ checksPassed: "Comprobaciones superadas {{passed}}/{{total}}",
3525
+ },
3526
+ changes: {
3527
+ planTitle: "Plan de cambios · {{count}} cambios",
3528
+ planTitle_one: "Plan de cambios · {{count}} cambio",
3529
+ planTitle_many: "Plan de cambios · {{count}} de cambios",
3530
+ planTitle_other: "Plan de cambios · {{count}} cambios",
3531
+ saveDraft: "Guardar como borrador",
3532
+ reviewAndPublish: "Revisar cambios y publicar",
3533
+ undo: "Deshacer",
3534
+ undoWithOthers: "Deshacer (y {{count}} borradores más)",
3535
+ undoWithOthers_one: "Deshacer (y {{count}} borrador más)",
3536
+ undoWithOthers_many: "Deshacer (y {{count}} de borradores más)",
3537
+ undoWithOthers_other: "Deshacer (y {{count}} borradores más)",
3538
+ undoConfirm: "Deshacer descarta los {{total}} borradores sin publicar de este paquete, incluidos {{count}} que no forman parte de este cambio.",
3539
+ undoConfirm_one: "Deshacer descarta los {{total}} borradores sin publicar de este paquete, incluido {{count}} que no forma parte de este cambio.",
3540
+ undoConfirm_many: "Deshacer descarta los {{total}} borradores sin publicar de este paquete, incluidos {{count}} de borradores que no forman parte de este cambio.",
3541
+ undoConfirm_other: "Deshacer descarta los {{total}} borradores sin publicar de este paquete, incluidos {{count}} que no forman parte de este cambio.",
3542
+ undoConfirmUnknown: "Deshacer descarta todos los borradores sin publicar de este paquete, no solo este cambio.",
3543
+ undoConfirmAction: "Deshacer todo",
3544
+ undoCancel: "Cancelar",
3545
+ undoing: "Deshaciendo…",
3546
+ undone: "Deshecho",
3547
+ undoFailed: "No se pudo deshacer",
3548
+ kind: {
3549
+ field: "Campo",
3550
+ object: "Objeto",
3551
+ view: "Vista",
3552
+ dashboard: "Panel",
3553
+ app: "Aplicación",
3554
+ seed: "Datos de ejemplo",
3555
+ package: "Paquete de aplicación",
3556
+ },
3335
3557
  },
3336
3558
  },
3337
3559
  chatbotError: {
@@ -3347,10 +3569,13 @@ const es = {
3347
3569
  buyCredits: "Comprar un paquete de créditos",
3348
3570
  upgradePlan: "Mejorar el plan",
3349
3571
  },
3572
+ planTier: {
3573
+ teamAndUp: "Desde el plan Team",
3574
+ },
3350
3575
  environment: {
3351
- addEnvironment: "Añadir entorno",
3352
3576
  setUpProduction: "Configure su entorno de producción",
3353
3577
  addDevelopment: "Añadir entorno de desarrollo",
3578
+ developmentLocked: "Entornos de desarrollo · {{tier}}",
3354
3579
  // Plan/capacity dialog (EnvironmentEntitlementDialog) — cloud#959.
3355
3580
  entitlement: {
3356
3581
  productionLimitTitle: "Ya tiene su entorno de producción",
@@ -3398,7 +3623,7 @@ const es = {
3398
3623
  },
3399
3624
  unbound: {
3400
3625
  title: "No conectado",
3401
- body: "Conecte este runtime a un plano de control de ObjectStack para explorar los paquetes privados de su organización e instalarlos aquí. La aprobación es un solo clic en su cuenta de la nube: no se escriben identificadores ni credenciales en esta página.",
3626
+ body: "Este runtime no está conectado a ningún plano de control. «Conectar» abre su cuenta de la nube en una ventana nueva, donde un solo clic aprueba la conexión: no se escriben identificadores ni credenciales en esta página.",
3402
3627
  connect: "Conectar",
3403
3628
  },
3404
3629
  },
@@ -3411,6 +3636,13 @@ const es = {
3411
3636
  dismiss: "Descartar",
3412
3637
  confirmedToast: "«{{set}}» ya está concedido a {{anchor}}.",
3413
3638
  dismissedToast: "Sugerencia para «{{set}}» descartada.",
3639
+ guestUnsupported: "No se puede conceder aquí: los conjuntos de la posición Guest no se derivan de sugerencias aceptadas.",
3640
+ acceptedState: "«{{set}}» se aceptó para todos los usuarios con sesión iniciada (la posición Everyone).",
3641
+ notInForceState: "«{{set}}» se aceptó, pero aún no está en vigor: la posición Everyone no cambió con esta solicitud. El registro del servidor indica el motivo.",
3642
+ dismissedState: "«{{set}}» no está concedido: la sugerencia se descartó o se revocó.",
3643
+ revoke: "Revocar",
3644
+ revoking: "Revocando…",
3645
+ revokedToast: "Aceptación de «{{set}}» revocada.",
3414
3646
  },
3415
3647
  title: "Marketplace de aplicaciones",
3416
3648
  subtitle: "Explore aplicaciones aprobadas publicadas en el catálogo de ObjectStack. Haga clic en una aplicación para ver detalles e instalarla en uno de sus entornos.",
@@ -3424,21 +3656,26 @@ const es = {
3424
3656
  noMatchFilters: "Ninguna aplicación coincide con sus filtros.",
3425
3657
  noDescription: "Sin descripción disponible.",
3426
3658
  back: "Volver al marketplace",
3427
- installedTitle: "Aplicaciones instaladas",
3428
- installedSubtitle: "Paquetes del marketplace instalados en el kernel de este runtime.",
3429
- installedEmpty: "Aún no hay aplicaciones del marketplace instaladas en este runtime.",
3430
3659
  browseLink: "Explorar marketplace →",
3431
- installedAdditiveNote: "<strong>Nota:</strong> La API del kernel es solo aditiva — desinstalar elimina el manifiesto del disco para que el paquete no se cargue al próximo inicio, pero el kernel en ejecución mantiene la aplicación registrada hasta reiniciar.",
3432
- installedAt: "Instalado {{when}}",
3433
- installedBy: "por {{user}}",
3434
- installedPackageId: "Paquete",
3435
- cachedAs: "Almacenado en caché como <code>{{path}}</code>",
3660
+ installedAdditiveNote: "La desinstalación retira la aplicación del kernel en ejecución de inmediato, junto con sus conjuntos de permisos y sus asignaciones, y elimina el manifiesto en caché para que el paquete no se cargue en el próximo inicio. Los registros almacenados en sus objetos permanecen en la base de datos.",
3436
3661
  versionBadge: "v{{version}}",
3437
3662
  installedBadge: "Instalado v{{version}}",
3663
+ // objectui#11645 — an install-local entry this runtime refused to load at
3664
+ // startup (the listing's `notLoaded` marker), read on Installed Apps.
3665
+ notLoaded: {
3666
+ badge: "No cargado",
3667
+ protocolIncompatible: "Este runtime no cargó este paquete: está dirigido al protocolo {{requiredRange}}, que este runtime no admite.",
3668
+ otherReason: "Este runtime no cargó este paquete ({{code}}).",
3669
+ },
3438
3670
  load: {
3439
3671
  failed: "No se pudo cargar el marketplace",
3440
3672
  failedHintConfigured: "Este runtime accede al marketplace a través del plano de control en {{url}}. Compruebe que esté en línea y sea accesible desde aquí.",
3441
- failedHintSameOrigin: "Este runtime sirve el catálogo del marketplace por sí mismo. Compruebe que el runtime esté en línea.",
3673
+ failedHintSameOrigin: "Al catálogo del marketplace se accede a través de este runtime. Compruebe que el runtime esté en línea y pueda acceder al catálogo.",
3674
+ loading: "Cargando el catálogo del marketplace…",
3675
+ slow: "Sigue cargando — el catálogo del marketplace tarda en responder.",
3676
+ retry: "Reintentar",
3677
+ unreachable: "No se pudo acceder al catálogo del marketplace.",
3678
+ answeredError: "El catálogo del marketplace respondió con un error (HTTP {{status}}).",
3442
3679
  packageFailed: "No se pudo cargar el paquete",
3443
3680
  notFound: "No encontrado.",
3444
3681
  },
@@ -3482,6 +3719,7 @@ const es = {
3482
3719
  working: "Procesando…",
3483
3720
  installToCloud: "Instalar en la nube…",
3484
3721
  installing: "Instalando…",
3722
+ updating: "Actualizando…",
3485
3723
  uninstall: "Desinstalar",
3486
3724
  uninstalling: "Desinstalando…",
3487
3725
  details: "Detalles",
@@ -3499,15 +3737,45 @@ const es = {
3499
3737
  environmentPlaceholder: "Seleccionar entorno",
3500
3738
  includeSampleData: "Incluir datos de muestra",
3501
3739
  noEnvs: "No se encontraron entornos en su organización activa.",
3502
- noPermission: "No tiene permiso para instalar aplicaciones en un entorno. Solo los propietarios y administradores de la organización pueden instalar.",
3740
+ noPermission: "No tiene permiso para instalar aplicaciones en un entorno. Solo los propietarios y administradores de la organización pueden instalar; pida ayuda al administrador de su organización.",
3503
3741
  signInFirst: "Primero debe iniciar sesión en ObjectStack Cloud.",
3504
3742
  success: "Instalado correctamente. Abra el entorno para ver la nueva aplicación.",
3505
3743
  localSuccess: "v{{version}} instalado en este runtime. \"{{name}}\" debería aparecer en el selector de aplicaciones ahora.",
3744
+ localLoadsAtRestart: "v{{version}} instalado en este runtime. \"{{name}}\" se cargará en el próximo reinicio del runtime y no aparecerá en el selector de aplicaciones hasta entonces.",
3506
3745
  localManifestConflict: "{{message}}\nNota: Una aplicación local ya tiene este manifest_id. Primero elimínela de objectstack.config.ts.",
3507
3746
  localUnauthorized: "Primero inicie sesión en este runtime.",
3508
3747
  localMarketplaceUnavailable: "Este runtime no tiene configurado OS_CLOUD_URL.",
3509
3748
  updateTo: "Actualizar → v{{version}}",
3510
3749
  installedVersion: "Instalado v{{version}}",
3750
+ deploying: "Desplegando la aplicación…",
3751
+ deployed: "La aplicación está desplegada y lista.",
3752
+ openApp: "Abrir {{name}}",
3753
+ deployTimeout: "La instalación se registró, pero este entorno aún no ofrece la aplicación. Puede que siga desplegándose; vuelve a comprobarlo en breve. Si nunca aparece, es posible que el paquete no se haya cargado, que no incluya ninguna aplicación o que su aplicación requiera un permiso que no tienes.",
3754
+ checkAgain: "Comprobar de nuevo",
3755
+ // ADR-0131 D6 — the install modes a package's manifest permits, and
3756
+ // what an unmanaged install answers (MarketplacePackagePage).
3757
+ mode: {
3758
+ label: "Modo de instalación",
3759
+ managed: "Administrado",
3760
+ managedHint: "El paquete sigue siendo la autoridad: se registra como código, recibe sus actualizaciones y sus elementos no se editan aquí.",
3761
+ unmanaged: "Copia no administrada",
3762
+ unmanagedHint: "Se copia una sola vez en este runtime como sus propios metadatos: cada elemento se puede editar aquí y la copia no recibe actualizaciones.",
3763
+ required: "Elige un modo de instalación para instalar este paquete.",
3764
+ },
3765
+ unmanagedSuccess: "v{{version}} de \"{{name}}\" copiado en este runtime como sus propios metadatos, en la base {{base}}. La copia se puede editar y no recibe actualizaciones.",
3766
+ unmanagedStrippedLocks: "El paquete bloqueaba estos elementos. La copia se puede editar, así que sus bloqueos no se copiaron:",
3767
+ unmanagedIgnored: "Este runtime no admite instalaciones no administradas, así que \"{{name}}\" se instaló como administrado (registrado como código) en lugar de copiarse. Actualiza el runtime, luego desinstala el paquete y vuelve a instalarlo como copia no administrada.",
3768
+ },
3769
+ // objectui#12146 — the install dialog opened as an UPDATE of the copy
3770
+ // this environment holds (MarketplacePackagePage).
3771
+ update: {
3772
+ dialogTitle: "Actualizar {{name}}",
3773
+ dialogDescCurrent: "Actualizar la copia instalada en este entorno ({{host}}).",
3774
+ dialogDescPicker: "Elija el entorno cuya copia instalada desea actualizar. Debe haber iniciado sesión en ObjectStack Cloud.",
3775
+ majorNotice: "Esta es una actualización de versión principal (v{{fromMajor}} → v{{toMajor}}), que puede incluir cambios incompatibles.",
3776
+ releaseNotes: "Leer las notas de la versión v{{version}}",
3777
+ success: "Actualizado a la v{{version}}.",
3778
+ deployTimeout: "La actualización se registró, pero este entorno aún no ofrece la v{{version}}. Puede que siga desplegándose; vuelva a comprobarlo en breve.",
3511
3779
  },
3512
3780
  // objectui#3546 — the MarketplacePage "Your organization" strip.
3513
3781
  org: {
@@ -3540,9 +3808,11 @@ const es = {
3540
3808
  },
3541
3809
  },
3542
3810
  uninstall: {
3543
- confirm: "¿Desinstalar {{manifestId}} v{{version}} de este runtime?\n\nEl manifiesto en caché será eliminado.",
3544
- successInList: "{{manifestId}} eliminado. Reinicie el runtime para descargarlo completamente.",
3545
- successInDetail: "Manifiesto en caché para {{manifestId}} eliminado.",
3811
+ confirm: "¿Desinstalar {{manifestId}} v{{version}} de este runtime?\n\nLa aplicación se retirará de inmediato del kernel en ejecución, junto con sus conjuntos de permisos y sus asignaciones, y el manifiesto en caché será eliminado. Los registros almacenados en sus objetos permanecen en la base de datos.",
3812
+ successInList: "{{manifestId}} eliminado: la aplicación se retiró del kernel en ejecución, junto con sus conjuntos de permisos y sus asignaciones. Los registros almacenados en sus objetos permanecen en la base de datos.",
3813
+ successInDetail: "{{manifestId}} y su manifiesto en caché eliminados: la aplicación se retiró del kernel en ejecución, junto con sus conjuntos de permisos y sus asignaciones. Los registros almacenados en sus objetos permanecen en la base de datos.",
3814
+ confirmNotLoaded: "¿Desinstalar {{manifestId}} v{{version}} de este runtime?\n\nEl manifiesto en caché será eliminado. Este runtime no cargó el paquete, así que ninguna parte de él está en ejecución.",
3815
+ successNotLoaded: "{{manifestId}} eliminado. No estaba cargado, así que no es necesario reiniciar.",
3546
3816
  },
3547
3817
  accessDenied: {
3548
3818
  title: "Marketplace solo para administradores",
@@ -3622,6 +3892,7 @@ const es = {
3622
3892
  progressEligible_other: '{{count}} aprobadores elegibles',
3623
3893
  progressBar: 'Progreso de la decisión',
3624
3894
  declaredActions: 'Acciones',
3895
+ decisionPanelOffRequestPage: 'El panel de decisión de aprobación solo funciona en las páginas de solicitudes de aprobación.',
3625
3896
  attachmentChip: 'Adjunto',
3626
3897
  attachmentOpenFailed: 'No se pudo abrir el archivo adjunto: inténtalo de nuevo',
3627
3898
  approveOneTitle: '¿Aprobar «{{title}}»?',
@@ -3688,6 +3959,10 @@ const es = {
3688
3959
  emptyPending: 'Todo al día: nada espera tu aprobación.',
3689
3960
  emptyOther: 'Aún no hay nada aquí.',
3690
3961
  emptyViewAll: 'Ver todas las solicitudes',
3962
+ waitingOnOthers: "{{count}} solicitudes esperan a otros aprobadores",
3963
+ waitingOnOthers_one: "{{count}} solicitud espera a otros aprobadores",
3964
+ waitingOnOthers_many: "{{count}} de solicitudes esperan a otros aprobadores",
3965
+ waitingOnOthers_other: "{{count}} solicitudes esperan a otros aprobadores",
3691
3966
  noMatches: 'Sin coincidencias con los filtros actuales.',
3692
3967
  keyboardHint: 'Teclado: j/k mover · Enter abrir · x seleccionar · a aprobar · r rechazar',
3693
3968
  drawerTitle: 'Solicitud de aprobación',
@@ -3705,12 +3980,12 @@ const es = {
3705
3980
  overrideActionLabel: '{{action}} (anulación)',
3706
3981
  overrideNotice: 'No ocupa ningún puesto de aprobador en este paso. Al continuar se usará su anulación de administrador: el paso se finaliza de inmediato y se omite a cualquier aprobador que aún no haya actuado. La decisión se registra como anulación de administrador.',
3707
3982
  overrideNoticeWho: 'No ocupa ningún puesto de aprobador en este paso. Al continuar se usará su anulación de administrador: el paso se finaliza de inmediato y se omite a los aprobadores que aún no han actuado — {{who}}. La decisión se registra como anulación de administrador.',
3983
+ overrideReassignNotice: 'No ocupa ningún puesto de aprobador en este paso. Al continuar se usará su anulación de administrador: el paso pasa al nuevo aprobador que elija, que sustituye a cualquier aprobador que aún no haya actuado. La solicitud sigue pendiente a la espera del nuevo aprobador. La reasignación se registra como anulación de administrador.',
3984
+ overrideReassignNoticeWho: 'No ocupa ningún puesto de aprobador en este paso. Al continuar se usará su anulación de administrador: el paso pasa al nuevo aprobador que elija, que sustituye a los aprobadores que aún no han actuado — {{who}}. La solicitud sigue pendiente a la espera del nuevo aprobador. La reasignación se registra como anulación de administrador.',
3985
+ overrideRecallNotice: 'No envió esta solicitud. Al continuar se usará su anulación de administrador: la solicitud se retira, ningún aprobador que aún no haya actuado podrá actuar sobre ella y el registro se desbloquea.',
3986
+ overrideRecallNoticeWho: 'No envió esta solicitud. Al continuar se usará su anulación de administrador: la solicitud se retira, el registro se desbloquea y los aprobadores que aún no han actuado ya no podrán actuar sobre ella — {{who}}.',
3708
3987
  viaOverrideChip: 'Anulación de administrador',
3709
3988
  viaOverrideHint: 'Quien actuó no ocupaba ningún puesto de aprobador en este paso: fue admitido por la vía de anulación de administrador.',
3710
- rawData: 'Datos sin procesar (JSON)',
3711
- copy: 'Copiar',
3712
- copied: 'Copiado',
3713
- copyFailed: 'Error al copiar',
3714
3989
  overrideActor: 'Actuar como otra identidad (admin)',
3715
3990
  actor: 'Actor',
3716
3991
  auto: 'Auto',
@@ -3799,6 +4074,10 @@ const es = {
3799
4074
  publishing: 'Publicando…',
3800
4075
  exit: 'Salir de la vista previa',
3801
4076
  changes: 'Cambios',
4077
+ pendingHere: 'Vista previa del borrador · {{count}} cambios sin publicar en esta página',
4078
+ pendingHere_one: 'Vista previa del borrador · {{count}} cambio sin publicar en esta página',
4079
+ pendingHere_many: 'Vista previa del borrador · {{count}} de cambios sin publicar en esta página',
4080
+ pendingHere_other: 'Vista previa del borrador · {{count}} cambios sin publicar en esta página',
3802
4081
  },
3803
4082
  changes: {
3804
4083
  title: 'Cambios pendientes',
@@ -3816,7 +4095,71 @@ const es = {
3816
4095
  confirmNote_one: 'Publicar libera atómicamente {{count}} borrador pendiente de este paquete.',
3817
4096
  confirmNote_many: 'Publicar libera atómicamente los {{count}} de borradores pendientes de este paquete.',
3818
4097
  confirmNote_other: 'Publicar libera atómicamente los {{count}} borradores pendientes de este paquete.',
4098
+ // objectui#11591 — the package-less sheet: no package to batch, so each
4099
+ // draft publishes by itself and one that fails stays pending.
4100
+ confirmNoteSeparate: 'Publicar libera los {{count}} borradores pendientes uno por uno: el que falle sigue pendiente y los demás se publican igualmente.',
4101
+ confirmNoteSeparate_one: 'Publicar libera {{count}} borrador pendiente por sí solo: si falla, sigue pendiente.',
4102
+ confirmNoteSeparate_many: 'Publicar libera los {{count}} de borradores pendientes uno por uno: el que falle sigue pendiente y los demás se publican igualmente.',
4103
+ confirmNoteSeparate_other: 'Publicar libera los {{count}} borradores pendientes uno por uno: el que falle sigue pendiente y los demás se publican igualmente.',
3819
4104
  publishConfirm: 'Publicar todo',
4105
+ summaryItems: '{{count}} elementos',
4106
+ summaryItems_one: '{{count}} elemento',
4107
+ summaryItems_many: '{{count}} de elementos',
4108
+ summaryItems_other: '{{count}} elementos',
4109
+ summaryType: '{{n}} {{type}}',
4110
+ typeCount: {
4111
+ object: '{{count}} objetos',
4112
+ object_one: '{{count}} objeto',
4113
+ object_many: '{{count}} de objetos',
4114
+ object_other: '{{count}} objetos',
4115
+ view: '{{count}} vistas',
4116
+ view_one: '{{count}} vista',
4117
+ view_many: '{{count}} de vistas',
4118
+ view_other: '{{count}} vistas',
4119
+ page: '{{count}} páginas',
4120
+ page_one: '{{count}} página',
4121
+ page_many: '{{count}} de páginas',
4122
+ page_other: '{{count}} páginas',
4123
+ dashboard: '{{count}} paneles',
4124
+ dashboard_one: '{{count}} panel',
4125
+ dashboard_many: '{{count}} de paneles',
4126
+ dashboard_other: '{{count}} paneles',
4127
+ app: '{{count}} aplicaciones',
4128
+ app_one: '{{count}} aplicación',
4129
+ app_many: '{{count}} de aplicaciones',
4130
+ app_other: '{{count}} aplicaciones',
4131
+ action: '{{count}} acciones',
4132
+ action_one: '{{count}} acción',
4133
+ action_many: '{{count}} de acciones',
4134
+ action_other: '{{count}} acciones',
4135
+ report: '{{count}} informes',
4136
+ report_one: '{{count}} informe',
4137
+ report_many: '{{count}} de informes',
4138
+ report_other: '{{count}} informes',
4139
+ flow: '{{count}} flujos',
4140
+ flow_one: '{{count}} flujo',
4141
+ flow_many: '{{count}} de flujos',
4142
+ flow_other: '{{count}} flujos',
4143
+ permission: '{{count}} conjuntos de permisos',
4144
+ permission_one: '{{count}} conjunto de permisos',
4145
+ permission_many: '{{count}} de conjuntos de permisos',
4146
+ permission_other: '{{count}} conjuntos de permisos',
4147
+ agent: '{{count}} agentes',
4148
+ agent_one: '{{count}} agente',
4149
+ agent_many: '{{count}} de agentes',
4150
+ agent_other: '{{count}} agentes',
4151
+ email_template: '{{count}} plantillas de correo',
4152
+ email_template_one: '{{count}} plantilla de correo',
4153
+ email_template_many: '{{count}} de plantillas de correo',
4154
+ email_template_other: '{{count}} plantillas de correo',
4155
+ },
4156
+ // objectui#12929 — the unchecked choice under an added object field whose
4157
+ // literal default the batch publish can write into the existing records.
4158
+ backfillOption: 'Rellenar el valor predeterminado ({{count}} registros existentes)',
4159
+ backfillOption_one: 'Rellenar el valor predeterminado ({{count}} registro existente)',
4160
+ backfillOption_many: 'Rellenar el valor predeterminado ({{count}} de registros existentes)',
4161
+ backfillOption_other: 'Rellenar el valor predeterminado ({{count}} registros existentes)',
4162
+ backfillOptionNoCount: 'Rellenar el valor predeterminado',
3820
4163
  // [`7a90afdf9`] Pre-publish security-posture findings, shown next to
3821
4164
  // the confirm button so a refusal the door would issue is read BEFORE
3822
4165
  // the click rather than as a toast after the batch rolled back.
@@ -3899,6 +4242,10 @@ const es = {
3899
4242
  exists: "Está definido",
3900
4243
  notExists: "No está definido",
3901
4244
  },
4245
+ emptyCheckHint: {
4246
+ text: '«{{isEmpty}}» también incluye texto en blanco; «{{isNull}}» solo un valor ausente.',
4247
+ list: '«{{isEmpty}}» también incluye una lista vacía; «{{isNull}}» solo un valor ausente.',
4248
+ },
3902
4249
  },
3903
4250
  sortBuilder: {
3904
4251
  sortBy: "Ordenar por",
@@ -4016,6 +4363,8 @@ const es = {
4016
4363
  setDefaultFailed: "Error al establecer la aplicación predeterminada: {{reason}}",
4017
4364
  appDeleted: "{{name}} eliminada",
4018
4365
  deleteFailed: "Error al eliminar la aplicación: {{reason}}",
4366
+ nothingToDelete: "Nada que eliminar para {{name}}: {{reason}}",
4367
+ alreadyAtDefault: "ya está en el valor predeterminado de su paquete",
4019
4368
  bulkEnabled: "{{n}} aplicaciones habilitadas",
4020
4369
  bulkDisabled: "{{n}} aplicaciones deshabilitadas",
4021
4370
  bulkFailed: "Error en {{n}}: {{details}}",
@@ -4040,6 +4389,7 @@ const es = {
4040
4389
  toggleLabel: "Activación de {{label}}",
4041
4390
  on: "Activado",
4042
4391
  off: "Desactivado",
4392
+ notRunning: "No se ejecuta aquí",
4043
4393
  clone: "Clonar",
4044
4394
  cloneTitle: "Clonar flujo del paquete",
4045
4395
  cloneBody: "La copia conserva toda la definición y necesita un nombre de máquina y una etiqueta nuevos. Edita la copia en Studio.",
@@ -4048,6 +4398,9 @@ const es = {
4048
4398
  cancel: "Cancelar",
4049
4399
  cloneConfirm: "Crear clon",
4050
4400
  cloneCreated: "Flujo «{{name}}» creado.",
4401
+ cloneSwitchSourceOff: "Desactivar «{{label}}»",
4402
+ cloneSourceOff: "El flujo empaquetado «{{label}}» está desactivado.",
4403
+ cloneOpen: "Abrir la copia en Studio",
4051
4404
  emptyTitle: "Sin flujos de paquete",
4052
4405
  emptyBody: "Ningún paquete instalado incluye un flujo de automatización en esta implementación. Los flujos que creas tú están en Studio.",
4053
4406
  loadFailed: "No se pudo cargar la automatización de paquetes.",
@@ -4055,6 +4408,7 @@ const es = {
4055
4408
  toggleFailed: "No se pudo cambiar la activación.",
4056
4409
  cloneFailedHttp: "No se pudo clonar este flujo (HTTP {{status}}).",
4057
4410
  cloneFailed: "No se pudo clonar este flujo.",
4411
+ reasonDetails: "Detalles",
4058
4412
  actionsSubtitle: "Acciones incluidas en los paquetes instalados. Desactiva una en esta implementación y dejará de ejecutarse en todos los lugares donde se ofrece. Crear tu propia acción junto a ella sigue estando disponible en Studio.",
4059
4413
  colAction: "Acción",
4060
4414
  colObject: "Objeto",
@@ -4065,7 +4419,84 @@ const es = {
4065
4419
  },
4066
4420
  element: {
4067
4421
  number: {
4068
- noObject: "No se ha indicado ningún objeto: define object o dataSource.object.",
4422
+ noObject: "No se ha indicado ningún objeto: define dataSource.object.",
4423
+ sourceUnresolved: "No se pudo resolver el origen de datos de esta métrica",
4424
+ },
4425
+ image: {
4426
+ noSource: "Sin origen de imagen",
4427
+ },
4428
+ recordPicker: {
4429
+ sourceUnresolved: "No se pudo resolver el origen de datos de este selector de registros",
4430
+ },
4431
+ calendar: {
4432
+ sourceUnresolved: "No se pudo resolver el origen de datos de este calendario",
4433
+ },
4434
+ chart: {
4435
+ sourceUnresolved: "No se pudo resolver el origen de datos de este gráfico",
4436
+ },
4437
+ pivotTable: {
4438
+ sourceUnresolved: "No se pudo resolver el origen de datos de esta tabla dinámica",
4439
+ },
4440
+ detailView: {
4441
+ sourceUnresolved: "No se pudo resolver el origen de datos de esta vista de detalle",
4442
+ },
4443
+ relatedList: {
4444
+ sourceUnresolved: "No se pudo resolver el origen de datos de esta lista relacionada",
4445
+ parentUnreadable: "No se pudo leer el registro principal de esta lista relacionada",
4446
+ },
4447
+ form: {
4448
+ sourceUnresolved: "No se pudo resolver el origen de datos de este formulario",
4449
+ },
4450
+ lineItems: {
4451
+ sourceUnresolved: "No se pudo resolver el origen de datos de este panel de líneas",
4452
+ },
4453
+ gantt: {
4454
+ sourceUnresolved: "No se pudo resolver el origen de datos de este diagrama de Gantt",
4455
+ },
4456
+ grid: {
4457
+ sourceUnresolved: "No se pudo resolver el origen de datos de esta cuadrícula",
4458
+ },
4459
+ board: {
4460
+ sourceUnresolved: "No se pudo resolver el origen de datos de este tablero",
4461
+ },
4462
+ listView: {
4463
+ sourceUnresolved: "No se pudo resolver el origen de datos de esta vista de lista",
4464
+ },
4465
+ map: {
4466
+ sourceUnresolved: "No se pudo resolver el origen de datos de este mapa",
4467
+ },
4468
+ timeline: {
4469
+ sourceUnresolved: "No se pudo resolver el origen de datos de esta línea de tiempo",
4470
+ },
4471
+ component: {
4472
+ sourceUnresolved: "No se pudo resolver el origen de datos de este componente",
4473
+ noDataSource: "No se resolvió ningún origen de datos",
4474
+ apiRefused: "Se rechazó el origen de datos de API de este componente",
4475
+ apiUnreadable: "No se pudo leer el origen de datos de API de este componente",
4476
+ },
4477
+ metadataViewer: {
4478
+ missingKey: "Falta {{key}} en esta vista.",
4479
+ loading: "Cargando {{name}}…",
4480
+ loadFailed: "No se pudo cargar {{name}}: {{message}}",
4481
+ notFound: "No se encontró {{name}}.",
4482
+ stateMachine: "Máquina de estados",
4483
+ flow: "Flujo",
4484
+ permission: "Permiso",
4485
+ noStateMachine: "No hay ninguna máquina de estados en {{object}}.",
4486
+ noStateMachineNamed: "No hay ninguna máquina de estados llamada «{{name}}» en {{object}}.",
4487
+ lifecycle: "Ciclo de vida de {{object}}",
4488
+ field: "campo {{field}}",
4489
+ initial: "inicio",
4490
+ final: "fin",
4491
+ steps: "Pasos: {{count}}",
4492
+ noSteps: "No hay pasos que mostrar.",
4493
+ untitledStep: "(paso)",
4494
+ hiddenSteps: "Pasos técnicos ocultos: {{count}} · establece {{setting}} para mostrarlos todos",
4495
+ objectAccess: "Acceso a objetos: {{count}}",
4496
+ noPermissions: "No se han declarado permisos de objeto.",
4497
+ object: "Objeto",
4498
+ unknownType: "Tipo de vista de metadatos desconocido. Se esperaba {{a}}, {{b}} o {{c}}.",
4499
+ unknownTypeNamed: "Tipo de vista de metadatos desconocido «{{type}}». Se esperaba {{a}}, {{b}} o {{c}}.",
4069
4500
  },
4070
4501
  },
4071
4502
  };