@object-ui/i18n 17.3.0 → 17.5.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.
- package/CHANGELOG.md +1295 -1
- package/README.md +0 -13
- package/dist/index.d.ts +3 -1
- package/dist/index.js +11 -1
- package/dist/locales/ar.d.ts +466 -107
- package/dist/locales/ar.js +559 -153
- package/dist/locales/de.d.ts +466 -107
- package/dist/locales/de.js +574 -175
- package/dist/locales/en.d.ts +502 -143
- package/dist/locales/en.js +678 -145
- package/dist/locales/es.d.ts +466 -107
- package/dist/locales/es.js +553 -155
- package/dist/locales/fr.d.ts +466 -107
- package/dist/locales/fr.js +553 -152
- package/dist/locales/index.d.ts +4734 -1144
- package/dist/locales/ja.d.ts +466 -107
- package/dist/locales/ja.js +545 -146
- package/dist/locales/ko.d.ts +466 -107
- package/dist/locales/ko.js +551 -153
- package/dist/locales/pt.d.ts +466 -107
- package/dist/locales/pt.js +552 -154
- package/dist/locales/ru.d.ts +466 -107
- package/dist/locales/ru.js +563 -153
- package/dist/locales/zh.d.ts +501 -142
- package/dist/locales/zh.js +542 -142
- package/dist/pickLocalized.d.ts +21 -0
- package/dist/pickLocalized.js +40 -7
- package/dist/provider.d.ts +83 -1
- package/dist/provider.js +303 -29
- package/dist/useDisplayLocale.d.ts +49 -0
- package/dist/useDisplayLocale.js +55 -0
- package/dist/useObjectLabel.d.ts +8 -2
- package/dist/useObjectLabel.js +28 -8
- package/dist/useSafeTranslation.js +50 -2
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/number-display.d.ts +32 -0
- package/dist/utils/number-display.js +32 -0
- package/dist/utils/spec-formatters.d.ts +39 -13
- package/dist/utils/spec-formatters.js +3 -3
- package/package.json +4 -3
package/dist/locales/es.js
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
const es = {
|
|
2
|
+
// objectui#4467 — the impersonation banner (app-shell ImpersonationBanner).
|
|
3
|
+
// Raised by `session.impersonatedBy`, so it survives SPA reboots; it names
|
|
4
|
+
// BOTH parties because the audit trail attributes the work to the impersonated
|
|
5
|
+
// user, and the exit states its own failure rather than appearing to succeed.
|
|
6
|
+
impersonation: {
|
|
7
|
+
banner: {
|
|
8
|
+
message: 'Está suplantando a {{user}}: todas las acciones se registran a su nombre.',
|
|
9
|
+
startedBy: 'Iniciado por el administrador {{admin}}.',
|
|
10
|
+
stop: 'Dejar de suplantar',
|
|
11
|
+
stopping: 'Finalizando…',
|
|
12
|
+
stopFailed: 'No se pudo dejar de suplantar: {{reason}}',
|
|
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
|
+
},
|
|
15
|
+
},
|
|
2
16
|
// objectui#2600 B5 — capability picker scope group headers (labels come from the sys_capability registry).
|
|
3
17
|
capability: {
|
|
4
18
|
label: {
|
|
@@ -16,6 +30,25 @@ const es = {
|
|
|
16
30
|
other: 'Otro',
|
|
17
31
|
},
|
|
18
32
|
},
|
|
33
|
+
// objectui#3546 slice six — el resumen de solo lectura de las facetas de
|
|
34
|
+
// autorización de PermissionFacetLink. "pestaña" como en list.tabs.
|
|
35
|
+
perm: {
|
|
36
|
+
facet: {
|
|
37
|
+
none: "Ninguno",
|
|
38
|
+
more: "+{{count}} más",
|
|
39
|
+
objects: "{{count}} objetos",
|
|
40
|
+
objects_one: "{{count}} objeto",
|
|
41
|
+
fields: "{{count}} reglas de campo",
|
|
42
|
+
fields_one: "{{count}} regla de campo",
|
|
43
|
+
rls: "{{count}} políticas RLS",
|
|
44
|
+
rls_one: "{{count}} política RLS",
|
|
45
|
+
tabs: "{{count}} reglas de pestaña",
|
|
46
|
+
tabs_one: "{{count}} regla de pestaña",
|
|
47
|
+
adminScope: "Administración delegada configurada",
|
|
48
|
+
designInStudio: "Diseñar en Studio →",
|
|
49
|
+
designInStudioHint: "Diseñar en Studio",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
19
52
|
lookup: {
|
|
20
53
|
recentlyUsed: 'Usados recientemente',
|
|
21
54
|
allResults: 'Todos los resultados',
|
|
@@ -46,13 +79,12 @@ const es = {
|
|
|
46
79
|
common: {
|
|
47
80
|
addToFavorites: "Añadir a favoritos",
|
|
48
81
|
removeFromFavorites: "Quitar de favoritos",
|
|
49
|
-
loading: "Cargando
|
|
82
|
+
loading: "Cargando…",
|
|
50
83
|
save: "Guardar",
|
|
51
84
|
cancel: "Cancelar",
|
|
52
85
|
delete: "Eliminar",
|
|
53
86
|
edit: "Editar",
|
|
54
87
|
create: "Crear",
|
|
55
|
-
search: "Buscar",
|
|
56
88
|
filter: "Filtrar",
|
|
57
89
|
reset: "Restablecer",
|
|
58
90
|
confirm: "Confirmar",
|
|
@@ -76,7 +108,7 @@ const es = {
|
|
|
76
108
|
required: "Obligatorio",
|
|
77
109
|
optional: "Opcional",
|
|
78
110
|
selectOption: "Seleccionar una opción",
|
|
79
|
-
select: "Seleccionar
|
|
111
|
+
select: "Seleccionar…",
|
|
80
112
|
openChat: "Abrir chat",
|
|
81
113
|
closeChat: "Cerrar chat",
|
|
82
114
|
closePanel: "Cerrar panel",
|
|
@@ -85,6 +117,11 @@ const es = {
|
|
|
85
117
|
itemCountOne: "{{count}} elemento",
|
|
86
118
|
toggleSidebar: "Alternar barra lateral",
|
|
87
119
|
package: "Paquete",
|
|
120
|
+
done: "Listo",
|
|
121
|
+
editInStudio: "Editar en Studio",
|
|
122
|
+
record: "Registro",
|
|
123
|
+
retry: "Reintentar",
|
|
124
|
+
printDialogHint: "Abre el cuadro de diálogo de impresión de tu navegador (no es una exportación a PDF)",
|
|
88
125
|
},
|
|
89
126
|
actions: {
|
|
90
127
|
decisionOutput: {
|
|
@@ -121,6 +158,9 @@ const es = {
|
|
|
121
158
|
submitFailed: "No se pudo guardar. Inténtalo de nuevo.",
|
|
122
159
|
discardTitle: "¿Descartar los cambios?",
|
|
123
160
|
discardMessage: "Tiene cambios sin guardar. Si cierra este formulario ahora, sus ediciones se perderán.",
|
|
161
|
+
// objectui#4024 — the create/edit dialog's `sr-only` accessible
|
|
162
|
+
// description, used when the form declares no `description` of its own.
|
|
163
|
+
dialogDescriptionFallback: "Complete los campos del formulario y luego envíe o cancele.",
|
|
124
164
|
keepEditing: "Seguir editando",
|
|
125
165
|
discard: "Descartar",
|
|
126
166
|
conflictTitle: "Conflicto al guardar",
|
|
@@ -189,7 +229,7 @@ const es = {
|
|
|
189
229
|
richText: {
|
|
190
230
|
format: "Formato: {{format}}",
|
|
191
231
|
basicEditorHint: "Editor de texto enriquecido (básico)",
|
|
192
|
-
placeholder: "Escribe algo
|
|
232
|
+
placeholder: "Escribe algo…",
|
|
193
233
|
},
|
|
194
234
|
options: {
|
|
195
235
|
empty: "No hay opciones disponibles",
|
|
@@ -255,7 +295,7 @@ const es = {
|
|
|
255
295
|
saveAll: "Guardar todo ({{count}})",
|
|
256
296
|
addRecord: "Agregar registro",
|
|
257
297
|
open: "Abrir",
|
|
258
|
-
search: "Buscar
|
|
298
|
+
search: "Buscar…",
|
|
259
299
|
modified: "{{count}} filas modificadas",
|
|
260
300
|
saveFailed: 'Error al guardar',
|
|
261
301
|
selected: "{{count}} seleccionados",
|
|
@@ -299,7 +339,7 @@ const es = {
|
|
|
299
339
|
delete: "Eliminar",
|
|
300
340
|
export: "Exportar",
|
|
301
341
|
exportAs: "Exportar como {{format}}",
|
|
302
|
-
loading: "Cargando cuadrícula
|
|
342
|
+
loading: "Cargando cuadrícula…",
|
|
303
343
|
errorLoading: "Error al cargar la cuadrícula",
|
|
304
344
|
pullToRefresh: "Desliza para actualizar",
|
|
305
345
|
refreshing: "Actualizando…",
|
|
@@ -310,6 +350,22 @@ const es = {
|
|
|
310
350
|
yes: "Sí",
|
|
311
351
|
no: "No",
|
|
312
352
|
systemFields: "Sistema",
|
|
353
|
+
// objectui#4024 — column-footer aggregate prefixes, keyed by the spec's
|
|
354
|
+
// `ColumnSummary` vocabulary. `pattern` owns the label/value join so this
|
|
355
|
+
// pack controls its own separator and word order.
|
|
356
|
+
summary: {
|
|
357
|
+
pattern: "{{label}}: {{value}}",
|
|
358
|
+
count: "Recuento",
|
|
359
|
+
countEmpty: "Vacíos",
|
|
360
|
+
countFilled: "Rellenos",
|
|
361
|
+
countUnique: "Únicos",
|
|
362
|
+
percentEmpty: "Vacíos",
|
|
363
|
+
percentFilled: "Rellenos",
|
|
364
|
+
sum: "Suma",
|
|
365
|
+
avg: "Promedio",
|
|
366
|
+
min: "Mín.",
|
|
367
|
+
max: "Máx.",
|
|
368
|
+
},
|
|
313
369
|
toolbar: {
|
|
314
370
|
densityMode: "Densidad",
|
|
315
371
|
densityCompact: "Compacto",
|
|
@@ -423,12 +479,12 @@ const es = {
|
|
|
423
479
|
templateName: "Nombre de la plantilla",
|
|
424
480
|
save: "Guardar",
|
|
425
481
|
deleteTemplate: "Eliminar plantilla",
|
|
426
|
-
savedMapping: '
|
|
427
|
-
chooseSavedMapping: '
|
|
428
|
-
manualMapping: '—
|
|
429
|
-
transform: '
|
|
430
|
-
savedMappingHint: '
|
|
431
|
-
savedMappingPreviewNote: '
|
|
482
|
+
savedMapping: 'Asignación guardada:',
|
|
483
|
+
chooseSavedMapping: 'Elegir una asignación guardada…',
|
|
484
|
+
manualMapping: '— Asignar columnas manualmente —',
|
|
485
|
+
transform: 'Transformación',
|
|
486
|
+
savedMappingHint: 'La asignación "{{name}}" aplica el cambio de nombre + las transformaciones + la conversión de tipos en el servidor. La asignación de columnas es de solo lectura.',
|
|
487
|
+
savedMappingPreviewNote: 'La vista previa muestra sus columnas de origen; al importar, la asignación "{{name}}" aplica el cambio de nombre, las transformaciones y la conversión de tipos en el servidor.',
|
|
432
488
|
csvColumn: "Columna",
|
|
433
489
|
mapsTo: "Se asigna a",
|
|
434
490
|
typeMismatch: "Parece {{type}}",
|
|
@@ -488,6 +544,8 @@ const es = {
|
|
|
488
544
|
loadErrorUnauthorizedMessage: "Su sesión ha expirado o ha cerrado sesión. Inicie sesión de nuevo para ver estos registros.",
|
|
489
545
|
loadErrorRejectedTitle: "La consulta de esta vista fue rechazada",
|
|
490
546
|
loadErrorRejectedMessage: "El servidor no pudo procesar el filtro ni las opciones de consulta de esta vista. Borrar los filtros suele resolverlo; si la vista está guardada así, un administrador debe corregirla.",
|
|
547
|
+
loadErrorApiDisabledTitle: "Este objeto no está disponible a través de la API",
|
|
548
|
+
loadErrorApiDisabledMessage: "Esta página no puede cargar sus registros porque el objeto no está expuesto a través de la API. Es un ajuste del propio objeto, no un permiso: un administrador debe habilitar el acceso por API para que esta página funcione.",
|
|
491
549
|
retry: "Reintentar",
|
|
492
550
|
managedBy: {
|
|
493
551
|
system: {
|
|
@@ -512,7 +570,7 @@ const es = {
|
|
|
512
570
|
},
|
|
513
571
|
},
|
|
514
572
|
refresh: "Actualizar",
|
|
515
|
-
loading:
|
|
573
|
+
loading: "Cargando registros…",
|
|
516
574
|
recordCount: "{{count}} registros",
|
|
517
575
|
recordCountOne: "{{count}} registro",
|
|
518
576
|
addRecord: "Agregar registro",
|
|
@@ -524,7 +582,8 @@ const es = {
|
|
|
524
582
|
sort: "Ordenar",
|
|
525
583
|
sortRecords: "Ordenar registros",
|
|
526
584
|
sortByIdSuffix: "(por ID)",
|
|
527
|
-
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,
|
|
585
|
+
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.",
|
|
586
|
+
resetSortToDefault: "Restablecer al valor predeterminado de la vista",
|
|
528
587
|
group: "Agrupar",
|
|
529
588
|
groupBy: "Agrupar por",
|
|
530
589
|
export: "Exportar",
|
|
@@ -582,13 +641,16 @@ const es = {
|
|
|
582
641
|
},
|
|
583
642
|
kanban: {
|
|
584
643
|
uncategorized: "Sin categoría",
|
|
644
|
+
columns: "columnas",
|
|
585
645
|
addCard: "Añadir tarjeta",
|
|
586
646
|
addColumn: "Añadir columna",
|
|
587
647
|
moveCard: "Mover tarjeta",
|
|
588
648
|
deleteCard: "Eliminar tarjeta",
|
|
589
649
|
deleteColumn: "Eliminar columna",
|
|
590
650
|
noCards: "Sin tarjetas",
|
|
591
|
-
cardTitlePlaceholder: "Escriba el título de la tarjeta
|
|
651
|
+
cardTitlePlaceholder: "Escriba el título de la tarjeta…",
|
|
652
|
+
requiredFieldsTitle: "Complete los campos obligatorios",
|
|
653
|
+
requiredFieldsDescription: "Este movimiento hace que los campos siguientes sean obligatorios. Complételos para continuar.",
|
|
592
654
|
},
|
|
593
655
|
timeline: {
|
|
594
656
|
bucket: {
|
|
@@ -601,6 +663,13 @@ const es = {
|
|
|
601
663
|
noDate: "Sin fecha",
|
|
602
664
|
unassigned: "Sin asignar",
|
|
603
665
|
},
|
|
666
|
+
scale: {
|
|
667
|
+
week: "Semana {{n}}",
|
|
668
|
+
quarter: "T{{quarter}} {{year}}",
|
|
669
|
+
},
|
|
670
|
+
gantt: {
|
|
671
|
+
rowLabel: "Elementos",
|
|
672
|
+
},
|
|
604
673
|
},
|
|
605
674
|
gantt: {
|
|
606
675
|
viewMode: {
|
|
@@ -647,6 +716,18 @@ const es = {
|
|
|
647
716
|
ff: "Fin → Fin",
|
|
648
717
|
sf: "Inicio → Fin",
|
|
649
718
|
},
|
|
719
|
+
linkEnd: {
|
|
720
|
+
start: "Inicio",
|
|
721
|
+
end: "Fin",
|
|
722
|
+
},
|
|
723
|
+
link: {
|
|
724
|
+
rejected: {
|
|
725
|
+
self: "Una tarea no puede depender de sí misma.",
|
|
726
|
+
locked: "Esta fila está bloqueada y no puede recibir una nueva dependencia.",
|
|
727
|
+
group: "Una fila de resumen no puede recibir dependencias: vincule una de sus tareas.",
|
|
728
|
+
cycle: "Ese vínculo crearía una dependencia circular.",
|
|
729
|
+
},
|
|
730
|
+
},
|
|
650
731
|
conflict: {
|
|
651
732
|
title: "Conflicto de programación",
|
|
652
733
|
body: "Este movimiento entra en conflicto con las restricciones de dependencia. ¿Reprogramar automáticamente {{count}} tarea(s) afectada(s)?",
|
|
@@ -655,8 +736,8 @@ const es = {
|
|
|
655
736
|
},
|
|
656
737
|
autoScheduleDlg: {
|
|
657
738
|
title: "Programación automática",
|
|
658
|
-
body: "¿Retrasar {count} tarea(s) para respetar los vínculos de dependencia?",
|
|
659
|
-
skipped: "{count} tarea(s) bloqueada(s) también incumplen los vínculos y se han omitido.",
|
|
739
|
+
body: "¿Retrasar {{count}} tarea(s) para respetar los vínculos de dependencia?",
|
|
740
|
+
skipped: "{{count}} tarea(s) bloqueada(s) también incumplen los vínculos y se han omitido.",
|
|
660
741
|
confirm: "Aplicar",
|
|
661
742
|
cancel: "Cancelar",
|
|
662
743
|
none: "Todas las dependencias se cumplen: no hay nada que reprogramar.",
|
|
@@ -693,6 +774,7 @@ const es = {
|
|
|
693
774
|
exportPng: "Exportar como PNG",
|
|
694
775
|
exportPdf: "Exportar PDF",
|
|
695
776
|
saveLayout: "Guardar la disposición",
|
|
777
|
+
refresh: "Actualizar",
|
|
696
778
|
undo: "Deshacer",
|
|
697
779
|
redo: "Rehacer",
|
|
698
780
|
prevPeriod: "Período anterior",
|
|
@@ -733,11 +815,11 @@ const es = {
|
|
|
733
815
|
defaultBadge: "predeterminada",
|
|
734
816
|
tabActionsFor: "Acciones de vista para {{name}}",
|
|
735
817
|
readonlyAriaLabel: "Vista de solo lectura",
|
|
736
|
-
readonlyTooltip: "Vista del sistema —
|
|
818
|
+
readonlyTooltip: "Vista del sistema — definida en el código, solo lectura.",
|
|
737
819
|
},
|
|
738
820
|
designer: {
|
|
739
|
-
undo:
|
|
740
|
-
redo:
|
|
821
|
+
undo: "Deshacer",
|
|
822
|
+
redo: "Rehacer",
|
|
741
823
|
},
|
|
742
824
|
detail: {
|
|
743
825
|
editInlineHint: "Haga doble clic para editar",
|
|
@@ -777,13 +859,15 @@ const es = {
|
|
|
777
859
|
relatedRecords: "{{count}} registros",
|
|
778
860
|
relatedRecordOne: "{{count}} registro",
|
|
779
861
|
noRelatedRecords: "No se encontraron registros relacionados",
|
|
780
|
-
loading: "Cargando
|
|
862
|
+
loading: "Cargando…",
|
|
781
863
|
copyToClipboard: "Copiar al portapapeles",
|
|
782
864
|
copied: "¡Copiado!",
|
|
783
865
|
deleteConfirmation: "¿Está seguro de que desea eliminar este registro?",
|
|
866
|
+
deleted: "Registro eliminado",
|
|
784
867
|
editRecord: "Editar registro",
|
|
785
868
|
viewAll: "Ver todo",
|
|
786
869
|
new: "Nuevo",
|
|
870
|
+
add: "Agregar",
|
|
787
871
|
emptyValue: "—",
|
|
788
872
|
comments: "Comentarios",
|
|
789
873
|
searchComments: "Buscar comentarios…",
|
|
@@ -848,6 +932,7 @@ const es = {
|
|
|
848
932
|
loadMore: "Cargar más",
|
|
849
933
|
edited: "(editado)",
|
|
850
934
|
via: "vía {{source}}",
|
|
935
|
+
viewSource: "Ver origen",
|
|
851
936
|
replyCount: "{{count}} respuesta",
|
|
852
937
|
replyCountPlural: "{{count}} respuestas",
|
|
853
938
|
replyPlaceholder: "Responder…",
|
|
@@ -889,9 +974,11 @@ const es = {
|
|
|
889
974
|
concurrentUpdateReload: "Cargar versión actual",
|
|
890
975
|
concurrentUpdateOverwrite: "Sobrescribir de todos modos",
|
|
891
976
|
concurrentUpdateCancel: "Cancelar",
|
|
977
|
+
concurrentUpdateRecordLabel: "este registro",
|
|
892
978
|
openInNewTab: "Abrir en nueva pestaña",
|
|
893
979
|
activity: "Actividad",
|
|
894
980
|
history: "Historial",
|
|
981
|
+
historyEmpty: "Aún no hay historial",
|
|
895
982
|
editRow: "Editar",
|
|
896
983
|
deleteRow: "Eliminar",
|
|
897
984
|
deleteRowConfirmation: "¿Eliminar este registro?",
|
|
@@ -901,12 +988,15 @@ const es = {
|
|
|
901
988
|
nextPage: "Siguiente",
|
|
902
989
|
pageOf: "Página {{current}} de {{total}}",
|
|
903
990
|
sortBy: "Ordenar por",
|
|
904
|
-
filterPlaceholder: "Filtrar
|
|
991
|
+
filterPlaceholder: "Filtrar…",
|
|
905
992
|
highlightFields: "Campos clave",
|
|
906
993
|
createdBy: "Creado por",
|
|
907
994
|
updatedBy: "Actualizado por",
|
|
908
995
|
created: "Creado",
|
|
909
996
|
updated: "Actualizado",
|
|
997
|
+
// objectui#3863 — base key. es's third category `many` starts at a million, where
|
|
998
|
+
// the plural form is correct, so the base repeats `_other`.
|
|
999
|
+
showEmptyRelated: "+ {{count}} vacíos",
|
|
910
1000
|
showEmptyRelated_one: "+ {{count}} vacío",
|
|
911
1001
|
showEmptyRelated_other: "+ {{count}} vacíos",
|
|
912
1002
|
copyEmail: "Copiar correo",
|
|
@@ -918,7 +1008,8 @@ const es = {
|
|
|
918
1008
|
},
|
|
919
1009
|
chart: {
|
|
920
1010
|
noData: "No hay datos de gráfico disponibles",
|
|
921
|
-
loading: "Cargando gráfico
|
|
1011
|
+
loading: "Cargando gráfico…",
|
|
1012
|
+
nullCategory: "(Sin especificar)",
|
|
922
1013
|
},
|
|
923
1014
|
map: {
|
|
924
1015
|
searchLocations: "Buscar ubicaciones…",
|
|
@@ -940,8 +1031,8 @@ const es = {
|
|
|
940
1031
|
properties: "Propiedades",
|
|
941
1032
|
connections: "Conexiones",
|
|
942
1033
|
quickConnect: "Conexión rápida",
|
|
943
|
-
fromPlaceholder: "Desde
|
|
944
|
-
toPlaceholder: "Hasta
|
|
1034
|
+
fromPlaceholder: "Desde…",
|
|
1035
|
+
toPlaceholder: "Hasta…",
|
|
945
1036
|
connect: "Conectar",
|
|
946
1037
|
label: "Etiqueta",
|
|
947
1038
|
type: "Tipo",
|
|
@@ -989,6 +1080,7 @@ const es = {
|
|
|
989
1080
|
},
|
|
990
1081
|
dashboard: {
|
|
991
1082
|
noRows: "Sin filas",
|
|
1083
|
+
loading: "Cargando…",
|
|
992
1084
|
pickMeasures: "Elija medidas (valores) para este widget de dataset.",
|
|
993
1085
|
datasetUnsupported: "Esta fuente de datos no admite consultas de dataset.",
|
|
994
1086
|
details: "Detalles",
|
|
@@ -1246,6 +1338,7 @@ const es = {
|
|
|
1246
1338
|
},
|
|
1247
1339
|
},
|
|
1248
1340
|
console: {
|
|
1341
|
+
saveAdvisoryTitle: "Guardado: la comprobación de creación generó {{count}} recomendación(es)",
|
|
1249
1342
|
settingsHub: {
|
|
1250
1343
|
title: "Configuración",
|
|
1251
1344
|
subtitle: "Configure su espacio de trabajo, las integraciones y los indicadores de funciones.",
|
|
@@ -1312,7 +1405,7 @@ const es = {
|
|
|
1312
1405
|
shareTitle: "Compartir esta conversación",
|
|
1313
1406
|
shareDisabledTitle: "Empiece a chatear para habilitar el uso compartido",
|
|
1314
1407
|
newChat: "Nuevo",
|
|
1315
|
-
searchChats: "Buscar chats
|
|
1408
|
+
searchChats: "Buscar chats…",
|
|
1316
1409
|
noChatsYet: "Todavía no hay chats",
|
|
1317
1410
|
noChatsDescription: "Inicie una conversación nueva para verla aquí.",
|
|
1318
1411
|
noMatchingChats: "No hay chats coincidentes.",
|
|
@@ -1321,18 +1414,18 @@ const es = {
|
|
|
1321
1414
|
deleteConversation: "Eliminar conversación",
|
|
1322
1415
|
saveRename: "Guardar el nombre",
|
|
1323
1416
|
cancelRename: "Cancelar el cambio de nombre",
|
|
1324
|
-
loadingHistory: "Cargando el historial de la conversación
|
|
1417
|
+
loadingHistory: "Cargando el historial de la conversación…",
|
|
1325
1418
|
conversationReady: "Conversación lista",
|
|
1326
1419
|
preparingConversation: "Preparando una nueva conversación",
|
|
1327
1420
|
offlineDemoMode: "Modo de demostración sin conexión — lista de agentes no disponible",
|
|
1328
1421
|
sendFailedRateLimited: "Está enviando mensajes demasiado rápido. Su mensaje se conserva abajo — espere un momento y vuelva a intentarlo.",
|
|
1329
1422
|
sendFailedGeneric: "No se pudo enviar su mensaje. Se conserva abajo — inténtelo de nuevo.",
|
|
1330
|
-
askAgent: "Pregunte a {{agent}}
|
|
1423
|
+
askAgent: "Pregunte a {{agent}}…",
|
|
1331
1424
|
assistant: "Asistente",
|
|
1332
1425
|
liveCanvas: "Vista previa en vivo — {{app}} (borrador)",
|
|
1333
1426
|
liveCanvasUnlisted: "Aplicación en vivo — {{app}} (no listada hasta su publicación)",
|
|
1334
|
-
loadingAgents: "Cargando agentes
|
|
1335
|
-
askAnything: "Pregunte lo que quiera
|
|
1427
|
+
loadingAgents: "Cargando agentes…",
|
|
1428
|
+
askAnything: "Pregunte lo que quiera…",
|
|
1336
1429
|
emptyTitle: "Iniciar una conversación",
|
|
1337
1430
|
emptyDescription: "Pregunte lo que quiera — el asistente tiene acceso al contexto de su aplicación actual.",
|
|
1338
1431
|
switchAssistant: "Cambiar de asistente",
|
|
@@ -1435,9 +1528,60 @@ const es = {
|
|
|
1435
1528
|
createSeed: "Generar datos de ejemplo",
|
|
1436
1529
|
createPackage: "Crear paquete de aplicación",
|
|
1437
1530
|
},
|
|
1531
|
+
// objectui#3546 slice four — the AI console surfaces: the /ai chat page's app switcher,
|
|
1532
|
+
// connection banner and plan/publish cards, the ChatDock chrome, and the
|
|
1533
|
+
// conversation-list date buckets. `group.*` is the template-key family
|
|
1534
|
+
// `console.ai.group.${key}` (ConversationsSidebar), enumerated from the
|
|
1535
|
+
// ConversationGroupKey union — all five members, no wildcard.
|
|
1536
|
+
collapseToDock: "Contraer al panel lateral",
|
|
1537
|
+
switchApp: "Cambiar de aplicación",
|
|
1538
|
+
switchAppLabel: "Conversaciones de creación por aplicación",
|
|
1539
|
+
newApp: "Nueva aplicación",
|
|
1540
|
+
connectionWaiting: "Esperando al servidor…",
|
|
1541
|
+
connectionStalled: "Sigue en proceso…",
|
|
1542
|
+
connectionOffline: "Conexión perdida — reconectando…",
|
|
1543
|
+
designingPlan: "Diseñando su aplicación…",
|
|
1544
|
+
designingPlanHint: {
|
|
1545
|
+
data: "Trazando los datos que va a registrar…",
|
|
1546
|
+
objects: "Dando forma a los objetos y sus campos…",
|
|
1547
|
+
relations: "Conectando los registros relacionados…",
|
|
1548
|
+
lookups: "Configurando las relaciones y los campos de búsqueda…",
|
|
1549
|
+
views: "Planificando las pantallas y las vistas…",
|
|
1550
|
+
forms: "Organizando los formularios y las listas…",
|
|
1551
|
+
defaults: "Agregando valores predeterminados y validaciones razonables…",
|
|
1552
|
+
dashboard: "Bosquejando un panel para el seguimiento…",
|
|
1553
|
+
review: "Comprobando que la estructura encaje…",
|
|
1554
|
+
finalize: "Reuniendo el plan…",
|
|
1555
|
+
},
|
|
1556
|
+
planBuilding: "Creando…",
|
|
1557
|
+
planBuilt: "Creado",
|
|
1558
|
+
planDeferred: "Aún no creado",
|
|
1559
|
+
planReady: "El plan está listo. Créelo ahora o dígame qué ajustar.",
|
|
1560
|
+
published: "Publicado",
|
|
1561
|
+
publishFailed: "Error al publicar",
|
|
1562
|
+
unavailableTitle: "Asistente de IA no disponible",
|
|
1563
|
+
unavailableDescription: "Esta implementación no tiene habilitado un asistente de IA. Todo lo demás funciona con normalidad.",
|
|
1564
|
+
unavailableError: "No se pudo contactar con el servicio de IA. Puede estar temporalmente sin conexión — reinténtelo o vuelva al inicio.",
|
|
1565
|
+
unavailableRetry: "Reintentar",
|
|
1566
|
+
unavailableHome: "Volver al inicio",
|
|
1567
|
+
dock: {
|
|
1568
|
+
title: "Asistente",
|
|
1569
|
+
description: "Chat con el asistente de IA",
|
|
1570
|
+
resize: "Redimensionar el chat",
|
|
1571
|
+
collapse: "Contraer el chat",
|
|
1572
|
+
maximize: "Abrir como página completa",
|
|
1573
|
+
open: "Abrir el asistente",
|
|
1574
|
+
},
|
|
1575
|
+
group: {
|
|
1576
|
+
today: "Hoy",
|
|
1577
|
+
yesterday: "Ayer",
|
|
1578
|
+
previous7Days: "7 días anteriores",
|
|
1579
|
+
previous30Days: "30 días anteriores",
|
|
1580
|
+
older: "Anteriores",
|
|
1581
|
+
},
|
|
1438
1582
|
},
|
|
1439
1583
|
title: "Consola ObjectStack",
|
|
1440
|
-
initializing: "Inicializando aplicación
|
|
1584
|
+
initializing: "Inicializando aplicación…",
|
|
1441
1585
|
loadingHint: "Configurar un entorno nuevo puede tardar unos momentos.",
|
|
1442
1586
|
breadcrumb: {
|
|
1443
1587
|
dashboards: "Paneles",
|
|
@@ -1445,6 +1589,31 @@ const es = {
|
|
|
1445
1589
|
reports: "Informes",
|
|
1446
1590
|
system: "Sistema",
|
|
1447
1591
|
},
|
|
1592
|
+
// objectui#4024 — the single-namespace settings screen. Its sibling
|
|
1593
|
+
// `settingsHub` above already resolved through this pack; the view was the
|
|
1594
|
+
// one file still carrying English literals.
|
|
1595
|
+
settingsView: {
|
|
1596
|
+
backToHub: "Toda la configuración",
|
|
1597
|
+
back: "Atrás",
|
|
1598
|
+
noNamespace: "No hay ningún espacio de nombres seleccionado.",
|
|
1599
|
+
loadError: "No se pudo cargar la configuración",
|
|
1600
|
+
saved: "Configuración guardada",
|
|
1601
|
+
saveFailed: "Error al guardar",
|
|
1602
|
+
lockedByEnv: "Bloqueado por el entorno: {{key}}",
|
|
1603
|
+
lockedByEnvNoKey: "Bloqueado por el entorno",
|
|
1604
|
+
actionSucceeded: "La acción se completó correctamente",
|
|
1605
|
+
actionFailed: "La acción falló",
|
|
1606
|
+
discard: "Descartar",
|
|
1607
|
+
saveChanges: "Guardar cambios",
|
|
1608
|
+
unsavedCount: "{{count}} cambios sin guardar",
|
|
1609
|
+
unsavedCount_one: "{{count}} cambio sin guardar",
|
|
1610
|
+
unsavedCount_other: "{{count}} cambios sin guardar",
|
|
1611
|
+
cryptoRefusalTitle: "Esta instalación no puede cifrar secretos",
|
|
1612
|
+
cryptoRefusalSubjectSuffix: "está declarado como cifrado, por lo que no se escribió nada.",
|
|
1613
|
+
cryptoRefusalNoSubject: "El valor declarado como cifrado fue rechazado, por lo que no se escribió nada.",
|
|
1614
|
+
cryptoRefusalToast: "No se pueden cifrar los secretos: {{subject}}",
|
|
1615
|
+
cryptoRefusalToastNoSubject: "No se pueden cifrar los secretos",
|
|
1616
|
+
},
|
|
1448
1617
|
loadingSteps: {
|
|
1449
1618
|
connecting: "Conectando a la fuente de datos",
|
|
1450
1619
|
loadingConfig: "Cargando configuración",
|
|
@@ -1474,6 +1643,7 @@ const es = {
|
|
|
1474
1643
|
general: "General",
|
|
1475
1644
|
navigation: "Navegación",
|
|
1476
1645
|
dataViews: "Vistas de datos",
|
|
1646
|
+
aiChat: "Asistente de IA",
|
|
1477
1647
|
preferences: "Preferencias",
|
|
1478
1648
|
},
|
|
1479
1649
|
openCommandPalette: "Abrir paleta de comandos",
|
|
@@ -1484,11 +1654,13 @@ const es = {
|
|
|
1484
1654
|
createRecord: "Crear nuevo registro",
|
|
1485
1655
|
refreshData: "Actualizar datos",
|
|
1486
1656
|
editRecord: "Editar registro seleccionado",
|
|
1657
|
+
newChat: "Nuevo chat",
|
|
1658
|
+
toggleChatsList: "Alternar lista de chats",
|
|
1487
1659
|
toggleDarkMode: "Alternar modo oscuro",
|
|
1488
1660
|
},
|
|
1489
1661
|
commandPalette: {
|
|
1490
1662
|
title: "Paleta de comandos",
|
|
1491
|
-
placeholder: "Escriba un comando o busque
|
|
1663
|
+
placeholder: "Escriba un comando o busque…",
|
|
1492
1664
|
noResults: "No se encontraron resultados.",
|
|
1493
1665
|
objects: "Objetos",
|
|
1494
1666
|
dashboards: "Paneles",
|
|
@@ -1514,6 +1686,12 @@ const es = {
|
|
|
1514
1686
|
goHome: "Ir al inicio",
|
|
1515
1687
|
errorDetails: "Detalles del error (solo desarrollo)",
|
|
1516
1688
|
},
|
|
1689
|
+
// objectui#3546 slice four — the console's catch-all route (AppContent `RouteNotFound`).
|
|
1690
|
+
notFound: {
|
|
1691
|
+
title: "Página no encontrada",
|
|
1692
|
+
description: "La URL que siguió no coincide con ninguna vista de esta aplicación.",
|
|
1693
|
+
back: "Volver",
|
|
1694
|
+
},
|
|
1517
1695
|
theme: {
|
|
1518
1696
|
toggle: "Cambiar tema",
|
|
1519
1697
|
light: "Claro",
|
|
@@ -1529,8 +1707,10 @@ const es = {
|
|
|
1529
1707
|
viewNameHelp: "Clave técnica (snake_case). Se rellena automáticamente a partir del título — edítela si lo desea.",
|
|
1530
1708
|
viewNameRequired: "Introduzca una clave (minúsculas, números, guion bajo). No se rellena automáticamente con títulos no latinos.",
|
|
1531
1709
|
viewNameInvalid: "Use minúsculas, números y guiones bajos; empiece por una letra o un guion bajo.",
|
|
1532
|
-
systemViewReadonly:
|
|
1533
|
-
|
|
1710
|
+
systemViewReadonly: "Vista del sistema definida en el código: solo lectura.",
|
|
1711
|
+
cannotEditMetaView: "Esta vista está integrada y definida en el código: no se puede modificar.",
|
|
1712
|
+
cannotDeleteMetaView: "Esta vista está integrada y definida en el código: no se puede eliminar.",
|
|
1713
|
+
expandToPage: "Abrir como página completa",
|
|
1534
1714
|
objectNotFound: "Objeto no encontrado",
|
|
1535
1715
|
objectNotFoundDescription: "El objeto \"{{objectName}}\" no existe en la configuración actual.",
|
|
1536
1716
|
objectNotFoundHint: "Verifique la configuración de navegación de su aplicación o seleccione un objeto diferente en la barra lateral.",
|
|
@@ -1562,7 +1742,7 @@ const es = {
|
|
|
1562
1742
|
exportPrintHint: "Formatos de exportación, impresión y visualización del recuento de registros",
|
|
1563
1743
|
showAllFields: "Mostrar todo",
|
|
1564
1744
|
hideAllFields: "Ocultar todo",
|
|
1565
|
-
searchFields: "Buscar campos
|
|
1745
|
+
searchFields: "Buscar campos…",
|
|
1566
1746
|
title: "Título",
|
|
1567
1747
|
description: "Descripción",
|
|
1568
1748
|
data: "Datos",
|
|
@@ -1601,7 +1781,7 @@ const es = {
|
|
|
1601
1781
|
longitudeField: "Campo de longitud",
|
|
1602
1782
|
imageField: "Campo de imagen",
|
|
1603
1783
|
dateField: "Campo de fecha",
|
|
1604
|
-
selectField: "Seleccionar campo
|
|
1784
|
+
selectField: "Seleccionar campo…",
|
|
1605
1785
|
gridOptionsHint: "La vista de cuadrícula usa las columnas configuradas arriba.",
|
|
1606
1786
|
groupBy: "Agrupar por",
|
|
1607
1787
|
prefixField: "Campo de prefijo",
|
|
@@ -1664,7 +1844,7 @@ const es = {
|
|
|
1664
1844
|
latitudeFieldHelp: "Campo que contiene la latitud (solo campos geográficos).",
|
|
1665
1845
|
longitudeFieldHelp: "Campo que contiene la longitud (solo campos geográficos).",
|
|
1666
1846
|
imageFieldHelp: "La portada de la galería proviene de este campo de imagen o adjunto.",
|
|
1667
|
-
selectOption: "Seleccionar
|
|
1847
|
+
selectOption: "Seleccionar…",
|
|
1668
1848
|
noEligibleFieldForType: "Ningún campo elegible de ese tipo. Agregue uno al objeto primero.",
|
|
1669
1849
|
viewTypeUnavailable: "Este objeto no tiene un campo que sirva como \"{{field}}\".",
|
|
1670
1850
|
viewTypeUnavailableShort: "No compatible con este objeto.",
|
|
@@ -1714,7 +1894,7 @@ const es = {
|
|
|
1714
1894
|
ufDropdown: "Desplegable",
|
|
1715
1895
|
ufTabs: "Pestañas",
|
|
1716
1896
|
ufToggle: "Alternar",
|
|
1717
|
-
ufAddField: "+ Agregar campo de filtro
|
|
1897
|
+
ufAddField: "+ Agregar campo de filtro…",
|
|
1718
1898
|
ufNoFields: "Sin campos disponibles",
|
|
1719
1899
|
ufAddTab: "+ Agregar pestaña",
|
|
1720
1900
|
ufTabLabel: "Etiqueta",
|
|
@@ -1774,7 +1954,7 @@ const es = {
|
|
|
1774
1954
|
passwordPlaceholder: "Ingresa tu contraseña",
|
|
1775
1955
|
forgotPasswordText: "¿Olvidaste tu contraseña?",
|
|
1776
1956
|
submitButton: "Iniciar sesión",
|
|
1777
|
-
submittingButton: "Iniciando sesión
|
|
1957
|
+
submittingButton: "Iniciando sesión…",
|
|
1778
1958
|
noAccountText: "¿No tienes una cuenta?",
|
|
1779
1959
|
signUpText: "Regístrate",
|
|
1780
1960
|
errors: {
|
|
@@ -1782,6 +1962,18 @@ const es = {
|
|
|
1782
1962
|
invalidCredentials: "Correo o contraseña inválidos. Inténtelo de nuevo.",
|
|
1783
1963
|
emailNotVerified: "Verifique su correo electrónico antes de iniciar sesión.",
|
|
1784
1964
|
},
|
|
1965
|
+
// objectui#3546 slice three — phone/OTP sign-in. `{seconds}` is LoginForm's own
|
|
1966
|
+
// literal `.replace()` hole, not i18next interpolation: keep the single braces.
|
|
1967
|
+
emailOrPhoneLabel: "Correo electrónico o número de teléfono",
|
|
1968
|
+
emailOrPhonePlaceholder: "name@example.com o +1 555 000 0000",
|
|
1969
|
+
phoneLabel: "Número de teléfono",
|
|
1970
|
+
phonePlaceholder: "+1 555 000 0000",
|
|
1971
|
+
otpCodeLabel: "Código de verificación",
|
|
1972
|
+
otpCodePlaceholder: "Código de 6 dígitos",
|
|
1973
|
+
sendOtpButton: "Obtener código",
|
|
1974
|
+
resendOtpCountdownText: "Reenviar en {seconds} s",
|
|
1975
|
+
usePhoneOtpText: "Iniciar sesión con código de verificación",
|
|
1976
|
+
usePasswordSignInText: "Iniciar sesión con contraseña en su lugar",
|
|
1785
1977
|
},
|
|
1786
1978
|
register: {
|
|
1787
1979
|
title: "Crear una cuenta",
|
|
@@ -1797,7 +1989,7 @@ const es = {
|
|
|
1797
1989
|
passwordMismatchError: "Las contraseñas no coinciden",
|
|
1798
1990
|
passwordTooShortError: "La contraseña debe tener al menos 8 caracteres",
|
|
1799
1991
|
submitButton: "Crear cuenta",
|
|
1800
|
-
submittingButton: "Creando cuenta
|
|
1992
|
+
submittingButton: "Creando cuenta…",
|
|
1801
1993
|
hasAccountText: "¿Ya tienes una cuenta?",
|
|
1802
1994
|
signInText: "Iniciar sesión",
|
|
1803
1995
|
errors: {
|
|
@@ -1818,12 +2010,26 @@ const es = {
|
|
|
1818
2010
|
emailLabel: "Correo electrónico",
|
|
1819
2011
|
emailPlaceholder: "name@example.com",
|
|
1820
2012
|
submitButton: "Enviar enlace de restablecimiento",
|
|
1821
|
-
submittingButton: "Enviando
|
|
2013
|
+
submittingButton: "Enviando…",
|
|
1822
2014
|
successTitle: "Revisa tu correo electrónico",
|
|
1823
2015
|
successDescription: "Hemos enviado un enlace para restablecer la contraseña a {{email}}. Por favor revisa tu bandeja de entrada.",
|
|
1824
2016
|
backToSignInText: "Volver a iniciar sesión",
|
|
1825
2017
|
rememberPasswordText: "¿Recuerdas tu contraseña?",
|
|
1826
2018
|
signInText: "Iniciar sesión",
|
|
2019
|
+
// objectui#3546 slice three — the SMS reset branch of the same form.
|
|
2020
|
+
phoneLabel: "Número de teléfono",
|
|
2021
|
+
phonePlaceholder: "+1 555 000 0000",
|
|
2022
|
+
otpCodeLabel: "Código de verificación",
|
|
2023
|
+
otpCodePlaceholder: "Código de 6 dígitos",
|
|
2024
|
+
sendOtpButton: "Obtener código",
|
|
2025
|
+
resendOtpCountdownText: "Reenviar en {seconds} s",
|
|
2026
|
+
newPasswordLabel: "Nueva contraseña",
|
|
2027
|
+
newPasswordPlaceholder: "Ingresa una nueva contraseña",
|
|
2028
|
+
resetButton: "Restablecer contraseña",
|
|
2029
|
+
usePhoneResetText: "Restablecer con código SMS",
|
|
2030
|
+
useEmailResetText: "Restablecer por correo electrónico en su lugar",
|
|
2031
|
+
phoneSuccessTitle: "Contraseña restablecida",
|
|
2032
|
+
phoneSuccessDescription: "Tu contraseña ha sido restablecida. Ahora puedes iniciar sesión con tu nueva contraseña.",
|
|
1827
2033
|
},
|
|
1828
2034
|
resetPassword: {
|
|
1829
2035
|
title: "Establecer nueva contraseña",
|
|
@@ -1862,6 +2068,8 @@ const es = {
|
|
|
1862
2068
|
backToLogin: "Volver al inicio de sesión",
|
|
1863
2069
|
checkSpam: "¿No recibió el correo? Revise su carpeta de spam o contacte soporte.",
|
|
1864
2070
|
or: "O",
|
|
2071
|
+
// objectui#3546 slice three.
|
|
2072
|
+
resendUnavailable: "Puede que el envío de correos no esté configurado en este entorno. Contacte soporte si el problema persiste.",
|
|
1865
2073
|
},
|
|
1866
2074
|
setup: {
|
|
1867
2075
|
welcomeTitle: "Bienvenido a ObjectStack",
|
|
@@ -1900,6 +2108,9 @@ const es = {
|
|
|
1900
2108
|
invalidDescription: "No se proporcionó código de dispositivo en la URL.",
|
|
1901
2109
|
loading: "Cargando…",
|
|
1902
2110
|
cancel: "Cancelar",
|
|
2111
|
+
// objectui#3546 slice three — device-authorization plugin switched off.
|
|
2112
|
+
disabledTitle: "La autorización de dispositivos no está habilitada",
|
|
2113
|
+
disabledDescription: "Esta implementación no tiene habilitada la autorización de dispositivos, por lo que este dispositivo no puede aprobarse aquí.",
|
|
1903
2114
|
},
|
|
1904
2115
|
shell: {
|
|
1905
2116
|
tenantHostHint: "Está iniciando sesión en este espacio de trabajo",
|
|
@@ -1939,6 +2150,29 @@ const es = {
|
|
|
1939
2150
|
},
|
|
1940
2151
|
},
|
|
1941
2152
|
},
|
|
2153
|
+
// objectui#3546 slice three — the /oauth/consent screen.
|
|
2154
|
+
oauth: {
|
|
2155
|
+
consent: {
|
|
2156
|
+
title: "{{appName}} quiere acceder a su cuenta",
|
|
2157
|
+
request: "{{appName}} solicita permiso{{suffix}}.",
|
|
2158
|
+
unknownApp: "una aplicación",
|
|
2159
|
+
willAllow: "Esta aplicación podrá:",
|
|
2160
|
+
scope: {
|
|
2161
|
+
openid: "Confirmar su identidad",
|
|
2162
|
+
profile: "Leer su perfil básico (nombre, foto)",
|
|
2163
|
+
email: "Leer su dirección de correo electrónico",
|
|
2164
|
+
offlineAccess: "Mantener la sesión abierta (renovar el acceso)",
|
|
2165
|
+
},
|
|
2166
|
+
deny: "Denegar",
|
|
2167
|
+
authorize: "Autorizar",
|
|
2168
|
+
submitting: "Autorizando…",
|
|
2169
|
+
granted: "Acceso concedido",
|
|
2170
|
+
denied: "Acceso denegado",
|
|
2171
|
+
noRedirect: "El servidor no devolvió ninguna URL de redirección.",
|
|
2172
|
+
failed: "Error en el consentimiento",
|
|
2173
|
+
footer: "Puede revocar el acceso en cualquier momento desde la configuración de su cuenta.",
|
|
2174
|
+
},
|
|
2175
|
+
},
|
|
1942
2176
|
profile: {
|
|
1943
2177
|
title: "Perfil",
|
|
1944
2178
|
subtitle: "Gestione la configuración de su cuenta",
|
|
@@ -2000,6 +2234,8 @@ const es = {
|
|
|
2000
2234
|
invite: "Invitar miembro",
|
|
2001
2235
|
members: "Miembros",
|
|
2002
2236
|
settings: "Configuración del espacio de trabajo",
|
|
2237
|
+
multiOrgDisabled: "La creación de nuevas organizaciones está deshabilitada en esta instancia.",
|
|
2238
|
+
createFailed: 'No se pudo crear el espacio de trabajo',
|
|
2003
2239
|
},
|
|
2004
2240
|
help: {
|
|
2005
2241
|
onThisPage: "En esta página",
|
|
@@ -2010,7 +2246,7 @@ const es = {
|
|
|
2010
2246
|
},
|
|
2011
2247
|
sidebar: {
|
|
2012
2248
|
packageManagement: "Gestión de paquetes",
|
|
2013
|
-
searchNavigation: "Buscar en la navegación
|
|
2249
|
+
searchNavigation: "Buscar en la navegación…",
|
|
2014
2250
|
settings: "Configuración",
|
|
2015
2251
|
help: "Ayuda",
|
|
2016
2252
|
helpTooltip: "Ayuda y documentación",
|
|
@@ -2034,8 +2270,8 @@ const es = {
|
|
|
2034
2270
|
switchObject: "Cambiar de objeto",
|
|
2035
2271
|
connection: {
|
|
2036
2272
|
connected: "Conectado",
|
|
2037
|
-
connecting: "Conectando
|
|
2038
|
-
reconnecting: "Reconectando
|
|
2273
|
+
connecting: "Conectando…",
|
|
2274
|
+
reconnecting: "Reconectando…",
|
|
2039
2275
|
disconnected: "Desconectado",
|
|
2040
2276
|
error: "Error de conexión",
|
|
2041
2277
|
},
|
|
@@ -2074,6 +2310,14 @@ const es = {
|
|
|
2074
2310
|
publishing: "Publicando…",
|
|
2075
2311
|
published: "¡Publicado! Sus cambios están activos.",
|
|
2076
2312
|
publishFailed: "Error al publicar",
|
|
2313
|
+
// objectui#3546 slice six — seedWarn reutiliza la traducción de
|
|
2314
|
+
// console.ai.seedWarn (misma frase en inglés). Marcador "(s)" como en
|
|
2315
|
+
// home.pendingDrafts.message, de esta misma familia.
|
|
2316
|
+
nothing: "Nada que publicar.",
|
|
2317
|
+
probeWarn: "Publicado, pero la verificación encontró problemas.",
|
|
2318
|
+
seedWarn: "Publicado, pero no se pudieron cargar algunos datos de ejemplo.",
|
|
2319
|
+
publishedVerified: "Publicado y verificado — {{count}} fila(s) de ejemplo activa(s).",
|
|
2320
|
+
capabilityWarn: "Comprobación de autoría: {{count}} referencia(s) de capacidad no apuntan a nada.",
|
|
2077
2321
|
},
|
|
2078
2322
|
title: "Inicio",
|
|
2079
2323
|
subtitle: "Panel de tu espacio de trabajo",
|
|
@@ -2087,7 +2331,7 @@ const es = {
|
|
|
2087
2331
|
title: "Requiere tu atención",
|
|
2088
2332
|
empty: "Estás al día",
|
|
2089
2333
|
},
|
|
2090
|
-
loading: "Cargando espacio de trabajo
|
|
2334
|
+
loading: "Cargando espacio de trabajo…",
|
|
2091
2335
|
recent: "Recientes",
|
|
2092
2336
|
starred: "Destacados",
|
|
2093
2337
|
welcome: "Bienvenido a ObjectUI",
|
|
@@ -2148,6 +2392,9 @@ const es = {
|
|
|
2148
2392
|
roles: "Roles",
|
|
2149
2393
|
configuration: "Configuración",
|
|
2150
2394
|
createApp: "Crear aplicación",
|
|
2395
|
+
administration: "Administración",
|
|
2396
|
+
datasources: "Fuentes de datos",
|
|
2397
|
+
documentation: "Documentación",
|
|
2151
2398
|
},
|
|
2152
2399
|
appSwitcher: {
|
|
2153
2400
|
switchApplication: "Cambiar de aplicación",
|
|
@@ -2187,7 +2434,7 @@ const es = {
|
|
|
2187
2434
|
search: {
|
|
2188
2435
|
title: "Buscar",
|
|
2189
2436
|
back: "Atrás",
|
|
2190
|
-
placeholder: "Buscar objetos, paneles, páginas, informes
|
|
2437
|
+
placeholder: "Buscar objetos, paneles, páginas, informes…",
|
|
2191
2438
|
inputAriaLabel: "Buscar objetos, paneles, páginas, informes",
|
|
2192
2439
|
resultsCount: "{{count}} resultado para \"{{query}}\"",
|
|
2193
2440
|
resultsCountPlural: "{{count}} resultados para \"{{query}}\"",
|
|
@@ -2206,6 +2453,7 @@ const es = {
|
|
|
2206
2453
|
empty: {
|
|
2207
2454
|
objectNotFound: "Objeto no encontrado",
|
|
2208
2455
|
objectNotFoundDescription: "Falta la definición del objeto \"{{name}}\". Verifique su configuración o navegue hacia atrás.",
|
|
2456
|
+
interfacePageSourceMissing: "Esta página de interfaz hace referencia a \"{{name}}\", que no está disponible.",
|
|
2209
2457
|
pageNotFound: "Página no encontrada",
|
|
2210
2458
|
pageNotFoundDescription: "La página \"{{name}}\" no fue encontrada. Puede haber sido eliminada o renombrada.",
|
|
2211
2459
|
dashboardNotFound: "Panel no encontrado",
|
|
@@ -2214,6 +2462,11 @@ const es = {
|
|
|
2214
2462
|
reportNotFoundDescription: "El informe \"{{name}}\" no fue encontrado. Puede haber sido eliminado o renombrado.",
|
|
2215
2463
|
noAppsConfigured: "Sin aplicaciones configuradas",
|
|
2216
2464
|
noAppsConfiguredDescription: "No hay aplicaciones registradas. Cree su primera aplicación o visite la configuración del sistema.",
|
|
2465
|
+
appNotAvailable: "Aplicación no disponible",
|
|
2466
|
+
appNotAvailableDescription: "Esta aplicación aún no está disponible — puede que todavía se esté publicando. Vuelva a intentarlo en un momento.",
|
|
2467
|
+
appAccessDenied: "No tiene acceso a esta aplicación",
|
|
2468
|
+
appAccessDeniedDescription: "Esta aplicación existe, pero su cuenta no está autorizada para abrirla. Solicite acceso a un administrador.",
|
|
2469
|
+
appAccessDeniedHome: "Volver al inicio",
|
|
2217
2470
|
createFirstApp: "Crear primera aplicación",
|
|
2218
2471
|
systemSettings: "Configuración del sistema",
|
|
2219
2472
|
back: "Atrás",
|
|
@@ -2285,7 +2538,7 @@ const es = {
|
|
|
2285
2538
|
deleteFailed: "No se pudo eliminar la vista",
|
|
2286
2539
|
},
|
|
2287
2540
|
dashboardActions: {
|
|
2288
|
-
|
|
2541
|
+
printDialogOpening: "Abriendo el cuadro de diálogo de impresión de tu navegador (no es una exportación a PDF)",
|
|
2289
2542
|
exportFailed: "Error al exportar: {{message}}",
|
|
2290
2543
|
forecastSoon: "La vista de pronóstico llegará pronto",
|
|
2291
2544
|
},
|
|
@@ -2329,111 +2582,7 @@ const es = {
|
|
|
2329
2582
|
first: "Primero",
|
|
2330
2583
|
},
|
|
2331
2584
|
editor: {
|
|
2332
|
-
|
|
2333
|
-
basic: "General",
|
|
2334
|
-
title: "Título",
|
|
2335
|
-
titlePlaceholder: "p. ej. Pipeline por trimestre",
|
|
2336
|
-
description: "Descripción",
|
|
2337
|
-
descriptionPlaceholder: "¿Qué muestra este informe?",
|
|
2338
|
-
type: "Tipo de informe",
|
|
2339
|
-
typeTabular: "Tabla — lista plana",
|
|
2340
|
-
typeSummary: "Resumen — agrupado con totales",
|
|
2341
|
-
typeMatrix: "Matriz — pivote filas × columnas",
|
|
2342
|
-
typeJoined: "Combinado — varios bloques",
|
|
2343
|
-
typeHelp: "Elige el diseño que mejor refleje lo que quieres ver.",
|
|
2344
|
-
data: "Datos",
|
|
2345
|
-
objectName: "Fuente de datos",
|
|
2346
|
-
objectNamePlaceholder: "p. ej. opportunity",
|
|
2347
|
-
objectNameHelp: "¿Qué objeto debe consultar este informe?",
|
|
2348
|
-
limit: "Límite de filas",
|
|
2349
|
-
limitPlaceholder: "p. ej. 100",
|
|
2350
|
-
columns: "Columnas",
|
|
2351
|
-
columnsHint: "Elige los campos que aparecerán como columnas. Añade una agregación (Suma, Recuento…) en los informes Resumen o Matriz.",
|
|
2352
|
-
filters: "Filtros",
|
|
2353
|
-
filtersHint: "Limita las filas incluidas en este informe.",
|
|
2354
|
-
filtersComplex: "Este informe usa un filtro avanzado que no se puede editar aquí. Al guardar se mantendrá intacto.",
|
|
2355
|
-
groupBy: "Agrupar por",
|
|
2356
|
-
groupByHint: "Agrupa los datos y calcula subtotales.",
|
|
2357
|
-
rows: "Filas",
|
|
2358
|
-
rowsHint: "Agrupa las filas por estos campos.",
|
|
2359
|
-
columnsAxis: "Columnas",
|
|
2360
|
-
columnsAxisHint: "Pivota estos campos en la parte superior.",
|
|
2361
|
-
values: "Valores",
|
|
2362
|
-
valuesHint: "Números mostrados en cada celda. Elige uno o varios campos y añade una agregación (Suma, Recuento…).",
|
|
2363
|
-
grouping: "Agrupación",
|
|
2364
|
-
addGrouping: "Añadir agrupación",
|
|
2365
|
-
dateGranularity: "Granularidad de fecha",
|
|
2366
|
-
dateGranularityNone: "(valor original)",
|
|
2367
|
-
day: "Día",
|
|
2368
|
-
week: "Semana",
|
|
2369
|
-
month: "Mes",
|
|
2370
|
-
quarter: "Trimestre",
|
|
2371
|
-
year: "Año",
|
|
2372
|
-
sortAsc: "Ascendente",
|
|
2373
|
-
sortDesc: "Descendente",
|
|
2374
|
-
chart: "Gráfico",
|
|
2375
|
-
chartHint: "Visualización opcional junto a la tabla.",
|
|
2376
|
-
chartType: "Tipo de gráfico",
|
|
2377
|
-
chartTitle: "Título del gráfico",
|
|
2378
|
-
chartTitlePlaceholder: "Por defecto, el título del informe",
|
|
2379
|
-
chartXAxis: "Eje X (categoría)",
|
|
2380
|
-
chartYAxis: "Eje Y (valor)",
|
|
2381
|
-
chartShowLegend: "Mostrar leyenda",
|
|
2382
|
-
chartShowDataLabels: "Mostrar etiquetas de datos",
|
|
2383
|
-
chartNone: "(sin gráfico)",
|
|
2384
|
-
chartBar: "Barras",
|
|
2385
|
-
chartLine: "Líneas",
|
|
2386
|
-
chartArea: "Áreas",
|
|
2387
|
-
chartPie: "Circular",
|
|
2388
|
-
chartDonut: "Anillo",
|
|
2389
|
-
chartFunnel: "Embudo",
|
|
2390
|
-
validationNeedsObject: "Selecciona una fuente de datos antes de añadir columnas.",
|
|
2391
|
-
validationMatrixNeedsRowsCols: "Los informes de matriz necesitan al menos una fila y una columna.",
|
|
2392
|
-
validationSummaryNeedsRows: "Los informes de resumen necesitan al menos un campo de agrupación.",
|
|
2393
|
-
blocks: "Bloques",
|
|
2394
|
-
blocksHint: "Cada bloque es su propia tabla o gráfico. Los filtros del bloque se combinan (Y) con el filtro del informe.",
|
|
2395
|
-
addBlock: "Añadir bloque",
|
|
2396
|
-
removeBlock: "Eliminar bloque",
|
|
2397
|
-
blockName: "Nombre del bloque",
|
|
2398
|
-
blockNamePlaceholder: "nombre_unico_del_bloque",
|
|
2399
|
-
blockLabel: "Etiqueta a mostrar",
|
|
2400
|
-
blockLabelPlaceholder: "Se muestra encima del bloque",
|
|
2401
|
-
blockDescription: "Descripción",
|
|
2402
|
-
blockDescriptionPlaceholder: "Contexto opcional para este bloque",
|
|
2403
|
-
validationJoinedNeedsBlocks: "Los informes combinados necesitan al menos un bloque.",
|
|
2404
|
-
validationBlockNameRequired: "Cada bloque debe tener un nombre no vacío.",
|
|
2405
|
-
validationBlockNameDuplicate: "Los nombres de bloque deben ser únicos dentro del informe.",
|
|
2406
|
-
validationBlockNeedsColumns: "Cada bloque debe tener al menos una columna.",
|
|
2407
|
-
noneOption: "(ninguno)",
|
|
2408
|
-
addCondition: "Añadir condición",
|
|
2409
|
-
combineLogic: "Combinar con",
|
|
2410
|
-
opContains: "contiene",
|
|
2411
|
-
opIsEmpty: "está vacío",
|
|
2412
|
-
opIsNotEmpty: "no está vacío",
|
|
2413
|
-
formatAuto: "Auto",
|
|
2414
|
-
formatCurrency: "Moneda",
|
|
2415
|
-
formatPercent: "Porcentaje",
|
|
2416
|
-
formatInteger: "Entero",
|
|
2417
|
-
formatDate: "Fecha",
|
|
2418
|
-
formatDatetime: "Fecha y hora",
|
|
2419
|
-
columnLabelPlaceholder: "Sobrescribir etiqueta",
|
|
2420
|
-
aggregateColumn: "Agregación",
|
|
2421
|
-
formatColumn: "Formato",
|
|
2422
|
-
addColumns: "Añadir columnas",
|
|
2423
|
-
searchFields: "Buscar campos…",
|
|
2424
|
-
noMatchingFields: "Ningún campo coincide con tu búsqueda.",
|
|
2425
|
-
noFieldsAvailable: "No hay campos disponibles.",
|
|
2426
|
-
columnsCount: "{n} columna(s) seleccionada(s)",
|
|
2427
|
-
columnsEmpty: "Aún no hay columnas seleccionadas.",
|
|
2428
|
-
fieldPickerTitle: "Seleccionar campos",
|
|
2429
|
-
fieldPickerDescription: "Elija uno o más campos para agregar. Use el campo de búsqueda para filtrar la lista.",
|
|
2430
|
-
fieldPickerChangeTitle: "Cambiar campo",
|
|
2431
|
-
fieldPickerAddGroupingTitle: "Agregar agrupación",
|
|
2432
|
-
fieldPickerEmpty: "(Seleccionar campo)",
|
|
2433
|
-
fieldPickerSelected: "{n} seleccionado(s)",
|
|
2434
|
-
fieldPickerClear: "Limpiar selección",
|
|
2435
|
-
fieldPickerAdd: "Agregar",
|
|
2436
|
-
fieldPickerAddN: "Agregar {n}",
|
|
2585
|
+
panelTitle: "Editar informe",
|
|
2437
2586
|
},
|
|
2438
2587
|
},
|
|
2439
2588
|
organizations: {
|
|
@@ -2450,6 +2599,140 @@ const es = {
|
|
|
2450
2599
|
emptyDescription: "Crea tu primera organización para empezar.",
|
|
2451
2600
|
noMatches: "Ninguna organización coincide con tu búsqueda.",
|
|
2452
2601
|
},
|
|
2602
|
+
organization: {
|
|
2603
|
+
roles: {
|
|
2604
|
+
owner: 'Propietario',
|
|
2605
|
+
admin: 'Administrador',
|
|
2606
|
+
delegatedAdmin: 'Administrador delegado',
|
|
2607
|
+
member: 'Miembro',
|
|
2608
|
+
},
|
|
2609
|
+
errors: {
|
|
2610
|
+
notAllowedToInvite: 'No tiene permiso para invitar usuarios a esta organización.',
|
|
2611
|
+
notAllowedToInviteWithRole: 'No tiene permiso para invitar a un usuario con este rol.',
|
|
2612
|
+
alreadyInvited: 'Este usuario ya ha sido invitado a esta organización.',
|
|
2613
|
+
organizationExists: 'Esa organización ya existe.',
|
|
2614
|
+
slugTaken: 'Ese slug ya está en uso.',
|
|
2615
|
+
notAllowedToCreate: 'No tiene permiso para crear una organización nueva.',
|
|
2616
|
+
notTheRecipient: 'No es el destinatario de esta invitación.',
|
|
2617
|
+
invitationNotFound: 'Esta invitación ya no existe o ha caducado.',
|
|
2618
|
+
unknown: 'Algo salió mal. Inténtelo de nuevo.',
|
|
2619
|
+
},
|
|
2620
|
+
backToList: "Volver a las organizaciones",
|
|
2621
|
+
notFound: "Organización no encontrada",
|
|
2622
|
+
notFoundDescription: "Esta organización no existe o no tienes acceso.",
|
|
2623
|
+
tabs: {
|
|
2624
|
+
members: "Miembros",
|
|
2625
|
+
invitations: "Invitaciones",
|
|
2626
|
+
settings: "Configuración",
|
|
2627
|
+
},
|
|
2628
|
+
members: {
|
|
2629
|
+
title: "Miembros",
|
|
2630
|
+
inviteMember: "Invitar miembro",
|
|
2631
|
+
inviteRestrictedNote: "Solo los administradores de la organización pueden invitar a miembros.",
|
|
2632
|
+
removeMember: "Eliminar miembro",
|
|
2633
|
+
removeConfirmTitle: "¿Eliminar miembro?",
|
|
2634
|
+
removeConfirmDescription: "Se eliminará a {{name}} de la organización y perderá el acceso de inmediato.",
|
|
2635
|
+
removeConfirmAction: "Eliminar",
|
|
2636
|
+
memberRemoved: "Miembro eliminado",
|
|
2637
|
+
removeFailed: "No se pudo eliminar al miembro",
|
|
2638
|
+
roleUpdated: "Rol actualizado",
|
|
2639
|
+
roleUpdateFailed: "No se pudo actualizar el rol",
|
|
2640
|
+
memberActions: 'Acciones del miembro',
|
|
2641
|
+
loadFailed: 'No se pudieron cargar los miembros',
|
|
2642
|
+
},
|
|
2643
|
+
invitations: {
|
|
2644
|
+
title: "Invitaciones",
|
|
2645
|
+
empty: "No hay invitaciones.",
|
|
2646
|
+
expiresAt: "Caduca",
|
|
2647
|
+
linkCopied: "Enlace de invitación copiado",
|
|
2648
|
+
copyFailed: "No se pudo copiar el enlace",
|
|
2649
|
+
canceled: "Invitación cancelada",
|
|
2650
|
+
cancelFailed: "No se pudo cancelar la invitación",
|
|
2651
|
+
cancelTitle: "¿Cancelar la invitación?",
|
|
2652
|
+
cancelDescription: "Se revocará la invitación de {{email}}.",
|
|
2653
|
+
cancelAction: "Cancelar invitación",
|
|
2654
|
+
inviteTitle: "Invitar a un miembro",
|
|
2655
|
+
inviteDescription: "Recibirá una invitación para unirse a esta organización.",
|
|
2656
|
+
emailLabel: "Correo electrónico",
|
|
2657
|
+
roleLabel: "Rol",
|
|
2658
|
+
placementLabel: "Asignación (opcional)",
|
|
2659
|
+
placementDescription: "Se aplica cuando se acepta la invitación. Solo se listan las unidades y los puestos que puedes delegar.",
|
|
2660
|
+
businessUnitLabel: "Unidad de negocio",
|
|
2661
|
+
businessUnitPlaceholder: "Sin asignación",
|
|
2662
|
+
positionsLabel: "Puestos",
|
|
2663
|
+
sendInvite: "Enviar invitación",
|
|
2664
|
+
sentTitle: "Invitación creada",
|
|
2665
|
+
sentDescription: "Comparte el enlace de abajo con la persona invitada. Tendrá que iniciar sesión para aceptarla.",
|
|
2666
|
+
linkLabel: "Enlace de aceptación",
|
|
2667
|
+
invitedAs: "{{email}} invitado como {{role}}",
|
|
2668
|
+
copyLinkLabel: 'Copiar enlace de invitación',
|
|
2669
|
+
loadFailed: 'No se pudieron cargar las invitaciones',
|
|
2670
|
+
inviteFailed: 'No se pudo invitar al miembro',
|
|
2671
|
+
status: {
|
|
2672
|
+
all: "Todas",
|
|
2673
|
+
pending: "Pendiente",
|
|
2674
|
+
accepted: "Aceptada",
|
|
2675
|
+
rejected: "Rechazada",
|
|
2676
|
+
canceled: "Cancelada",
|
|
2677
|
+
},
|
|
2678
|
+
},
|
|
2679
|
+
settings: {
|
|
2680
|
+
generalTitle: "General",
|
|
2681
|
+
generalDescription: "Actualiza la información de tu organización.",
|
|
2682
|
+
readOnlyNote: "Solo los propietarios pueden cambiar la configuración.",
|
|
2683
|
+
nameLabel: "Nombre de la organización",
|
|
2684
|
+
slugLabel: "Slug",
|
|
2685
|
+
logoLabel: "Logo",
|
|
2686
|
+
logoUpload: "Subir",
|
|
2687
|
+
logoReplace: "Reemplazar",
|
|
2688
|
+
logoClear: "Quitar",
|
|
2689
|
+
logoUploaded: "Logo subido: guarda para aplicarlo",
|
|
2690
|
+
logoUploadFailed: "No se pudo subir el logo",
|
|
2691
|
+
save: "Guardar cambios",
|
|
2692
|
+
saved: "Configuración guardada",
|
|
2693
|
+
saveFailed: "No se pudo guardar la configuración",
|
|
2694
|
+
leaveTitle: "Salir de la organización",
|
|
2695
|
+
leaveDescription: "Perderás el acceso a esta organización.",
|
|
2696
|
+
leaveAction: "Salir",
|
|
2697
|
+
leaveConfirmTitle: "¿Salir de la organización?",
|
|
2698
|
+
leaveConfirmDescription: "¿Seguro que quieres salir de {{name}}? Perderás el acceso de inmediato.",
|
|
2699
|
+
leaveConfirmAction: "Salir",
|
|
2700
|
+
leftOrg: "Has salido de la organización",
|
|
2701
|
+
leaveFailed: "No se pudo salir de la organización",
|
|
2702
|
+
dangerZone: "Zona de peligro",
|
|
2703
|
+
deleteTitle: "Eliminar organización",
|
|
2704
|
+
deleteDescription: "Elimina permanentemente esta organización y todos sus datos.",
|
|
2705
|
+
deleteAction: "Eliminar",
|
|
2706
|
+
deleteConfirmTitle: "¿Eliminar la organización?",
|
|
2707
|
+
deleteConfirmDescription: "Esta acción es irreversible. Todos los datos se eliminarán de forma permanente. Escribe el slug de la organización para confirmar.",
|
|
2708
|
+
deleteConfirmSlugLabel: "Escribe «{{slug}}» para confirmar",
|
|
2709
|
+
deleteConfirmAction: "Eliminar organización",
|
|
2710
|
+
deleted: "Organización eliminada",
|
|
2711
|
+
deleteFailed: "No se pudo eliminar la organización",
|
|
2712
|
+
},
|
|
2713
|
+
accept: {
|
|
2714
|
+
title: "Te han invitado",
|
|
2715
|
+
description: "Te han invitado a unirte a {{orgName}} como {{role}}.",
|
|
2716
|
+
errorTitle: "Invitación no disponible",
|
|
2717
|
+
goToOrgs: "Ir a las organizaciones",
|
|
2718
|
+
loading: "Cargando la invitación…",
|
|
2719
|
+
organization: "Organización",
|
|
2720
|
+
role: "Rol",
|
|
2721
|
+
expiresAt: "Caduca",
|
|
2722
|
+
accept: "Aceptar invitación",
|
|
2723
|
+
accepted: "Invitación aceptada",
|
|
2724
|
+
acceptFailed: "No se pudo aceptar la invitación",
|
|
2725
|
+
decline: "Rechazar",
|
|
2726
|
+
declined: "Invitación rechazada",
|
|
2727
|
+
declineFailed: "No se pudo rechazar la invitación",
|
|
2728
|
+
},
|
|
2729
|
+
switcher: {
|
|
2730
|
+
label: "Cambiar de organización",
|
|
2731
|
+
groupLabel: "Organización de trabajo",
|
|
2732
|
+
groupHint: "Los registros nuevos se crean aquí. Las vistas muestran datos de todas tus organizaciones.",
|
|
2733
|
+
manageMembers: "Administrar miembros",
|
|
2734
|
+
},
|
|
2735
|
+
},
|
|
2453
2736
|
notifications: {
|
|
2454
2737
|
regionLabel: "Notificaciones",
|
|
2455
2738
|
groupCount: "{{count}} notificaciones",
|
|
@@ -2463,6 +2746,9 @@ const es = {
|
|
|
2463
2746
|
viewApprovals: "Ver aprobaciones",
|
|
2464
2747
|
noPendingApprovals: "Sin aprobaciones pendientes",
|
|
2465
2748
|
openApprovalsInbox: "Abrir bandeja de aprobaciones",
|
|
2749
|
+
badgeTotal: "{{total}} en total",
|
|
2750
|
+
badgeNotifications: "{{unread}} notificaciones",
|
|
2751
|
+
badgeApprovals: "{{approvals}} aprobaciones pendientes",
|
|
2466
2752
|
emptyUnread: "Todo al día",
|
|
2467
2753
|
filterUnread: "No leídos",
|
|
2468
2754
|
filterAll: "Todos",
|
|
@@ -2749,6 +3035,7 @@ const es = {
|
|
|
2749
3035
|
dismiss: "Descartar",
|
|
2750
3036
|
openOnCloud: "Abrir en la nube",
|
|
2751
3037
|
backHome: "Volver al inicio",
|
|
3038
|
+
updateTo: "Actualizar",
|
|
2752
3039
|
},
|
|
2753
3040
|
install: {
|
|
2754
3041
|
dialogTitle: "Instalar {{name}}",
|
|
@@ -2765,6 +3052,37 @@ const es = {
|
|
|
2765
3052
|
localManifestConflict: "{{message}}\nNota: Una aplicación local ya tiene este manifest_id. Primero elimínela de objectstack.config.ts.",
|
|
2766
3053
|
localUnauthorized: "Primero inicie sesión en este runtime.",
|
|
2767
3054
|
localMarketplaceUnavailable: "Este runtime no tiene configurado OS_CLOUD_URL.",
|
|
3055
|
+
updateTo: "Actualizar → v{{version}}",
|
|
3056
|
+
installedVersion: "Instalado v{{version}}",
|
|
3057
|
+
},
|
|
3058
|
+
// objectui#3546 — the MarketplacePage "Your organization" strip.
|
|
3059
|
+
org: {
|
|
3060
|
+
heading: "Su organización",
|
|
3061
|
+
install: "Instalar",
|
|
3062
|
+
installed: "{{name}} instalado",
|
|
3063
|
+
installedBadge: "Instalado",
|
|
3064
|
+
installing: "Instalando…",
|
|
3065
|
+
},
|
|
3066
|
+
// ADR-0025 PD4 §3.5/§3.11 — the pre-install consent panel
|
|
3067
|
+
// (PluginDisclosure.tsx). `runtime` is a CLOSED enum: spec
|
|
3068
|
+
// PluginRuntimeSchema = z.enum(['node', 'sandbox', 'worker']).
|
|
3069
|
+
disclosure: {
|
|
3070
|
+
containsCode: "Este paquete contiene código",
|
|
3071
|
+
reviewed: "Revisado y aprobado",
|
|
3072
|
+
unreviewed: "Sin revisar todavía",
|
|
3073
|
+
signed: "Firmado",
|
|
3074
|
+
grantsIntro: "Al instalarlo, este paquete recibirá:",
|
|
3075
|
+
services: "Servicios de la plataforma",
|
|
3076
|
+
hooks: "Hooks de ciclo de vida",
|
|
3077
|
+
network: "Acceso a la red",
|
|
3078
|
+
fs: "Acceso al sistema de archivos",
|
|
3079
|
+
noPermissions: "No solicita permisos especiales.",
|
|
3080
|
+
acknowledge: "Entiendo que este paquete ejecuta código y recibe los permisos anteriores.",
|
|
3081
|
+
runtime: {
|
|
3082
|
+
node: "En el proceso · confianza total",
|
|
3083
|
+
sandbox: "En sandbox",
|
|
3084
|
+
worker: "Fuera del proceso",
|
|
3085
|
+
},
|
|
2768
3086
|
},
|
|
2769
3087
|
uninstall: {
|
|
2770
3088
|
confirm: "¿Desinstalar {{manifestId}} v{{version}} de este runtime?\n\nEl manifiesto en caché será eliminado.",
|
|
@@ -2984,16 +3302,16 @@ const es = {
|
|
|
2984
3302
|
loadFailedTitle: 'No se pudo cargar la vista previa del borrador',
|
|
2985
3303
|
loadFailedDescription: 'No se pudo leer la capa de borrador. Reintenta o comprueba tu conexión.',
|
|
2986
3304
|
notReadyTitle: '«{{app}}» aún no está en el borrador',
|
|
2987
|
-
notReadyDescription: 'La compilación puede seguir en curso, o falló antes de preparar esta aplicación.
|
|
3305
|
+
notReadyDescription: 'La compilación puede seguir en curso, o falló antes de preparar esta aplicación. Revise la conversación para ver el estado — este panel se actualiza cuando llegan borradores.',
|
|
2988
3306
|
nothingTitle: 'Nada que previsualizar todavía',
|
|
2989
3307
|
retry: 'Reintentar',
|
|
2990
3308
|
},
|
|
2991
3309
|
draftBar: {
|
|
2992
|
-
messageClean: "Vista previa del borrador
|
|
3310
|
+
messageClean: "Vista previa del borrador — no hay cambios sin publicar; todo lo que ve aquí ya está activo.",
|
|
2993
3311
|
sampleDataTitle: "Los datos de ejemplo aparecen tras publicar",
|
|
2994
3312
|
sampleDataBody: "Está viendo la estructura de su aplicación. Publíquela para cargar registros de ejemplo y activarla.",
|
|
2995
3313
|
publishCta: "Publicar para verlo activo",
|
|
2996
|
-
message: 'Vista previa
|
|
3314
|
+
message: 'Vista previa del borrador — está viendo cambios sin publicar. Nada de lo que ve aquí está activo hasta que publique.',
|
|
2997
3315
|
publish: 'Publicar',
|
|
2998
3316
|
publishing: 'Publicando…',
|
|
2999
3317
|
exit: 'Salir de la vista previa',
|
|
@@ -3014,6 +3332,34 @@ const es = {
|
|
|
3014
3332
|
confirmNote: 'Publicar libera atómicamente los {{count}} borradores pendientes de este paquete.',
|
|
3015
3333
|
publishConfirm: 'Publicar todo',
|
|
3016
3334
|
},
|
|
3335
|
+
// ADR-0045 — the materialized-but-unlisted app banner
|
|
3336
|
+
// (UnpublishedAppBar.tsx), sibling of draftBar above.
|
|
3337
|
+
unpublishedBar: {
|
|
3338
|
+
message: 'Aplicación sin publicar — totalmente funcional, pero solo la ven los creadores. Publíquela para que sus usuarios la vean.',
|
|
3339
|
+
publish: 'Publicar',
|
|
3340
|
+
publishing: 'Publicando…',
|
|
3341
|
+
published: '¡Publicado! La aplicación ya es visible para sus usuarios.',
|
|
3342
|
+
publishFailed: 'Error al publicar',
|
|
3343
|
+
},
|
|
3344
|
+
// ADR-0067 — the append-only build/revert timeline (CommitTimeline.tsx);
|
|
3345
|
+
// `button` is the banner's entry point into it.
|
|
3346
|
+
history: {
|
|
3347
|
+
button: 'Historial',
|
|
3348
|
+
title: 'Historial de compilaciones',
|
|
3349
|
+
description: 'Todos los cambios de esta aplicación, los más recientes primero. Deshaga cualquier paso para revertirlo — no hace falta confirmar la publicación.',
|
|
3350
|
+
loadFailed: 'No se pudo cargar el historial:',
|
|
3351
|
+
loadFailedUnavailable: 'Almacén de commits temporalmente inaccesible — esta lectura no se produjo, por lo que no se muestra ningún historial. Vuelva a intentarlo en un momento.',
|
|
3352
|
+
loading: 'Cargando historial…',
|
|
3353
|
+
empty: 'Aún no hay historial para esta aplicación.',
|
|
3354
|
+
revertLabel: 'Se deshizo un cambio',
|
|
3355
|
+
applyLabel: 'Cambio de compilación',
|
|
3356
|
+
revert: 'deshacer',
|
|
3357
|
+
items: 'elementos',
|
|
3358
|
+
revertAction: 'Deshacer',
|
|
3359
|
+
reverted: 'Deshecho — el cambio se ha revertido.',
|
|
3360
|
+
revertFailed: 'Error al deshacer',
|
|
3361
|
+
revertUnavailable: 'Almacén de commits temporalmente inaccesible — es posible que la reversión no se haya aplicado. Vuelva a abrir este historial para comprobarlo antes de reintentar.',
|
|
3362
|
+
},
|
|
3017
3363
|
},
|
|
3018
3364
|
filterBuilder: {
|
|
3019
3365
|
where: "Donde",
|
|
@@ -3092,5 +3438,57 @@ const es = {
|
|
|
3092
3438
|
statusIdle: "inactivo",
|
|
3093
3439
|
statusAway: "ausente",
|
|
3094
3440
|
},
|
|
3441
|
+
wizard: {
|
|
3442
|
+
missingRequired: "Complete los campos obligatorios: {{fields}}",
|
|
3443
|
+
},
|
|
3444
|
+
appManagement: {
|
|
3445
|
+
title: "Aplicaciones",
|
|
3446
|
+
subtitle: "Gestione todas las aplicaciones configuradas",
|
|
3447
|
+
newApp: "Nueva aplicación",
|
|
3448
|
+
searchLabel: "Buscar aplicaciones",
|
|
3449
|
+
searchPlaceholder: "Buscar aplicaciones…",
|
|
3450
|
+
selectedCount: "{{n}} seleccionadas",
|
|
3451
|
+
bulkEnable: "Habilitar",
|
|
3452
|
+
bulkDisable: "Deshabilitar",
|
|
3453
|
+
selectAll: "Seleccionar todo ({{n}})",
|
|
3454
|
+
empty: "No se encontraron aplicaciones.",
|
|
3455
|
+
defaultBadge: "Predeterminada",
|
|
3456
|
+
active: "Activa",
|
|
3457
|
+
inactive: "Inactiva",
|
|
3458
|
+
selectApp: "Seleccionar {{name}}",
|
|
3459
|
+
openApp: "Abrir aplicación",
|
|
3460
|
+
openAppNamed: "Abrir {{name}}",
|
|
3461
|
+
editApp: "Editar aplicación",
|
|
3462
|
+
editAppNamed: "Editar {{name}}",
|
|
3463
|
+
editWithAi: "Editar con IA",
|
|
3464
|
+
editWithAiNamed: "Editar {{name}} con IA",
|
|
3465
|
+
enableApp: "Habilitar aplicación",
|
|
3466
|
+
disableApp: "Deshabilitar aplicación",
|
|
3467
|
+
enableAppNamed: "Habilitar {{name}}",
|
|
3468
|
+
disableAppNamed: "Deshabilitar {{name}}",
|
|
3469
|
+
setDefault: "Establecer como predeterminada",
|
|
3470
|
+
setDefaultNamed: "Establecer {{name}} como predeterminada",
|
|
3471
|
+
deleteApp: "Eliminar aplicación",
|
|
3472
|
+
deleteAppNamed: "Eliminar {{name}}",
|
|
3473
|
+
confirmDelete: "Haga clic de nuevo para confirmar la eliminación",
|
|
3474
|
+
confirmDeleteNamed: "Confirmar la eliminación de {{name}}",
|
|
3475
|
+
toast: {
|
|
3476
|
+
noClient: "No se puede acceder al servicio de metadatos",
|
|
3477
|
+
unknownError: "error desconocido",
|
|
3478
|
+
appEnabled: "{{name}} habilitada",
|
|
3479
|
+
appDisabled: "{{name}} deshabilitada",
|
|
3480
|
+
toggleFailed: "Error al cambiar el estado de la aplicación: {{reason}}",
|
|
3481
|
+
setDefaultDone: "{{name}} establecida como predeterminada",
|
|
3482
|
+
setDefaultFailed: "Error al establecer la aplicación predeterminada: {{reason}}",
|
|
3483
|
+
appDeleted: "{{name}} eliminada",
|
|
3484
|
+
deleteFailed: "Error al eliminar la aplicación: {{reason}}",
|
|
3485
|
+
bulkEnabled: "{{n}} aplicaciones habilitadas",
|
|
3486
|
+
bulkDisabled: "{{n}} aplicaciones deshabilitadas",
|
|
3487
|
+
bulkFailed: "Error en {{n}}: {{details}}",
|
|
3488
|
+
bulkFailureEntry: "{{name}} ({{reason}})",
|
|
3489
|
+
bulkFailureJoiner: "; ",
|
|
3490
|
+
bulkOperationFailed: "Error en la operación masiva: {{reason}}",
|
|
3491
|
+
},
|
|
3492
|
+
},
|
|
3095
3493
|
};
|
|
3096
3494
|
export default es;
|