@object-ui/i18n 17.6.0 → 17.7.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 +4320 -0
- package/README.md +192 -13
- package/dist/builtinAggregateLabels.d.ts +40 -0
- package/dist/builtinAggregateLabels.js +23 -0
- package/dist/currency.d.ts +27 -3
- package/dist/currency.js +28 -4
- package/dist/fallbackInterpolation.d.ts +79 -0
- package/dist/fallbackInterpolation.js +124 -0
- package/dist/i18n.d.ts +27 -1
- package/dist/i18n.js +99 -16
- package/dist/index.d.ts +7 -13
- package/dist/index.js +41 -17
- package/dist/locales/ar.d.ts +946 -113
- package/dist/locales/ar.js +1095 -161
- package/dist/locales/de.d.ts +618 -113
- package/dist/locales/de.js +715 -134
- package/dist/locales/en.d.ts +632 -127
- package/dist/locales/en.js +1044 -162
- package/dist/locales/es.d.ts +700 -113
- package/dist/locales/es.js +794 -130
- package/dist/locales/fr.d.ts +700 -113
- package/dist/locales/fr.js +795 -132
- package/dist/locales/index.d.ts +6990 -1169
- package/dist/locales/index.js +48 -9
- package/dist/locales/ja.d.ts +618 -113
- package/dist/locales/ja.js +708 -128
- package/dist/locales/ko.d.ts +618 -113
- package/dist/locales/ko.js +712 -132
- package/dist/locales/pt.d.ts +700 -113
- package/dist/locales/pt.js +794 -130
- package/dist/locales/registry.d.ts +102 -0
- package/dist/locales/registry.js +220 -0
- package/dist/locales/rtl.d.ts +24 -0
- package/dist/locales/rtl.js +26 -0
- package/dist/locales/ru.d.ts +782 -113
- package/dist/locales/ru.js +910 -152
- package/dist/locales/zh.d.ts +635 -130
- package/dist/locales/zh.js +725 -131
- package/dist/pickLocalized.d.ts +30 -0
- package/dist/pickLocalized.js +39 -0
- package/dist/provider.d.ts +101 -12
- package/dist/provider.js +335 -50
- package/dist/translateFn.d.ts +29 -0
- package/dist/translateFn.js +8 -0
- package/dist/useDisplayLocale.d.ts +11 -0
- package/dist/useDisplayLocale.js +11 -0
- package/dist/useObjectLabel.d.ts +40 -18
- package/dist/useObjectLabel.js +46 -14
- package/dist/useSafeTranslation.js +40 -42
- package/dist/utils/formatting.d.ts +16 -0
- package/dist/utils/formatting.js +23 -3
- package/dist/utils/spec-formatters.d.ts +13 -23
- package/dist/utils/spec-formatters.js +41 -2
- package/dist/utils/spec-translations.d.ts +16 -3
- package/dist/utils/spec-translations.js +52 -13
- package/package.json +12 -6
package/dist/locales/es.js
CHANGED
|
@@ -19,10 +19,12 @@ const es = {
|
|
|
19
19
|
manage_users: "Gestionar usuarios",
|
|
20
20
|
manage_org_users: "Gestionar usuarios de la organización",
|
|
21
21
|
manage_metadata: "Gestionar metadatos",
|
|
22
|
+
manage_org_presentation: "Gestionar la presentación de la organización",
|
|
22
23
|
manage_platform_settings: "Gestionar la configuración de la plataforma",
|
|
23
24
|
setup_access: "Acceso a la configuración",
|
|
24
25
|
setup_write: "Escritura de la configuración",
|
|
25
26
|
studio_access: "Acceso a Studio",
|
|
27
|
+
manage_sharing: "Gestionar el uso compartido",
|
|
26
28
|
},
|
|
27
29
|
group: {
|
|
28
30
|
platform: 'Plataforma',
|
|
@@ -38,12 +40,20 @@ const es = {
|
|
|
38
40
|
more: "+{{count}} más",
|
|
39
41
|
objects: "{{count}} objetos",
|
|
40
42
|
objects_one: "{{count}} objeto",
|
|
43
|
+
objects_many: "{{count}} de objetos",
|
|
44
|
+
objects_other: "{{count}} objetos",
|
|
41
45
|
fields: "{{count}} reglas de campo",
|
|
42
46
|
fields_one: "{{count}} regla de campo",
|
|
47
|
+
fields_many: "{{count}} de reglas de campo",
|
|
48
|
+
fields_other: "{{count}} reglas de campo",
|
|
43
49
|
rls: "{{count}} políticas RLS",
|
|
44
50
|
rls_one: "{{count}} política RLS",
|
|
51
|
+
rls_many: "{{count}} de políticas RLS",
|
|
52
|
+
rls_other: "{{count}} políticas RLS",
|
|
45
53
|
tabs: "{{count}} reglas de pestaña",
|
|
46
54
|
tabs_one: "{{count}} regla de pestaña",
|
|
55
|
+
tabs_many: "{{count}} de reglas de pestaña",
|
|
56
|
+
tabs_other: "{{count}} reglas de pestaña",
|
|
47
57
|
adminScope: "Administración delegada configurada",
|
|
48
58
|
designInStudio: "Diseñar en Studio →",
|
|
49
59
|
designInStudioHint: "Diseñar en Studio",
|
|
@@ -62,7 +72,9 @@ const es = {
|
|
|
62
72
|
selectFirst: 'Seleccione primero {{fields}}',
|
|
63
73
|
selectRecord: 'Seleccionar registro',
|
|
64
74
|
recordCount: '{{count}} registros',
|
|
65
|
-
|
|
75
|
+
recordCount_one: '{{count}} registro',
|
|
76
|
+
recordCount_many: '{{count}} de registros',
|
|
77
|
+
recordCount_other: '{{count}} registros',
|
|
66
78
|
pageOf: 'Página {{current}} de {{total}}',
|
|
67
79
|
filters: 'Filtros',
|
|
68
80
|
clear: 'Limpiar',
|
|
@@ -115,7 +127,9 @@ const es = {
|
|
|
115
127
|
closePanel: "Cerrar panel",
|
|
116
128
|
resizeDrawer: "Ajustar el ancho del panel",
|
|
117
129
|
itemCount: "{{count}} elementos",
|
|
118
|
-
|
|
130
|
+
itemCount_one: "{{count}} elemento",
|
|
131
|
+
itemCount_many: "{{count}} de elementos",
|
|
132
|
+
itemCount_other: "{{count}} elementos",
|
|
119
133
|
toggleSidebar: "Alternar barra lateral",
|
|
120
134
|
package: "Paquete",
|
|
121
135
|
done: "Listo",
|
|
@@ -123,6 +137,16 @@ const es = {
|
|
|
123
137
|
record: "Registro",
|
|
124
138
|
retry: "Reintentar",
|
|
125
139
|
printDialogHint: "Abre el cuadro de diálogo de impresión de tu navegador (no es una exportación a PDF)",
|
|
140
|
+
// The non-grid row ceiling's footnote (objectui#7210). Two keys because
|
|
141
|
+
// there are two conditions: a reported `total` states the fact with BOTH
|
|
142
|
+
// numbers, a missing one cannot name how many. Kept terse deliberately —
|
|
143
|
+
// this copy is eagerly loaded, and since objectui#7399 these bytes are
|
|
144
|
+
// budgeted by the `i18n-locales` chunk, not `framework`. ⛔ That ceiling's
|
|
145
|
+
// headroom is deliberately NOT restated here — it moves on every
|
|
146
|
+
// re-baseline, and the figure that was here went stale.
|
|
147
|
+
// `pnpm check:eager-closure` prints it.
|
|
148
|
+
rowCeilingNote: "Mostrando los primeros {{shown}} de {{total}} registros. Acota el filtro.",
|
|
149
|
+
rowCeilingNoteUnknownTotal: "Mostrando los primeros {{shown}} registros. Acota el filtro.",
|
|
126
150
|
},
|
|
127
151
|
actions: {
|
|
128
152
|
decisionOutput: {
|
|
@@ -134,6 +158,14 @@ const es = {
|
|
|
134
158
|
acknowledge: 'Lo he guardado',
|
|
135
159
|
copyAll: 'Copiar todo',
|
|
136
160
|
},
|
|
161
|
+
notAvailableHere: '«{{action}}» no está disponible en la página actual.',
|
|
162
|
+
completedSuccessfully: 'La acción se completó correctamente',
|
|
163
|
+
failed: 'La acción falló',
|
|
164
|
+
parallelFailed: 'Una o más acciones paralelas fallaron',
|
|
165
|
+
undo: 'Deshacer',
|
|
166
|
+
undone: 'Cambio deshecho',
|
|
167
|
+
undoneOperation: 'Deshacer: {{description}}',
|
|
168
|
+
redoneOperation: 'Rehacer: {{description}}',
|
|
137
169
|
},
|
|
138
170
|
validation: {
|
|
139
171
|
// "{{field}} es obligatorio" only agreed with masculine field labels —
|
|
@@ -156,19 +188,45 @@ const es = {
|
|
|
156
188
|
},
|
|
157
189
|
form: {
|
|
158
190
|
noPermissionToSave: "No tienes permiso para guardar este registro.",
|
|
191
|
+
noPermissionToCreate: "No tienes permiso para crear registros de {{object}}. Los campos son de solo lectura.",
|
|
192
|
+
noPermissionToEdit: "No tienes permiso para editar registros de {{object}}. Los campos son de solo lectura.",
|
|
159
193
|
submitFailed: "No se pudo guardar. Inténtalo de nuevo.",
|
|
194
|
+
uploadInFlight: "Espere a que finalice la carga antes de guardar.",
|
|
195
|
+
clearedOnHide: "Se borró lo que ya no corresponde a los valores actuales: {{fields}}",
|
|
196
|
+
visibleWhenFaulted: "No se puede enviar: no se pudo evaluar la regla visibleWhen de {{fields}}. Hay que corregir la regla antes de poder enviar este formulario.",
|
|
160
197
|
discardTitle: "¿Descartar los cambios?",
|
|
161
198
|
discardMessage: "Tiene cambios sin guardar. Si cierra este formulario ahora, sus ediciones se perderán.",
|
|
162
199
|
// objectui#4024 — the create/edit dialog's `sr-only` accessible
|
|
163
200
|
// description, used when the form declares no `description` of its own.
|
|
164
201
|
dialogDescriptionFallback: "Complete los campos del formulario y luego envíe o cancele.",
|
|
202
|
+
deniedDescription: "No tienes permiso para editar este campo.",
|
|
203
|
+
masterDetail: {
|
|
204
|
+
loadingColumns: "Cargando columnas…",
|
|
205
|
+
subtotal: "Subtotal",
|
|
206
|
+
tax: "Impuesto ({{rate}}%)",
|
|
207
|
+
total: "Total",
|
|
208
|
+
lineItem: "Línea de detalle",
|
|
209
|
+
rowTitle: "{{title}} — fila {{row}}",
|
|
210
|
+
applyRow: "Aplicar",
|
|
211
|
+
editorDescription: "Introduzca el registro y sus líneas de detalle y luego guarde.",
|
|
212
|
+
noChildObject: "Esta colección no tiene configurado ningún objeto secundario: establezca {{property}} en el objeto cuyas filas enumera.",
|
|
213
|
+
schemaUnavailable: "No se pudo cargar el esquema de {{object}}, por lo que esta colección no tiene columnas que mostrar. Compruebe que el objeto existe y se puede leer, y luego vuelva a cargar.",
|
|
214
|
+
noRelationshipField: "No se pudo determinar cómo se vincula {{object}} con {{parent}}: ningún campo lookup o master_detail del objeto hace referencia al principal. Establezca {{property}} en esta colección con el campo que contiene el registro principal.",
|
|
215
|
+
},
|
|
216
|
+
lineItems: {
|
|
217
|
+
title: "Líneas de detalle",
|
|
218
|
+
saveRecordFirst: "Guarde primero el registro para agregar líneas de detalle.",
|
|
219
|
+
notLoaded: "Las líneas de detalle de este registro no se han cargado.",
|
|
220
|
+
loadFailed: "No se pudieron cargar las líneas de detalle",
|
|
221
|
+
saveFailed: "No se pudieron guardar las líneas de detalle",
|
|
222
|
+
noChildObject: "Este panel no tiene configurado ningún objeto secundario: establezca {{property}} en el objeto cuyas filas enumera.",
|
|
223
|
+
},
|
|
165
224
|
keepEditing: "Seguir editando",
|
|
166
225
|
discard: "Descartar",
|
|
167
226
|
conflictTitle: "Conflicto al guardar",
|
|
168
227
|
conflictMessage: "Otra persona modificó este registro mientras lo editaba. Sobrescribir reemplazará sus cambios por los suyos.",
|
|
169
228
|
conflictLatestVersion: "Su guardado: {{time}}",
|
|
170
229
|
conflictOverwrite: "Sobrescribir",
|
|
171
|
-
addItem: "Añadir elemento",
|
|
172
230
|
removeItem: "Eliminar elemento",
|
|
173
231
|
fieldRequired: "Este campo es obligatorio",
|
|
174
232
|
invalidFormat: "Formato no válido",
|
|
@@ -186,6 +244,12 @@ const es = {
|
|
|
186
244
|
createSuccess: "{{object}} creado",
|
|
187
245
|
updateSuccess: "{{object}} actualizado",
|
|
188
246
|
deleteSuccess: "{{object}} eliminado",
|
|
247
|
+
created: "Creado",
|
|
248
|
+
saved: "Guardado",
|
|
249
|
+
savedNamed: "{{title}} guardado",
|
|
250
|
+
submitted: "Enviado",
|
|
251
|
+
errorLoading: "Error al cargar el formulario",
|
|
252
|
+
navigateRefused: "El destino `navigateOnSuccess` declarado para este formulario fue rechazado, por lo que no se realizó la navegación.",
|
|
189
253
|
fullscreen: {
|
|
190
254
|
title: "Editar texto",
|
|
191
255
|
description: "Edita el valor de texto completo y luego guarda o cancela los cambios.",
|
|
@@ -210,6 +274,9 @@ const es = {
|
|
|
210
274
|
},
|
|
211
275
|
relativeDate: {
|
|
212
276
|
overdue: "Atrasado {{count}} d",
|
|
277
|
+
overdue_one: "Atrasado {{count}} d",
|
|
278
|
+
overdue_many: "Atrasado {{count}} d",
|
|
279
|
+
overdue_other: "Atrasado {{count}} d",
|
|
213
280
|
},
|
|
214
281
|
file: {
|
|
215
282
|
dragDropHere: 'Arrastra y suelta archivos aquí',
|
|
@@ -226,6 +293,7 @@ const es = {
|
|
|
226
293
|
remove: 'Quitar {{name}}',
|
|
227
294
|
exceedsMaxSize: '«{{name}}» supera el tamaño máximo ({{max}} MB)',
|
|
228
295
|
uploadFailed: 'Error al subir «{{name}}»: {{error}}',
|
|
296
|
+
uploadIncomplete: 'La subida de «{{name}}» no se completó: no se devolvió ningún identificador de archivo, así que no se guardó nada',
|
|
229
297
|
},
|
|
230
298
|
richText: {
|
|
231
299
|
format: "Formato: {{format}}",
|
|
@@ -253,6 +321,9 @@ const es = {
|
|
|
253
321
|
selectBusinessUnit: "Seleccionar una unidad de negocio",
|
|
254
322
|
selectPosition: "Seleccionar un puesto",
|
|
255
323
|
selectUnitAndSubordinates: "Seleccionar una unidad de negocio",
|
|
324
|
+
selectField: "Seleccionar un campo de usuario",
|
|
325
|
+
noUserFields: "Este objeto no tiene campos de usuario",
|
|
326
|
+
fieldNotUserTyped: "{{name}} — no es un campo de usuario",
|
|
256
327
|
},
|
|
257
328
|
filterCondition: {
|
|
258
329
|
selectObjectFirst: "Selecciona primero un objeto.",
|
|
@@ -263,6 +334,26 @@ const es = {
|
|
|
263
334
|
editAsJson: "Editar como JSON",
|
|
264
335
|
useVisualBuilder: "Usar el constructor visual",
|
|
265
336
|
},
|
|
337
|
+
object: {
|
|
338
|
+
invalidJson: "JSON no válido",
|
|
339
|
+
},
|
|
340
|
+
location: {
|
|
341
|
+
refusedFormat: "No guardado: introduce un par latitud, longitud (ejemplo: 30.2741, 120.1551).",
|
|
342
|
+
refusedRange: "No guardado: {{detail}}",
|
|
343
|
+
latitude: "latitud",
|
|
344
|
+
longitude: "longitud",
|
|
345
|
+
refusedResidueOne: "No guardado: {{name}} «{{text}}» no es un número. Introduce decimales simples (ejemplo: 30.2741, 120.1551).",
|
|
346
|
+
refusedResidue: "No guardado: {{name}} «{{text}}» y {{otherName}} «{{otherText}}» no son números. Introduce decimales simples (ejemplo: 30.2741, 120.1551).",
|
|
347
|
+
},
|
|
348
|
+
date: {
|
|
349
|
+
impossibleDay: "El valor guardado «{{value}}» no es una fecha real. Elige una fecha para reemplazarlo.",
|
|
350
|
+
},
|
|
351
|
+
dateTime: {
|
|
352
|
+
impossibleDay: "El valor guardado «{{value}}» no es una fecha real. Elige una fecha y una hora para reemplazarlo.",
|
|
353
|
+
},
|
|
354
|
+
number: {
|
|
355
|
+
badInput: "No guardado: el texto de este campo no es un número. Introduce un decimal simple (ejemplo: {{example}}).",
|
|
356
|
+
},
|
|
266
357
|
tags: {
|
|
267
358
|
placeholder: "Escriba y pulse Intro para añadir…",
|
|
268
359
|
},
|
|
@@ -278,6 +369,16 @@ const es = {
|
|
|
278
369
|
characterCount: "Recuento de caracteres: {{count}} de {{max}}",
|
|
279
370
|
charactersRemaining: "Caracteres restantes: {{count}}",
|
|
280
371
|
},
|
|
372
|
+
grid: {
|
|
373
|
+
addLine: "Agregar línea",
|
|
374
|
+
noItems: "Sin elementos",
|
|
375
|
+
noItemsAddHint: "Aún no hay elementos: haga clic en «{{label}}» para empezar.",
|
|
376
|
+
optionalColumns: "Columnas opcionales",
|
|
377
|
+
computed: "Calculado",
|
|
378
|
+
openRow: "Abrir fila",
|
|
379
|
+
duplicateRow: "Duplicar fila",
|
|
380
|
+
removeRow: "Quitar fila",
|
|
381
|
+
},
|
|
281
382
|
},
|
|
282
383
|
table: {
|
|
283
384
|
rowsPerPage: "Filas por página",
|
|
@@ -306,23 +407,41 @@ const es = {
|
|
|
306
407
|
open: "Abrir",
|
|
307
408
|
search: "Buscar…",
|
|
308
409
|
modified: "{{count}} filas modificadas",
|
|
410
|
+
modified_one: "{{count}} fila modificada",
|
|
411
|
+
modified_many: "{{count}} de filas modificadas",
|
|
412
|
+
modified_other: "{{count}} filas modificadas",
|
|
309
413
|
saveFailed: 'Error al guardar',
|
|
310
414
|
selected: "{{count}} seleccionados",
|
|
415
|
+
selected_one: "{{count}} seleccionado",
|
|
416
|
+
selected_many: "{{count}} seleccionados",
|
|
417
|
+
selected_other: "{{count}} seleccionados",
|
|
311
418
|
edit: "Editar",
|
|
312
419
|
delete: "Eliminar",
|
|
313
420
|
},
|
|
314
421
|
grid: {
|
|
315
422
|
bulkSelected: "{{count}} seleccionados",
|
|
423
|
+
bulkSelected_one: "{{count}} seleccionado",
|
|
424
|
+
bulkSelected_many: "{{count}} seleccionados",
|
|
425
|
+
bulkSelected_other: "{{count}} seleccionados",
|
|
316
426
|
bulkSelectedAllMatches: "{{count}} seleccionados (todas las coincidencias)",
|
|
317
427
|
bulkClear: "Quitar selección",
|
|
318
428
|
bulkAllOnPage: "Están seleccionados los {{count}} de esta página.",
|
|
429
|
+
bulkAllOnPage_one: "{{count}} registro de esta página está seleccionado.",
|
|
430
|
+
bulkAllOnPage_many: "Están seleccionados los {{count}} de esta página.",
|
|
431
|
+
bulkAllOnPage_other: "Están seleccionados los {{count}} de esta página.",
|
|
319
432
|
bulkSelectAllMatching: "Seleccionar las {{count}} coincidencias",
|
|
320
433
|
bulkAllMatchingSelected: "Están seleccionados los {{count}} registros coincidentes.",
|
|
321
434
|
bulk: {
|
|
322
435
|
confirmDefault: "Esto se aplicará a {{count}} registro(s).",
|
|
436
|
+
confirmDefault_one: "Esto se aplicará a {{count}} registro.",
|
|
437
|
+
confirmDefault_many: "Esto se aplicará a {{count}} de registros.",
|
|
438
|
+
confirmDefault_other: "Esto se aplicará a {{count}} registros.",
|
|
323
439
|
overLimit: "La selección ({{count}}) supera el límite de la acción ({{limit}}). Reduzca la selección para continuar.",
|
|
324
440
|
affectedRecords: "Registros afectados ({{count}}):",
|
|
325
441
|
skippedIneligible: '{{count}} de los registros seleccionados no son aptos para esta acción y se omitirán.',
|
|
442
|
+
skippedIneligible_one: '{{count}} de los registros seleccionados no es apto para esta acción y se omitirá.',
|
|
443
|
+
skippedIneligible_many: '{{count}} de los registros seleccionados no son aptos para esta acción y se omitirán.',
|
|
444
|
+
skippedIneligible_other: '{{count}} de los registros seleccionados no son aptos para esta acción y se omitirán.',
|
|
326
445
|
rowFallback: "Fila {{index}}",
|
|
327
446
|
andMore: "… y {{count}} más",
|
|
328
447
|
processed: "{{count}} / {{total}} procesados",
|
|
@@ -340,7 +459,6 @@ const es = {
|
|
|
340
459
|
undo: "Deshacer",
|
|
341
460
|
undoing: "Deshaciendo…",
|
|
342
461
|
done: "Listo",
|
|
343
|
-
selectPlaceholder: "Seleccionar…",
|
|
344
462
|
loading: "Cargando…",
|
|
345
463
|
},
|
|
346
464
|
actions: "Acciones",
|
|
@@ -359,6 +477,14 @@ const es = {
|
|
|
359
477
|
yes: "Sí",
|
|
360
478
|
no: "No",
|
|
361
479
|
systemFields: "Sistema",
|
|
480
|
+
// objectui#10881 — the grouped grid's two refusals: over a data source
|
|
481
|
+
// that cannot answer the group header query, and over rows a host
|
|
482
|
+
// handed in while declaring them one page of more. `queryGroupHeaders`
|
|
483
|
+
// is the member's name and stays untranslated.
|
|
484
|
+
grouping: {
|
|
485
|
+
needsHeaderQuery: "Esta vista está agrupada, pero su origen de datos no implementa queryGroupHeaders, por lo que no se pueden contar los grupos. Quite la agrupación para mostrar los registros.",
|
|
486
|
+
needsWholeRows: "La agrupación necesita todos los registros, pero esta cuadrícula recibió solo una página de ellos, por lo que no se pueden contar los grupos. Entregue todos los registros o deje que la cuadrícula los obtenga de un origen de datos que implemente queryGroupHeaders.",
|
|
487
|
+
},
|
|
362
488
|
// objectui#4024 — column-footer aggregate prefixes, keyed by the spec's
|
|
363
489
|
// `ColumnSummary` vocabulary. `pattern` owns the label/value join so this
|
|
364
490
|
// pack controls its own separator and word order.
|
|
@@ -385,10 +511,15 @@ const es = {
|
|
|
385
511
|
},
|
|
386
512
|
import: {
|
|
387
513
|
downloadTemplate: "Descargar plantilla",
|
|
388
|
-
downloadTemplateHint: "Obtenga un
|
|
514
|
+
downloadTemplateHint: "Obtenga un archivo de Excel con las columnas que puede importar (los campos obligatorios llevan *) e instrucciones para rellenarlo.",
|
|
389
515
|
templateFileName: "{{object}}-import-template",
|
|
516
|
+
templateDownloadFailed: "No se pudo descargar la plantilla. Inténtelo de nuevo.",
|
|
517
|
+
templateNotPermitted: "No tiene permiso para crear registros de este objeto, por lo que su plantilla de importación no está disponible.",
|
|
390
518
|
autoMatched: "Emparejado automáticamente",
|
|
391
519
|
autoMatchedSummary: "{{count}} columna(s) emparejada(s) automáticamente: revise y ajuste abajo.",
|
|
520
|
+
autoMatchedSummary_one: "{{count}} columna emparejada automáticamente: revise y ajuste abajo.",
|
|
521
|
+
autoMatchedSummary_many: "{{count}} de columnas emparejadas automáticamente: revise y ajuste abajo.",
|
|
522
|
+
autoMatchedSummary_other: "{{count}} columnas emparejadas automáticamente: revise y ajuste abajo.",
|
|
392
523
|
confidence: {
|
|
393
524
|
high: "Confianza alta",
|
|
394
525
|
medium: "Confianza media",
|
|
@@ -401,8 +532,17 @@ const es = {
|
|
|
401
532
|
cancelImport: "Cancelar la importación",
|
|
402
533
|
importCancelled: "Importación cancelada",
|
|
403
534
|
resultsTruncated: "Mostrando los primeros {{count}} resultados de filas (de {{total}}).",
|
|
535
|
+
resultsTruncated_one: "Mostrando el primer resultado de fila ({{count}} de {{total}}).",
|
|
536
|
+
resultsTruncated_many: "Mostrando los primeros {{count}} resultados de filas (de {{total}}).",
|
|
537
|
+
resultsTruncated_other: "Mostrando los primeros {{count}} resultados de filas (de {{total}}).",
|
|
404
538
|
createdCount: "{{count}} creados",
|
|
539
|
+
createdCount_one: "{{count}} creado",
|
|
540
|
+
createdCount_many: "{{count}} creados",
|
|
541
|
+
createdCount_other: "{{count}} creados",
|
|
405
542
|
updatedCount: "{{count}} actualizados",
|
|
543
|
+
updatedCount_one: "{{count}} actualizado",
|
|
544
|
+
updatedCount_many: "{{count}} actualizados",
|
|
545
|
+
updatedCount_other: "{{count}} actualizados",
|
|
406
546
|
downloadFailed: "Descargar las filas con error",
|
|
407
547
|
options: "Opciones de importación",
|
|
408
548
|
writeMode: "Cuando una fila coincide con un registro existente",
|
|
@@ -450,6 +590,9 @@ const es = {
|
|
|
450
590
|
historyColResult: "Resultado",
|
|
451
591
|
historyColTime: "Cuándo",
|
|
452
592
|
errorCount: "{{count}} errores",
|
|
593
|
+
errorCount_one: "{{count}} error",
|
|
594
|
+
errorCount_many: "{{count}} de errores",
|
|
595
|
+
errorCount_other: "{{count}} errores",
|
|
453
596
|
undoImport: "Deshacer la importación",
|
|
454
597
|
undoing: "Deshaciendo…",
|
|
455
598
|
undoConfirm: "¿Deshacer esta importación? Los registros que creó se eliminarán y los que actualizó se restaurarán a sus valores anteriores.",
|
|
@@ -510,7 +653,13 @@ const es = {
|
|
|
510
653
|
mapped: "Asignado",
|
|
511
654
|
skipped: "Omitido",
|
|
512
655
|
rowsWithErrors: "{{count}} fila(s) con errores",
|
|
656
|
+
rowsWithErrors_one: "{{count}} fila con errores",
|
|
657
|
+
rowsWithErrors_many: "{{count}} de filas con errores",
|
|
658
|
+
rowsWithErrors_other: "{{count}} filas con errores",
|
|
513
659
|
rowsCorrected: "{{count}} fila(s) corregida(s)",
|
|
660
|
+
rowsCorrected_one: "{{count}} fila corregida",
|
|
661
|
+
rowsCorrected_many: "{{count}} de filas corregidas",
|
|
662
|
+
rowsCorrected_other: "{{count}} filas corregidas",
|
|
514
663
|
clickToFix: "— haga clic en una celda resaltada para editar en línea.",
|
|
515
664
|
showingRows: "Mostrando {{shown}} de {{total}} filas",
|
|
516
665
|
importing: "Importando… {{progress}}%",
|
|
@@ -518,11 +667,17 @@ const es = {
|
|
|
518
667
|
imported: "{{count}} importado(s)",
|
|
519
668
|
skippedCount: "{{count}} omitido(s)",
|
|
520
669
|
moreErrors: "…y {{count}} error(es) más",
|
|
670
|
+
moreErrors_one: "…y {{count}} error más",
|
|
671
|
+
moreErrors_many: "…y {{count}} de errores más",
|
|
672
|
+
moreErrors_other: "…y {{count}} errores más",
|
|
521
673
|
cancel: "Cancelar",
|
|
522
674
|
back: "Atrás",
|
|
523
675
|
next: "Siguiente",
|
|
524
676
|
close: "Cerrar",
|
|
525
677
|
importNRows: "Importar {{count}} filas",
|
|
678
|
+
importNRows_one: "Importar {{count}} fila",
|
|
679
|
+
importNRows_many: "Importar {{count}} de filas",
|
|
680
|
+
importNRows_other: "Importar {{count}} filas",
|
|
526
681
|
importingProgress: "Importando…",
|
|
527
682
|
requiredMark: "*",
|
|
528
683
|
required: "Obligatorio",
|
|
@@ -534,11 +689,38 @@ const es = {
|
|
|
534
689
|
month: "Mes",
|
|
535
690
|
week: "Semana",
|
|
536
691
|
day: "Día",
|
|
537
|
-
agenda: "Agenda",
|
|
538
692
|
allDay: "Todo el día",
|
|
539
|
-
noEvents: "Sin eventos",
|
|
540
693
|
newEvent: "Nuevo evento",
|
|
541
694
|
moreEvents: "+{{count}} más",
|
|
695
|
+
unscheduled: "Sin programar ({{count}})",
|
|
696
|
+
loading: "Cargando calendario…",
|
|
697
|
+
loadError: "Error: {{message}}",
|
|
698
|
+
configRequired: "Se requiere la configuración del calendario. Indica startDateField, la única clave obligatoria del calendario; el título del evento se resuelve sin titleField.",
|
|
699
|
+
configRequiredHint: "Pertenece al bloque calendar de la vista. Una página de interfaz no tiene su propio espacio de calendario: apunta su sourceView a una vista que declare uno.",
|
|
700
|
+
eventDetails: "Detalles del evento",
|
|
701
|
+
pullToRefresh: "Desliza para actualizar",
|
|
702
|
+
refreshing: "Actualizando…",
|
|
703
|
+
onDate: "El {{date}}",
|
|
704
|
+
eventTitle: "Título",
|
|
705
|
+
eventTitlePlaceholder: "¿De qué trata este evento?",
|
|
706
|
+
creating: "Creando…",
|
|
707
|
+
titleRequired: "El título es obligatorio",
|
|
708
|
+
a11y: {
|
|
709
|
+
region: "Calendario",
|
|
710
|
+
grid: "Cuadrícula del calendario",
|
|
711
|
+
goToToday: "Ir a hoy",
|
|
712
|
+
previousPeriod: "Período anterior",
|
|
713
|
+
nextPeriod: "Período siguiente",
|
|
714
|
+
currentDate: "Fecha actual: {{date}}",
|
|
715
|
+
dayCell: "{{date}}, {{count}} eventos",
|
|
716
|
+
dayCell_one: "{{date}}, {{count}} evento",
|
|
717
|
+
dayCell_many: "{{date}}, {{count}} de eventos",
|
|
718
|
+
dayCell_other: "{{date}}, {{count}} eventos",
|
|
719
|
+
resizeEventEnd: "Cambiar el fin del evento",
|
|
720
|
+
resizeEventEndHint: "Arrastra para cambiar la fecha de fin",
|
|
721
|
+
resizeStart: "Cambiar el inicio",
|
|
722
|
+
resizeEnd: "Cambiar el fin",
|
|
723
|
+
},
|
|
542
724
|
},
|
|
543
725
|
list: {
|
|
544
726
|
firstRunTitle: "Aquí todavía no hay nada",
|
|
@@ -581,7 +763,9 @@ const es = {
|
|
|
581
763
|
refresh: "Actualizar",
|
|
582
764
|
loading: "Cargando registros…",
|
|
583
765
|
recordCount: "{{count}} registros",
|
|
584
|
-
|
|
766
|
+
recordCount_one: "{{count}} registro",
|
|
767
|
+
recordCount_many: "{{count}} de registros",
|
|
768
|
+
recordCount_other: "{{count}} registros",
|
|
585
769
|
addRecord: "Agregar registro",
|
|
586
770
|
tabs: "Pestañas",
|
|
587
771
|
allRecords: "Todos los registros",
|
|
@@ -613,7 +797,7 @@ const es = {
|
|
|
613
797
|
hideFieldsTitle: "Ocultar campos",
|
|
614
798
|
dataLimitReached: "Se muestran los primeros {{limit}} registros. Puede haber más datos disponibles.",
|
|
615
799
|
viewSettings: "Configuración de vista",
|
|
616
|
-
viewSettingsHint: "Agrupación, color, densidad y campos visibles.",
|
|
800
|
+
viewSettingsHint: "Agrupación, color, densidad y campos visibles. Se aplica a todos los usuarios de esta vista.",
|
|
617
801
|
addGroup: "Agregar campo de grupo",
|
|
618
802
|
collapsedByDefault: "Contraído por defecto",
|
|
619
803
|
removeGroup: "Eliminar",
|
|
@@ -678,6 +862,17 @@ const es = {
|
|
|
678
862
|
},
|
|
679
863
|
gantt: {
|
|
680
864
|
rowLabel: "Elementos",
|
|
865
|
+
unusableRange: {
|
|
866
|
+
malformedDate: "Rango de fechas del gantt inutilizable: {{path}} es {{value}}, que no es una fecha válida. Todas las fechas del gantt deben poder analizarse: startDate y endDate de cada elemento de fila, además de cualquier minDate / maxDate fijado en el esquema.",
|
|
867
|
+
malformedRow: "Filas del gantt inutilizables: {{path}} es {{value}}, que no tiene la forma de una fila. Un gantt lee items como una lista de filas, cada fila como un objeto con label y sus propios items, y los items de cada fila como una lista de barras; un null, un número, una cadena o un objeto simple en cualquiera de esas posiciones no se puede dibujar.",
|
|
868
|
+
inverted: "Rango de fechas del gantt inutilizable: minDate {{minDate}} es posterior a maxDate {{maxDate}}. Un minDate / maxDate fijado prevalece sobre el rango calculado a partir de las filas, por lo que este eje no tiene columnas y no se puede colocar ninguna barra; intercambie los dos valores.",
|
|
869
|
+
},
|
|
870
|
+
},
|
|
871
|
+
unsupported: {
|
|
872
|
+
objectBoundGantt: "Variante \"gantt\" no admitida: una línea de tiempo vinculada a un objeto representa las variantes de feed ({{variants}}). Gantt necesita filas literales, cada una con sus propios items anidados, por lo que el eje gantt (scale) no tiene efecto aquí.",
|
|
873
|
+
},
|
|
874
|
+
unconfigured: {
|
|
875
|
+
noDateAxis: "Se requiere el eje de fechas de la línea de tiempo: esta vista no declara ningún campo de fecha y una línea de tiempo vinculada a un objeto no inventa ninguno. Declare uno de: {{fields}}. El primero es la grafía de la especificación; los demás son alias heredados.",
|
|
681
876
|
},
|
|
682
877
|
},
|
|
683
878
|
gantt: {
|
|
@@ -695,6 +890,7 @@ const es = {
|
|
|
695
890
|
},
|
|
696
891
|
aria: {
|
|
697
892
|
taskList: "Lista de tareas",
|
|
893
|
+
refreshing: "Actualizando…",
|
|
698
894
|
},
|
|
699
895
|
tooltip: {
|
|
700
896
|
days: "d",
|
|
@@ -740,13 +936,22 @@ const es = {
|
|
|
740
936
|
conflict: {
|
|
741
937
|
title: "Conflicto de programación",
|
|
742
938
|
body: "Este movimiento entra en conflicto con las restricciones de dependencia. ¿Reprogramar automáticamente {{count}} tarea(s) afectada(s)?",
|
|
939
|
+
body_one: "Este movimiento entra en conflicto con las restricciones de dependencia. ¿Reprogramar automáticamente {{count}} tarea afectada?",
|
|
940
|
+
body_many: "Este movimiento entra en conflicto con las restricciones de dependencia. ¿Reprogramar automáticamente {{count}} de tareas afectadas?",
|
|
941
|
+
body_other: "Este movimiento entra en conflicto con las restricciones de dependencia. ¿Reprogramar automáticamente {{count}} tareas afectadas?",
|
|
743
942
|
confirm: "Reprogramar automáticamente",
|
|
744
943
|
cancel: "Dejarlo como está",
|
|
745
944
|
},
|
|
746
945
|
autoScheduleDlg: {
|
|
747
946
|
title: "Programación automática",
|
|
748
947
|
body: "¿Retrasar {{count}} tarea(s) para respetar los vínculos de dependencia?",
|
|
948
|
+
body_one: "¿Retrasar {{count}} tarea para respetar los vínculos de dependencia?",
|
|
949
|
+
body_many: "¿Retrasar {{count}} de tareas para respetar los vínculos de dependencia?",
|
|
950
|
+
body_other: "¿Retrasar {{count}} tareas para respetar los vínculos de dependencia?",
|
|
749
951
|
skipped: "{{count}} tarea(s) bloqueada(s) también incumplen los vínculos y se han omitido.",
|
|
952
|
+
skipped_one: "{{count}} tarea bloqueada también incumple los vínculos y se ha omitido.",
|
|
953
|
+
skipped_many: "{{count}} de tareas bloqueadas también incumplen los vínculos y se han omitido.",
|
|
954
|
+
skipped_other: "{{count}} tareas bloqueadas también incumplen los vínculos y se han omitido.",
|
|
750
955
|
confirm: "Aplicar",
|
|
751
956
|
cancel: "Cancelar",
|
|
752
957
|
none: "Todas las dependencias se cumplen: no hay nada que reprogramar.",
|
|
@@ -825,6 +1030,7 @@ const es = {
|
|
|
825
1030
|
tabActionsFor: "Acciones de vista para {{name}}",
|
|
826
1031
|
readonlyAriaLabel: "Vista de solo lectura",
|
|
827
1032
|
readonlyTooltip: "Vista del sistema — definida en el código, solo lectura.",
|
|
1033
|
+
malformedFilter: "El filtro de esta vista no es válido, por lo que no se muestra ningún registro: la condición {{subject}} no se puede aplicar.",
|
|
828
1034
|
},
|
|
829
1035
|
designer: {
|
|
830
1036
|
undo: "Deshacer",
|
|
@@ -850,7 +1056,9 @@ const es = {
|
|
|
850
1056
|
pageHeaderActions: "Acciones del encabezado de página",
|
|
851
1057
|
emojiPicker: "Selector de emojis",
|
|
852
1058
|
reactionCount: "{{emoji}} {{count}} reacciones",
|
|
853
|
-
|
|
1059
|
+
reactionCount_one: "{{emoji}} {{count}} reacción",
|
|
1060
|
+
reactionCount_many: "{{emoji}} {{count}} de reacciones",
|
|
1061
|
+
reactionCount_other: "{{emoji}} {{count}} reacciones",
|
|
854
1062
|
recordDetail: "Detalle del registro",
|
|
855
1063
|
recordDetailWithLabel: "Detalle de {{label}}",
|
|
856
1064
|
openAsFullPage: "Abrir como página completa",
|
|
@@ -877,7 +1085,6 @@ const es = {
|
|
|
877
1085
|
viewAll: "Ver todo",
|
|
878
1086
|
new: "Nuevo",
|
|
879
1087
|
add: "Agregar",
|
|
880
|
-
emptyValue: "—",
|
|
881
1088
|
comments: "Comentarios",
|
|
882
1089
|
searchComments: "Buscar comentarios…",
|
|
883
1090
|
addCommentPlaceholder: "Añadir comentario… (Ctrl+Enter para enviar)",
|
|
@@ -888,11 +1095,22 @@ const es = {
|
|
|
888
1095
|
unpin: "Desfijar",
|
|
889
1096
|
justNow: "justo ahora",
|
|
890
1097
|
minutesAgo: "hace {{count}} min",
|
|
1098
|
+
minutesAgo_one: "hace {{count}} min",
|
|
1099
|
+
minutesAgo_many: "hace {{count}} min",
|
|
1100
|
+
minutesAgo_other: "hace {{count}} min",
|
|
891
1101
|
hoursAgo: "hace {{count}} h",
|
|
1102
|
+
hoursAgo_one: "hace {{count}} h",
|
|
1103
|
+
hoursAgo_many: "hace {{count}} h",
|
|
1104
|
+
hoursAgo_other: "hace {{count}} h",
|
|
892
1105
|
daysAgo: "hace {{count}} d",
|
|
1106
|
+
daysAgo_one: "hace {{count}} d",
|
|
1107
|
+
daysAgo_many: "hace {{count}} d",
|
|
1108
|
+
daysAgo_other: "hace {{count}} d",
|
|
893
1109
|
dropFilesToUpload: "Arrastra archivos aquí o haz clic para subir",
|
|
894
1110
|
attachmentCount: "{{count}} archivo adjunto",
|
|
895
|
-
|
|
1111
|
+
attachmentCount_one: "{{count}} archivo adjunto",
|
|
1112
|
+
attachmentCount_many: "{{count}} de archivos adjuntos",
|
|
1113
|
+
attachmentCount_other: "{{count}} archivos adjuntos",
|
|
896
1114
|
removeAttachment: "Eliminar adjunto",
|
|
897
1115
|
// Record Attachments panel (enable.files, objectstack#4358)
|
|
898
1116
|
attachments: "Adjuntos",
|
|
@@ -910,11 +1128,6 @@ const es = {
|
|
|
910
1128
|
attachmentsLoadFailed: "No se pudieron cargar los adjuntos de este registro.",
|
|
911
1129
|
attachmentsApiUnavailable: "La lista de adjuntos no está disponible en este objeto.",
|
|
912
1130
|
retryLoadAttachments: "Reintentar",
|
|
913
|
-
unifiedDiff: "Vista unificada",
|
|
914
|
-
sideBySideDiff: "Vista lado a lado",
|
|
915
|
-
noChanges: "Sin cambios",
|
|
916
|
-
previousVersion: "Anterior",
|
|
917
|
-
currentVersion: "Actual",
|
|
918
1131
|
discussion: "Discusión",
|
|
919
1132
|
showDiscussion: "Mostrar discusión ({{count}})",
|
|
920
1133
|
hideDiscussion: "Ocultar discusión",
|
|
@@ -929,25 +1142,36 @@ const es = {
|
|
|
929
1142
|
writeComment: "Escribe un comentario…",
|
|
930
1143
|
subscribedTooltip: "Suscrito — clic para cancelar suscripción",
|
|
931
1144
|
unsubscribedTooltip: "Suscribirse a notificaciones",
|
|
932
|
-
firstRecord: "Primer registro (Inicio)",
|
|
933
|
-
previousRecordKey: "Registro anterior (←)",
|
|
934
|
-
nextRecordKey: "Siguiente registro (→)",
|
|
935
|
-
lastRecord: "Último registro (Fin)",
|
|
936
1145
|
noRecords: "Sin registros",
|
|
937
|
-
searchWhileNavigating: "Buscar mientras navegas",
|
|
938
|
-
searchRecords: "Buscar registros…",
|
|
939
1146
|
allActivity: "Toda la actividad",
|
|
940
1147
|
commentsOnly: "Solo comentarios",
|
|
941
1148
|
fieldChangesFilter: "Cambios de campo",
|
|
942
1149
|
tasksOnly: "Solo tareas",
|
|
943
1150
|
leaveCommentPlaceholder: "Deja un comentario… (Ctrl+Enter para enviar)",
|
|
944
1151
|
noActivity: "Sin actividad registrada",
|
|
1152
|
+
activityAccessDenied: "No tiene permiso para ver la actividad de este registro.",
|
|
1153
|
+
commentsAccessDenied: "No tiene permiso para ver los comentarios de este registro.",
|
|
1154
|
+
// objectui#7149 — the rest of `ActivityTimeline`. The four chip labels the
|
|
1155
|
+
// `detail.*` pack did not already name, and the `formatFieldChange`
|
|
1156
|
+
// sentences, which are assembled in code and so need interpolation holes.
|
|
1157
|
+
allFilter: 'Todo',
|
|
1158
|
+
createsFilter: 'Creaciones',
|
|
1159
|
+
deletesFilter: 'Eliminaciones',
|
|
1160
|
+
statusChangesFilter: 'Cambios de estado',
|
|
1161
|
+
activityEmptyValue: '(vacío)',
|
|
1162
|
+
activityFieldChanged: 'Cambió {{field}} de "{{old}}" a "{{new}}"',
|
|
1163
|
+
activityCreated: 'Creó este registro',
|
|
1164
|
+
activityDeleted: 'Eliminó este registro',
|
|
1165
|
+
activityStatusChanged: 'Cambió el estado a "{{value}}"',
|
|
1166
|
+
activityUpdated: 'Actualizó el registro',
|
|
945
1167
|
loadMore: "Cargar más",
|
|
946
1168
|
edited: "(editado)",
|
|
947
1169
|
via: "vía {{source}}",
|
|
948
1170
|
viewSource: "Ver origen",
|
|
949
1171
|
replyCount: "{{count}} respuesta",
|
|
950
|
-
|
|
1172
|
+
replyCount_one: "{{count}} respuesta",
|
|
1173
|
+
replyCount_many: "{{count}} de respuestas",
|
|
1174
|
+
replyCount_other: "{{count}} respuestas",
|
|
951
1175
|
replyPlaceholder: "Responder…",
|
|
952
1176
|
filterActivity: "Filtrar actividad",
|
|
953
1177
|
openDiscussion: "Abrir panel de discusión",
|
|
@@ -962,6 +1186,7 @@ const es = {
|
|
|
962
1186
|
writeStrippedReadonly: "De solo lectura, por lo que no se aplicó: {{fields}}",
|
|
963
1187
|
writeStrippedByState: "No editable en el estado actual de este registro, por lo que no se aplicó: {{fields}}",
|
|
964
1188
|
writeStrippedPrimaryKey: "El identificador del registro no se puede cambiar al guardar, por lo que no se aplicó: {{fields}}",
|
|
1189
|
+
writeStrippedComputed: "Lo calcula el servidor mediante una fórmula, por lo que el valor enviado no se aplicó: {{fields}}",
|
|
965
1190
|
writeStrippedUnknownReason: "No aplicado por el servidor: {{fields}}",
|
|
966
1191
|
approvalPendingEditable: "En aprobación · editable",
|
|
967
1192
|
approvalPendingTooltip: "Este registro tiene una solicitud de aprobación pendiente; este paso todavía permite la edición",
|
|
@@ -983,6 +1208,8 @@ const es = {
|
|
|
983
1208
|
pathStageLostUpcoming: '{{stage}}, perdida, no alcanzada',
|
|
984
1209
|
pathStageWonUpcoming: '{{stage}}, etapa objetivo, no alcanzada',
|
|
985
1210
|
linkCopied: "Enlace copiado al portapapeles",
|
|
1211
|
+
commentFailed: "Tu comentario no se ha publicado. No se ha guardado nada; inténtalo de nuevo.",
|
|
1212
|
+
reactionFailed: "Tu reacción no se ha guardado. Inténtalo de nuevo.",
|
|
986
1213
|
linkCopyFailed: "No se pudo copiar el enlace",
|
|
987
1214
|
cancel: "Cancelar",
|
|
988
1215
|
cancelEdit: "Descartar cambios",
|
|
@@ -1012,39 +1239,69 @@ const es = {
|
|
|
1012
1239
|
sortBy: "Ordenar por",
|
|
1013
1240
|
filterPlaceholder: "Filtrar…",
|
|
1014
1241
|
highlightFields: "Campos clave",
|
|
1242
|
+
highlightsLabel: "Campos clave del registro",
|
|
1015
1243
|
createdBy: "Creado por",
|
|
1016
1244
|
updatedBy: "Actualizado por",
|
|
1017
1245
|
created: "Creado",
|
|
1018
1246
|
updated: "Actualizado",
|
|
1019
|
-
// objectui#3863 — base key
|
|
1020
|
-
//
|
|
1247
|
+
// objectui#3863 — base key, answering only a call made without a count. es's
|
|
1248
|
+
// `many` (exact millions) has its own slot since objectui#11432; it repeats
|
|
1249
|
+
// `_other` here because the count governs no noun complement.
|
|
1021
1250
|
showEmptyRelated: "+ {{count}} vacíos",
|
|
1022
1251
|
showEmptyRelated_one: "+ {{count}} vacío",
|
|
1252
|
+
showEmptyRelated_many: "+ {{count}} vacíos",
|
|
1023
1253
|
showEmptyRelated_other: "+ {{count}} vacíos",
|
|
1024
1254
|
copyEmail: "Copiar correo",
|
|
1025
1255
|
copyPhone: "Copiar teléfono",
|
|
1026
1256
|
copyRecordId: "Copiar ID de registro",
|
|
1027
1257
|
showEmptyFields: "Mostrar {{count}} campos vacíos",
|
|
1258
|
+
showEmptyFields_one: "Mostrar {{count}} campo vacío",
|
|
1259
|
+
showEmptyFields_many: "Mostrar {{count}} de campos vacíos",
|
|
1260
|
+
showEmptyFields_other: "Mostrar {{count}} campos vacíos",
|
|
1028
1261
|
hideEmptyFields: "Ocultar campos vacíos",
|
|
1029
1262
|
noValue: "Sin valor",
|
|
1263
|
+
unresolvedReference: "Referencia sin resolver: {{value}} no se resolvió como un usuario",
|
|
1264
|
+
unresolvedLookupReference: "Referencia sin resolver: {{value}} no se resolvió como un registro en esta pantalla",
|
|
1265
|
+
repeaterItemCount: "{{count}} elementos",
|
|
1266
|
+
repeaterItemCount_one: "{{count}} elemento",
|
|
1267
|
+
repeaterItemCount_many: "{{count}} de elementos",
|
|
1268
|
+
repeaterItemCount_other: "{{count}} elementos",
|
|
1269
|
+
fileCount: "{{count}} archivos",
|
|
1270
|
+
fileCount_one: "{{count}} archivo",
|
|
1271
|
+
fileCount_many: "{{count}} de archivos",
|
|
1272
|
+
fileCount_other: "{{count}} archivos",
|
|
1030
1273
|
},
|
|
1031
1274
|
chart: {
|
|
1032
|
-
noData: "No hay datos de gráfico disponibles",
|
|
1033
1275
|
loading: "Cargando gráfico…",
|
|
1276
|
+
refreshing: "Actualizando…",
|
|
1034
1277
|
nullCategory: "(Sin especificar)",
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
markersCount: "{{count}} marcadores",
|
|
1040
|
-
invalidCoordinates: "{{count}} registro con coordenadas faltantes o inválidas excluido del mapa.",
|
|
1041
|
-
invalidCoordinatesPlural: "{{count}} registros con coordenadas faltantes o inválidas excluidos del mapa.",
|
|
1278
|
+
scatterOneMeasure: "Un gráfico de dispersión traza una sola medida. Conserve una sola serie:",
|
|
1279
|
+
unconfigured: {
|
|
1280
|
+
noCategoryAxis: "Se requiere el eje de categorías del gráfico — un gráfico vinculado a un objeto no lo inventa. Declare uno de:",
|
|
1281
|
+
},
|
|
1042
1282
|
},
|
|
1043
1283
|
dashboard: {
|
|
1044
|
-
|
|
1284
|
+
// objectui#7063 — the DEFAULT empty state every dashboard widget renders
|
|
1285
|
+
// when its query SUCCEEDED and returned nothing. It replaced the terse
|
|
1286
|
+
// per-widget `noRows` / `noDataAvailable` fragments at the render site;
|
|
1287
|
+
// objectui#7125 deleted those two keys from all ten packs once nothing
|
|
1288
|
+
// read them. The copy here has to read as a state rather than a failure,
|
|
1289
|
+
// which is why it says the widget loaded. `sourceLabel` carries its own
|
|
1290
|
+
// punctuation so the call site concatenates no separator (see
|
|
1291
|
+
// `WidgetEmptyState`).
|
|
1292
|
+
empty: {
|
|
1293
|
+
title: "Aún no hay datos",
|
|
1294
|
+
message: "Este widget se cargó correctamente, pero la consulta todavía no ha devuelto ningún registro.",
|
|
1295
|
+
sourceLabel: "Origen de datos:",
|
|
1296
|
+
},
|
|
1045
1297
|
loading: "Cargando…",
|
|
1298
|
+
refreshing: "Actualizando…",
|
|
1299
|
+
refreshAll: "Actualizar todo",
|
|
1300
|
+
refreshDashboard: "Actualizar panel de control",
|
|
1046
1301
|
pickMeasures: "Elija medidas (valores) para este widget de dataset.",
|
|
1047
1302
|
datasetUnsupported: "Esta fuente de datos no admite consultas de dataset.",
|
|
1303
|
+
widgetForbiddenTitle: "Sin acceso",
|
|
1304
|
+
widgetForbiddenMessage: "No tienes permiso para ver los datos de este widget.",
|
|
1048
1305
|
details: "Detalles",
|
|
1049
1306
|
exportCsv: "Exportar CSV",
|
|
1050
1307
|
openInList: "Abrir en la lista",
|
|
@@ -1072,12 +1329,10 @@ const es = {
|
|
|
1072
1329
|
},
|
|
1073
1330
|
},
|
|
1074
1331
|
addWidget: "Añadir widget",
|
|
1075
|
-
removeWidget: "Eliminar widget",
|
|
1076
1332
|
editLayout: "Editar diseño",
|
|
1077
1333
|
saveLayout: "Guardar diseño",
|
|
1078
1334
|
resetLayout: "Restablecer diseño",
|
|
1079
1335
|
total: "Total",
|
|
1080
|
-
noDataAvailable: "Sin datos disponibles",
|
|
1081
1336
|
noDataSourceFor: "Sin fuente de datos para",
|
|
1082
1337
|
config: {
|
|
1083
1338
|
breadcrumb: {
|
|
@@ -1199,10 +1454,6 @@ const es = {
|
|
|
1199
1454
|
appDescription: "Descripción",
|
|
1200
1455
|
appIcon: "Icono",
|
|
1201
1456
|
template: "Plantilla",
|
|
1202
|
-
layout: "Diseño",
|
|
1203
|
-
layoutSidebar: "Barra lateral",
|
|
1204
|
-
layoutHeader: "Encabezado",
|
|
1205
|
-
layoutEmpty: "Vacío",
|
|
1206
1457
|
selectObjects: "Seleccionar objetos",
|
|
1207
1458
|
searchObjects: "Buscar objetos…",
|
|
1208
1459
|
selectAll: "Seleccionar todo",
|
|
@@ -1211,7 +1462,6 @@ const es = {
|
|
|
1211
1462
|
addGroup: "Agregar grupo",
|
|
1212
1463
|
addUrl: "Agregar URL",
|
|
1213
1464
|
addSeparator: "Agregar separador",
|
|
1214
|
-
noNavItems: "Aún no hay elementos de navegación.",
|
|
1215
1465
|
logoUrl: "URL del logo",
|
|
1216
1466
|
primaryColor: "Color primario",
|
|
1217
1467
|
faviconUrl: "URL del favicon",
|
|
@@ -1238,13 +1488,12 @@ const es = {
|
|
|
1238
1488
|
appearance: "Apariencia",
|
|
1239
1489
|
rowHeight: "Altura de fila",
|
|
1240
1490
|
livePreview: "Vista previa en vivo",
|
|
1241
|
-
stepBasicDesc: "Nombre, título
|
|
1491
|
+
stepBasicDesc: "Nombre, título e icono",
|
|
1242
1492
|
stepObjectsDesc: "Seleccionar objetos de negocio",
|
|
1243
1493
|
stepNavigationDesc: "Construir árbol de navegación",
|
|
1244
1494
|
stepBrandingDesc: "Logo, colores y favicon",
|
|
1245
1495
|
noObjectsFound: "No se encontraron objetos.",
|
|
1246
1496
|
noNavItemsHint: "Aún no hay elementos de navegación. Seleccione objetos en el paso anterior o agregue elementos manualmente.",
|
|
1247
|
-
separator: "Separador",
|
|
1248
1497
|
separatorLabel: "— Separador —",
|
|
1249
1498
|
newGroup: "Nuevo grupo",
|
|
1250
1499
|
newLink: "Nuevo enlace",
|
|
@@ -1278,6 +1527,7 @@ const es = {
|
|
|
1278
1527
|
navTypeSeparator: "Separador",
|
|
1279
1528
|
navTypeAction: "Acción",
|
|
1280
1529
|
navTypeComponent: "Componente",
|
|
1530
|
+
navTypeDoc: "Documento",
|
|
1281
1531
|
navEditIcon: "Editar icono",
|
|
1282
1532
|
navToggleVisible: "Alternar visibilidad",
|
|
1283
1533
|
navHidden: "Oculto",
|
|
@@ -1355,11 +1605,8 @@ const es = {
|
|
|
1355
1605
|
defaultValue: "Valor predeterminado",
|
|
1356
1606
|
placeholder: "Marcador de posición",
|
|
1357
1607
|
referenceTo: "Referencia a",
|
|
1358
|
-
formula: "Fórmula",
|
|
1359
1608
|
options: "Opciones",
|
|
1360
1609
|
addOption: "Agregar opción",
|
|
1361
|
-
validationRules: "Reglas de validación",
|
|
1362
|
-
addRule: "Agregar regla",
|
|
1363
1610
|
systemBadge: "Sistema",
|
|
1364
1611
|
ungrouped: "General",
|
|
1365
1612
|
deleteConfirmTitle: "¿Eliminar campo?",
|
|
@@ -1378,7 +1625,23 @@ const es = {
|
|
|
1378
1625
|
},
|
|
1379
1626
|
},
|
|
1380
1627
|
console: {
|
|
1628
|
+
studio: {
|
|
1629
|
+
backToHome: "Volver al inicio",
|
|
1630
|
+
},
|
|
1381
1631
|
saveAdvisoryTitle: "Guardado: la comprobación de creación generó {{count}} recomendación(es)",
|
|
1632
|
+
saveAdvisoryTitle_one: "Guardado: la comprobación de creación generó {{count}} recomendación",
|
|
1633
|
+
saveAdvisoryTitle_many: "Guardado: la comprobación de creación generó {{count}} de recomendaciones",
|
|
1634
|
+
saveAdvisoryTitle_other: "Guardado: la comprobación de creación generó {{count}} recomendaciones",
|
|
1635
|
+
publishAdvisoryTitle: "Publicado: la comprobación de creación generó {{count}} recomendación(es)",
|
|
1636
|
+
publishAdvisoryTitle_one: "Publicado: la comprobación de creación generó {{count}} recomendación",
|
|
1637
|
+
publishAdvisoryTitle_many: "Publicado: la comprobación de creación generó {{count}} de recomendaciones",
|
|
1638
|
+
publishAdvisoryTitle_other: "Publicado: la comprobación de creación generó {{count}} recomendaciones",
|
|
1639
|
+
importMappingsUnavailable: "No se pudieron cargar las asignaciones de importación guardadas de {{object}}",
|
|
1640
|
+
importMappingsRefused: "El servidor rechazó esta solicitud, por lo que la lista está vacía porque no se pudo leer, no porque no haya nada registrado. Vuelve a iniciar sesión o pide acceso a un administrador.",
|
|
1641
|
+
importMappingsUnreadable: "Esta lista está vacía porque no se pudo leer, no porque no haya nada registrado. Inténtalo de nuevo e informa del problema si continúa.",
|
|
1642
|
+
savedViewsUnavailable: "No se pudieron cargar las vistas guardadas de {{object}}",
|
|
1643
|
+
savedViewsRefused: "El servidor rechazó esta solicitud, por lo que la lista está vacía porque no se pudo leer, no porque este objeto no tenga vistas guardadas. Vuelve a iniciar sesión o pide acceso a un administrador.",
|
|
1644
|
+
savedViewsUnreadable: "Esta lista está vacía porque no se pudo leer, no porque este objeto no tenga vistas guardadas. Inténtalo de nuevo e informa del problema si continúa.",
|
|
1382
1645
|
settingsHub: {
|
|
1383
1646
|
title: "Configuración",
|
|
1384
1647
|
subtitle: "Configure su espacio de trabajo, las integraciones y los indicadores de funciones.",
|
|
@@ -1439,9 +1702,18 @@ const es = {
|
|
|
1439
1702
|
statusFull: "Límite alcanzado",
|
|
1440
1703
|
resetsDaily: "Se restablece esta noche",
|
|
1441
1704
|
resetsMonthly: "Se restablece en el próximo ciclo",
|
|
1705
|
+
resetsWeeklyDays: "Se restablece en {{count}} días",
|
|
1706
|
+
resetsWeeklyDays_one: "Se restablece en {{count}} día",
|
|
1707
|
+
resetsWeeklyDays_many: "Se restablece en {{count}} de días",
|
|
1708
|
+
resetsWeeklyDays_other: "Se restablece en {{count}} días",
|
|
1709
|
+
resetsWeeklyHours: "Se restablece en {{count}} horas",
|
|
1710
|
+
resetsWeeklyHours_one: "Se restablece en {{count}} hora",
|
|
1711
|
+
resetsWeeklyHours_many: "Se restablece en {{count}} de horas",
|
|
1712
|
+
resetsWeeklyHours_other: "Se restablece en {{count}} horas",
|
|
1442
1713
|
ctaUpgrade: "Mejore el plan para continuar",
|
|
1443
1714
|
ctaTopUp: "Añada créditos para continuar",
|
|
1444
1715
|
ariaLabel: "Uso de IA: {{status}}",
|
|
1716
|
+
breakdownTitle: "Usado hasta ahora",
|
|
1445
1717
|
},
|
|
1446
1718
|
workspaceTitle: "Espacio de trabajo de IA",
|
|
1447
1719
|
workspaceSubtitle: "Pregunte, inspeccione y retome conversaciones",
|
|
@@ -1451,6 +1723,31 @@ const es = {
|
|
|
1451
1723
|
share: "Compartir",
|
|
1452
1724
|
shareTitle: "Compartir esta conversación",
|
|
1453
1725
|
shareDisabledTitle: "Empiece a chatear para habilitar el uso compartido",
|
|
1726
|
+
buildDoctor: "Diagnóstico de compilación",
|
|
1727
|
+
buildDoctorTitle: "Diagnóstico de compilación — ¿qué se aplicó realmente?",
|
|
1728
|
+
buildDoctorDisabledTitle: "Envíe primero un mensaje",
|
|
1729
|
+
buildDoctorDrawer: {
|
|
1730
|
+
description: 'Lo que el agente afirmó frente a lo que está realmente activo. Diagnóstico de solo lectura.',
|
|
1731
|
+
reconciling: 'Conciliando…',
|
|
1732
|
+
notAvailable: 'No disponible — no se encontró la conversación o no tiene autorización.',
|
|
1733
|
+
untitled: '(sin título)',
|
|
1734
|
+
summary: '{{turns}} turno(s) · {{messages}} msj · {{tokens}} tok · {{seconds}} s LLM',
|
|
1735
|
+
allLive: 'Los {{count}} cambio(s) intentado(s) están activos — no se perdió nada.',
|
|
1736
|
+
discrepancies: '{{count}} discrepancia(s) — lo que dijo el chat no coincide con lo que está activo.',
|
|
1737
|
+
orphanedTitle: 'Propuesto pero nunca aplicado',
|
|
1738
|
+
orphanedHint: 'Una tarjeta de confirmación que el agente propuso pero que ningún turno posterior aplicó — el cambio se perdió sin aviso.',
|
|
1739
|
+
missingTitle: 'Afirmado pero ausente',
|
|
1740
|
+
missingHint: 'Un resultado de herramienta indicó que se aplicó, pero el artefacto no está activo en sys_metadata.',
|
|
1741
|
+
toolErrorsTitle: 'Errores de herramientas',
|
|
1742
|
+
toolErrorsHint: 'Llamadas a herramientas que devolvieron un error durante la compilación.',
|
|
1743
|
+
verifyTitle: 'Comprobación de compilación (verify_build)',
|
|
1744
|
+
yourApp: 'Su aplicación:',
|
|
1745
|
+
noIssues: '0 problemas',
|
|
1746
|
+
issueCount: '{{count}} problema(s)',
|
|
1747
|
+
platformNoise: '{{count}} hallazgo(s) sys_* de la plataforma oculto(s)',
|
|
1748
|
+
pendingActions: 'Acciones pendientes',
|
|
1749
|
+
timeline: 'Cronología ({{count}})',
|
|
1750
|
+
},
|
|
1454
1751
|
newChat: "Nuevo",
|
|
1455
1752
|
searchChats: "Buscar chats…",
|
|
1456
1753
|
noChatsYet: "Todavía no hay chats",
|
|
@@ -1480,7 +1777,7 @@ const es = {
|
|
|
1480
1777
|
empty: {
|
|
1481
1778
|
build: {
|
|
1482
1779
|
title: "Crear con IA",
|
|
1483
|
-
description: "Describa una aplicación
|
|
1780
|
+
description: "Describa una aplicación en lenguaje natural — yo redacto los objetos, las pantallas y los datos de ejemplo, y luego usted revisa y publica.",
|
|
1484
1781
|
},
|
|
1485
1782
|
ask: {
|
|
1486
1783
|
title: "Pregunte a sus datos",
|
|
@@ -1489,7 +1786,7 @@ const es = {
|
|
|
1489
1786
|
editApp: {
|
|
1490
1787
|
title: "Editando «{{app}}»",
|
|
1491
1788
|
titleGeneric: "Editar esta aplicación",
|
|
1492
|
-
description: "¿Qué desea cambiar? Modifico esta aplicación sobre la marcha — añadir un campo, un objeto, una vista o
|
|
1789
|
+
description: "¿Qué desea cambiar? Modifico esta aplicación sobre la marcha — añadir un campo, un objeto, una vista o un panel, o ajustar lo que ya existe.",
|
|
1493
1790
|
},
|
|
1494
1791
|
},
|
|
1495
1792
|
clearConversation: "Borrar",
|
|
@@ -1542,23 +1839,41 @@ const es = {
|
|
|
1542
1839
|
recentRecords: "Enumera los 5 registros creados más recientemente.",
|
|
1543
1840
|
recordCounts: "Cuenta los registros de cada objeto.",
|
|
1544
1841
|
},
|
|
1842
|
+
// cloud#1984 — these five chips are the maker's own recommendations, so
|
|
1843
|
+
// they may only ask for what ADR-0112 v1 BUILDS: objects, fields, views
|
|
1844
|
+
// (grid/kanban/calendar/gallery), pages, dashboards and sample data. No
|
|
1845
|
+
// wording that promises autonomous behaviour (alert / remind / notify /
|
|
1846
|
+
// automate / status workflow) — v1 has no flows, actions or schedules, and
|
|
1847
|
+
// the model silently degrades such a request into a board or a filtered
|
|
1848
|
+
// view, so the chip would promise an alert and deliver a page. REVERT to
|
|
1849
|
+
// the automation wording when ADR-0112 v2 re-adds flows and actions.
|
|
1545
1850
|
metadataAssistant: {
|
|
1546
|
-
buildCrm: "Crea un CRM de ventas — clientes, contactos y un
|
|
1547
|
-
buildApp: "Crea un seguimiento de proyectos — proyectos, tareas con responsables y fechas de vencimiento,
|
|
1548
|
-
buildFlow: "Diseña una mesa de ayuda — tickets con prioridad, un
|
|
1549
|
-
buildInventory: "Crea una aplicación de inventario — productos, niveles de stock, proveedores y
|
|
1550
|
-
buildRecruiting: "Crea un seguimiento de candidaturas — candidatos, vacantes,
|
|
1851
|
+
buildCrm: "Crea un CRM de ventas — clientes, contactos y oportunidades con un campo de etapa, y un panel que sume el importe por etapa.",
|
|
1852
|
+
buildApp: "Crea un seguimiento de proyectos — proyectos, tareas con responsables y fechas de vencimiento, un tablero por estado y un calendario de vencimientos.",
|
|
1853
|
+
buildFlow: "Diseña una mesa de ayuda — tickets con campos de prioridad y estado, un tablero por estado y vínculos con los clientes.",
|
|
1854
|
+
buildInventory: "Crea una aplicación de inventario — productos, niveles de stock, proveedores y una vista que filtre los artículos por debajo de su punto de pedido.",
|
|
1855
|
+
buildRecruiting: "Crea un seguimiento de candidaturas — candidatos, vacantes, un campo de etapa de entrevista y un tablero por etapa.",
|
|
1551
1856
|
},
|
|
1552
1857
|
generic: {
|
|
1553
1858
|
help: "¿En qué puedes ayudarme?",
|
|
1554
1859
|
availableObjects: "Enumera los objetos de datos disponibles.",
|
|
1555
1860
|
recentActivity: "Resume mi actividad reciente.",
|
|
1556
1861
|
},
|
|
1862
|
+
// objectui#7709 — the edit-mode starters, shown when the maker is bound
|
|
1863
|
+
// to an EXISTING app (`?package=`). Same rule as the five above: they
|
|
1864
|
+
// may only ask for what ADR-0112 v1 BUILDS. The fourth chip used to be
|
|
1865
|
+
// `addAutomation` ("an approval, a status flow, or a notification") and
|
|
1866
|
+
// every capability it named is refused by v1 (cloud#1956 / PR #1970), so
|
|
1867
|
+
// it now asks for sample data — `seed` IS on v1's whitelist, and having
|
|
1868
|
+
// no data is what an existing app most often lacks. REVERT: when
|
|
1869
|
+
// ADR-0112 v2 re-adds flows and actions, THIS chip's automation wording
|
|
1870
|
+
// comes back as `addAutomation`; the retired string is pinned for every
|
|
1871
|
+
// pack in `packages/i18n/src/__tests__/makerEditChips-v1-scope-7709.test.ts`.
|
|
1557
1872
|
editApp: {
|
|
1558
1873
|
addField: "Añade un campo a uno de los objetos.",
|
|
1559
1874
|
addObject: "Añade un objeto nuevo y relaciónalo con uno existente.",
|
|
1560
1875
|
addDashboard: "Añade un panel para las métricas clave.",
|
|
1561
|
-
|
|
1876
|
+
addSampleData: "Rellena los objetos existentes con registros de ejemplo realistas para poder mostrar la aplicación.",
|
|
1562
1877
|
},
|
|
1563
1878
|
},
|
|
1564
1879
|
changesTitle: "Confirmar cambios",
|
|
@@ -1640,6 +1955,13 @@ const es = {
|
|
|
1640
1955
|
pages: "Páginas",
|
|
1641
1956
|
reports: "Informes",
|
|
1642
1957
|
system: "Sistema",
|
|
1958
|
+
marketplace: "Marketplace",
|
|
1959
|
+
settings: 'Configuración',
|
|
1960
|
+
apps: 'Aplicaciones',
|
|
1961
|
+
profile: 'Perfil',
|
|
1962
|
+
approvals: 'Aprobaciones',
|
|
1963
|
+
aiApprovals: 'Aprobaciones de IA',
|
|
1964
|
+
auditLog: 'Registro de auditoría',
|
|
1643
1965
|
},
|
|
1644
1966
|
// objectui#4024 — the single-namespace settings screen. Its sibling
|
|
1645
1967
|
// `settingsHub` above already resolved through this pack; the view was the
|
|
@@ -1659,6 +1981,7 @@ const es = {
|
|
|
1659
1981
|
saveChanges: "Guardar cambios",
|
|
1660
1982
|
unsavedCount: "{{count}} cambios sin guardar",
|
|
1661
1983
|
unsavedCount_one: "{{count}} cambio sin guardar",
|
|
1984
|
+
unsavedCount_many: "{{count}} de cambios sin guardar",
|
|
1662
1985
|
unsavedCount_other: "{{count}} cambios sin guardar",
|
|
1663
1986
|
cryptoRefusalTitle: "Esta instalación no puede cifrar secretos",
|
|
1664
1987
|
cryptoRefusalSubjectSuffix: "está declarado como cifrado, por lo que no se escribió nada.",
|
|
@@ -1731,6 +2054,21 @@ const es = {
|
|
|
1731
2054
|
records: "Registros",
|
|
1732
2055
|
recentRecords: "Visto recientemente",
|
|
1733
2056
|
},
|
|
2057
|
+
// objectui#9954 — see the `en` pack for what raises each case.
|
|
2058
|
+
readRate: {
|
|
2059
|
+
ratioTitle: 'Volumen de lectura inusual en este entorno',
|
|
2060
|
+
ratio: 'Se leen {{ratio}} filas por cada fila escrita. La plataforma señala todo lo que supere {{threshold}}. No se limita ni se bloquea nada; es un informe para que se pueda revisar el patrón de lectura.',
|
|
2061
|
+
noWritesTitle: 'Lecturas sin ninguna escritura en este entorno',
|
|
2062
|
+
noWrites: 'Se están leyendo filas sin escribir ninguna, por lo que la tasa de lectura no tiene límite superior. Es la lectura más grave. La plataforma señala todo lo que supere {{threshold}}. No se limita ni se bloquea nada; es un informe para que se pueda revisar el patrón de lectura.',
|
|
2063
|
+
},
|
|
2064
|
+
// objectui#10439 — see the `en` pack for what raises each case.
|
|
2065
|
+
storageUsage: {
|
|
2066
|
+
warningTitle: 'El almacenamiento se está llenando',
|
|
2067
|
+
warning: '{{used}} MB de {{limit}} MB usados. Las cargas y las importaciones se pausan cuando el almacenamiento está lleno.',
|
|
2068
|
+
blockedTitle: 'Almacenamiento lleno: las cargas y las importaciones están en pausa',
|
|
2069
|
+
blocked: '{{used}} MB de {{limit}} MB usados. Los datos existentes no se modifican, y la lectura, la exportación y la edición de registros individuales siguen funcionando.',
|
|
2070
|
+
upgrade: 'Mejore el plan para continuar',
|
|
2071
|
+
},
|
|
1734
2072
|
errors: {
|
|
1735
2073
|
somethingWentWrong: "Algo salió mal",
|
|
1736
2074
|
unexpectedError: "Ocurrió un error inesperado al renderizar esta vista.",
|
|
@@ -1761,6 +2099,7 @@ const es = {
|
|
|
1761
2099
|
viewNameInvalid: "Use minúsculas, números y guiones bajos; empiece por una letra o un guion bajo.",
|
|
1762
2100
|
systemViewReadonly: "Vista del sistema definida en el código: solo lectura.",
|
|
1763
2101
|
cannotEditMetaView: "Esta vista está integrada y definida en el código: no se puede modificar.",
|
|
2102
|
+
viewConfigPermissionDenied: "La configuración de la vista se aplica a todos los usuarios que la utilizan, por lo que modificarla requiere el permiso «Administrar metadatos». Pida a un administrador que realice este cambio.",
|
|
1764
2103
|
cannotDeleteMetaView: "Esta vista está integrada y definida en el código: no se puede eliminar.",
|
|
1765
2104
|
expandToPage: "Abrir como página completa",
|
|
1766
2105
|
objectNotFound: "Objeto no encontrado",
|
|
@@ -1771,12 +2110,14 @@ const es = {
|
|
|
1771
2110
|
allRecords: "Todos los registros",
|
|
1772
2111
|
new: "Nuevo",
|
|
1773
2112
|
configureView: "Configurar vista",
|
|
1774
|
-
toolbar: "Barra de herramientas",
|
|
1775
2113
|
toolbarEnabledCount: "{{count}} de {{total}} habilitados",
|
|
1776
2114
|
searchFields: "Buscar campos…",
|
|
1777
2115
|
title: "Título",
|
|
1778
2116
|
viewType: "Tipo de vista",
|
|
1779
2117
|
recordCount: "{{count}} registros",
|
|
2118
|
+
recordCount_one: "{{count}} registro",
|
|
2119
|
+
recordCount_many: "{{count}} de registros",
|
|
2120
|
+
recordCount_other: "{{count}} registros",
|
|
1780
2121
|
save: "Guardar",
|
|
1781
2122
|
discard: "Descartar",
|
|
1782
2123
|
createView: "Crear vista",
|
|
@@ -1788,11 +2129,13 @@ const es = {
|
|
|
1788
2129
|
longitudeField: "Campo de longitud",
|
|
1789
2130
|
imageField: "Campo de imagen",
|
|
1790
2131
|
selectField: "Seleccionar campo…",
|
|
1791
|
-
groupBy: "Agrupar por",
|
|
1792
2132
|
endDateField: "Campo de fecha de fin",
|
|
1793
2133
|
import: "Importar",
|
|
1794
2134
|
importTitle: "Importar desde CSV",
|
|
1795
2135
|
importedToast: "{{count}} fila(s) importada(s).",
|
|
2136
|
+
importedToast_one: "{{count}} fila importada.",
|
|
2137
|
+
importedToast_many: "{{count}} de filas importadas.",
|
|
2138
|
+
importedToast_other: "{{count}} filas importadas.",
|
|
1796
2139
|
importedWithSkipped: "{{ok}} fila(s) importada(s); {{skipped}} omitida(s).",
|
|
1797
2140
|
createViewDesc: "Elija un tipo de vista y asígnele un nombre. Todas las configuraciones se pueden cambiar después.",
|
|
1798
2141
|
cancel: "Cancelar",
|
|
@@ -1801,6 +2144,9 @@ const es = {
|
|
|
1801
2144
|
deleteViewTitle: "Eliminar vista",
|
|
1802
2145
|
deleteViewConfirm: "¿Eliminar la vista \"{{name}}\"? Esto no se puede deshacer.",
|
|
1803
2146
|
bulkDeleteConfirm: "¿Eliminar {{count}} registros seleccionados? Esto no se puede deshacer.",
|
|
2147
|
+
bulkDeleteConfirm_one: "¿Eliminar {{count}} registro seleccionado? Esto no se puede deshacer.",
|
|
2148
|
+
bulkDeleteConfirm_many: "¿Eliminar {{count}} de registros seleccionados? Esto no se puede deshacer.",
|
|
2149
|
+
bulkDeleteConfirm_other: "¿Eliminar {{count}} registros seleccionados? Esto no se puede deshacer.",
|
|
1804
2150
|
duplicateViewName: "Ya existe una vista con ese nombre.",
|
|
1805
2151
|
viewTypeGrid: "Cuadrícula",
|
|
1806
2152
|
viewTypeGridDesc: "Tabla tipo hoja de cálculo de registros.",
|
|
@@ -1837,10 +2183,14 @@ const es = {
|
|
|
1837
2183
|
chartTypePie: "Gráfico circular",
|
|
1838
2184
|
chartTypeArea: "Gráfico de área",
|
|
1839
2185
|
chartTypeScatter: "Gráfico de dispersión",
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
2186
|
+
dataset: "Conjunto de datos",
|
|
2187
|
+
datasetHelp: "El gráfico lee sus valores de este conjunto de datos del objeto.",
|
|
2188
|
+
chartMeasure: "Medida",
|
|
2189
|
+
chartMeasureHelp: "La medida del conjunto de datos representada en el eje de valores.",
|
|
2190
|
+
chartDimension: "Dimensión",
|
|
2191
|
+
chartDimensionHelp: "La dimensión del conjunto de datos por la que se agrupan los valores (opcional).",
|
|
2192
|
+
viewTypeUnavailableDataset: "Este objeto no expone ningún conjunto de datos para graficar.",
|
|
2193
|
+
noDatasetMeasure: "Este conjunto de datos no declara ninguna medida para graficar.",
|
|
1844
2194
|
ufTabs: "Pestañas",
|
|
1845
2195
|
ufAddField: "+ Agregar campo de filtro…",
|
|
1846
2196
|
ufShowAllRecords: "Mostrar pestaña \"Todos los registros\"",
|
|
@@ -1854,6 +2204,9 @@ const es = {
|
|
|
1854
2204
|
unpinItem: "Desfijar {{name}}",
|
|
1855
2205
|
dragToReorder: "Arrastrar para reordenar",
|
|
1856
2206
|
favorites: "Favoritos",
|
|
2207
|
+
launcherLabel: "Lanzador de aplicaciones",
|
|
2208
|
+
menuLabel: "Navegación de la aplicación",
|
|
2209
|
+
menuEmpty: "Esta aplicación no tiene entradas de navegación que puedas abrir.",
|
|
1857
2210
|
},
|
|
1858
2211
|
},
|
|
1859
2212
|
auth: {
|
|
@@ -1907,6 +2260,8 @@ const es = {
|
|
|
1907
2260
|
resendOtpCountdownText: "Reenviar en {seconds} s",
|
|
1908
2261
|
usePhoneOtpText: "Iniciar sesión con código de verificación",
|
|
1909
2262
|
usePasswordSignInText: "Iniciar sesión con contraseña en su lugar",
|
|
2263
|
+
socialButton: "Continuar con {provider}",
|
|
2264
|
+
orText: "o continúe con correo electrónico",
|
|
1910
2265
|
},
|
|
1911
2266
|
register: {
|
|
1912
2267
|
title: "Crear una cuenta",
|
|
@@ -1925,8 +2280,12 @@ const es = {
|
|
|
1925
2280
|
submittingButton: "Creando cuenta…",
|
|
1926
2281
|
hasAccountText: "¿Ya tienes una cuenta?",
|
|
1927
2282
|
signInText: "Iniciar sesión",
|
|
2283
|
+
socialButton: "Registrarse con {provider}",
|
|
2284
|
+
orText: "o continúe con correo electrónico",
|
|
1928
2285
|
errors: {
|
|
1929
2286
|
userExists: "Ya existe una cuenta con ese correo. Intente iniciar sesión.",
|
|
2287
|
+
selfRegistrationClosed: "El registro por cuenta propia no está abierto en este entorno. Solicite una invitación a un administrador.",
|
|
2288
|
+
emailDomainNotAllowed: "El dominio de este correo no está autorizado para registrarse aquí. Use el correo de su organización o solicite una invitación a un administrador.",
|
|
1930
2289
|
},
|
|
1931
2290
|
verifyInbox: {
|
|
1932
2291
|
title: "Revise su bandeja de entrada",
|
|
@@ -2125,6 +2484,15 @@ const es = {
|
|
|
2125
2484
|
role: "Rol",
|
|
2126
2485
|
save: "Guardar cambios",
|
|
2127
2486
|
},
|
|
2487
|
+
language: {
|
|
2488
|
+
title: "Idioma",
|
|
2489
|
+
description: "El idioma que se usa para las notificaciones y los mensajes que se le envían. El idioma de la interfaz se elige aparte, en el menú del globo terráqueo.",
|
|
2490
|
+
label: "Idioma preferido",
|
|
2491
|
+
systemDefault: "Usar el valor predeterminado del despliegue",
|
|
2492
|
+
save: "Guardar",
|
|
2493
|
+
saved: "Preferencia de idioma actualizada.",
|
|
2494
|
+
readOnly: "El idioma de su cuenta lo gestiona su administrador.",
|
|
2495
|
+
},
|
|
2128
2496
|
password: {
|
|
2129
2497
|
changeTitle: "Cambiar contraseña",
|
|
2130
2498
|
setTitle: "Establecer contraseña local",
|
|
@@ -2156,7 +2524,6 @@ const es = {
|
|
|
2156
2524
|
label: "Espacios de trabajo",
|
|
2157
2525
|
default: "Mi espacio de trabajo",
|
|
2158
2526
|
switch: "Cambiar espacio de trabajo",
|
|
2159
|
-
create: "Crear espacio de trabajo",
|
|
2160
2527
|
createTitle: "Crear un espacio de trabajo",
|
|
2161
2528
|
createDescription: "Un espacio de trabajo es un lugar compartido para que tu equipo colabore.",
|
|
2162
2529
|
createButton: "Crear espacio de trabajo",
|
|
@@ -2181,7 +2548,6 @@ const es = {
|
|
|
2181
2548
|
packageManagement: "Gestión de paquetes",
|
|
2182
2549
|
searchNavigation: "Buscar en la navegación…",
|
|
2183
2550
|
settings: "Configuración",
|
|
2184
|
-
help: "Ayuda",
|
|
2185
2551
|
helpTooltip: "Ayuda y documentación",
|
|
2186
2552
|
activityFeed: "Feed de actividad",
|
|
2187
2553
|
notifications: "Notificaciones",
|
|
@@ -2241,6 +2607,9 @@ const es = {
|
|
|
2241
2607
|
},
|
|
2242
2608
|
pendingDrafts: {
|
|
2243
2609
|
message: "Tiene {{count}} cambio(s) sin publicar — publíquelos para activarlos.",
|
|
2610
|
+
message_one: "Tiene {{count}} cambio sin publicar — publíquelo para activarlo.",
|
|
2611
|
+
message_many: "Tiene {{count}} de cambios sin publicar — publíquelos para activarlos.",
|
|
2612
|
+
message_other: "Tiene {{count}} cambios sin publicar — publíquelos para activarlos.",
|
|
2244
2613
|
cta: "Publicar",
|
|
2245
2614
|
publishing: "Publicando…",
|
|
2246
2615
|
published: "¡Publicado! Sus cambios están activos.",
|
|
@@ -2255,7 +2624,6 @@ const es = {
|
|
|
2255
2624
|
capabilityWarn: "Comprobación de autoría: {{count}} referencia(s) de capacidad no apuntan a nada.",
|
|
2256
2625
|
},
|
|
2257
2626
|
title: "Inicio",
|
|
2258
|
-
subtitle: "Panel de tu espacio de trabajo",
|
|
2259
2627
|
nav: "Inicio",
|
|
2260
2628
|
allApps: "Todas las aplicaciones",
|
|
2261
2629
|
yourApps: "Tus aplicaciones",
|
|
@@ -2267,8 +2635,6 @@ const es = {
|
|
|
2267
2635
|
empty: "Estás al día",
|
|
2268
2636
|
},
|
|
2269
2637
|
loading: "Cargando espacio de trabajo…",
|
|
2270
|
-
recent: "Recientes",
|
|
2271
|
-
starred: "Destacados",
|
|
2272
2638
|
welcome: "Bienvenido a ObjectUI",
|
|
2273
2639
|
welcomeDescription: "Comienza creando tu primera aplicación o configura los ajustes del sistema.",
|
|
2274
2640
|
createFirstApp: "Crea tu primera aplicación",
|
|
@@ -2276,8 +2642,6 @@ const es = {
|
|
|
2276
2642
|
browseMarketplace: "Explorar marketplace de apps",
|
|
2277
2643
|
quickActions: {
|
|
2278
2644
|
title: "Acciones rápidas",
|
|
2279
|
-
createApp: "Crear app",
|
|
2280
|
-
createAppDesc: "Comienza con una nueva aplicación",
|
|
2281
2645
|
manageObjects: "Gestionar objetos",
|
|
2282
2646
|
manageObjectsDesc: "Configura modelos de datos",
|
|
2283
2647
|
systemSettings: "Configuración del sistema",
|
|
@@ -2293,18 +2657,15 @@ const es = {
|
|
|
2293
2657
|
greetingNight: "Turno de noche",
|
|
2294
2658
|
heroTagline: "Continúe donde lo dejó o descubra algo nuevo.",
|
|
2295
2659
|
open: "Abrir",
|
|
2296
|
-
stats: {
|
|
2297
|
-
apps: "Aplicaciones",
|
|
2298
|
-
starred: "Destacados",
|
|
2299
|
-
recent: "Recientes",
|
|
2300
|
-
},
|
|
2301
2660
|
recentApps: {
|
|
2302
2661
|
title: "Abiertos recientemente",
|
|
2303
2662
|
itemType: {
|
|
2304
2663
|
object: "Objeto",
|
|
2305
2664
|
dashboard: "Panel",
|
|
2306
2665
|
page: "Página",
|
|
2666
|
+
report: "Informe",
|
|
2307
2667
|
record: "Registro",
|
|
2668
|
+
metadata: "Metadatos",
|
|
2308
2669
|
},
|
|
2309
2670
|
},
|
|
2310
2671
|
starredApps: {
|
|
@@ -2326,7 +2687,6 @@ const es = {
|
|
|
2326
2687
|
organizations: "Organizaciones",
|
|
2327
2688
|
roles: "Roles",
|
|
2328
2689
|
configuration: "Configuración",
|
|
2329
|
-
createApp: "Crear aplicación",
|
|
2330
2690
|
administration: "Administración",
|
|
2331
2691
|
datasources: "Fuentes de datos",
|
|
2332
2692
|
documentation: "Documentación",
|
|
@@ -2351,6 +2711,7 @@ const es = {
|
|
|
2351
2711
|
typeUpdate: "Actualizar",
|
|
2352
2712
|
typeDelete: "Eliminar",
|
|
2353
2713
|
typeComment: "Comentario",
|
|
2714
|
+
typeSystem: "Sistema",
|
|
2354
2715
|
relativeJustNow: "ahora mismo",
|
|
2355
2716
|
relativeSecondsAgo: "hace {{count}}s",
|
|
2356
2717
|
relativeMinutesAgo: "hace {{count}}m",
|
|
@@ -2372,8 +2733,13 @@ const es = {
|
|
|
2372
2733
|
placeholder: "Buscar objetos, paneles, páginas, informes…",
|
|
2373
2734
|
inputAriaLabel: "Buscar objetos, paneles, páginas, informes",
|
|
2374
2735
|
resultsCount: "{{count}} resultado para \"{{query}}\"",
|
|
2375
|
-
|
|
2736
|
+
resultsCount_one: "{{count}} resultado para \"{{query}}\"",
|
|
2737
|
+
resultsCount_many: "{{count}} de resultados para \"{{query}}\"",
|
|
2738
|
+
resultsCount_other: "{{count}} resultados para \"{{query}}\"",
|
|
2376
2739
|
itemsAvailable: "{{count}} elementos disponibles",
|
|
2740
|
+
itemsAvailable_one: "{{count}} elemento disponible",
|
|
2741
|
+
itemsAvailable_many: "{{count}} de elementos disponibles",
|
|
2742
|
+
itemsAvailable_other: "{{count}} elementos disponibles",
|
|
2377
2743
|
noResults: "Sin resultados encontrados",
|
|
2378
2744
|
noResultsHint: "Intente ajustar sus términos de búsqueda",
|
|
2379
2745
|
typeObjects: "Objetos",
|
|
@@ -2398,7 +2764,11 @@ const es = {
|
|
|
2398
2764
|
noAppsConfigured: "Sin aplicaciones configuradas",
|
|
2399
2765
|
noAppsConfiguredDescription: "No hay aplicaciones registradas. Cree su primera aplicación o visite la configuración del sistema.",
|
|
2400
2766
|
appNotAvailable: "Aplicación no disponible",
|
|
2401
|
-
appNotAvailableDescription: "Esta aplicación
|
|
2767
|
+
appNotAvailableDescription: "Esta aplicación no está disponible — vuelva a intentarlo en un momento.",
|
|
2768
|
+
appNotFound: "No se puede abrir esta aplicación",
|
|
2769
|
+
appNotFoundDescription: "El servidor no devolvió esta aplicación para su cuenta.",
|
|
2770
|
+
appUnreachable: "No se pudo conectar con el servidor",
|
|
2771
|
+
appUnreachableDescription: "No se pudo comprobar esta aplicación. Vuelva a intentarlo en un momento.",
|
|
2402
2772
|
appAccessDenied: "No tiene acceso a esta aplicación",
|
|
2403
2773
|
appAccessDeniedDescription: "Esta aplicación existe, pero su cuenta no está autorizada para abrirla. Solicite acceso a un administrador.",
|
|
2404
2774
|
appAccessDeniedHome: "Volver al inicio",
|
|
@@ -2413,11 +2783,11 @@ const es = {
|
|
|
2413
2783
|
description: "Ingrese la información requerida para continuar.",
|
|
2414
2784
|
selectPlaceholder: "Seleccionar {{label}}",
|
|
2415
2785
|
requiredError: "{{label}} es obligatorio",
|
|
2786
|
+
unresolvedParam: 'No se puede mostrar este parámetro: el campo en el que se basa no está en los metadatos del objeto, por lo que no se puede construir el control necesario. Pide a un administrador que corrija la definición de la acción.',
|
|
2787
|
+
carryOverHint: 'Se conserva sin cambios (solo lectura)',
|
|
2416
2788
|
cancel: "Cancelar",
|
|
2417
2789
|
confirm: "Confirmar",
|
|
2418
2790
|
uploading: "Subiendo…",
|
|
2419
|
-
defaultActionTitle: "Acción",
|
|
2420
|
-
ok: "Aceptar",
|
|
2421
2791
|
lookupPlaceholder: "ID de registro para {{label}}",
|
|
2422
2792
|
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.",
|
|
2423
2793
|
},
|
|
@@ -2426,11 +2796,6 @@ const es = {
|
|
|
2426
2796
|
confirm: "Continuar",
|
|
2427
2797
|
cancel: "Cancelar",
|
|
2428
2798
|
},
|
|
2429
|
-
rowAction: {
|
|
2430
|
-
openMenu: "Abrir menú",
|
|
2431
|
-
edit: "Editar",
|
|
2432
|
-
delete: "Eliminar",
|
|
2433
|
-
},
|
|
2434
2799
|
navigationSync: {
|
|
2435
2800
|
addedPage: "Navegación actualizada: página \"{{name}}\" agregada",
|
|
2436
2801
|
addedDashboard: "Navegación actualizada: panel \"{{name}}\" agregado",
|
|
@@ -2451,6 +2816,9 @@ const es = {
|
|
|
2451
2816
|
noRecordId: "No se proporcionó ID de registro",
|
|
2452
2817
|
deleteConfirm: "¿Eliminar este registro?",
|
|
2453
2818
|
bulkDeleteSuccess: "{{count}} registros de {{label}} eliminados",
|
|
2819
|
+
bulkDeleteSuccess_one: "{{count}} registro de {{label}} eliminado",
|
|
2820
|
+
bulkDeleteSuccess_many: "{{count}} de registros de {{label}} eliminados",
|
|
2821
|
+
bulkDeleteSuccess_other: "{{count}} registros de {{label}} eliminados",
|
|
2454
2822
|
bulkDeletePartial: "{{succeeded}} eliminados, {{failed}} fallidos",
|
|
2455
2823
|
},
|
|
2456
2824
|
objectViewActions: {
|
|
@@ -2462,15 +2830,6 @@ const es = {
|
|
|
2462
2830
|
exportFailed: "Error al exportar: {{message}}",
|
|
2463
2831
|
forecastSoon: "La vista de pronóstico llegará pronto",
|
|
2464
2832
|
},
|
|
2465
|
-
recordDetail: {
|
|
2466
|
-
viewersTooltip: "Usuarios viendo este registro ahora",
|
|
2467
|
-
},
|
|
2468
|
-
cellRender: {
|
|
2469
|
-
empty: "Vacío",
|
|
2470
|
-
yes: "Sí",
|
|
2471
|
-
no: "No",
|
|
2472
|
-
systemFields: "Sistema",
|
|
2473
|
-
},
|
|
2474
2833
|
user: {
|
|
2475
2834
|
profile: "Perfil",
|
|
2476
2835
|
settings: "Configuración",
|
|
@@ -2660,18 +3019,37 @@ const es = {
|
|
|
2660
3019
|
regionLabel: "Notificaciones",
|
|
2661
3020
|
groupCount: "{{count}} notificaciones",
|
|
2662
3021
|
groupUnread: "{{count}} sin leer",
|
|
3022
|
+
groupUnread_one: "{{count}} sin leer",
|
|
3023
|
+
groupUnread_many: "{{count}} sin leer",
|
|
3024
|
+
groupUnread_other: "{{count}} sin leer",
|
|
2663
3025
|
groupMarkRead: "Marcar como leídas",
|
|
2664
3026
|
groupMarkReadTitle: "Marcar como leídas todas las de este tipo",
|
|
2665
3027
|
empty: "Sin notificaciones",
|
|
2666
3028
|
markAllRead: "Marcar todo como leído",
|
|
2667
3029
|
viewAll: "Ver todas las notificaciones",
|
|
2668
3030
|
approvalsPending: "{{count}} aprobaciones pendientes",
|
|
3031
|
+
approvalsPending_one: "{{count}} aprobación pendiente",
|
|
3032
|
+
approvalsPending_many: "{{count}} de aprobaciones pendientes",
|
|
3033
|
+
approvalsPending_other: "{{count}} aprobaciones pendientes",
|
|
2669
3034
|
viewApprovals: "Ver aprobaciones",
|
|
2670
3035
|
noPendingApprovals: "Sin aprobaciones pendientes",
|
|
2671
3036
|
openApprovalsInbox: "Abrir bandeja de aprobaciones",
|
|
2672
3037
|
badgeTotal: "{{total}} en total",
|
|
2673
3038
|
badgeNotifications: "{{unread}} notificaciones",
|
|
2674
3039
|
badgeApprovals: "{{approvals}} aprobaciones pendientes",
|
|
3040
|
+
arrivalMany: "{{count}} mensajes nuevos",
|
|
3041
|
+
arrivalMany_one: "{{count}} mensaje nuevo",
|
|
3042
|
+
arrivalMany_many: "{{count}} de mensajes nuevos",
|
|
3043
|
+
arrivalMany_other: "{{count}} mensajes nuevos",
|
|
3044
|
+
arrivalRepeats: "{{count}} mensajes nuevos sobre este tema",
|
|
3045
|
+
arrivalRepeats_one: "{{count}} mensaje nuevo sobre este tema",
|
|
3046
|
+
arrivalRepeats_many: "{{count}} de mensajes nuevos sobre este tema",
|
|
3047
|
+
arrivalRepeats_other: "{{count}} mensajes nuevos sobre este tema",
|
|
3048
|
+
arrivalOpen: "Ver",
|
|
3049
|
+
toastEnabled: "Avisos en la aplicación",
|
|
3050
|
+
desktopEnabled: "Notificaciones de escritorio",
|
|
3051
|
+
desktopBlocked: "Bloqueado. Permite las notificaciones de este sitio en la configuración del navegador.",
|
|
3052
|
+
desktopUnsupported: "Este navegador no admite notificaciones de escritorio.",
|
|
2675
3053
|
emptyUnread: "Todo al día",
|
|
2676
3054
|
filterUnread: "No leídos",
|
|
2677
3055
|
filterAll: "Todos",
|
|
@@ -2685,12 +3063,14 @@ const es = {
|
|
|
2685
3063
|
thankYouTitle: "¡Gracias!",
|
|
2686
3064
|
thankYouMessage: "Su envío fue recibido correctamente.",
|
|
2687
3065
|
redirecting: "Redirigiendo en {{seconds}} segundos…",
|
|
3066
|
+
redirectPending: "Redirigiendo…",
|
|
2688
3067
|
unavailableTitle: "Formulario no disponible",
|
|
2689
3068
|
unavailableDescription: "No hay formulario público disponible en esta URL. Asegúrese de que la vista subyacente tenga habilitado el uso compartido anónimo.",
|
|
2690
3069
|
tryDemo: "Probar demo",
|
|
2691
3070
|
retry: "Reintentar",
|
|
2692
3071
|
loading: "Cargando formulario…",
|
|
2693
3072
|
requiredHint: "* Campo obligatorio",
|
|
3073
|
+
requiredFields: "Campos obligatorios: {{fields}}",
|
|
2694
3074
|
consentLabelDefault: "Acepto la política de privacidad y doy mi consentimiento para procesar mis datos para esta solicitud.",
|
|
2695
3075
|
consentLink: "Política de privacidad",
|
|
2696
3076
|
consentRequired: "Acepte la política de privacidad para continuar.",
|
|
@@ -2741,6 +3121,9 @@ const es = {
|
|
|
2741
3121
|
noImportableFields: "Ese objeto no tiene campos importables.",
|
|
2742
3122
|
schemaReadFailed: "No se pudo leer el esquema del objeto.",
|
|
2743
3123
|
imported: "Se importaron {{count}} fila(s) en {{object}}.",
|
|
3124
|
+
imported_one: "Se importó {{count}} fila en {{object}}.",
|
|
3125
|
+
imported_many: "Se importaron {{count}} de filas en {{object}}.",
|
|
3126
|
+
imported_other: "Se importaron {{count}} filas en {{object}}.",
|
|
2744
3127
|
importFrom: "Importar las filas reales desde",
|
|
2745
3128
|
into: "a",
|
|
2746
3129
|
opening: "Abriendo…",
|
|
@@ -2754,6 +3137,78 @@ const es = {
|
|
|
2754
3137
|
openProduction: "Abrir producción",
|
|
2755
3138
|
manageEnvironments: "Gestionar entornos",
|
|
2756
3139
|
},
|
|
3140
|
+
cloudPlanStatus: {
|
|
3141
|
+
current: "Plan actual",
|
|
3142
|
+
},
|
|
3143
|
+
ai: {
|
|
3144
|
+
nlQuery: {
|
|
3145
|
+
placeholder: "Haga una pregunta sobre sus datos…",
|
|
3146
|
+
ask: "Preguntar",
|
|
3147
|
+
results: "Resultados",
|
|
3148
|
+
match: "Coincidencia: {{percent}}",
|
|
3149
|
+
simulatedSummary: "Resultados de: {{query}}",
|
|
3150
|
+
noResults: "No se encontraron registros coincidentes",
|
|
3151
|
+
recentQueries: "Consultas recientes",
|
|
3152
|
+
},
|
|
3153
|
+
formAssist: {
|
|
3154
|
+
title: "Sugerencias de IA",
|
|
3155
|
+
suggestionCount: "{{count}} sugerencias",
|
|
3156
|
+
suggestionCount_one: "{{count}} sugerencia",
|
|
3157
|
+
suggestionCount_many: "{{count}} de sugerencias",
|
|
3158
|
+
suggestionCount_other: "{{count}} sugerencias",
|
|
3159
|
+
applyAll: "Aplicar todo",
|
|
3160
|
+
confidence: "Confianza: {{percent}}",
|
|
3161
|
+
appliedCount: "{{count}} sugerencias aplicadas",
|
|
3162
|
+
appliedCount_one: "{{count}} sugerencia aplicada",
|
|
3163
|
+
appliedCount_many: "{{count}} de sugerencias aplicadas",
|
|
3164
|
+
appliedCount_other: "{{count}} sugerencias aplicadas",
|
|
3165
|
+
},
|
|
3166
|
+
recommendations: {
|
|
3167
|
+
title: "Recomendaciones",
|
|
3168
|
+
generating: "Generando recomendaciones…",
|
|
3169
|
+
empty: "No hay recomendaciones disponibles",
|
|
3170
|
+
},
|
|
3171
|
+
},
|
|
3172
|
+
aiApprovals: {
|
|
3173
|
+
title: "Aprobaciones de IA",
|
|
3174
|
+
description: "Acciones propuestas por un agente de IA que necesitan revisión humana antes de ejecutarse.",
|
|
3175
|
+
tabPending: "Pendientes",
|
|
3176
|
+
tabDecided: "Decididas",
|
|
3177
|
+
tabAll: "Todas",
|
|
3178
|
+
statusPending: "Pendiente",
|
|
3179
|
+
statusApproved: "Aprobada",
|
|
3180
|
+
statusExecuted: "Ejecutada",
|
|
3181
|
+
statusFailed: "Fallida",
|
|
3182
|
+
statusRejected: "Rechazada",
|
|
3183
|
+
colTool: "Herramienta",
|
|
3184
|
+
colAction: "Acción",
|
|
3185
|
+
colObject: "Objeto",
|
|
3186
|
+
colStatus: "Estado",
|
|
3187
|
+
colProposed: "Propuesta",
|
|
3188
|
+
colDecision: "Decisión",
|
|
3189
|
+
emptyTitle: "No hay acciones en espera",
|
|
3190
|
+
emptyDescription: "Cuando la IA proponga una acción sensible, aparecerá aquí para su revisión.",
|
|
3191
|
+
view: "Ver",
|
|
3192
|
+
approve: "Aprobar",
|
|
3193
|
+
reject: "Rechazar",
|
|
3194
|
+
working: "Procesando…",
|
|
3195
|
+
approveAndExecute: "Aprobar y ejecutar",
|
|
3196
|
+
outcomeApprove: "Aprobación de {{id}}: {{message}}",
|
|
3197
|
+
outcomeReject: "Rechazo de {{id}}: {{message}}",
|
|
3198
|
+
outcomeExecuteFailed: "La acción falló durante su ejecución",
|
|
3199
|
+
drawerFallbackTitle: "Acción pendiente",
|
|
3200
|
+
drawerSubtitle: "Herramienta {{tool}} sobre {{object}}",
|
|
3201
|
+
fieldProposedBy: "Propuesta por",
|
|
3202
|
+
fieldDecidedBy: "Decidida por",
|
|
3203
|
+
fieldConversation: "Conversación",
|
|
3204
|
+
fieldToolInput: "Entrada de la herramienta",
|
|
3205
|
+
fieldResult: "Resultado",
|
|
3206
|
+
fieldError: "Error",
|
|
3207
|
+
fieldRejectionReason: "Motivo del rechazo",
|
|
3208
|
+
rejectTitle: "¿Rechazar esta acción?",
|
|
3209
|
+
rejectBody: "El motivo se devuelve a la IA para que ajuste su siguiente respuesta.",
|
|
3210
|
+
rejectPlaceholder: "Motivo opcional (p. ej.: «ID de registro incorrecto — confírmalo antes con la persona usuaria.»)",
|
|
3211
|
+
},
|
|
2757
3212
|
aiModelStatus: {
|
|
2758
3213
|
summary: "Crear / Preguntar usa {{conversational}} ({{conversationalSource}}); estructurado usa {{structured}} ({{structuredSource}}).",
|
|
2759
3214
|
summaryRouting: "Política de enrutamiento: planes gratuitos → {{free}}, planes de pago → {{paid}}.",
|
|
@@ -2771,6 +3226,114 @@ const es = {
|
|
|
2771
3226
|
sourceInherits: "igual que build/ask",
|
|
2772
3227
|
sourcePinned: "fijado por {{source}}",
|
|
2773
3228
|
},
|
|
3229
|
+
// objectui#7254 — the AI copilot's tool cards. Three families, all of them
|
|
3230
|
+
// English-only until this landed while every other string on the same screen
|
|
3231
|
+
// was translated:
|
|
3232
|
+
//
|
|
3233
|
+
// `tool.*` — one entry per PLATFORM-PROVIDED tool name
|
|
3234
|
+
// (@objectstack/spec `PLATFORM_TOOLS_BY_PACKAGE`, the
|
|
3235
|
+
// closed registry those runtimes are conformance-tested
|
|
3236
|
+
// against). `humanizeToolName` looks each up as
|
|
3237
|
+
// `chatbot.tool.<tool_name>` and falls back to its English
|
|
3238
|
+
// title-caser for a custom / third-party tool, so a name
|
|
3239
|
+
// missing here is degraded, never broken. The `en` values
|
|
3240
|
+
// are deliberately EQUAL to what that title-caser produces:
|
|
3241
|
+
// adding the key must not silently reword the English UI.
|
|
3242
|
+
// `toolState.*` — the card-header badge + activity-chip vocabulary. ONE
|
|
3243
|
+
// set for both surfaces (they used to carry separate
|
|
3244
|
+
// tables and disagreed on casing).
|
|
3245
|
+
// `plan.*` — the "N objects · N views · N dashboards" strip. Plural
|
|
3246
|
+
// FAMILIES: one slot per CLDR category the pack's language
|
|
3247
|
+
// selects (objectui#11432), plus the base key for a call
|
|
3248
|
+
// made without a count. `all-locales-key-parity.test.ts`
|
|
3249
|
+
// derives the required slots from `Intl.PluralRules`.
|
|
3250
|
+
//
|
|
3251
|
+
// objectui#7481 — five `tool.*` entries are NEWER than the registry above:
|
|
3252
|
+
// `get_authoring_rules` (cloud#1837), `load_tools`, `open_record`, `test_flow`
|
|
3253
|
+
// and `toggle_flow` are registered by cloud `service-ai-studio` but the pinned
|
|
3254
|
+
// `@objectstack/spec` snapshot does not list them yet. They are kept here on
|
|
3255
|
+
// purpose: a step label the user reads must not wait on a pin bump. When the
|
|
3256
|
+
// pin advances, `chatbotToolLabels-locale-parity-7481` starts checking them
|
|
3257
|
+
// against the registry instead of against its own hand-held list.
|
|
3258
|
+
chatbot: {
|
|
3259
|
+
tool: {
|
|
3260
|
+
aggregate_data: "Resumir datos",
|
|
3261
|
+
get_record: "Obtener registro",
|
|
3262
|
+
query_data: "Consultar datos",
|
|
3263
|
+
query_records: "Consultar registros",
|
|
3264
|
+
search_knowledge: "Buscar en la base de conocimiento",
|
|
3265
|
+
visualize_data: "Crear gráfico",
|
|
3266
|
+
add_field: "Añadir campo",
|
|
3267
|
+
apply_blueprint: "Construir la aplicación",
|
|
3268
|
+
apply_edit: "Aplicar cambios",
|
|
3269
|
+
create_metadata: "Crear metadatos",
|
|
3270
|
+
create_object: "Crear objeto",
|
|
3271
|
+
create_package: "Crear paquete",
|
|
3272
|
+
create_seed: "Generar datos de ejemplo",
|
|
3273
|
+
delete_field: "Eliminar campo",
|
|
3274
|
+
describe_metadata: "Consultar metadatos",
|
|
3275
|
+
describe_object: "Consultar la estructura del objeto",
|
|
3276
|
+
get_active_package: "Obtener el paquete activo",
|
|
3277
|
+
get_authoring_rules: "Leer las reglas de autoría",
|
|
3278
|
+
get_metadata_schema: "Obtener el esquema de metadatos",
|
|
3279
|
+
get_package: "Obtener paquete",
|
|
3280
|
+
list_metadata: "Listar metadatos",
|
|
3281
|
+
list_objects: "Listar objetos",
|
|
3282
|
+
list_packages: "Listar paquetes",
|
|
3283
|
+
load_tools: "Cargar herramientas",
|
|
3284
|
+
modify_field: "Modificar campo",
|
|
3285
|
+
open_record: "Abrir registro",
|
|
3286
|
+
propose_blueprint: "Diseñar el plan de la aplicación",
|
|
3287
|
+
set_active_package: "Cambiar el paquete activo",
|
|
3288
|
+
suggest_builder: "Sugerir cómo construirlo",
|
|
3289
|
+
test_flow: "Probar el flujo",
|
|
3290
|
+
todo_write: "Anotar tareas",
|
|
3291
|
+
toggle_flow: "Activar o desactivar el flujo",
|
|
3292
|
+
update_metadata: "Actualizar metadatos",
|
|
3293
|
+
validate_expression: "Validar expresión",
|
|
3294
|
+
verify_build: "Verificar la construcción",
|
|
3295
|
+
},
|
|
3296
|
+
toolState: {
|
|
3297
|
+
agentActivity: "Actividad del agente",
|
|
3298
|
+
pending: "Pendiente",
|
|
3299
|
+
running: "En curso",
|
|
3300
|
+
awaitingApproval: "Esperando aprobación",
|
|
3301
|
+
responded: "Respondido",
|
|
3302
|
+
completed: "Completado",
|
|
3303
|
+
error: "Error",
|
|
3304
|
+
denied: "Denegado",
|
|
3305
|
+
failed: "Fallido",
|
|
3306
|
+
},
|
|
3307
|
+
plan: {
|
|
3308
|
+
countObjects: "{{count}} objetos",
|
|
3309
|
+
countObjects_one: "{{count}} objeto",
|
|
3310
|
+
countObjects_many: "{{count}} de objetos",
|
|
3311
|
+
countObjects_other: "{{count}} objetos",
|
|
3312
|
+
countViews: "{{count}} vistas",
|
|
3313
|
+
countViews_one: "{{count}} vista",
|
|
3314
|
+
countViews_many: "{{count}} de vistas",
|
|
3315
|
+
countViews_other: "{{count}} vistas",
|
|
3316
|
+
countDashboards: "{{count}} paneles",
|
|
3317
|
+
countDashboards_one: "{{count}} panel",
|
|
3318
|
+
countDashboards_many: "{{count}} de paneles",
|
|
3319
|
+
countDashboards_other: "{{count}} paneles",
|
|
3320
|
+
countSeedData: "datos de ejemplo",
|
|
3321
|
+
},
|
|
3322
|
+
build: {
|
|
3323
|
+
building: "Creando {{app}}…",
|
|
3324
|
+
built: "Creación de {{app}} completada",
|
|
3325
|
+
appFallback: "su aplicación",
|
|
3326
|
+
addingSampleData: "añadiendo datos de ejemplo",
|
|
3327
|
+
group: {
|
|
3328
|
+
object: "Objetos",
|
|
3329
|
+
view: "Vistas",
|
|
3330
|
+
dashboard: "Paneles",
|
|
3331
|
+
app: "Aplicación",
|
|
3332
|
+
seed: "Datos de ejemplo",
|
|
3333
|
+
},
|
|
3334
|
+
moreArtifacts: "+{{n}} más",
|
|
3335
|
+
},
|
|
3336
|
+
},
|
|
2774
3337
|
chatbotError: {
|
|
2775
3338
|
title: "Error en la respuesta",
|
|
2776
3339
|
fallbackDetail: "Algo salió mal. Vuelva a intentarlo.",
|
|
@@ -2851,7 +3414,7 @@ const es = {
|
|
|
2851
3414
|
},
|
|
2852
3415
|
title: "Marketplace de aplicaciones",
|
|
2853
3416
|
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.",
|
|
2854
|
-
searchPlaceholder:
|
|
3417
|
+
searchPlaceholder: 'Buscar aplicaciones por nombre o ID de aplicación…',
|
|
2855
3418
|
searchAria: "Buscar aplicaciones del marketplace",
|
|
2856
3419
|
installed: "Instalado",
|
|
2857
3420
|
installedCount: "Instaladas ({{count}})",
|
|
@@ -2899,10 +3462,17 @@ const es = {
|
|
|
2899
3462
|
purgeSampleData: 'Eliminar datos de ejemplo',
|
|
2900
3463
|
purgeConfirm: '¿Eliminar todos los registros de ejemplo creados por este paquete? Los registros añadidos por el usuario NO se verán afectados.',
|
|
2901
3464
|
purgeSuccess: 'Se eliminaron {{count}} registro(s) de ejemplo.',
|
|
3465
|
+
purgeSuccess_one: 'Se eliminó {{count}} registro de ejemplo.',
|
|
3466
|
+
purgeSuccess_many: 'Se eliminaron {{count}} de registros de ejemplo.',
|
|
3467
|
+
purgeSuccess_other: 'Se eliminaron {{count}} registros de ejemplo.',
|
|
2902
3468
|
purgeNoData: 'No se encontraron registros de ejemplo para eliminar.',
|
|
2903
3469
|
reseedQueued: 'Los datos de ejemplo se volverán a cargar en el próximo acceso al entorno.',
|
|
2904
3470
|
reseedLocalSuccess: 'Datos de ejemplo recargados: {{inserted}} insertados, {{updated}} actualizados.',
|
|
2905
3471
|
reseedPartialErrors: '({{count}} registro(s) no se pudieron escribir)',
|
|
3472
|
+
reseedPartialErrors_one: '({{count}} registro no se pudo escribir)',
|
|
3473
|
+
reseedPartialErrors_many: '({{count}} de registros no se pudieron escribir)',
|
|
3474
|
+
reseedPartialErrors_other: '({{count}} registros no se pudieron escribir)',
|
|
3475
|
+
sampleDataKernelUnavailable: 'Este plano de control no tiene un kernel de entorno, por lo que los datos de ejemplo no se pueden volver a cargar ni eliminar desde aquí. Hágalo desde el propio runtime del entorno.',
|
|
2906
3476
|
updateAvailable: 'Actualización disponible',
|
|
2907
3477
|
},
|
|
2908
3478
|
action: {
|
|
@@ -2955,7 +3525,8 @@ const es = {
|
|
|
2955
3525
|
reviewed: "Revisado y aprobado",
|
|
2956
3526
|
unreviewed: "Sin revisar todavía",
|
|
2957
3527
|
signed: "Firmado",
|
|
2958
|
-
grantsIntro: "
|
|
3528
|
+
grantsIntro: "Este paquete solicita:",
|
|
3529
|
+
notEnforced: "Esta lista se registra al instalar y se vuelve a confirmar si una versión posterior solicita más, pero el runtime aún no restringe el paquete a ella.",
|
|
2959
3530
|
services: "Servicios de la plataforma",
|
|
2960
3531
|
hooks: "Hooks de ciclo de vida",
|
|
2961
3532
|
network: "Acceso a la red",
|
|
@@ -2994,30 +3565,21 @@ const es = {
|
|
|
2994
3565
|
storage: "Almacenamiento",
|
|
2995
3566
|
other: "Otro",
|
|
2996
3567
|
},
|
|
2997
|
-
pricing: {
|
|
2998
|
-
free: "Gratis",
|
|
2999
|
-
freemium: "Freemium",
|
|
3000
|
-
paid: "De pago",
|
|
3001
|
-
subscription: "Suscripción",
|
|
3002
|
-
"usage-based": "Por uso",
|
|
3003
|
-
"contact-sales": "Contactar ventas",
|
|
3004
|
-
},
|
|
3005
3568
|
relativeTime: {
|
|
3006
3569
|
today: "hoy",
|
|
3007
3570
|
daysAgo: "hace {{count}}d",
|
|
3008
3571
|
monthsAgo: "hace {{count}} meses",
|
|
3572
|
+
monthsAgo_one: "hace {{count}} mes",
|
|
3573
|
+
monthsAgo_many: "hace {{count}} meses",
|
|
3574
|
+
monthsAgo_other: "hace {{count}} meses",
|
|
3009
3575
|
yearsAgo: "hace {{count}} años",
|
|
3576
|
+
yearsAgo_one: "hace {{count}} año",
|
|
3577
|
+
yearsAgo_many: "hace {{count}} años",
|
|
3578
|
+
yearsAgo_other: "hace {{count}} años",
|
|
3010
3579
|
},
|
|
3011
3580
|
},
|
|
3012
|
-
approvals: {
|
|
3013
|
-
approve: 'Aprobar',
|
|
3014
|
-
reject: 'Rechazar',
|
|
3015
|
-
comment: 'Comentario (opcional)',
|
|
3016
|
-
approveSuccess: 'Aprobado',
|
|
3017
|
-
rejectSuccess: 'Rechazado',
|
|
3018
|
-
rejectConfirm: '¿Rechazar esta solicitud de aprobación?',
|
|
3019
|
-
},
|
|
3020
3581
|
approvalsInbox: {
|
|
3582
|
+
recordUnresolvable: 'Este registro no se puede abrir',
|
|
3021
3583
|
loadMore: 'Cargar más',
|
|
3022
3584
|
loadingMore: 'Cargando…',
|
|
3023
3585
|
loadedOf: '{{loaded}} de {{total}} cargadas',
|
|
@@ -3036,6 +3598,9 @@ const es = {
|
|
|
3036
3598
|
requestInfoSent: 'Devuelta al solicitante para más información',
|
|
3037
3599
|
remindBtn: 'Recordatorio',
|
|
3038
3600
|
remindSuccess: 'Recordatorio enviado a {{count}} aprobador(es)',
|
|
3601
|
+
remindSuccess_one: 'Recordatorio enviado a {{count}} aprobador',
|
|
3602
|
+
remindSuccess_many: 'Recordatorio enviado a {{count}} de aprobadores',
|
|
3603
|
+
remindSuccess_other: 'Recordatorio enviado a {{count}} aprobadores',
|
|
3039
3604
|
remindThrottled: 'Ya se envió un recordatorio hace poco; inténtalo más tarde.',
|
|
3040
3605
|
replyPlaceholder: 'Responder en esta solicitud…',
|
|
3041
3606
|
slaRemaining: 'SLA: quedan {{dur}}',
|
|
@@ -3052,6 +3617,9 @@ const es = {
|
|
|
3052
3617
|
progressApprovals: 'Aprobaciones — {{got}} de {{need}}',
|
|
3053
3618
|
progressGroups: 'Progreso de firmas — {{got}} de {{need}} grupos',
|
|
3054
3619
|
progressEligible: '{{count}} aprobador(es) elegible(s)',
|
|
3620
|
+
progressEligible_one: '{{count}} aprobador elegible',
|
|
3621
|
+
progressEligible_many: '{{count}} de aprobadores elegibles',
|
|
3622
|
+
progressEligible_other: '{{count}} aprobadores elegibles',
|
|
3055
3623
|
progressBar: 'Progreso de la decisión',
|
|
3056
3624
|
declaredActions: 'Acciones',
|
|
3057
3625
|
attachmentChip: 'Adjunto',
|
|
@@ -3083,6 +3651,9 @@ const es = {
|
|
|
3083
3651
|
filterCount: '{{shown}} de {{total}}',
|
|
3084
3652
|
selected: 'seleccionadas',
|
|
3085
3653
|
actionableCount: '({{count}} accionables)',
|
|
3654
|
+
actionableCount_one: '({{count}} accionable)',
|
|
3655
|
+
actionableCount_many: '({{count}} accionables)',
|
|
3656
|
+
actionableCount_other: '({{count}} accionables)',
|
|
3086
3657
|
selectAll: 'Seleccionar todo',
|
|
3087
3658
|
selectRow: 'Seleccionar solicitud',
|
|
3088
3659
|
colRequest: 'Solicitud',
|
|
@@ -3156,11 +3727,23 @@ const es = {
|
|
|
3156
3727
|
approveN: 'Aprobar {{count}}',
|
|
3157
3728
|
rejectN: 'Rechazar {{count}}',
|
|
3158
3729
|
bulkApproveTitle: '¿Aprobar {{count}} solicitudes?',
|
|
3730
|
+
bulkApproveTitle_one: '¿Aprobar {{count}} solicitud?',
|
|
3731
|
+
bulkApproveTitle_many: '¿Aprobar {{count}} de solicitudes?',
|
|
3732
|
+
bulkApproveTitle_other: '¿Aprobar {{count}} solicitudes?',
|
|
3159
3733
|
bulkApproveBody: 'Cada solicitud se aprueba con tu identidad y su flujo continúa por la rama de aprobación.',
|
|
3160
3734
|
bulkRejectTitle: '¿Rechazar {{count}} solicitudes?',
|
|
3735
|
+
bulkRejectTitle_one: '¿Rechazar {{count}} solicitud?',
|
|
3736
|
+
bulkRejectTitle_many: '¿Rechazar {{count}} de solicitudes?',
|
|
3737
|
+
bulkRejectTitle_other: '¿Rechazar {{count}} solicitudes?',
|
|
3161
3738
|
bulkRejectBody: 'Se rechazarán las solicitudes seleccionadas y se notificará a los solicitantes.',
|
|
3162
3739
|
bulkApproved: '{{count}} solicitudes aprobadas',
|
|
3740
|
+
bulkApproved_one: '{{count}} solicitud aprobada',
|
|
3741
|
+
bulkApproved_many: '{{count}} de solicitudes aprobadas',
|
|
3742
|
+
bulkApproved_other: '{{count}} solicitudes aprobadas',
|
|
3163
3743
|
bulkRejected: '{{count}} solicitudes rechazadas',
|
|
3744
|
+
bulkRejected_one: '{{count}} solicitud rechazada',
|
|
3745
|
+
bulkRejected_many: '{{count}} de solicitudes rechazadas',
|
|
3746
|
+
bulkRejected_other: '{{count}} solicitudes rechazadas',
|
|
3164
3747
|
bulkPartial: '{{ok}} con éxito, {{fail}} fallidas: {{which}}',
|
|
3165
3748
|
rejectOneTitle: '¿Rechazar "{{title}}"?',
|
|
3166
3749
|
rejectOneBody: 'Se rechaza la solicitud y se notifica al solicitante.',
|
|
@@ -3185,8 +3768,17 @@ const es = {
|
|
|
3185
3768
|
alreadyDecided: 'Esta solicitud ya fue decidida. Actualiza la lista.',
|
|
3186
3769
|
justNow: 'justo ahora',
|
|
3187
3770
|
minutesAgo: 'hace {{count}} min',
|
|
3771
|
+
minutesAgo_one: 'hace {{count}} min',
|
|
3772
|
+
minutesAgo_many: 'hace {{count}} min',
|
|
3773
|
+
minutesAgo_other: 'hace {{count}} min',
|
|
3188
3774
|
hoursAgo: 'hace {{count}} h',
|
|
3775
|
+
hoursAgo_one: 'hace {{count}} h',
|
|
3776
|
+
hoursAgo_many: 'hace {{count}} h',
|
|
3777
|
+
hoursAgo_other: 'hace {{count}} h',
|
|
3189
3778
|
daysAgo: 'hace {{count}} días',
|
|
3779
|
+
daysAgo_one: 'hace {{count}} día',
|
|
3780
|
+
daysAgo_many: 'hace {{count}} días',
|
|
3781
|
+
daysAgo_other: 'hace {{count}} días',
|
|
3190
3782
|
},
|
|
3191
3783
|
preview: {
|
|
3192
3784
|
empty: {
|
|
@@ -3221,11 +3813,17 @@ const es = {
|
|
|
3221
3813
|
detailNone: 'No se detectaron diferencias — el borrador coincide con la versión publicada.',
|
|
3222
3814
|
detailChangedKeys: 'También cambió:',
|
|
3223
3815
|
confirmNote: 'Publicar libera atómicamente los {{count}} borradores pendientes de este paquete.',
|
|
3816
|
+
confirmNote_one: 'Publicar libera atómicamente {{count}} borrador pendiente de este paquete.',
|
|
3817
|
+
confirmNote_many: 'Publicar libera atómicamente los {{count}} de borradores pendientes de este paquete.',
|
|
3818
|
+
confirmNote_other: 'Publicar libera atómicamente los {{count}} borradores pendientes de este paquete.',
|
|
3224
3819
|
publishConfirm: 'Publicar todo',
|
|
3225
|
-
// [
|
|
3820
|
+
// [`7a90afdf9`] Pre-publish security-posture findings, shown next to
|
|
3226
3821
|
// the confirm button so a refusal the door would issue is read BEFORE
|
|
3227
3822
|
// the click rather than as a toast after the batch rolled back.
|
|
3228
3823
|
securityBlockTitle: 'La publicación será rechazada: {{count}} elemento(s) necesitan una decisión primero',
|
|
3824
|
+
securityBlockTitle_one: 'La publicación será rechazada: {{count}} elemento necesita una decisión primero',
|
|
3825
|
+
securityBlockTitle_many: 'La publicación será rechazada: {{count}} de elementos necesitan una decisión primero',
|
|
3826
|
+
securityBlockTitle_other: 'La publicación será rechazada: {{count}} elementos necesitan una decisión primero',
|
|
3229
3827
|
securityBlockWhere: 'Corríjalo en el objeto en Configuración → Uso compartido de registros y vuelva a publicar.',
|
|
3230
3828
|
},
|
|
3231
3829
|
// ADR-0045 — the materialized-but-unlisted app banner
|
|
@@ -3250,7 +3848,7 @@ const es = {
|
|
|
3250
3848
|
revertLabel: 'Se deshizo un cambio',
|
|
3251
3849
|
applyLabel: 'Cambio de compilación',
|
|
3252
3850
|
revert: 'deshacer',
|
|
3253
|
-
items: '
|
|
3851
|
+
items: 'Elementos: {{count}}',
|
|
3254
3852
|
revertAction: 'Deshacer',
|
|
3255
3853
|
reverted: 'Deshecho — el cambio se ha revertido.',
|
|
3256
3854
|
revertFailed: 'Error al deshacer',
|
|
@@ -3279,25 +3877,25 @@ const es = {
|
|
|
3279
3877
|
rangeEnd: "Hasta",
|
|
3280
3878
|
operators: {
|
|
3281
3879
|
equals: "Igual a",
|
|
3282
|
-
|
|
3880
|
+
not_equals: "Distinto de",
|
|
3283
3881
|
contains: "Contiene",
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
|
|
3882
|
+
icontains: "Contiene (ignorar mayúsculas)",
|
|
3883
|
+
not_contains: "No contiene",
|
|
3884
|
+
is_empty: "Está vacío",
|
|
3885
|
+
is_not_empty: "No está vacío",
|
|
3886
|
+
greater_than: "Mayor que",
|
|
3887
|
+
less_than: "Menor que",
|
|
3888
|
+
greater_than_or_equal: "Mayor o igual",
|
|
3889
|
+
less_than_or_equal: "Menor o igual",
|
|
3292
3890
|
before: "Antes de",
|
|
3293
3891
|
after: "Después de",
|
|
3294
3892
|
between: "Entre",
|
|
3295
3893
|
in: "En",
|
|
3296
|
-
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
|
|
3300
|
-
|
|
3894
|
+
not_in: "No en",
|
|
3895
|
+
starts_with: "Comienza por",
|
|
3896
|
+
ends_with: "Termina en",
|
|
3897
|
+
is_null: "Es null",
|
|
3898
|
+
is_not_null: "No es null",
|
|
3301
3899
|
exists: "Está definido",
|
|
3302
3900
|
notExists: "No está definido",
|
|
3303
3901
|
},
|
|
@@ -3313,7 +3911,9 @@ const es = {
|
|
|
3313
3911
|
},
|
|
3314
3912
|
collaboration: {
|
|
3315
3913
|
commentCount: "{{count}} comentarios",
|
|
3316
|
-
|
|
3914
|
+
commentCount_one: "{{count}} comentario",
|
|
3915
|
+
commentCount_many: "{{count}} de comentarios",
|
|
3916
|
+
commentCount_other: "{{count}} comentarios",
|
|
3317
3917
|
resolvedSuffix: " · Resuelto",
|
|
3318
3918
|
sortComments: "Ordenar comentarios",
|
|
3319
3919
|
sortOldest: "Más antiguos",
|
|
@@ -3322,11 +3922,22 @@ const es = {
|
|
|
3322
3922
|
reopen: "Reabrir",
|
|
3323
3923
|
justNow: "ahora mismo",
|
|
3324
3924
|
minutesAgo: "hace {{count}} min",
|
|
3925
|
+
minutesAgo_one: "hace {{count}} min",
|
|
3926
|
+
minutesAgo_many: "hace {{count}} min",
|
|
3927
|
+
minutesAgo_other: "hace {{count}} min",
|
|
3325
3928
|
hoursAgo: "hace {{count}} h",
|
|
3929
|
+
hoursAgo_one: "hace {{count}} h",
|
|
3930
|
+
hoursAgo_many: "hace {{count}} h",
|
|
3931
|
+
hoursAgo_other: "hace {{count}} h",
|
|
3326
3932
|
daysAgo: "hace {{count}} d",
|
|
3933
|
+
daysAgo_one: "hace {{count}} d",
|
|
3934
|
+
daysAgo_many: "hace {{count}} d",
|
|
3935
|
+
daysAgo_other: "hace {{count}} d",
|
|
3327
3936
|
edited: "(editado)",
|
|
3328
3937
|
reactionCount: "{{count}} reacciones",
|
|
3329
|
-
|
|
3938
|
+
reactionCount_one: "{{count}} reacción",
|
|
3939
|
+
reactionCount_many: "{{count}} de reacciones",
|
|
3940
|
+
reactionCount_other: "{{count}} reacciones",
|
|
3330
3941
|
addThumbsUp: "Agregar me gusta",
|
|
3331
3942
|
reply: "Responder",
|
|
3332
3943
|
reactThumbsUp: "Reaccionar con me gusta",
|
|
@@ -3337,9 +3948,13 @@ const es = {
|
|
|
3337
3948
|
commentPlaceholder: "Agregar un comentario… (usa @ para mencionar)",
|
|
3338
3949
|
send: "Enviar",
|
|
3339
3950
|
presentUserCount: "{{count}} usuarios presentes",
|
|
3340
|
-
|
|
3951
|
+
presentUserCount_one: "{{count}} usuario presente",
|
|
3952
|
+
presentUserCount_many: "{{count}} de usuarios presentes",
|
|
3953
|
+
presentUserCount_other: "{{count}} usuarios presentes",
|
|
3341
3954
|
moreUserCount: "{{count}} usuarios más",
|
|
3342
|
-
|
|
3955
|
+
moreUserCount_one: "{{count}} usuario más",
|
|
3956
|
+
moreUserCount_many: "{{count}} de usuarios más",
|
|
3957
|
+
moreUserCount_other: "{{count}} usuarios más",
|
|
3343
3958
|
userStatusTitle: "{{name}} ({{status}})",
|
|
3344
3959
|
statusActive: "activo",
|
|
3345
3960
|
statusIdle: "inactivo",
|
|
@@ -3347,6 +3962,11 @@ const es = {
|
|
|
3347
3962
|
},
|
|
3348
3963
|
wizard: {
|
|
3349
3964
|
missingRequired: "Complete los campos obligatorios: {{fields}}",
|
|
3965
|
+
back: "Atrás",
|
|
3966
|
+
submitting: "Enviando…",
|
|
3967
|
+
stepFallback: "Paso {{n}}",
|
|
3968
|
+
progressLabel: "Progreso",
|
|
3969
|
+
emptyStep: "No hay campos configurados para este paso",
|
|
3350
3970
|
},
|
|
3351
3971
|
flowRunner: {
|
|
3352
3972
|
title: 'Entrada',
|
|
@@ -3404,5 +4024,49 @@ const es = {
|
|
|
3404
4024
|
bulkOperationFailed: "Error en la operación masiva: {{reason}}",
|
|
3405
4025
|
},
|
|
3406
4026
|
},
|
|
4027
|
+
// objectui#6301 — Configuración › Automatización de paquetes (ADR-0126
|
|
4028
|
+
// §7.4). Terminología del pack: `common.package` = Paquete,
|
|
4029
|
+
// `flowRunner.completed` = Flujo, comillas «…». ⛔ Ninguna formulación de
|
|
4030
|
+
// linaje o desviación en este grupo (§9).
|
|
4031
|
+
packagedAutomation: {
|
|
4032
|
+
title: "Automatización de paquetes",
|
|
4033
|
+
subtitle: "Flujos y acciones incluidos en los paquetes instalados. Desactiva uno en esta implementación o clona un flujo con un nombre nuevo para personalizarlo. La edición se hace en Studio.",
|
|
4034
|
+
refresh: "Actualizar",
|
|
4035
|
+
flowsHeading: "Flujos de paquete",
|
|
4036
|
+
actionsHeading: "Acciones de paquete",
|
|
4037
|
+
colFlow: "Flujo",
|
|
4038
|
+
colActivation: "Activación",
|
|
4039
|
+
colActions: "Acciones",
|
|
4040
|
+
toggleLabel: "Activación de {{label}}",
|
|
4041
|
+
on: "Activado",
|
|
4042
|
+
off: "Desactivado",
|
|
4043
|
+
clone: "Clonar",
|
|
4044
|
+
cloneTitle: "Clonar flujo del paquete",
|
|
4045
|
+
cloneBody: "La copia conserva toda la definición y necesita un nombre de máquina y una etiqueta nuevos. Edita la copia en Studio.",
|
|
4046
|
+
cloneName: "Nuevo nombre de máquina",
|
|
4047
|
+
cloneLabel: "Nueva etiqueta",
|
|
4048
|
+
cancel: "Cancelar",
|
|
4049
|
+
cloneConfirm: "Crear clon",
|
|
4050
|
+
cloneCreated: "Flujo «{{name}}» creado.",
|
|
4051
|
+
emptyTitle: "Sin flujos de paquete",
|
|
4052
|
+
emptyBody: "Ningún paquete instalado incluye un flujo de automatización en esta implementación. Los flujos que creas tú están en Studio.",
|
|
4053
|
+
loadFailed: "No se pudo cargar la automatización de paquetes.",
|
|
4054
|
+
toggleFailedHttp: "No se pudo cambiar la activación (HTTP {{status}}).",
|
|
4055
|
+
toggleFailed: "No se pudo cambiar la activación.",
|
|
4056
|
+
cloneFailedHttp: "No se pudo clonar este flujo (HTTP {{status}}).",
|
|
4057
|
+
cloneFailed: "No se pudo clonar este flujo.",
|
|
4058
|
+
actionsSubtitle: "Acciones incluidas en los paquetes instalados. Desactiva una en esta implementación y dejará de ejecutarse en todos los lugares donde se ofrece. Crear tu propia acción junto a ella sigue estando disponible en Studio.",
|
|
4059
|
+
colAction: "Acción",
|
|
4060
|
+
colObject: "Objeto",
|
|
4061
|
+
actionToggleLabel: "Activación de {{label}} en {{object}}",
|
|
4062
|
+
actionsEmptyTitle: "Sin acciones de paquete",
|
|
4063
|
+
actionsEmptyBody: "Ningún paquete instalado declara una acción en esta implementación. Las acciones que creas tú están en Studio.",
|
|
4064
|
+
actionsLoadFailed: "No se pudieron cargar las acciones de paquete.",
|
|
4065
|
+
},
|
|
4066
|
+
element: {
|
|
4067
|
+
number: {
|
|
4068
|
+
noObject: "No se ha indicado ningún objeto: define object o dataSource.object.",
|
|
4069
|
+
},
|
|
4070
|
+
},
|
|
3407
4071
|
};
|
|
3408
4072
|
export default es;
|