@object-ui/i18n 16.1.0 → 17.1.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 +1133 -0
- package/dist/locales/ar.d.ts +825 -2
- package/dist/locales/ar.js +829 -5
- package/dist/locales/de.d.ts +823 -2
- package/dist/locales/de.js +827 -5
- package/dist/locales/en.d.ts +380 -6
- package/dist/locales/en.js +395 -8
- package/dist/locales/es.d.ts +823 -2
- package/dist/locales/es.js +827 -5
- package/dist/locales/fr.d.ts +825 -2
- package/dist/locales/fr.js +829 -5
- package/dist/locales/index.d.ts +7322 -76
- package/dist/locales/ja.d.ts +823 -2
- package/dist/locales/ja.js +827 -5
- package/dist/locales/ko.d.ts +823 -2
- package/dist/locales/ko.js +827 -5
- package/dist/locales/pt.d.ts +825 -2
- package/dist/locales/pt.js +829 -5
- package/dist/locales/ru.d.ts +825 -2
- package/dist/locales/ru.js +829 -5
- package/dist/locales/zh.d.ts +301 -5
- package/dist/locales/zh.js +303 -5
- package/dist/useObjectLabel.d.ts +24 -12
- package/dist/useObjectLabel.js +50 -41
- package/dist/useSafeTranslation.d.ts +2 -0
- package/dist/useSafeTranslation.js +7 -2
- package/package.json +3 -3
package/dist/locales/es.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
const es = {
|
|
2
2
|
// objectui#2600 B5 — capability picker scope group headers (labels come from the sys_capability registry).
|
|
3
3
|
capability: {
|
|
4
|
+
label: {
|
|
5
|
+
manage_users: "Gestionar usuarios",
|
|
6
|
+
manage_org_users: "Gestionar usuarios de la organización",
|
|
7
|
+
manage_metadata: "Gestionar metadatos",
|
|
8
|
+
manage_platform_settings: "Gestionar la configuración de la plataforma",
|
|
9
|
+
setup_access: "Acceso a la configuración",
|
|
10
|
+
setup_write: "Escritura de la configuración",
|
|
11
|
+
studio_access: "Acceso a Studio",
|
|
12
|
+
},
|
|
4
13
|
group: {
|
|
5
14
|
platform: 'Plataforma',
|
|
6
15
|
org: 'Organización',
|
|
@@ -74,6 +83,10 @@ const es = {
|
|
|
74
83
|
package: "Paquete",
|
|
75
84
|
},
|
|
76
85
|
actions: {
|
|
86
|
+
decisionOutput: {
|
|
87
|
+
help: 'Se transfiere al flujo como salida de la decisión.',
|
|
88
|
+
helpMultiValue: 'Se transfiere al flujo como salida de la decisión. Separe varios valores con comas.',
|
|
89
|
+
},
|
|
77
90
|
resultDialog: {
|
|
78
91
|
defaultTitle: 'Guarda este valor ahora',
|
|
79
92
|
acknowledge: 'Lo he guardado',
|
|
@@ -94,6 +107,16 @@ const es = {
|
|
|
94
107
|
type: "{{field}} debe ser un {{type}} válido",
|
|
95
108
|
},
|
|
96
109
|
form: {
|
|
110
|
+
noPermissionToSave: "No tienes permiso para guardar este registro.",
|
|
111
|
+
submitFailed: "No se pudo guardar. Inténtalo de nuevo.",
|
|
112
|
+
discardTitle: "¿Descartar los cambios?",
|
|
113
|
+
discardMessage: "Tiene cambios sin guardar. Si cierra este formulario ahora, sus ediciones se perderán.",
|
|
114
|
+
keepEditing: "Seguir editando",
|
|
115
|
+
discard: "Descartar",
|
|
116
|
+
conflictTitle: "Conflicto al guardar",
|
|
117
|
+
conflictMessage: "Otra persona modificó este registro mientras lo editaba. Sobrescribir reemplazará sus cambios por los suyos.",
|
|
118
|
+
conflictLatestVersion: "Su guardado: {{time}}",
|
|
119
|
+
conflictOverwrite: "Sobrescribir",
|
|
97
120
|
addItem: "Añadir elemento",
|
|
98
121
|
removeItem: "Eliminar elemento",
|
|
99
122
|
fieldRequired: "Este campo es obligatorio",
|
|
@@ -104,8 +127,6 @@ const es = {
|
|
|
104
127
|
stepOf: "Paso {{current}} de {{total}}",
|
|
105
128
|
createTitle: "Crear {{object}}",
|
|
106
129
|
editTitle: "Editar {{object}}",
|
|
107
|
-
createDescription: "Agregar un nuevo {{object}} a su base de datos.",
|
|
108
|
-
editDescription: "Actualizar detalles de {{object}}",
|
|
109
130
|
saveRecord: "Guardar registro",
|
|
110
131
|
create: "Crear",
|
|
111
132
|
update: "Actualizar",
|
|
@@ -114,14 +135,70 @@ const es = {
|
|
|
114
135
|
deleteSuccess: "{{object}} eliminado",
|
|
115
136
|
},
|
|
116
137
|
fields: {
|
|
138
|
+
image: {
|
|
139
|
+
upload: "Subir imagen",
|
|
140
|
+
addMore: "Añadir más imágenes",
|
|
141
|
+
uploading: "Subiendo…",
|
|
142
|
+
imageAlt: "Imagen {{index}}",
|
|
143
|
+
crop: "Recortar la imagen {{index}}",
|
|
144
|
+
remove: "Eliminar la imagen {{index}}",
|
|
145
|
+
enlarge: "Ampliar {{name}}",
|
|
146
|
+
preview: "Vista previa de la imagen",
|
|
147
|
+
previous: "Imagen anterior",
|
|
148
|
+
next: "Imagen siguiente",
|
|
149
|
+
counter: "{{current}} / {{total}}",
|
|
150
|
+
},
|
|
117
151
|
relativeDate: {
|
|
118
152
|
overdue: "Atrasado {{count}} d",
|
|
119
153
|
},
|
|
154
|
+
file: {
|
|
155
|
+
dragDropHere: 'Arrastra y suelta archivos aquí',
|
|
156
|
+
dropFilesHere: 'Suelta los archivos aquí',
|
|
157
|
+
browseHint: 'o haz clic para explorar',
|
|
158
|
+
browseHintCamera: 'o haz clic para explorar • usa el botón de cámara de abajo',
|
|
159
|
+
takePhoto: 'Tomar foto',
|
|
160
|
+
takeSelfie: 'Tomar selfie',
|
|
161
|
+
cameraCapture: 'Captura de cámara',
|
|
162
|
+
uploading: 'Subiendo…',
|
|
163
|
+
uploadingPct: 'Subiendo… ({{pct}} %)',
|
|
164
|
+
fileFallback: 'Archivo',
|
|
165
|
+
upload: 'Subir',
|
|
166
|
+
remove: 'Quitar {{name}}',
|
|
167
|
+
exceedsMaxSize: '«{{name}}» supera el tamaño máximo ({{max}} MB)',
|
|
168
|
+
uploadFailed: 'Error al subir «{{name}}»: {{error}}',
|
|
169
|
+
},
|
|
120
170
|
richText: {
|
|
121
171
|
format: "Formato: {{format}}",
|
|
122
172
|
basicEditorHint: "Editor de texto enriquecido (básico)",
|
|
123
173
|
placeholder: "Escribe algo...",
|
|
124
174
|
},
|
|
175
|
+
objectRef: {
|
|
176
|
+
loading: "Cargando objetos…",
|
|
177
|
+
placeholder: "Seleccionar un objeto",
|
|
178
|
+
search: "Buscar objetos…",
|
|
179
|
+
empty: "No se encontraron objetos",
|
|
180
|
+
},
|
|
181
|
+
recipient: {
|
|
182
|
+
selectTypeFirst: "Selecciona primero un tipo de destinatario.",
|
|
183
|
+
loading: "Cargando…",
|
|
184
|
+
search: "Buscar…",
|
|
185
|
+
empty: "Sin coincidencias",
|
|
186
|
+
select: "Seleccionar un destinatario",
|
|
187
|
+
selectUser: "Seleccionar un usuario",
|
|
188
|
+
selectTeam: "Seleccionar un equipo",
|
|
189
|
+
selectBusinessUnit: "Seleccionar una unidad de negocio",
|
|
190
|
+
selectPosition: "Seleccionar un puesto",
|
|
191
|
+
selectUnitAndSubordinates: "Seleccionar una unidad de negocio",
|
|
192
|
+
},
|
|
193
|
+
filterCondition: {
|
|
194
|
+
selectObjectFirst: "Selecciona primero un objeto.",
|
|
195
|
+
noCriteria: "Sin criterios: esta regla no comparte nada",
|
|
196
|
+
criteriaRequired: "Añade al menos una condición. Una regla sin criterios compartiría todos los registros, por lo que no se puede guardar.",
|
|
197
|
+
invalidJson: "JSON no válido: la regla no coincidirá con ningún registro hasta que se corrija.",
|
|
198
|
+
jsonOnly: "Este criterio solo se puede editar como JSON",
|
|
199
|
+
editAsJson: "Editar como JSON",
|
|
200
|
+
useVisualBuilder: "Usar el constructor visual",
|
|
201
|
+
},
|
|
125
202
|
},
|
|
126
203
|
table: {
|
|
127
204
|
rowsPerPage: "Filas por página",
|
|
@@ -156,6 +233,37 @@ const es = {
|
|
|
156
233
|
delete: "Eliminar",
|
|
157
234
|
},
|
|
158
235
|
grid: {
|
|
236
|
+
bulkSelected: "{{count}} seleccionados",
|
|
237
|
+
bulkSelectedAllMatches: "{{count}} seleccionados (todas las coincidencias)",
|
|
238
|
+
bulkClear: "Quitar selección",
|
|
239
|
+
bulkAllOnPage: "Están seleccionados los {{count}} de esta página.",
|
|
240
|
+
bulkSelectAllMatching: "Seleccionar las {{count}} coincidencias",
|
|
241
|
+
bulkAllMatchingSelected: "Están seleccionados los {{count}} registros coincidentes.",
|
|
242
|
+
bulk: {
|
|
243
|
+
confirmDefault: "Esto se aplicará a {{count}} registro(s).",
|
|
244
|
+
overLimit: "La selección ({{count}}) supera el límite de la acción ({{limit}}). Reduzca la selección para continuar.",
|
|
245
|
+
affectedRecords: "Registros afectados ({{count}}):",
|
|
246
|
+
skippedIneligible: '{{count}} de los registros seleccionados no son aptos para esta acción y se omitirán.',
|
|
247
|
+
rowFallback: "Fila {{index}}",
|
|
248
|
+
andMore: "… y {{count}} más",
|
|
249
|
+
processed: "{{count}} / {{total}} procesados",
|
|
250
|
+
processedFailed: " · {{count}} con error",
|
|
251
|
+
undonePrefix: "Deshecho: ",
|
|
252
|
+
succeeded: "Correctos {{count}} / {{total}}",
|
|
253
|
+
resultFailed: " · Fallidos {{count}}",
|
|
254
|
+
retry: "Reintentar",
|
|
255
|
+
downloadErrorCsv: "Descargar CSV de errores",
|
|
256
|
+
cancel: "Cancelar",
|
|
257
|
+
back: "Atrás",
|
|
258
|
+
next: "Siguiente",
|
|
259
|
+
run: "Ejecutar",
|
|
260
|
+
running: "Ejecutando…",
|
|
261
|
+
undo: "Deshacer",
|
|
262
|
+
undoing: "Deshaciendo…",
|
|
263
|
+
done: "Hecho",
|
|
264
|
+
selectPlaceholder: "Seleccionar…",
|
|
265
|
+
loading: "Cargando…",
|
|
266
|
+
},
|
|
159
267
|
actions: "Acciones",
|
|
160
268
|
edit: "Editar",
|
|
161
269
|
delete: "Eliminar",
|
|
@@ -181,7 +289,88 @@ const es = {
|
|
|
181
289
|
densityCycleShortHint: "Clic para cambiar",
|
|
182
290
|
},
|
|
183
291
|
import: {
|
|
292
|
+
downloadTemplate: "Descargar plantilla",
|
|
293
|
+
downloadTemplateHint: "Obtenga un CSV con las columnas correctas (los campos obligatorios llevan *).",
|
|
294
|
+
templateFileName: "{{object}}-import-template",
|
|
295
|
+
autoMatched: "Emparejado automáticamente",
|
|
296
|
+
autoMatchedSummary: "{{count}} columna(s) emparejada(s) automáticamente: revise y ajuste abajo.",
|
|
297
|
+
confidence: {
|
|
298
|
+
high: "Confianza alta",
|
|
299
|
+
medium: "Confianza media",
|
|
300
|
+
low: "Confianza baja",
|
|
301
|
+
},
|
|
302
|
+
asyncQueued: "En cola: preparando la importación…",
|
|
303
|
+
asyncProcessing: "Importando {{processed}} de {{total}} filas… {{progress}} %",
|
|
304
|
+
asyncLargeHint: "Este archivo es grande, así que se importará en segundo plano.",
|
|
305
|
+
largeSampleNotice: "Vista previa de las primeras {{shown}} de {{total}} filas.",
|
|
306
|
+
cancelImport: "Cancelar la importación",
|
|
307
|
+
importCancelled: "Importación cancelada",
|
|
308
|
+
resultsTruncated: "Mostrando los primeros {{count}} resultados de filas (de {{total}}).",
|
|
309
|
+
createdCount: "{{count}} creados",
|
|
310
|
+
updatedCount: "{{count}} actualizados",
|
|
311
|
+
downloadFailed: "Descargar las filas con error",
|
|
312
|
+
options: "Opciones de importación",
|
|
313
|
+
writeMode: "Cuando una fila coincide con un registro existente",
|
|
314
|
+
writeModeOpt: {
|
|
315
|
+
insert: "Crear siempre uno nuevo",
|
|
316
|
+
update: "Actualizar el existente (omitir si no hay coincidencia)",
|
|
317
|
+
upsert: "Actualizar si coincide; si no, crear",
|
|
318
|
+
},
|
|
319
|
+
matchFields: "Coincidir por",
|
|
320
|
+
matchFieldsPlaceholder: "Elija el campo o campos de coincidencia…",
|
|
321
|
+
matchFieldsHint: "Las filas se emparejan con registros existentes por estos campos.",
|
|
322
|
+
needMatchFields: "Seleccione al menos un campo por el que coincidir.",
|
|
323
|
+
matchOnlyField: "(solo coincidencia)",
|
|
324
|
+
optCreateOptions: "Conservar los valores de opción desconocidos",
|
|
325
|
+
optRunAutomations: "Ejecutar automatizaciones y disparadores",
|
|
326
|
+
optTreatHistorical: "Importar como datos históricos",
|
|
327
|
+
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)",
|
|
328
|
+
optSkipBlankKey: "Omitir las filas con valor de coincidencia vacío",
|
|
329
|
+
optBackground: "Importar en segundo plano",
|
|
330
|
+
optBackgroundHint: "(se ejecuta como un trabajo reversible)",
|
|
331
|
+
validate: "Validar los datos",
|
|
332
|
+
validating: "Validando…",
|
|
333
|
+
validateHint: "Comprobar cada fila en el servidor antes de importar.",
|
|
334
|
+
validatePassed: "Las {{ok}} filas son válidas.",
|
|
335
|
+
validateFailed: "{{ok}} válidas, {{errors}} con errores.",
|
|
336
|
+
errorRowPrefix: "Fila {{row}}: ",
|
|
337
|
+
referenceNotFound: "No hay ningún registro que coincida con «{{value}}»",
|
|
338
|
+
referenceAmbiguous: "«{{value}}» coincide con más de un registro: use un valor único o el id del registro",
|
|
339
|
+
invalidBoolean: "«{{value}}» no es un valor verdadero/falso válido",
|
|
340
|
+
invalidNumber: "«{{value}}» no es un número válido",
|
|
341
|
+
invalidDate: "«{{value}}» no es una fecha válida",
|
|
342
|
+
invalidOption: "«{{value}}» no es una de las opciones permitidas",
|
|
343
|
+
requiredValue: "Este campo es obligatorio",
|
|
344
|
+
matchAmbiguous: "Coincide con más de un registro existente: use un valor único o el id del registro",
|
|
345
|
+
history: "Historial",
|
|
346
|
+
historyBack: "Volver a la importación",
|
|
347
|
+
historyDescription: "Importaciones recientes de este objeto.",
|
|
348
|
+
historyHint: "Trabajos de importación en segundo plano, los más recientes primero.",
|
|
349
|
+
historyRefresh: "Actualizar",
|
|
350
|
+
historyLoading: "Cargando…",
|
|
351
|
+
historyEmpty: "Todavía no hay importaciones.",
|
|
352
|
+
historyUnsupported: "El historial de importaciones no está disponible para esta fuente de datos.",
|
|
353
|
+
historyColStatus: "Estado",
|
|
354
|
+
historyColRows: "Filas",
|
|
355
|
+
historyColResult: "Resultado",
|
|
356
|
+
historyColTime: "Cuándo",
|
|
357
|
+
errorCount: "{{count}} errores",
|
|
358
|
+
undoImport: "Deshacer la importación",
|
|
359
|
+
undoing: "Deshaciendo…",
|
|
360
|
+
undoConfirm: "¿Deshacer esta importación? Los registros que creó se eliminarán y los que actualizó se restaurarán a sus valores anteriores.",
|
|
361
|
+
reverted: "Deshecha",
|
|
362
|
+
jobStatus: {
|
|
363
|
+
pending: "Pendiente",
|
|
364
|
+
running: "En ejecución",
|
|
365
|
+
succeeded: "Correcta",
|
|
366
|
+
failed: "Fallida",
|
|
367
|
+
cancelled: "Cancelada",
|
|
368
|
+
},
|
|
369
|
+
legacyReferenceBlocked: "Importación bloqueada: {{fields}} son campos de relación que necesitan la ruta de importación del servidor para convertir nombres en identificadores de registro, y esta conexión no la admite. Importarlos como texto plano dañaría los datos. Actualice el backend/cliente, o desasigne estas columnas e impórtelas por separado.",
|
|
370
|
+
missingRequiredHint: "No se puede continuar: campos obligatorios sin asignar: {{fields}}. Añada una columna correspondiente a su archivo, o vuelva atrás y suba uno que la incluya.",
|
|
371
|
+
legacyFallbackNotice: "Importado mediante un modo de compatibilidad: esta conexión no admite la ruta de importación del servidor, por lo que los valores se guardaron como texto sin conversión de tipos en el servidor. Actualice el backend/cliente para disponer de la importación completa (conversión de tipos y búsqueda de relaciones).",
|
|
184
372
|
title: "Importar {{object}}",
|
|
373
|
+
notAllowed: "Este objeto no está habilitado para la importación.",
|
|
185
374
|
stepUpload: "Cargar",
|
|
186
375
|
stepMapping: "Asignación",
|
|
187
376
|
stepPreview: "Vista previa",
|
|
@@ -257,6 +446,42 @@ const es = {
|
|
|
257
446
|
moreEvents: "+{{count}} más",
|
|
258
447
|
},
|
|
259
448
|
list: {
|
|
449
|
+
firstRunTitle: "Aquí todavía no hay nada",
|
|
450
|
+
firstRunMessage: "Cree su primer registro para empezar.",
|
|
451
|
+
noMatches: "No hay registros coincidentes",
|
|
452
|
+
noMatchesMessage: "Ningún registro coincide con sus filtros o su búsqueda actuales. Pruebe a ajustarlos o borrarlos.",
|
|
453
|
+
loadErrorTitle: "No se pudieron cargar los registros",
|
|
454
|
+
loadErrorMessage: "Algo salió mal al cargar estos datos. Compruebe su conexión y vuelva a intentarlo.",
|
|
455
|
+
loadErrorForbiddenTitle: "No tiene acceso",
|
|
456
|
+
loadErrorForbiddenMessage: "No tiene permiso para ver estos registros. Contacte a su administrador si cree que debería tener acceso.",
|
|
457
|
+
loadErrorUnauthorizedTitle: "Se requiere iniciar sesión",
|
|
458
|
+
loadErrorUnauthorizedMessage: "Su sesión ha expirado o ha cerrado sesión. Inicie sesión de nuevo para ver estos registros.",
|
|
459
|
+
loadErrorRejectedTitle: "La consulta de esta vista fue rechazada",
|
|
460
|
+
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.",
|
|
461
|
+
retry: "Reintentar",
|
|
462
|
+
managedBy: {
|
|
463
|
+
system: {
|
|
464
|
+
title: "Aquí todavía no hay nada",
|
|
465
|
+
message: "Las entradas aparecen automáticamente cuando se ejecuta su acción de origen (por ejemplo, Enviar para aprobación, Compartir, Invitar). Ejecute una de ellas en un registro de origen para crear una fila.",
|
|
466
|
+
},
|
|
467
|
+
appendOnly: {
|
|
468
|
+
title: "No se han registrado eventos",
|
|
469
|
+
message: "Este es un registro de auditoría inmutable. Las filas las escribe la plataforma cuando ocurren eventos: puede exportar el historial, pero no crear entradas desde aquí.",
|
|
470
|
+
},
|
|
471
|
+
betterAuth: {
|
|
472
|
+
title: "No hay registros de identidad",
|
|
473
|
+
message: "Estos registros los crea el proveedor de autenticación —mediante el inicio de sesión, el aprovisionamiento y los flujos de seguridad— y no se añaden a mano aquí.",
|
|
474
|
+
},
|
|
475
|
+
betterAuthUser: {
|
|
476
|
+
title: "Todavía no hay usuarios",
|
|
477
|
+
message: "Las cuentas de usuario las aprovisiona el proveedor de autenticación; no se crean aquí. Invite a sus compañeros a la organización y aparecerán automáticamente en su primer inicio de sesión (aprovisionamiento SSO en el momento). Los usuarios finales de la aplicación llegan cuando se registran a través de ella.",
|
|
478
|
+
},
|
|
479
|
+
betterAuthTeam: {
|
|
480
|
+
title: "Todavía no hay equipos",
|
|
481
|
+
message: "Los equipos agrupan a los miembros dentro de una organización. Cree uno con «Crear equipo», o llegarán a través de los flujos de aprovisionamiento de organización y SSO de su proveedor de autenticación.",
|
|
482
|
+
},
|
|
483
|
+
},
|
|
484
|
+
refresh: "Actualizar",
|
|
260
485
|
loading: 'Loading records...',
|
|
261
486
|
recordCount: "{{count}} registros",
|
|
262
487
|
recordCountOne: "{{count}} registro",
|
|
@@ -268,6 +493,8 @@ const es = {
|
|
|
268
493
|
filterRecords: "Filtrar registros",
|
|
269
494
|
sort: "Ordenar",
|
|
270
495
|
sortRecords: "Ordenar registros",
|
|
496
|
+
sortByIdSuffix: "(por ID)",
|
|
497
|
+
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, añada un campo de fórmula que lo contenga.",
|
|
271
498
|
group: "Agrupar",
|
|
272
499
|
groupBy: "Agrupar por",
|
|
273
500
|
export: "Exportar",
|
|
@@ -297,6 +524,11 @@ const es = {
|
|
|
297
524
|
recordEditingTitle: "Edición de registros",
|
|
298
525
|
},
|
|
299
526
|
managedByBadge: {
|
|
527
|
+
systemWritable: {
|
|
528
|
+
short: "Esquema de la plataforma",
|
|
529
|
+
title: "Definido por la plataforma, editable por el administrador",
|
|
530
|
+
body: "El esquema de este objeto lo define la plataforma, pero sus filas son suyas: puede crearlas y editarlas aquí. Quién puede escribir lo determinan la administración delegada y la seguridad a nivel de registro, no esta insignia.",
|
|
531
|
+
},
|
|
300
532
|
config: {
|
|
301
533
|
short: "Configuración",
|
|
302
534
|
title: "Configuración del administrador",
|
|
@@ -319,6 +551,7 @@ const es = {
|
|
|
319
551
|
},
|
|
320
552
|
},
|
|
321
553
|
kanban: {
|
|
554
|
+
uncategorized: "Sin categoría",
|
|
322
555
|
addCard: "Añadir tarjeta",
|
|
323
556
|
addColumn: "Añadir columna",
|
|
324
557
|
moveCard: "Mover tarjeta",
|
|
@@ -340,12 +573,92 @@ const es = {
|
|
|
340
573
|
},
|
|
341
574
|
},
|
|
342
575
|
gantt: {
|
|
576
|
+
viewMode: {
|
|
577
|
+
day: "Día",
|
|
578
|
+
week: "Semana",
|
|
579
|
+
month: "Mes",
|
|
580
|
+
quarter: "Trimestre",
|
|
581
|
+
year: "Año",
|
|
582
|
+
},
|
|
583
|
+
row: {
|
|
584
|
+
expand: "Expandir",
|
|
585
|
+
collapse: "Contraer",
|
|
586
|
+
open: "Abrir los detalles",
|
|
587
|
+
},
|
|
588
|
+
aria: {
|
|
589
|
+
taskList: "Lista de tareas",
|
|
590
|
+
},
|
|
591
|
+
tooltip: {
|
|
592
|
+
days: "d",
|
|
593
|
+
},
|
|
594
|
+
menu: {
|
|
595
|
+
view: "Ver los detalles",
|
|
596
|
+
edit: "Editar en línea",
|
|
597
|
+
delete: "Eliminar",
|
|
598
|
+
addPredecessor: "Añadir predecesora…",
|
|
599
|
+
addSuccessor: "Añadir sucesora…",
|
|
600
|
+
removeDependency: "Quitar la dependencia",
|
|
601
|
+
noCandidates: "No hay tareas disponibles",
|
|
602
|
+
searchTasks: "Buscar tareas…",
|
|
603
|
+
},
|
|
604
|
+
delete: {
|
|
605
|
+
title: "¿Eliminar esta tarea?",
|
|
606
|
+
body: "«{{title}}» se eliminará permanentemente. Esta acción no se puede deshacer.",
|
|
607
|
+
cancel: "Cancelar",
|
|
608
|
+
confirm: "Eliminar",
|
|
609
|
+
deleting: "Eliminando…",
|
|
610
|
+
},
|
|
611
|
+
drawer: {
|
|
612
|
+
fallbackTitle: "Detalles de la tarea",
|
|
613
|
+
},
|
|
614
|
+
linkType: {
|
|
615
|
+
fs: "Fin → Inicio",
|
|
616
|
+
ss: "Inicio → Inicio",
|
|
617
|
+
ff: "Fin → Fin",
|
|
618
|
+
sf: "Inicio → Fin",
|
|
619
|
+
},
|
|
620
|
+
conflict: {
|
|
621
|
+
title: "Conflicto de programación",
|
|
622
|
+
body: "Este movimiento entra en conflicto con las restricciones de dependencia. ¿Reprogramar automáticamente {{count}} tarea(s) afectada(s)?",
|
|
623
|
+
confirm: "Reprogramar automáticamente",
|
|
624
|
+
cancel: "Dejarlo como está",
|
|
625
|
+
},
|
|
626
|
+
autoScheduleDlg: {
|
|
627
|
+
title: "Programación automática",
|
|
628
|
+
body: "¿Retrasar {count} tarea(s) para respetar los vínculos de dependencia?",
|
|
629
|
+
skipped: "{count} tarea(s) bloqueada(s) también incumplen los vínculos y se han omitido.",
|
|
630
|
+
confirm: "Aplicar",
|
|
631
|
+
cancel: "Cancelar",
|
|
632
|
+
none: "Todas las dependencias se cumplen: no hay nada que reprogramar.",
|
|
633
|
+
},
|
|
634
|
+
resource: {
|
|
635
|
+
header: "Recurso",
|
|
636
|
+
peak: "Pico",
|
|
637
|
+
over: "sobrecargado",
|
|
638
|
+
empty: "No hay tareas que asignar.",
|
|
639
|
+
},
|
|
640
|
+
readOnly: "Solo lectura",
|
|
641
|
+
readOnlyHint: "La edición está deshabilitada en esta vista.",
|
|
642
|
+
lockedHint: "Sin permiso de edición",
|
|
643
|
+
writeFailed: "Error al guardar: el cambio se ha revertido",
|
|
343
644
|
column: {
|
|
344
645
|
taskName: "Nombre de tarea",
|
|
345
646
|
start: "Inicio",
|
|
346
647
|
end: "Fin",
|
|
347
648
|
},
|
|
348
649
|
toolbar: {
|
|
650
|
+
thisWeek: "Esta semana",
|
|
651
|
+
thisMonth: "Este mes",
|
|
652
|
+
viewMode: "Granularidad de la línea de tiempo",
|
|
653
|
+
enterFullscreen: "Pantalla completa",
|
|
654
|
+
exitFullscreen: "Salir de pantalla completa",
|
|
655
|
+
criticalPath: "Resaltar la ruta crítica",
|
|
656
|
+
autoSchedule: "Programar automáticamente las dependencias",
|
|
657
|
+
exportPng: "Exportar como PNG",
|
|
658
|
+
exportPdf: "Exportar PDF",
|
|
659
|
+
saveLayout: "Guardar la disposición",
|
|
660
|
+
undo: "Deshacer",
|
|
661
|
+
redo: "Rehacer",
|
|
349
662
|
prevPeriod: "Período anterior",
|
|
350
663
|
nextPeriod: "Período siguiente",
|
|
351
664
|
zoomIn: "Acercar",
|
|
@@ -391,6 +704,9 @@ const es = {
|
|
|
391
704
|
redo: 'Redo',
|
|
392
705
|
},
|
|
393
706
|
detail: {
|
|
707
|
+
editInlineHint: "Haga doble clic para editar",
|
|
708
|
+
systemActor: "Sistema",
|
|
709
|
+
unknownUser: "Desconocido",
|
|
394
710
|
back: "Volver",
|
|
395
711
|
edit: "Editar",
|
|
396
712
|
editInline: "Editar",
|
|
@@ -440,6 +756,18 @@ const es = {
|
|
|
440
756
|
attachmentCount: "{{count}} archivo adjunto",
|
|
441
757
|
attachmentCountPlural: "{{count}} archivos adjuntos",
|
|
442
758
|
removeAttachment: "Eliminar adjunto",
|
|
759
|
+
// Record Attachments panel (enable.files, objectstack#4358)
|
|
760
|
+
attachments: "Adjuntos",
|
|
761
|
+
uploadAttachment: "Subir",
|
|
762
|
+
loadingAttachments: "Cargando adjuntos…",
|
|
763
|
+
noAttachments: "Aún no hay adjuntos. Suba un archivo para empezar.",
|
|
764
|
+
downloadAttachment: "Descargar",
|
|
765
|
+
deleteAttachment: "Eliminar adjunto",
|
|
766
|
+
attachmentDeleteDenied: "Solo quien lo subió o alguien que pueda editar este registro puede eliminar este adjunto.",
|
|
767
|
+
attachmentParentAccessDenied: "No tiene acceso para adjuntar archivos a este registro.",
|
|
768
|
+
attachmentDownloadDenied: "No tiene acceso para descargar este adjunto.",
|
|
769
|
+
attachmentAuthRequired: "Inicie sesión para descargar este adjunto.",
|
|
770
|
+
attachmentPermissionDenied: "No tiene permiso para hacer eso.",
|
|
443
771
|
unifiedDiff: "Vista unificada",
|
|
444
772
|
sideBySideDiff: "Vista lado a lado",
|
|
445
773
|
noChanges: "Sin cambios",
|
|
@@ -487,9 +815,15 @@ const es = {
|
|
|
487
815
|
saving: "Guardando…",
|
|
488
816
|
lockedByApproval: "Bloqueado para aprobación",
|
|
489
817
|
lockedTooltip: "Este registro tiene una solicitud de aprobación pendiente; la edición está bloqueada",
|
|
818
|
+
writeStrippedTitle: "Algunos campos no se guardaron",
|
|
819
|
+
writeStrippedReadonly: "De solo lectura, por lo que no se guardó: {{fields}}",
|
|
820
|
+
writeStrippedByState: "No editable en el estado actual de este registro, por lo que no se guardó: {{fields}}",
|
|
821
|
+
approvalPendingEditable: "En aprobación · editable",
|
|
822
|
+
approvalPendingTooltip: "Este registro tiene una solicitud de aprobación pendiente; este paso todavía permite la edición",
|
|
490
823
|
cancelApproval: "Cancelar aprobación",
|
|
491
824
|
cancelApprovalInFlight: "Cancelando…",
|
|
492
825
|
cancelApprovalTooltip: "Cancelar la solicitud de aprobación pendiente para desbloquear el registro",
|
|
826
|
+
cancelApprovalTooltipUnlocked: "Cancelar la solicitud de aprobación pendiente",
|
|
493
827
|
cancelApprovalFailed: "No se pudo cancelar la aprobación",
|
|
494
828
|
cancelApprovalUnavailable: "La cancelación de aprobaciones no es compatible con esta fuente de datos",
|
|
495
829
|
linkCopied: "Enlace copiado al portapapeles",
|
|
@@ -605,6 +939,35 @@ const es = {
|
|
|
605
939
|
resetZoom: "Restablecer zoom",
|
|
606
940
|
},
|
|
607
941
|
dashboard: {
|
|
942
|
+
noRows: "Sin filas",
|
|
943
|
+
pickMeasures: "Elija medidas (valores) para este widget de dataset.",
|
|
944
|
+
datasetUnsupported: "Esta fuente de datos no admite consultas de dataset.",
|
|
945
|
+
details: "Detalles",
|
|
946
|
+
exportCsv: "Exportar CSV",
|
|
947
|
+
openInList: "Abrir en la lista",
|
|
948
|
+
filters: {
|
|
949
|
+
label: "Filtros del panel",
|
|
950
|
+
dateRange: "Intervalo de fechas",
|
|
951
|
+
allTime: "Todo el periodo",
|
|
952
|
+
custom: "Personalizado…",
|
|
953
|
+
all: "Todo",
|
|
954
|
+
reset: "Restablecer",
|
|
955
|
+
range: {
|
|
956
|
+
today: "Hoy",
|
|
957
|
+
yesterday: "Ayer",
|
|
958
|
+
this_week: "Esta semana",
|
|
959
|
+
last_week: "La semana pasada",
|
|
960
|
+
this_month: "Este mes",
|
|
961
|
+
last_month: "El mes pasado",
|
|
962
|
+
this_quarter: "Este trimestre",
|
|
963
|
+
last_quarter: "El trimestre pasado",
|
|
964
|
+
this_year: "Este año",
|
|
965
|
+
last_year: "El año pasado",
|
|
966
|
+
last_7_days: "Últimos 7 días",
|
|
967
|
+
last_30_days: "Últimos 30 días",
|
|
968
|
+
last_90_days: "Últimos 90 días",
|
|
969
|
+
},
|
|
970
|
+
},
|
|
608
971
|
addWidget: "Añadir widget",
|
|
609
972
|
removeWidget: "Eliminar widget",
|
|
610
973
|
editLayout: "Editar diseño",
|
|
@@ -732,6 +1095,7 @@ const es = {
|
|
|
732
1095
|
navTypeGroup: "Grupo",
|
|
733
1096
|
navTypeSeparator: "Separador",
|
|
734
1097
|
navTypeAction: "Acción",
|
|
1098
|
+
navTypeComponent: "Componente",
|
|
735
1099
|
navEditIcon: "Editar icono",
|
|
736
1100
|
navToggleVisible: "Alternar visibilidad",
|
|
737
1101
|
navHidden: "Oculto",
|
|
@@ -833,8 +1197,199 @@ const es = {
|
|
|
833
1197
|
},
|
|
834
1198
|
},
|
|
835
1199
|
console: {
|
|
1200
|
+
settingsHub: {
|
|
1201
|
+
title: "Configuración",
|
|
1202
|
+
subtitle: "Configure su espacio de trabajo, las integraciones y los indicadores de funciones.",
|
|
1203
|
+
loadError: "No se pudo cargar la configuración",
|
|
1204
|
+
empty: "No hay configuraciones registradas. Los plugins pueden registrar manifiestos de configuración mediante el SettingsService.",
|
|
1205
|
+
settingsCount: "{{n}} configuraciones",
|
|
1206
|
+
beta: "Beta",
|
|
1207
|
+
categories: {
|
|
1208
|
+
Workspace: "Espacio de trabajo",
|
|
1209
|
+
Communication: "Comunicación",
|
|
1210
|
+
Security: "Seguridad",
|
|
1211
|
+
Infrastructure: "Infraestructura",
|
|
1212
|
+
Beta: "Beta",
|
|
1213
|
+
Other: "Otros",
|
|
1214
|
+
},
|
|
1215
|
+
},
|
|
1216
|
+
objectData: {
|
|
1217
|
+
badge: "Datos",
|
|
1218
|
+
description: "Segmento de datos definido por la URL — no vinculado a ninguna vista guardada.",
|
|
1219
|
+
filteredBy: "Filtrado por",
|
|
1220
|
+
removeFilter: "Quitar el filtro {{field}}",
|
|
1221
|
+
saveAsView: "Guardar como vista",
|
|
1222
|
+
noAccessTitle: "Acceso denegado",
|
|
1223
|
+
noAccess: "No tiene permiso para ver estos datos.",
|
|
1224
|
+
},
|
|
1225
|
+
identityImport: {
|
|
1226
|
+
policyTitle: "Configuración de inicio de sesión para los usuarios importados",
|
|
1227
|
+
policy: {
|
|
1228
|
+
auto: "Automático (recomendado)",
|
|
1229
|
+
invite: "Enviar invitaciones",
|
|
1230
|
+
temporary: "Contraseñas temporales",
|
|
1231
|
+
none: "Sin contraseña (solo identidad)",
|
|
1232
|
+
},
|
|
1233
|
+
policyHint: {
|
|
1234
|
+
auto: "Los usuarios localizables reciben una invitación (correo o SMS); quienes no sean localizables reciben una contraseña de un solo uso, mostrada UNA SOLA VEZ en la pantalla de resultados. Funciona con o sin servicio de correo/SMS.",
|
|
1235
|
+
invite: "Cada usuario creado recibe un correo para establecer su contraseña (o un SMS de invitación en las filas que solo tienen teléfono). Requiere un servicio de correo/SMS configurado — las filas no localizables fallan.",
|
|
1236
|
+
temporary: "Para despliegues sin correo/SMS: cada usuario creado recibe una contraseña de un solo uso, mostrada UNA SOLA VEZ en la pantalla de resultados. El primer inicio de sesión obliga a cambiarla.",
|
|
1237
|
+
none: "Los usuarios inician sesión primero con un OTP por teléfono, un enlace mágico o un enlace de restablecimiento, y luego establecen su propia contraseña.",
|
|
1238
|
+
},
|
|
1239
|
+
passwordsNote: "Contraseñas temporales — se muestran una sola vez y nunca se almacenan. Guárdelas ahora; cada usuario debe cambiar la suya en el primer inicio de sesión.",
|
|
1240
|
+
passwordsMore: "Se han omitido más entradas — use la descarga.",
|
|
1241
|
+
passwordsDownload: "Descargar CSV",
|
|
1242
|
+
},
|
|
1243
|
+
ai: {
|
|
1244
|
+
usage: {
|
|
1245
|
+
title: "Uso de IA",
|
|
1246
|
+
meterBuild: "Crear",
|
|
1247
|
+
meterAsk: "Preguntar",
|
|
1248
|
+
statusOk: "Queda bastante",
|
|
1249
|
+
statusLow: "Se está agotando",
|
|
1250
|
+
statusFull: "Límite alcanzado",
|
|
1251
|
+
resetsDaily: "Se restablece esta noche",
|
|
1252
|
+
resetsMonthly: "Se restablece en el próximo ciclo",
|
|
1253
|
+
ctaUpgrade: "Mejore el plan para continuar",
|
|
1254
|
+
ctaTopUp: "Añada créditos para continuar",
|
|
1255
|
+
ariaLabel: "Uso de IA: {{status}}",
|
|
1256
|
+
},
|
|
1257
|
+
workspaceTitle: "Espacio de trabajo de IA",
|
|
1258
|
+
workspaceSubtitle: "Pregunte, inspeccione y retome conversaciones",
|
|
1259
|
+
openChats: "Abrir chats",
|
|
1260
|
+
chats: "Chats",
|
|
1261
|
+
chatsDescription: "Explore y gestione las conversaciones con la IA.",
|
|
1262
|
+
share: "Compartir",
|
|
1263
|
+
shareTitle: "Compartir esta conversación",
|
|
1264
|
+
shareDisabledTitle: "Empiece a chatear para habilitar el uso compartido",
|
|
1265
|
+
newChat: "Nuevo",
|
|
1266
|
+
searchChats: "Buscar chats...",
|
|
1267
|
+
noChatsYet: "Todavía no hay chats",
|
|
1268
|
+
noChatsDescription: "Inicie una conversación nueva para verla aquí.",
|
|
1269
|
+
noMatchingChats: "No hay chats coincidentes.",
|
|
1270
|
+
newConversation: "Nueva conversación",
|
|
1271
|
+
renameConversation: "Cambiar el nombre de la conversación",
|
|
1272
|
+
deleteConversation: "Eliminar conversación",
|
|
1273
|
+
saveRename: "Guardar el nombre",
|
|
1274
|
+
cancelRename: "Cancelar el cambio de nombre",
|
|
1275
|
+
loadingHistory: "Cargando el historial de la conversación...",
|
|
1276
|
+
conversationReady: "Conversación lista",
|
|
1277
|
+
preparingConversation: "Preparando una nueva conversación",
|
|
1278
|
+
offlineDemoMode: "Modo de demostración sin conexión — lista de agentes no disponible",
|
|
1279
|
+
sendFailedRateLimited: "Está enviando mensajes demasiado rápido. Su mensaje se conserva abajo — espere un momento y vuelva a intentarlo.",
|
|
1280
|
+
sendFailedGeneric: "No se pudo enviar su mensaje. Se conserva abajo — inténtelo de nuevo.",
|
|
1281
|
+
askAgent: "Pregunte a {{agent}}...",
|
|
1282
|
+
assistant: "Asistente",
|
|
1283
|
+
liveCanvas: "Vista previa en vivo — {{app}} (borrador)",
|
|
1284
|
+
liveCanvasUnlisted: "Aplicación en vivo — {{app}} (no listada hasta su publicación)",
|
|
1285
|
+
loadingAgents: "Cargando agentes...",
|
|
1286
|
+
askAnything: "Pregunte lo que quiera...",
|
|
1287
|
+
emptyTitle: "Iniciar una conversación",
|
|
1288
|
+
emptyDescription: "Pregunte lo que quiera — el asistente tiene acceso al contexto de su aplicación actual.",
|
|
1289
|
+
switchAssistant: "Cambiar de asistente",
|
|
1290
|
+
chooseAgent: "Elegir asistente…",
|
|
1291
|
+
empty: {
|
|
1292
|
+
build: {
|
|
1293
|
+
title: "Crear con IA",
|
|
1294
|
+
description: "Describa una aplicación o un flujo de trabajo en lenguaje natural — yo redacto los objetos, las pantallas y las automatizaciones, y luego usted revisa y publica.",
|
|
1295
|
+
},
|
|
1296
|
+
ask: {
|
|
1297
|
+
title: "Pregunte a sus datos",
|
|
1298
|
+
description: "Haga preguntas sobre sus registros — recuentos, listas y resúmenes de los datos a los que tiene acceso.",
|
|
1299
|
+
},
|
|
1300
|
+
editApp: {
|
|
1301
|
+
title: "Editando «{{app}}»",
|
|
1302
|
+
titleGeneric: "Editar esta aplicación",
|
|
1303
|
+
description: "¿Qué desea cambiar? Modifico esta aplicación sobre la marcha — añadir un campo, un objeto, una vista o una automatización, o ajustar lo que ya existe.",
|
|
1304
|
+
},
|
|
1305
|
+
},
|
|
1306
|
+
clearConversation: "Borrar",
|
|
1307
|
+
sendHint: "para enviar",
|
|
1308
|
+
agentActivity: "Actividad del agente",
|
|
1309
|
+
toolCompleted: "Completado",
|
|
1310
|
+
toolRunning: "En ejecución",
|
|
1311
|
+
toolAwaitingApproval: "Esperando aprobación",
|
|
1312
|
+
toolFailed: "Error",
|
|
1313
|
+
toolDetailsHidden: "Las entradas de las herramientas y los resultados sin procesar están ocultos en esta vista.",
|
|
1314
|
+
copy: "Copiar",
|
|
1315
|
+
copied: "Copiado",
|
|
1316
|
+
regenerate: "Regenerar",
|
|
1317
|
+
model: "Modelo",
|
|
1318
|
+
submit: "Enviar",
|
|
1319
|
+
uploadFiles: "Subir archivos",
|
|
1320
|
+
stopResponse: "Detener la respuesta",
|
|
1321
|
+
trace: "traza",
|
|
1322
|
+
viewTrace: "Ver la traza",
|
|
1323
|
+
nextSteps: "Qué sigue",
|
|
1324
|
+
publishDrafts: "Publicar",
|
|
1325
|
+
publishOk: "Publicado — los objetos ya están activos.",
|
|
1326
|
+
seedWarn: "Publicado, pero no se pudieron cargar algunos datos de ejemplo.",
|
|
1327
|
+
openBuiltApp: "Abrir la aplicación",
|
|
1328
|
+
designBuiltApp: "Diseñar en Studio",
|
|
1329
|
+
previewDraft: "Vista previa",
|
|
1330
|
+
previewApp: "Vista previa de la aplicación",
|
|
1331
|
+
resizeSplit: "Redimensionar el chat y la vista previa",
|
|
1332
|
+
hideChats: "Ocultar los chats",
|
|
1333
|
+
showChats: "Mostrar los chats",
|
|
1334
|
+
planTitle: "Plan propuesto",
|
|
1335
|
+
planQuestions: "Confirmar antes de crear",
|
|
1336
|
+
planAssumptions: "Supuestos",
|
|
1337
|
+
planApproveHint: "Responda para aprobar o ajustar este plan.",
|
|
1338
|
+
planApprove: "Crearlo",
|
|
1339
|
+
planAdjust: "Ajustar",
|
|
1340
|
+
justNow: "ahora mismo",
|
|
1341
|
+
minutesAgo: "hace {{count}} min",
|
|
1342
|
+
hoursAgo: "hace {{count}} h",
|
|
1343
|
+
daysAgo: "hace {{count}} d",
|
|
1344
|
+
agentLabels: {
|
|
1345
|
+
ask: "Preguntar",
|
|
1346
|
+
build: "Crear",
|
|
1347
|
+
dataChat: "Asistente",
|
|
1348
|
+
metadataAssistant: "Asistente de metadatos",
|
|
1349
|
+
},
|
|
1350
|
+
suggestions: {
|
|
1351
|
+
dataChat: {
|
|
1352
|
+
userCount: "¿Cuántos usuarios hay en el sistema? Enumera sus correos electrónicos.",
|
|
1353
|
+
recentRecords: "Enumera los 5 registros creados más recientemente.",
|
|
1354
|
+
recordCounts: "Cuenta los registros de cada objeto.",
|
|
1355
|
+
},
|
|
1356
|
+
metadataAssistant: {
|
|
1357
|
+
buildCrm: "Crea un CRM de ventas — clientes, contactos y un embudo de oportunidades que pueda totalizar por etapa.",
|
|
1358
|
+
buildApp: "Crea un seguimiento de proyectos — proyectos, tareas con responsables y fechas de vencimiento, y un tablero por estado.",
|
|
1359
|
+
buildFlow: "Diseña una mesa de ayuda — tickets con prioridad, un flujo de estados y vínculos con los clientes.",
|
|
1360
|
+
buildInventory: "Crea una aplicación de inventario — productos, niveles de stock, proveedores y visibilidad de stock bajo.",
|
|
1361
|
+
buildRecruiting: "Crea un seguimiento de candidaturas — candidatos, vacantes, etapas de entrevista y notas.",
|
|
1362
|
+
},
|
|
1363
|
+
generic: {
|
|
1364
|
+
help: "¿En qué puedes ayudarme?",
|
|
1365
|
+
availableObjects: "Enumera los objetos de datos disponibles.",
|
|
1366
|
+
recentActivity: "Resume mi actividad reciente.",
|
|
1367
|
+
},
|
|
1368
|
+
editApp: {
|
|
1369
|
+
addField: "Añade un campo a uno de los objetos.",
|
|
1370
|
+
addObject: "Añade un objeto nuevo y relaciónalo con uno existente.",
|
|
1371
|
+
addDashboard: "Añade un panel para las métricas clave.",
|
|
1372
|
+
addAutomation: "Añade una automatización — una aprobación, un flujo de estados o una notificación.",
|
|
1373
|
+
},
|
|
1374
|
+
},
|
|
1375
|
+
changesTitle: "Confirmar cambios",
|
|
1376
|
+
changesConfirmed: "Confirmado",
|
|
1377
|
+
changesConfirm: "Confirmar",
|
|
1378
|
+
changesConfirmHint: "Responda para confirmar o ajustar este cambio.",
|
|
1379
|
+
changeVerb: {
|
|
1380
|
+
createObject: "Crear objeto",
|
|
1381
|
+
addField: "Añadir campo",
|
|
1382
|
+
modifyField: "Modificar campo",
|
|
1383
|
+
deleteField: "Eliminar campo",
|
|
1384
|
+
createMetadata: "Crear",
|
|
1385
|
+
updateMetadata: "Modificar",
|
|
1386
|
+
createSeed: "Generar datos de ejemplo",
|
|
1387
|
+
createPackage: "Crear paquete de aplicación",
|
|
1388
|
+
},
|
|
1389
|
+
},
|
|
836
1390
|
title: "Consola ObjectStack",
|
|
837
1391
|
initializing: "Inicializando aplicación...",
|
|
1392
|
+
loadingHint: "Configurar un entorno nuevo puede tardar unos momentos.",
|
|
838
1393
|
breadcrumb: {
|
|
839
1394
|
dashboards: "Paneles",
|
|
840
1395
|
pages: "Páginas",
|
|
@@ -876,6 +1431,7 @@ const es = {
|
|
|
876
1431
|
toggleDarkMode: "Alternar modo oscuro",
|
|
877
1432
|
},
|
|
878
1433
|
commandPalette: {
|
|
1434
|
+
title: "Paleta de comandos",
|
|
879
1435
|
placeholder: "Escriba un comando o busque...",
|
|
880
1436
|
noResults: "No se encontraron resultados.",
|
|
881
1437
|
objects: "Objetos",
|
|
@@ -909,6 +1465,14 @@ const es = {
|
|
|
909
1465
|
system: "Sistema",
|
|
910
1466
|
},
|
|
911
1467
|
objectView: {
|
|
1468
|
+
viewTypeTree: "Árbol",
|
|
1469
|
+
viewTypeTreeDesc: "Anida los registros autorreferenciados en una jerarquía mediante un campo principal.",
|
|
1470
|
+
parentField: "Campo principal",
|
|
1471
|
+
parentFieldHelp: "El campo que apunta al registro principal (mismo objeto) y define la jerarquía. Solo son válidos los campos autorreferenciados.",
|
|
1472
|
+
viewName: "Nombre",
|
|
1473
|
+
viewNameHelp: "Clave técnica (snake_case). Se rellena automáticamente a partir del título — edítela si lo desea.",
|
|
1474
|
+
viewNameRequired: "Introduzca una clave (minúsculas, números, guion bajo). No se rellena automáticamente con títulos no latinos.",
|
|
1475
|
+
viewNameInvalid: "Use minúsculas, números y guiones bajos; empiece por una letra o un guion bajo.",
|
|
912
1476
|
systemViewReadonly: 'System view defined in code - duplicate to customize.',
|
|
913
1477
|
expandToPage: 'Open as full page',
|
|
914
1478
|
objectNotFound: "Objeto no encontrado",
|
|
@@ -1122,7 +1686,28 @@ const es = {
|
|
|
1122
1686
|
},
|
|
1123
1687
|
},
|
|
1124
1688
|
auth: {
|
|
1689
|
+
setPassword: {
|
|
1690
|
+
title: "Establecer una contraseña de recuperación",
|
|
1691
|
+
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.",
|
|
1692
|
+
email: "Correo electrónico",
|
|
1693
|
+
newPassword: "Nueva contraseña",
|
|
1694
|
+
confirmPassword: "Confirmar la contraseña",
|
|
1695
|
+
submit: "Establecer la contraseña",
|
|
1696
|
+
submitting: "Guardando…",
|
|
1697
|
+
success: "Contraseña local establecida",
|
|
1698
|
+
failed: "No se pudo establecer la contraseña",
|
|
1699
|
+
passwordsMismatch: "Las contraseñas no coinciden",
|
|
1700
|
+
noSession: "Su sesión ha caducado.",
|
|
1701
|
+
backToSignIn: "Volver a iniciar sesión",
|
|
1702
|
+
},
|
|
1125
1703
|
login: {
|
|
1704
|
+
signingIn: "Iniciando sesión…",
|
|
1705
|
+
ssoHandoff: "Continuar a {{target}}",
|
|
1706
|
+
devAdminHint: {
|
|
1707
|
+
title: "Instancia de desarrollo",
|
|
1708
|
+
body: "Inicie sesión con el administrador de desarrollo predefinido:",
|
|
1709
|
+
dismiss: "Descartar",
|
|
1710
|
+
},
|
|
1126
1711
|
title: "Inicia sesión en tu cuenta",
|
|
1127
1712
|
description: "Ingresa tu correo electrónico y contraseña para continuar",
|
|
1128
1713
|
emailLabel: "Correo electrónico",
|
|
@@ -1135,6 +1720,7 @@ const es = {
|
|
|
1135
1720
|
noAccountText: "¿No tienes una cuenta?",
|
|
1136
1721
|
signUpText: "Regístrate",
|
|
1137
1722
|
errors: {
|
|
1723
|
+
oauthCallbackFailed: "No se pudo completar el inicio de sesión único: el enlace de acceso caducó o ya se había utilizado. Vuelva a intentarlo.",
|
|
1138
1724
|
invalidCredentials: "Correo o contraseña inválidos. Inténtelo de nuevo.",
|
|
1139
1725
|
emailNotVerified: "Verifique su correo electrónico antes de iniciar sesión.",
|
|
1140
1726
|
},
|
|
@@ -1260,6 +1846,40 @@ const es = {
|
|
|
1260
1846
|
shell: {
|
|
1261
1847
|
tenantHostHint: "Está iniciando sesión en este espacio de trabajo",
|
|
1262
1848
|
},
|
|
1849
|
+
layout: {
|
|
1850
|
+
headline: "Cree aplicaciones empresariales potentes, más rápido.",
|
|
1851
|
+
subhead: "La plataforma universal para la gestión de datos empresariales, los flujos de trabajo y la analítica.",
|
|
1852
|
+
},
|
|
1853
|
+
remediation: {
|
|
1854
|
+
signOut: "Cerrar sesión en su lugar",
|
|
1855
|
+
password: {
|
|
1856
|
+
title: "Su contraseña ha caducado",
|
|
1857
|
+
fallbackMessage: "Establezca una nueva contraseña para continuar.",
|
|
1858
|
+
current: "Contraseña actual",
|
|
1859
|
+
next: "Nueva contraseña",
|
|
1860
|
+
confirm: "Confirmar nueva contraseña",
|
|
1861
|
+
submit: "Cambiar contraseña y continuar",
|
|
1862
|
+
submitting: "Actualizando…",
|
|
1863
|
+
mismatch: "Las nuevas contraseñas no coinciden.",
|
|
1864
|
+
failed: "No se pudo cambiar la contraseña.",
|
|
1865
|
+
},
|
|
1866
|
+
mfa: {
|
|
1867
|
+
title: "Configurar la autenticación en dos pasos",
|
|
1868
|
+
fallbackMessage: "Su organización requiere una aplicación de autenticación para continuar.",
|
|
1869
|
+
confirmPassword: "Confirme su contraseña",
|
|
1870
|
+
continue: "Continuar",
|
|
1871
|
+
preparing: "Preparando…",
|
|
1872
|
+
enrollFailed: "No se pudo iniciar el registro.",
|
|
1873
|
+
scanTitle: "Escanee con su aplicación de autenticación",
|
|
1874
|
+
scanBody: "Escanee este código QR con Google Authenticator, 1Password, Authy, etc., y luego introduzca el código de 6 dígitos.",
|
|
1875
|
+
backupTitle: "Guarde sus códigos de respaldo",
|
|
1876
|
+
backupBody: "Guárdelos en un lugar seguro: cada uno puede usarse una vez si pierde su dispositivo.",
|
|
1877
|
+
codeLabel: "Código de 6 dígitos",
|
|
1878
|
+
verify: "Verificar y continuar",
|
|
1879
|
+
verifying: "Verificando…",
|
|
1880
|
+
invalidCode: "Código no válido. Inténtelo de nuevo.",
|
|
1881
|
+
},
|
|
1882
|
+
},
|
|
1263
1883
|
},
|
|
1264
1884
|
profile: {
|
|
1265
1885
|
title: "Perfil",
|
|
@@ -1324,11 +1944,15 @@ const es = {
|
|
|
1324
1944
|
settings: "Configuración del espacio de trabajo",
|
|
1325
1945
|
},
|
|
1326
1946
|
help: {
|
|
1947
|
+
onThisPage: "En esta página",
|
|
1948
|
+
keyboardShortcuts: "Atajos de teclado",
|
|
1327
1949
|
appDocs: 'Documentación de esta app',
|
|
1328
1950
|
allDocs: 'Toda la documentación',
|
|
1329
1951
|
onlineDocs: 'Documentación en línea',
|
|
1330
1952
|
},
|
|
1331
1953
|
sidebar: {
|
|
1954
|
+
packageManagement: "Gestión de paquetes",
|
|
1955
|
+
searchNavigation: "Buscar en la navegación...",
|
|
1332
1956
|
settings: "Configuración",
|
|
1333
1957
|
help: "Ayuda",
|
|
1334
1958
|
helpTooltip: "Ayuda y documentación",
|
|
@@ -1345,14 +1969,66 @@ const es = {
|
|
|
1345
1969
|
removeFromFavorites: "Quitar {{name}} de favoritos",
|
|
1346
1970
|
},
|
|
1347
1971
|
topbar: {
|
|
1972
|
+
openAssistant: "Abrir el asistente {{name}}",
|
|
1973
|
+
offline: "Sin conexión",
|
|
1974
|
+
usersOnline: "Usuarios conectados ahora mismo",
|
|
1975
|
+
switchView: "Cambiar de vista",
|
|
1976
|
+
switchObject: "Cambiar de objeto",
|
|
1977
|
+
connection: {
|
|
1978
|
+
connected: "Conectado",
|
|
1979
|
+
connecting: "Conectando...",
|
|
1980
|
+
reconnecting: "Reconectando...",
|
|
1981
|
+
disconnected: "Desconectado",
|
|
1982
|
+
error: "Error de conexión",
|
|
1983
|
+
},
|
|
1984
|
+
stage: {
|
|
1985
|
+
preview: "Vista previa",
|
|
1986
|
+
beta: "Beta",
|
|
1987
|
+
tooltip: "Esta plataforma está en versión preliminar — las funciones pueden cambiar.",
|
|
1988
|
+
},
|
|
1348
1989
|
aiAssistant: "Asistente de IA",
|
|
1349
1990
|
designInStudio: "Diseñar en Studio",
|
|
1350
1991
|
},
|
|
1351
1992
|
home: {
|
|
1993
|
+
build: {
|
|
1994
|
+
title: "Crear una aplicación",
|
|
1995
|
+
subtitle: "Empiece desde cero — diseñe objetos, formularios, automatizaciones e interfaces.",
|
|
1996
|
+
},
|
|
1997
|
+
template: {
|
|
1998
|
+
title: "Empezar con una plantilla",
|
|
1999
|
+
subtitle: "Instale una aplicación de plantilla desde el mercado y personalícela.",
|
|
2000
|
+
},
|
|
2001
|
+
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.",
|
|
2002
|
+
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.",
|
|
2003
|
+
welcomeAdminDescriptionNoAi: "Configure su primera aplicación desde el menú de Administración de la izquierda.",
|
|
2004
|
+
noAppsTitle: "Todavía no hay aplicaciones",
|
|
2005
|
+
noAppsDescription: "Su espacio de trabajo se está preparando — las aplicaciones que su administrador comparta aparecerán aquí.",
|
|
2006
|
+
buildWithAI: "Crear con IA",
|
|
2007
|
+
askAI: "Preguntar a la IA",
|
|
2008
|
+
recoveryReminder: {
|
|
2009
|
+
message: "Establezca una contraseña de recuperación para poder iniciar sesión aunque el inicio de sesión único no esté disponible.",
|
|
2010
|
+
cta: "Establecer contraseña",
|
|
2011
|
+
dismiss: "Descartar",
|
|
2012
|
+
},
|
|
2013
|
+
pendingDrafts: {
|
|
2014
|
+
message: "Tiene {{count}} cambio(s) sin publicar — publíquelos para activarlos.",
|
|
2015
|
+
cta: "Publicar",
|
|
2016
|
+
publishing: "Publicando…",
|
|
2017
|
+
published: "¡Publicado! Sus cambios están activos.",
|
|
2018
|
+
publishFailed: "Error al publicar",
|
|
2019
|
+
},
|
|
1352
2020
|
title: "Inicio",
|
|
1353
2021
|
subtitle: "Panel de tu espacio de trabajo",
|
|
1354
2022
|
nav: "Inicio",
|
|
1355
2023
|
allApps: "Todas las aplicaciones",
|
|
2024
|
+
yourApps: "Tus aplicaciones",
|
|
2025
|
+
showMoreApps: "Más",
|
|
2026
|
+
showLess: "Mostrar menos",
|
|
2027
|
+
continueEmpty: "Los elementos que abras aparecerán aquí.",
|
|
2028
|
+
actionCenter: {
|
|
2029
|
+
title: "Requiere tu atención",
|
|
2030
|
+
empty: "Estás al día",
|
|
2031
|
+
},
|
|
1356
2032
|
loading: "Cargando espacio de trabajo...",
|
|
1357
2033
|
recent: "Recientes",
|
|
1358
2034
|
starred: "Destacados",
|
|
@@ -1404,7 +2080,21 @@ const es = {
|
|
|
1404
2080
|
},
|
|
1405
2081
|
},
|
|
1406
2082
|
layout: {
|
|
2083
|
+
systemNav: {
|
|
2084
|
+
systemSettings: "Configuración del sistema",
|
|
2085
|
+
applications: "Aplicaciones",
|
|
2086
|
+
appMarketplace: "Mercado de aplicaciones",
|
|
2087
|
+
objectManager: "Gestor de objetos",
|
|
2088
|
+
users: "Usuarios",
|
|
2089
|
+
organizations: "Organizaciones",
|
|
2090
|
+
roles: "Roles",
|
|
2091
|
+
configuration: "Configuración",
|
|
2092
|
+
createApp: "Crear aplicación",
|
|
2093
|
+
},
|
|
1407
2094
|
appSwitcher: {
|
|
2095
|
+
switchApplication: "Cambiar de aplicación",
|
|
2096
|
+
appsAvailable: "{{count}} aplicaciones disponibles",
|
|
2097
|
+
editNavigation: "Editar la navegación",
|
|
1408
2098
|
home: "Inicio",
|
|
1409
2099
|
addApp: "Agregar aplicación",
|
|
1410
2100
|
editApp: "Editar aplicación",
|
|
@@ -1497,8 +2187,8 @@ const es = {
|
|
|
1497
2187
|
uploading: "Subiendo…",
|
|
1498
2188
|
defaultActionTitle: "Acción",
|
|
1499
2189
|
ok: "Aceptar",
|
|
1500
|
-
lookupPlaceholder: "
|
|
1501
|
-
lookupHelpText: "
|
|
2190
|
+
lookupPlaceholder: "ID de registro para {{label}}",
|
|
2191
|
+
lookupHelpText: "Este parámetro no tiene un objeto de referencia configurado, por lo que el selector de registros no está disponible. Ingrese un ID de registro o pida a un administrador que corrija el parámetro de la acción.",
|
|
1502
2192
|
},
|
|
1503
2193
|
actionConfirm: {
|
|
1504
2194
|
title: "Confirmar acción",
|
|
@@ -1523,6 +2213,8 @@ const es = {
|
|
|
1523
2213
|
updateFailed: "No se pudo actualizar la navegación",
|
|
1524
2214
|
},
|
|
1525
2215
|
objectActions: {
|
|
2216
|
+
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?",
|
|
2217
|
+
resetPackageSetSuccess: "Conjunto de permisos restablecido a la versión original del paquete",
|
|
1526
2218
|
deleteSuccess: "{{label}} eliminado correctamente",
|
|
1527
2219
|
deleteFailed: "No se pudo eliminar {{label}}",
|
|
1528
2220
|
noRecordId: "No se proporcionó ID de registro",
|
|
@@ -1687,6 +2379,7 @@ const es = {
|
|
|
1687
2379
|
},
|
|
1688
2380
|
},
|
|
1689
2381
|
organizations: {
|
|
2382
|
+
create: "Crear espacio de trabajo",
|
|
1690
2383
|
mine: "Mis organizaciones",
|
|
1691
2384
|
title: "Organizaciones",
|
|
1692
2385
|
heading: "Tus organizaciones",
|
|
@@ -1700,6 +2393,11 @@ const es = {
|
|
|
1700
2393
|
noMatches: "Ninguna organización coincide con tu búsqueda.",
|
|
1701
2394
|
},
|
|
1702
2395
|
notifications: {
|
|
2396
|
+
regionLabel: "Notificaciones",
|
|
2397
|
+
groupCount: "{{count}} notificaciones",
|
|
2398
|
+
groupUnread: "{{count}} sin leer",
|
|
2399
|
+
groupMarkRead: "Marcar como leídas",
|
|
2400
|
+
groupMarkReadTitle: "Marcar como leídas todas las de este tipo",
|
|
1703
2401
|
empty: "Sin notificaciones",
|
|
1704
2402
|
markAllRead: "Marcar todo como leído",
|
|
1705
2403
|
viewAll: "Ver todas las notificaciones",
|
|
@@ -1818,7 +2516,103 @@ const es = {
|
|
|
1818
2516
|
done: 'Listo — ocultar',
|
|
1819
2517
|
},
|
|
1820
2518
|
},
|
|
2519
|
+
excelImport: {
|
|
2520
|
+
noImportableFields: "Ese objeto no tiene campos importables.",
|
|
2521
|
+
schemaReadFailed: "No se pudo leer el esquema del objeto.",
|
|
2522
|
+
imported: "Se importaron {{count}} fila(s) en {{object}}.",
|
|
2523
|
+
importFrom: "Importar las filas reales desde",
|
|
2524
|
+
into: "a",
|
|
2525
|
+
opening: "Abriendo…",
|
|
2526
|
+
importAction: "Importar",
|
|
2527
|
+
dismiss: "Descartar",
|
|
2528
|
+
},
|
|
2529
|
+
cloudOnboarding: {
|
|
2530
|
+
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.",
|
|
2531
|
+
hintReady: "Su entorno de producción está listo. Ábralo para crear y ejecutar sus aplicaciones: todo ocurre dentro del entorno.",
|
|
2532
|
+
createEnvironment: "Cree su entorno",
|
|
2533
|
+
openProduction: "Abrir producción",
|
|
2534
|
+
manageEnvironments: "Gestionar entornos",
|
|
2535
|
+
},
|
|
2536
|
+
aiModelStatus: {
|
|
2537
|
+
summary: "Crear / Preguntar usa {{conversational}} ({{conversationalSource}}); estructurado usa {{structured}} ({{structuredSource}}).",
|
|
2538
|
+
summaryRouting: "Política de enrutamiento: planes gratuitos → {{free}}, planes de pago → {{paid}}.",
|
|
2539
|
+
modelUnknown: "desconocido",
|
|
2540
|
+
sourceUnknown: "no informado por el adaptador",
|
|
2541
|
+
rowConversational: "Modelo Build / Ask",
|
|
2542
|
+
rowStructured: "Estructurado (blueprint / seed)",
|
|
2543
|
+
rowReasoning: "Esfuerzo de razonamiento",
|
|
2544
|
+
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.",
|
|
2545
|
+
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.",
|
|
2546
|
+
overridesInEffect: "Anulaciones vigentes: ",
|
|
2547
|
+
noOverrides: "ninguna: se usan los valores predeterminados del código desplegado.",
|
|
2548
|
+
adapter: "Adaptador: ",
|
|
2549
|
+
sourceCodeDefault: "valor predeterminado del código (sin anulación env)",
|
|
2550
|
+
sourceInherits: "igual que build/ask",
|
|
2551
|
+
sourcePinned: "fijado por {{source}}",
|
|
2552
|
+
},
|
|
2553
|
+
chatbotError: {
|
|
2554
|
+
title: "Error en la respuesta",
|
|
2555
|
+
fallbackDetail: "Algo salió mal. Vuelva a intentarlo.",
|
|
2556
|
+
details: "Detalles",
|
|
2557
|
+
hide: "Ocultar",
|
|
2558
|
+
retry: "Reintentar",
|
|
2559
|
+
},
|
|
2560
|
+
chatbotQuota: {
|
|
2561
|
+
title: "Se requiere actualizar",
|
|
2562
|
+
fallbackMessage: "Ha alcanzado su cuota de IA.",
|
|
2563
|
+
buyCredits: "Comprar un paquete de créditos",
|
|
2564
|
+
upgradePlan: "Mejorar el plan",
|
|
2565
|
+
},
|
|
2566
|
+
environment: {
|
|
2567
|
+
addEnvironment: "Añadir entorno",
|
|
2568
|
+
setUpProduction: "Configure su entorno de producción",
|
|
2569
|
+
addDevelopment: "Añadir entorno de desarrollo",
|
|
2570
|
+
},
|
|
2571
|
+
cloudConnection: {
|
|
2572
|
+
checking: "Comprobando la conexión…",
|
|
2573
|
+
retry: "Reintentar",
|
|
2574
|
+
errors: {
|
|
2575
|
+
expired: "La solicitud caducó antes de ser aprobada. Vuelva a empezar.",
|
|
2576
|
+
bindFailed: "Error al vincular.",
|
|
2577
|
+
deviceCodeFailed: "Error en la solicitud del código de dispositivo.",
|
|
2578
|
+
},
|
|
2579
|
+
waiting: {
|
|
2580
|
+
popupOpened: "Apruebe la conexión en la ventana que acaba de abrirse: esta página se actualiza sola.",
|
|
2581
|
+
polling: "Esperando la aprobación en la consola de la nube…",
|
|
2582
|
+
openApproval: "Abrir la página de aprobación",
|
|
2583
|
+
copy: "Copiar",
|
|
2584
|
+
copied: "Copiado",
|
|
2585
|
+
codePrefilled: "El código ya está rellenado en la página de aprobación.",
|
|
2586
|
+
openItHere: "¿No apareció la ventana? Ábrala aquí",
|
|
2587
|
+
cancel: "Cancelar",
|
|
2588
|
+
},
|
|
2589
|
+
bound: {
|
|
2590
|
+
title: "Conectado a ObjectStack Cloud",
|
|
2591
|
+
runtime: "Runtime",
|
|
2592
|
+
organization: "Organización",
|
|
2593
|
+
approvedBy: "Aprobado por",
|
|
2594
|
+
runtimeId: "ID del runtime",
|
|
2595
|
+
environment: "Entorno",
|
|
2596
|
+
since: "Desde",
|
|
2597
|
+
privatePackages: "Los paquetes privados de su organización ya aparecen en el Marketplace en «Su organización».",
|
|
2598
|
+
disconnect: "Desconectar",
|
|
2599
|
+
},
|
|
2600
|
+
unbound: {
|
|
2601
|
+
title: "No conectado",
|
|
2602
|
+
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.",
|
|
2603
|
+
connect: "Conectar",
|
|
2604
|
+
},
|
|
2605
|
+
},
|
|
1821
2606
|
marketplace: {
|
|
2607
|
+
suggestedBindings: {
|
|
2608
|
+
promptEveryone: "Esta aplicación sugiere conceder «{{set}}» a todos los usuarios con sesión iniciada (la posición Everyone).",
|
|
2609
|
+
promptGuest: "Esta aplicación sugiere conceder «{{set}}» a los visitantes no autenticados (la posición Guest).",
|
|
2610
|
+
confirm: "Conceder",
|
|
2611
|
+
confirming: "Concediendo…",
|
|
2612
|
+
dismiss: "Descartar",
|
|
2613
|
+
confirmedToast: "«{{set}}» ya está concedido a {{anchor}}.",
|
|
2614
|
+
dismissedToast: "Sugerencia para «{{set}}» descartada.",
|
|
2615
|
+
},
|
|
1822
2616
|
title: "Marketplace de aplicaciones",
|
|
1823
2617
|
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.",
|
|
1824
2618
|
searchPlaceholder: "Buscar aplicaciones por nombre o ID de manifiesto…",
|
|
@@ -1870,6 +2664,7 @@ const es = {
|
|
|
1870
2664
|
updateAvailable: 'Actualización disponible',
|
|
1871
2665
|
},
|
|
1872
2666
|
action: {
|
|
2667
|
+
installed: "Instalada",
|
|
1873
2668
|
install: "Instalar",
|
|
1874
2669
|
reinstall: "Reinstalar",
|
|
1875
2670
|
working: "Procesando…",
|
|
@@ -1940,6 +2735,14 @@ const es = {
|
|
|
1940
2735
|
yearsAgo: "hace {{count}} años",
|
|
1941
2736
|
},
|
|
1942
2737
|
},
|
|
2738
|
+
approvals: {
|
|
2739
|
+
approve: 'Aprobar',
|
|
2740
|
+
reject: 'Rechazar',
|
|
2741
|
+
comment: 'Comentario (opcional)',
|
|
2742
|
+
approveSuccess: 'Aprobado',
|
|
2743
|
+
rejectSuccess: 'Rechazado',
|
|
2744
|
+
rejectConfirm: '¿Rechazar esta solicitud de aprobación?',
|
|
2745
|
+
},
|
|
1943
2746
|
approvalsInbox: {
|
|
1944
2747
|
loadMore: 'Cargar más',
|
|
1945
2748
|
loadingMore: 'Cargando…',
|
|
@@ -1964,13 +2767,28 @@ const es = {
|
|
|
1964
2767
|
slaRemaining: 'SLA: quedan {{dur}}',
|
|
1965
2768
|
slaOverdue: 'SLA vencido {{dur}}',
|
|
1966
2769
|
actReassign: 'Reasignada',
|
|
2770
|
+
reassignFromTo: 'de {{from}} a {{to}}',
|
|
1967
2771
|
actRemind: 'Recordatorio',
|
|
1968
2772
|
actRequestInfo: 'Pidió más información',
|
|
1969
2773
|
actComment: 'Comentó',
|
|
1970
2774
|
stepProgress: 'Pasos de aprobación',
|
|
1971
2775
|
prevRequest: 'Anterior',
|
|
1972
2776
|
nextRequest: 'Siguiente',
|
|
1973
|
-
positionOf: '{{index}} de {{total}}',
|
|
2777
|
+
positionOf: 'Solicitud {{index}} de {{total}}',
|
|
2778
|
+
progressApprovals: 'Aprobaciones — {{got}} de {{need}}',
|
|
2779
|
+
progressGroups: 'Progreso de firmas — {{got}} de {{need}} grupos',
|
|
2780
|
+
progressEligible: '{{count}} aprobador(es) elegible(s)',
|
|
2781
|
+
progressBar: 'Progreso de la decisión',
|
|
2782
|
+
declaredActions: 'Acciones',
|
|
2783
|
+
attachmentChip: 'Adjunto',
|
|
2784
|
+
attachmentOpenFailed: 'No se pudo abrir el archivo adjunto: inténtalo de nuevo',
|
|
2785
|
+
approveOneTitle: '¿Aprobar «{{title}}»?',
|
|
2786
|
+
approveOneBody: 'Esto aprueba la solicitud con tu identidad. Para añadir un comentario o un adjunto, abre la solicitud.',
|
|
2787
|
+
flowOrigin: 'Iniciada por flujo',
|
|
2788
|
+
sortBy: 'Ordenar',
|
|
2789
|
+
sortRecent: 'Más recientes primero',
|
|
2790
|
+
sortOldest: 'Más antiguas primero',
|
|
2791
|
+
sortAmount: 'Importe (mayor→menor)',
|
|
1974
2792
|
quickPhrase1: 'Aprobada: cumple los requisitos.',
|
|
1975
2793
|
quickPhrase2: 'Aprobada con condiciones: supervisar la ejecución.',
|
|
1976
2794
|
quickPhrase3: 'Añade documentación de apoyo y vuelve a enviarla.',
|
|
@@ -2099,6 +2917,10 @@ const es = {
|
|
|
2099
2917
|
retry: 'Reintentar',
|
|
2100
2918
|
},
|
|
2101
2919
|
draftBar: {
|
|
2920
|
+
messageClean: "Vista previa del borrador: no hay cambios sin publicar; todo lo que ve aquí ya está activo.",
|
|
2921
|
+
sampleDataTitle: "Los datos de ejemplo aparecen tras publicar",
|
|
2922
|
+
sampleDataBody: "Está viendo la estructura de su aplicación. Publíquela para cargar registros de ejemplo y activarla.",
|
|
2923
|
+
publishCta: "Publicar para verlo activo",
|
|
2102
2924
|
message: 'Vista previa de borrador — estás viendo cambios sin publicar. Nada está en producción hasta que publiques.',
|
|
2103
2925
|
publish: 'Publicar',
|
|
2104
2926
|
publishing: 'Publicando…',
|