@object-ui/i18n 16.0.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 +1270 -0
- package/dist/locales/ar.d.ts +827 -2
- package/dist/locales/ar.js +833 -7
- package/dist/locales/de.d.ts +825 -2
- package/dist/locales/de.js +831 -7
- package/dist/locales/en.d.ts +404 -17
- package/dist/locales/en.js +419 -19
- package/dist/locales/es.d.ts +825 -2
- package/dist/locales/es.js +831 -7
- package/dist/locales/fr.d.ts +827 -2
- package/dist/locales/fr.js +833 -7
- package/dist/locales/index.d.ts +7378 -90
- package/dist/locales/ja.d.ts +825 -2
- package/dist/locales/ja.js +831 -7
- package/dist/locales/ko.d.ts +825 -2
- package/dist/locales/ko.js +831 -7
- package/dist/locales/pt.d.ts +827 -2
- package/dist/locales/pt.js +833 -7
- package/dist/locales/ru.d.ts +827 -2
- package/dist/locales/ru.js +833 -7
- package/dist/locales/zh.d.ts +327 -18
- package/dist/locales/zh.js +329 -18
- package/dist/useObjectLabel.d.ts +240 -12
- package/dist/useObjectLabel.js +109 -44
- 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,9 +83,14 @@ 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
|
-
defaultTitle: '
|
|
79
|
-
acknowledge: '
|
|
91
|
+
defaultTitle: 'Guarda este valor ahora',
|
|
92
|
+
acknowledge: 'Lo he guardado',
|
|
93
|
+
copyAll: 'Copiar todo',
|
|
80
94
|
},
|
|
81
95
|
},
|
|
82
96
|
validation: {
|
|
@@ -93,6 +107,16 @@ const es = {
|
|
|
93
107
|
type: "{{field}} debe ser un {{type}} válido",
|
|
94
108
|
},
|
|
95
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",
|
|
96
120
|
addItem: "Añadir elemento",
|
|
97
121
|
removeItem: "Eliminar elemento",
|
|
98
122
|
fieldRequired: "Este campo es obligatorio",
|
|
@@ -103,8 +127,6 @@ const es = {
|
|
|
103
127
|
stepOf: "Paso {{current}} de {{total}}",
|
|
104
128
|
createTitle: "Crear {{object}}",
|
|
105
129
|
editTitle: "Editar {{object}}",
|
|
106
|
-
createDescription: "Agregar un nuevo {{object}} a su base de datos.",
|
|
107
|
-
editDescription: "Actualizar detalles de {{object}}",
|
|
108
130
|
saveRecord: "Guardar registro",
|
|
109
131
|
create: "Crear",
|
|
110
132
|
update: "Actualizar",
|
|
@@ -113,14 +135,70 @@ const es = {
|
|
|
113
135
|
deleteSuccess: "{{object}} eliminado",
|
|
114
136
|
},
|
|
115
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
|
+
},
|
|
116
151
|
relativeDate: {
|
|
117
152
|
overdue: "Atrasado {{count}} d",
|
|
118
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
|
+
},
|
|
119
170
|
richText: {
|
|
120
171
|
format: "Formato: {{format}}",
|
|
121
172
|
basicEditorHint: "Editor de texto enriquecido (básico)",
|
|
122
173
|
placeholder: "Escribe algo...",
|
|
123
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
|
+
},
|
|
124
202
|
},
|
|
125
203
|
table: {
|
|
126
204
|
rowsPerPage: "Filas por página",
|
|
@@ -155,6 +233,37 @@ const es = {
|
|
|
155
233
|
delete: "Eliminar",
|
|
156
234
|
},
|
|
157
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
|
+
},
|
|
158
267
|
actions: "Acciones",
|
|
159
268
|
edit: "Editar",
|
|
160
269
|
delete: "Eliminar",
|
|
@@ -180,7 +289,88 @@ const es = {
|
|
|
180
289
|
densityCycleShortHint: "Clic para cambiar",
|
|
181
290
|
},
|
|
182
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).",
|
|
183
372
|
title: "Importar {{object}}",
|
|
373
|
+
notAllowed: "Este objeto no está habilitado para la importación.",
|
|
184
374
|
stepUpload: "Cargar",
|
|
185
375
|
stepMapping: "Asignación",
|
|
186
376
|
stepPreview: "Vista previa",
|
|
@@ -256,6 +446,42 @@ const es = {
|
|
|
256
446
|
moreEvents: "+{{count}} más",
|
|
257
447
|
},
|
|
258
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",
|
|
259
485
|
loading: 'Loading records...',
|
|
260
486
|
recordCount: "{{count}} registros",
|
|
261
487
|
recordCountOne: "{{count}} registro",
|
|
@@ -267,6 +493,8 @@ const es = {
|
|
|
267
493
|
filterRecords: "Filtrar registros",
|
|
268
494
|
sort: "Ordenar",
|
|
269
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.",
|
|
270
498
|
group: "Agrupar",
|
|
271
499
|
groupBy: "Agrupar por",
|
|
272
500
|
export: "Exportar",
|
|
@@ -296,6 +524,11 @@ const es = {
|
|
|
296
524
|
recordEditingTitle: "Edición de registros",
|
|
297
525
|
},
|
|
298
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
|
+
},
|
|
299
532
|
config: {
|
|
300
533
|
short: "Configuración",
|
|
301
534
|
title: "Configuración del administrador",
|
|
@@ -318,6 +551,7 @@ const es = {
|
|
|
318
551
|
},
|
|
319
552
|
},
|
|
320
553
|
kanban: {
|
|
554
|
+
uncategorized: "Sin categoría",
|
|
321
555
|
addCard: "Añadir tarjeta",
|
|
322
556
|
addColumn: "Añadir columna",
|
|
323
557
|
moveCard: "Mover tarjeta",
|
|
@@ -339,12 +573,92 @@ const es = {
|
|
|
339
573
|
},
|
|
340
574
|
},
|
|
341
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",
|
|
342
644
|
column: {
|
|
343
645
|
taskName: "Nombre de tarea",
|
|
344
646
|
start: "Inicio",
|
|
345
647
|
end: "Fin",
|
|
346
648
|
},
|
|
347
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",
|
|
348
662
|
prevPeriod: "Período anterior",
|
|
349
663
|
nextPeriod: "Período siguiente",
|
|
350
664
|
zoomIn: "Acercar",
|
|
@@ -390,6 +704,9 @@ const es = {
|
|
|
390
704
|
redo: 'Redo',
|
|
391
705
|
},
|
|
392
706
|
detail: {
|
|
707
|
+
editInlineHint: "Haga doble clic para editar",
|
|
708
|
+
systemActor: "Sistema",
|
|
709
|
+
unknownUser: "Desconocido",
|
|
393
710
|
back: "Volver",
|
|
394
711
|
edit: "Editar",
|
|
395
712
|
editInline: "Editar",
|
|
@@ -439,6 +756,18 @@ const es = {
|
|
|
439
756
|
attachmentCount: "{{count}} archivo adjunto",
|
|
440
757
|
attachmentCountPlural: "{{count}} archivos adjuntos",
|
|
441
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.",
|
|
442
771
|
unifiedDiff: "Vista unificada",
|
|
443
772
|
sideBySideDiff: "Vista lado a lado",
|
|
444
773
|
noChanges: "Sin cambios",
|
|
@@ -486,9 +815,15 @@ const es = {
|
|
|
486
815
|
saving: "Guardando…",
|
|
487
816
|
lockedByApproval: "Bloqueado para aprobación",
|
|
488
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",
|
|
489
823
|
cancelApproval: "Cancelar aprobación",
|
|
490
824
|
cancelApprovalInFlight: "Cancelando…",
|
|
491
825
|
cancelApprovalTooltip: "Cancelar la solicitud de aprobación pendiente para desbloquear el registro",
|
|
826
|
+
cancelApprovalTooltipUnlocked: "Cancelar la solicitud de aprobación pendiente",
|
|
492
827
|
cancelApprovalFailed: "No se pudo cancelar la aprobación",
|
|
493
828
|
cancelApprovalUnavailable: "La cancelación de aprobaciones no es compatible con esta fuente de datos",
|
|
494
829
|
linkCopied: "Enlace copiado al portapapeles",
|
|
@@ -604,6 +939,35 @@ const es = {
|
|
|
604
939
|
resetZoom: "Restablecer zoom",
|
|
605
940
|
},
|
|
606
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
|
+
},
|
|
607
971
|
addWidget: "Añadir widget",
|
|
608
972
|
removeWidget: "Eliminar widget",
|
|
609
973
|
editLayout: "Editar diseño",
|
|
@@ -731,6 +1095,7 @@ const es = {
|
|
|
731
1095
|
navTypeGroup: "Grupo",
|
|
732
1096
|
navTypeSeparator: "Separador",
|
|
733
1097
|
navTypeAction: "Acción",
|
|
1098
|
+
navTypeComponent: "Componente",
|
|
734
1099
|
navEditIcon: "Editar icono",
|
|
735
1100
|
navToggleVisible: "Alternar visibilidad",
|
|
736
1101
|
navHidden: "Oculto",
|
|
@@ -832,8 +1197,199 @@ const es = {
|
|
|
832
1197
|
},
|
|
833
1198
|
},
|
|
834
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
|
+
},
|
|
835
1390
|
title: "Consola ObjectStack",
|
|
836
1391
|
initializing: "Inicializando aplicación...",
|
|
1392
|
+
loadingHint: "Configurar un entorno nuevo puede tardar unos momentos.",
|
|
837
1393
|
breadcrumb: {
|
|
838
1394
|
dashboards: "Paneles",
|
|
839
1395
|
pages: "Páginas",
|
|
@@ -875,6 +1431,7 @@ const es = {
|
|
|
875
1431
|
toggleDarkMode: "Alternar modo oscuro",
|
|
876
1432
|
},
|
|
877
1433
|
commandPalette: {
|
|
1434
|
+
title: "Paleta de comandos",
|
|
878
1435
|
placeholder: "Escriba un comando o busque...",
|
|
879
1436
|
noResults: "No se encontraron resultados.",
|
|
880
1437
|
objects: "Objetos",
|
|
@@ -908,6 +1465,14 @@ const es = {
|
|
|
908
1465
|
system: "Sistema",
|
|
909
1466
|
},
|
|
910
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.",
|
|
911
1476
|
systemViewReadonly: 'System view defined in code - duplicate to customize.',
|
|
912
1477
|
expandToPage: 'Open as full page',
|
|
913
1478
|
objectNotFound: "Objeto no encontrado",
|
|
@@ -1121,7 +1686,28 @@ const es = {
|
|
|
1121
1686
|
},
|
|
1122
1687
|
},
|
|
1123
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
|
+
},
|
|
1124
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
|
+
},
|
|
1125
1711
|
title: "Inicia sesión en tu cuenta",
|
|
1126
1712
|
description: "Ingresa tu correo electrónico y contraseña para continuar",
|
|
1127
1713
|
emailLabel: "Correo electrónico",
|
|
@@ -1134,6 +1720,7 @@ const es = {
|
|
|
1134
1720
|
noAccountText: "¿No tienes una cuenta?",
|
|
1135
1721
|
signUpText: "Regístrate",
|
|
1136
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.",
|
|
1137
1724
|
invalidCredentials: "Correo o contraseña inválidos. Inténtelo de nuevo.",
|
|
1138
1725
|
emailNotVerified: "Verifique su correo electrónico antes de iniciar sesión.",
|
|
1139
1726
|
},
|
|
@@ -1259,6 +1846,40 @@ const es = {
|
|
|
1259
1846
|
shell: {
|
|
1260
1847
|
tenantHostHint: "Está iniciando sesión en este espacio de trabajo",
|
|
1261
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
|
+
},
|
|
1262
1883
|
},
|
|
1263
1884
|
profile: {
|
|
1264
1885
|
title: "Perfil",
|
|
@@ -1323,11 +1944,15 @@ const es = {
|
|
|
1323
1944
|
settings: "Configuración del espacio de trabajo",
|
|
1324
1945
|
},
|
|
1325
1946
|
help: {
|
|
1947
|
+
onThisPage: "En esta página",
|
|
1948
|
+
keyboardShortcuts: "Atajos de teclado",
|
|
1326
1949
|
appDocs: 'Documentación de esta app',
|
|
1327
1950
|
allDocs: 'Toda la documentación',
|
|
1328
1951
|
onlineDocs: 'Documentación en línea',
|
|
1329
1952
|
},
|
|
1330
1953
|
sidebar: {
|
|
1954
|
+
packageManagement: "Gestión de paquetes",
|
|
1955
|
+
searchNavigation: "Buscar en la navegación...",
|
|
1331
1956
|
settings: "Configuración",
|
|
1332
1957
|
help: "Ayuda",
|
|
1333
1958
|
helpTooltip: "Ayuda y documentación",
|
|
@@ -1344,14 +1969,66 @@ const es = {
|
|
|
1344
1969
|
removeFromFavorites: "Quitar {{name}} de favoritos",
|
|
1345
1970
|
},
|
|
1346
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
|
+
},
|
|
1347
1989
|
aiAssistant: "Asistente de IA",
|
|
1348
1990
|
designInStudio: "Diseñar en Studio",
|
|
1349
1991
|
},
|
|
1350
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
|
+
},
|
|
1351
2020
|
title: "Inicio",
|
|
1352
2021
|
subtitle: "Panel de tu espacio de trabajo",
|
|
1353
2022
|
nav: "Inicio",
|
|
1354
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
|
+
},
|
|
1355
2032
|
loading: "Cargando espacio de trabajo...",
|
|
1356
2033
|
recent: "Recientes",
|
|
1357
2034
|
starred: "Destacados",
|
|
@@ -1403,7 +2080,21 @@ const es = {
|
|
|
1403
2080
|
},
|
|
1404
2081
|
},
|
|
1405
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
|
+
},
|
|
1406
2094
|
appSwitcher: {
|
|
2095
|
+
switchApplication: "Cambiar de aplicación",
|
|
2096
|
+
appsAvailable: "{{count}} aplicaciones disponibles",
|
|
2097
|
+
editNavigation: "Editar la navegación",
|
|
1407
2098
|
home: "Inicio",
|
|
1408
2099
|
addApp: "Agregar aplicación",
|
|
1409
2100
|
editApp: "Editar aplicación",
|
|
@@ -1493,10 +2184,11 @@ const es = {
|
|
|
1493
2184
|
requiredError: "{{label}} es obligatorio",
|
|
1494
2185
|
cancel: "Cancelar",
|
|
1495
2186
|
confirm: "Confirmar",
|
|
2187
|
+
uploading: "Subiendo…",
|
|
1496
2188
|
defaultActionTitle: "Acción",
|
|
1497
2189
|
ok: "Aceptar",
|
|
1498
|
-
lookupPlaceholder: "
|
|
1499
|
-
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.",
|
|
1500
2192
|
},
|
|
1501
2193
|
actionConfirm: {
|
|
1502
2194
|
title: "Confirmar acción",
|
|
@@ -1521,6 +2213,8 @@ const es = {
|
|
|
1521
2213
|
updateFailed: "No se pudo actualizar la navegación",
|
|
1522
2214
|
},
|
|
1523
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",
|
|
1524
2218
|
deleteSuccess: "{{label}} eliminado correctamente",
|
|
1525
2219
|
deleteFailed: "No se pudo eliminar {{label}}",
|
|
1526
2220
|
noRecordId: "No se proporcionó ID de registro",
|
|
@@ -1685,6 +2379,7 @@ const es = {
|
|
|
1685
2379
|
},
|
|
1686
2380
|
},
|
|
1687
2381
|
organizations: {
|
|
2382
|
+
create: "Crear espacio de trabajo",
|
|
1688
2383
|
mine: "Mis organizaciones",
|
|
1689
2384
|
title: "Organizaciones",
|
|
1690
2385
|
heading: "Tus organizaciones",
|
|
@@ -1698,6 +2393,11 @@ const es = {
|
|
|
1698
2393
|
noMatches: "Ninguna organización coincide con tu búsqueda.",
|
|
1699
2394
|
},
|
|
1700
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",
|
|
1701
2401
|
empty: "Sin notificaciones",
|
|
1702
2402
|
markAllRead: "Marcar todo como leído",
|
|
1703
2403
|
viewAll: "Ver todas las notificaciones",
|
|
@@ -1816,7 +2516,103 @@ const es = {
|
|
|
1816
2516
|
done: 'Listo — ocultar',
|
|
1817
2517
|
},
|
|
1818
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
|
+
},
|
|
1819
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
|
+
},
|
|
1820
2616
|
title: "Marketplace de aplicaciones",
|
|
1821
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.",
|
|
1822
2618
|
searchPlaceholder: "Buscar aplicaciones por nombre o ID de manifiesto…",
|
|
@@ -1868,6 +2664,7 @@ const es = {
|
|
|
1868
2664
|
updateAvailable: 'Actualización disponible',
|
|
1869
2665
|
},
|
|
1870
2666
|
action: {
|
|
2667
|
+
installed: "Instalada",
|
|
1871
2668
|
install: "Instalar",
|
|
1872
2669
|
reinstall: "Reinstalar",
|
|
1873
2670
|
working: "Procesando…",
|
|
@@ -1938,6 +2735,14 @@ const es = {
|
|
|
1938
2735
|
yearsAgo: "hace {{count}} años",
|
|
1939
2736
|
},
|
|
1940
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
|
+
},
|
|
1941
2746
|
approvalsInbox: {
|
|
1942
2747
|
loadMore: 'Cargar más',
|
|
1943
2748
|
loadingMore: 'Cargando…',
|
|
@@ -1962,13 +2767,28 @@ const es = {
|
|
|
1962
2767
|
slaRemaining: 'SLA: quedan {{dur}}',
|
|
1963
2768
|
slaOverdue: 'SLA vencido {{dur}}',
|
|
1964
2769
|
actReassign: 'Reasignada',
|
|
2770
|
+
reassignFromTo: 'de {{from}} a {{to}}',
|
|
1965
2771
|
actRemind: 'Recordatorio',
|
|
1966
2772
|
actRequestInfo: 'Pidió más información',
|
|
1967
2773
|
actComment: 'Comentó',
|
|
1968
2774
|
stepProgress: 'Pasos de aprobación',
|
|
1969
2775
|
prevRequest: 'Anterior',
|
|
1970
2776
|
nextRequest: 'Siguiente',
|
|
1971
|
-
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)',
|
|
1972
2792
|
quickPhrase1: 'Aprobada: cumple los requisitos.',
|
|
1973
2793
|
quickPhrase2: 'Aprobada con condiciones: supervisar la ejecución.',
|
|
1974
2794
|
quickPhrase3: 'Añade documentación de apoyo y vuelve a enviarla.',
|
|
@@ -2097,6 +2917,10 @@ const es = {
|
|
|
2097
2917
|
retry: 'Reintentar',
|
|
2098
2918
|
},
|
|
2099
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",
|
|
2100
2924
|
message: 'Vista previa de borrador — estás viendo cambios sin publicar. Nada está en producción hasta que publiques.',
|
|
2101
2925
|
publish: 'Publicar',
|
|
2102
2926
|
publishing: 'Publicando…',
|