pgkiln 0.82.0 → 0.83.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/db/migrations/153_component_events.sql +21 -0
- package/docs/apex-feature-parity.md +3 -3
- package/docs/guide/03-builder.md +8 -1
- package/docs/guide/04-pages-and-regions.md +2 -1
- package/docs/guide/07-dynamic-actions.md +27 -0
- package/docs/guide/11-from-apex.md +2 -1
- package/docs/guide/12-development.md +9 -1
- package/package.json +1 -1
- package/public/app.css +2 -0
- package/public/app.js +85 -4
- package/public/builder.css +25 -2
- package/public/data-modeler.js +8 -5
- package/public/sql-monitor.js +5 -2
- package/src/builder/ai-builder.ts +50 -46
- package/src/builder/api.ts +49 -49
- package/src/builder/autorest.ts +92 -87
- package/src/builder/changelog.ts +39 -37
- package/src/builder/components.ts +5 -4
- package/src/builder/data-modeler.ts +89 -84
- package/src/builder/data-security.ts +39 -37
- package/src/builder/dataload.ts +69 -65
- package/src/builder/datapump.ts +108 -97
- package/src/builder/ddl-tools.ts +38 -34
- package/src/builder/document-view.ts +11 -11
- package/src/builder/i18n/de.ts +1627 -0
- package/src/builder/i18n/en.ts +1627 -0
- package/src/builder/i18n/es.ts +1627 -0
- package/src/builder/i18n/fr.ts +1627 -0
- package/src/builder/i18n/it.ts +1627 -0
- package/src/builder/i18n/ja.ts +1627 -0
- package/src/builder/i18n/ko.ts +1627 -0
- package/src/builder/i18n/nl.ts +1627 -0
- package/src/builder/i18n/pt.ts +1627 -0
- package/src/builder/i18n/zh-cn.ts +1627 -0
- package/src/builder/i18n/zh-tw.ts +1627 -0
- package/src/builder/i18n.ts +18 -0
- package/src/builder/object-actions.ts +18 -16
- package/src/builder/object-browser.ts +2 -2
- package/src/builder/querybuilder.ts +42 -36
- package/src/builder/quicksql.ts +16 -18
- package/src/builder/region-settings.ts +201 -199
- package/src/builder/report-settings.ts +64 -60
- package/src/builder/rest-modules.ts +145 -143
- package/src/builder/sampledata.ts +59 -52
- package/src/builder/scheduling.ts +180 -159
- package/src/builder/scripts.ts +71 -65
- package/src/builder/sql-charts.ts +36 -30
- package/src/builder/sql-monitor.ts +95 -89
- package/src/builder/sql-utilities.ts +47 -40
- package/src/builder/top-sql.ts +21 -17
- package/src/builder/unload.ts +48 -44
- package/src/builder/worksheet.ts +3 -3
- package/src/cron-schedule.ts +47 -17
- package/src/metadata.ts +3 -1
- package/src/runtime/calendar.ts +3 -2
- package/src/runtime/context.ts +2 -0
- package/src/runtime/grid.ts +1 -0
- package/src/runtime/maps.ts +7 -4
- package/src/runtime/render.ts +6 -1
- package/src/runtime/routes.ts +4 -0
- package/src/runtime/tree.ts +4 -3
package/src/builder/i18n/es.ts
CHANGED
|
@@ -2422,4 +2422,1631 @@ export const es: BuilderMessages = {
|
|
|
2422
2422
|
'gallery.item.autocomplete': 'Campo de texto con autocompletar',
|
|
2423
2423
|
'gallery.item.percent_graph': 'Gráfico de porcentaje',
|
|
2424
2424
|
'gallery.item.display_map': 'Mostrar mapa',
|
|
2425
|
+
// ------------------------------------------------------------ SQL Monitor, Top SQL (sprint 162, CD-8)
|
|
2426
|
+
'sm.views': 'Vistas del monitor SQL',
|
|
2427
|
+
'sm.sessions': 'Sesiones',
|
|
2428
|
+
'sm.active': 'Activas',
|
|
2429
|
+
'sm.idle_tx': 'Inactivas en una transacción',
|
|
2430
|
+
'sm.blocked': 'Bloqueadas',
|
|
2431
|
+
'sm.longest': 'Ejecución más larga (s)',
|
|
2432
|
+
'sm.cancel': 'Cancelar',
|
|
2433
|
+
'sm.terminate': 'Terminar',
|
|
2434
|
+
'sm.cancel_confirm': '¿Cancelar la sentencia que ejecuta la sesión {pid}?',
|
|
2435
|
+
'sm.terminate_confirm': '¿Terminar la sesión {pid}? Su transacción abierta se revierte y el cliente se desconecta.',
|
|
2436
|
+
'sm.cancel_label': 'Cancelar la sentencia de la sesión {pid}',
|
|
2437
|
+
'sm.terminate_label': 'Terminar la sesión {pid}',
|
|
2438
|
+
'sm.sessions_intro': 'Las sesiones de cliente de esta base de datos (pg_stat_activity), sin las inactivas, primero las activas.',
|
|
2439
|
+
'sm.sessions_intro_all': 'Las sesiones de cliente de esta base de datos (pg_stat_activity), primero las activas.',
|
|
2440
|
+
'sm.hide_idle': 'Ocultar sesiones inactivas',
|
|
2441
|
+
'sm.show_idle': 'Mostrar sesiones inactivas',
|
|
2442
|
+
'sm.query_text_note': 'El texto de una consulta solo se muestra para los roles cuyas estadísticas puede leer el propietario ({role}).',
|
|
2443
|
+
'sm.col.user': 'Usuario',
|
|
2444
|
+
'sm.col.application': 'Aplicación',
|
|
2445
|
+
'sm.col.state': 'Estado',
|
|
2446
|
+
'sm.col.wait': 'Espera',
|
|
2447
|
+
'sm.col.running': 'En ejecución (s)',
|
|
2448
|
+
'sm.col.blocked_by': 'Bloqueada por',
|
|
2449
|
+
'sm.col.query': 'Consulta',
|
|
2450
|
+
'sm.col.actions': 'Acciones',
|
|
2451
|
+
'sm.statement_link': 'Estadísticas y plan de esta sentencia',
|
|
2452
|
+
'sm.no_other': 'No hay otras sesiones.',
|
|
2453
|
+
'sm.no_busy': 'No hay sesiones ocupadas.',
|
|
2454
|
+
'sm.waits': 'Eventos de espera',
|
|
2455
|
+
'sm.waits_intro': 'Lo que esperan ahora las sesiones activas del servidor ({cpu} cuando no esperan).',
|
|
2456
|
+
'sm.cpu_running': 'CPU: en ejecución',
|
|
2457
|
+
'sm.col.type': 'Tipo',
|
|
2458
|
+
'sm.col.event': 'Evento',
|
|
2459
|
+
'sm.no_other_active': 'No hay otras sesiones activas.',
|
|
2460
|
+
'sm.in_progress': 'En curso',
|
|
2461
|
+
'sm.col.command': 'Comando',
|
|
2462
|
+
'sm.col.object': 'Objeto',
|
|
2463
|
+
'sm.col.phase': 'Fase',
|
|
2464
|
+
'sm.col.done': 'Hecho',
|
|
2465
|
+
'sm.updated': 'Actualizado {time} UTC',
|
|
2466
|
+
'sm.refresh': 'Actualizar',
|
|
2467
|
+
'sm.refresh_every': 'Actualizar cada',
|
|
2468
|
+
'sm.seconds': '{n} segundos',
|
|
2469
|
+
'sm.pause': 'Pausa',
|
|
2470
|
+
'sm.not_client': 'La sesión {pid} (ya) no es una sesión de cliente de esta base de datos.',
|
|
2471
|
+
'sm.cancelled': 'Se pidió a la sesión {pid} que cancele su sentencia.',
|
|
2472
|
+
'sm.terminated': 'Sesión {pid} terminada.',
|
|
2473
|
+
'sm.not_signalled': 'No se pudo enviar la señal a la sesión {pid}.',
|
|
2474
|
+
'sm.col.role': 'Rol',
|
|
2475
|
+
'sm.col.calls': 'Llamadas',
|
|
2476
|
+
'sm.col.total_ms': 'Total ms',
|
|
2477
|
+
'sm.col.mean_ms': 'Media ms',
|
|
2478
|
+
'sm.col.rows': 'Filas',
|
|
2479
|
+
'sm.col.hit': 'Bloques en caché',
|
|
2480
|
+
'sm.col.read': 'Bloques leídos',
|
|
2481
|
+
'sm.col.statement': 'Sentencia',
|
|
2482
|
+
'sm.sort_by': 'Ordenar por {column}',
|
|
2483
|
+
'sm.contains': 'La sentencia contiene',
|
|
2484
|
+
'sm.no_match': 'Ninguna sentencia coincide.',
|
|
2485
|
+
'sm.none_yet': 'Aún no hay sentencias registradas.',
|
|
2486
|
+
'sm.since': 'Estadísticas desde {time}.',
|
|
2487
|
+
'sm.at_most': 'Se muestran como máximo 100 sentencias; los literales y variables de enlace aparecen como {p1}, {p2}….',
|
|
2488
|
+
'sm.reset_confirm': '¿Borrar las estadísticas de sentencias de todo el servidor?',
|
|
2489
|
+
'sm.reset': 'Restablecer estadísticas',
|
|
2490
|
+
'sm.reset_done': 'Estadísticas de sentencias restablecidas.',
|
|
2491
|
+
'sm.top_intro': 'Las sentencias de esta base de datos desde {ext}, todos los roles. Haga clic en una sentencia para ver su plan.',
|
|
2492
|
+
'sm.statement': 'Sentencia',
|
|
2493
|
+
'sm.temp_blocks_written': 'Bloques temporales escritos',
|
|
2494
|
+
'sm.text': 'Texto',
|
|
2495
|
+
'sm.sql_text': 'Texto SQL',
|
|
2496
|
+
'sm.open_worksheet': 'Abrir en la hoja de trabajo',
|
|
2497
|
+
'sm.back_top': 'Volver a Top SQL',
|
|
2498
|
+
'sm.by_role': 'Por rol',
|
|
2499
|
+
'sm.nested': 'anidada',
|
|
2500
|
+
'sm.col.stddev_ms': 'Desv. est. ms',
|
|
2501
|
+
'sm.col.min_ms': 'Mín. ms',
|
|
2502
|
+
'sm.col.max_ms': 'Máx. ms',
|
|
2503
|
+
'sm.col.hit_short': 'En caché',
|
|
2504
|
+
'sm.col.read_short': 'Leídos',
|
|
2505
|
+
'sm.col.temp_read': 'Temp. leídos',
|
|
2506
|
+
'sm.col.temp_written': 'Temp. escritos',
|
|
2507
|
+
'sm.explain_plan': 'Plan de ejecución',
|
|
2508
|
+
'sm.explain_intro': 'EXPLAIN sin ejecutar la sentencia. Los nombres sin calificar se buscan primero en el esquema que elija.',
|
|
2509
|
+
'sm.explain_intro_params': 'EXPLAIN sin ejecutar la sentencia: sus parámetros ($1, …) reciben un plan genérico. Los nombres sin calificar se buscan primero en el esquema que elija.',
|
|
2510
|
+
'sm.schema': 'Esquema',
|
|
2511
|
+
'sm.search_path': '(la ruta de búsqueda)',
|
|
2512
|
+
'sm.explain': 'Explicar',
|
|
2513
|
+
'sm.err.one': 'Solo se puede explicar una sentencia SQL.',
|
|
2514
|
+
'sm.err.kind': 'Solo las sentencias SELECT, INSERT, UPDATE, DELETE, MERGE y VALUES tienen un plan.',
|
|
2515
|
+
'sm.err.generic': 'La sentencia tiene parámetros ($1, …): PostgreSQL 16 o posterior puede explicarla con un plan genérico. Ábrala en la hoja de trabajo e indique valores.',
|
|
2516
|
+
'sm.err.params': 'La sentencia tiene demasiados parámetros para explicarla.',
|
|
2517
|
+
'topsql.not_installed': 'La extensión {ext} no está instalada en esta base de datos. Para activarla: establezca {setting} (postgresql.conf o {alter}), reinicie PostgreSQL y luego, como superusuario: {create}',
|
|
2518
|
+
'topsql.not_loaded': 'El servidor aún no carga {ext}. Establezca {setting} (el {compose} de desarrollo lo hace) y reinicie PostgreSQL.',
|
|
2519
|
+
'topsql.read_error': 'No se pudieron leer las estadísticas: {message}',
|
|
2520
|
+
'topsql.sort_by': 'Ordenar por {total} {mean} {calls} {rows}',
|
|
2521
|
+
'topsql.sort.total': 'tiempo total',
|
|
2522
|
+
'topsql.sort.mean': 'tiempo por llamada',
|
|
2523
|
+
'topsql.sort.calls': 'llamadas',
|
|
2524
|
+
'topsql.sort.rows': 'filas',
|
|
2525
|
+
'topsql.share': 'Proporción',
|
|
2526
|
+
'topsql.reset_confirm': '¿Borrar las estadísticas del rol {role}?',
|
|
2527
|
+
'topsql.reset': 'Restablecer las estadísticas',
|
|
2528
|
+
'topsql.none_yet': 'Aún no hay sentencias registradas para {role}. Use la aplicación y vuelva después.',
|
|
2529
|
+
'topsql.no_role': 'Esta aplicación se ejecuta con el rol propietario, por lo que sus sentencias no se pueden distinguir. Asígnele un rol de base de datos en Configuración.',
|
|
2530
|
+
'topsql.owner': '(propietario)',
|
|
2531
|
+
'topsql.intro': 'Sentencias ejecutadas con el rol {role} desde el último restablecimiento de las estadísticas, desde {ext}. Los literales y variables de enlace aparecen como {p1}, {p2}…; las aplicaciones que comparten un rol comparten esta lista.',
|
|
2532
|
+
'topsql.back_activity': 'Volver a Actividad',
|
|
2533
|
+
'topsql.activity': 'Actividad',
|
|
2534
|
+
'topsql.no_db_role': 'La aplicación no tiene rol de base de datos.',
|
|
2535
|
+
'topsql.reset_done': 'Estadísticas restablecidas.',
|
|
2536
|
+
// ------------------------------------------------------------ SQL Monitor and Data Modeler in the browser (sprint 162)
|
|
2537
|
+
'js.sm.resume': 'Reanudar',
|
|
2538
|
+
'js.sm.pause': 'Pausa',
|
|
2539
|
+
'js.sm.stopped': 'Actualización detenida: no se pudo acceder al monitor (¿sesión cerrada?). Vuelva a cargar la página.',
|
|
2540
|
+
'js.dm.unsaved': 'Cambios sin guardar',
|
|
2541
|
+
'js.dm.saving': 'Guardando…',
|
|
2542
|
+
'js.dm.saved': 'Guardado',
|
|
2543
|
+
'js.dm.not_saved': 'No guardado ({error}): vuelva a intentarlo',
|
|
2544
|
+
'js.dm.no_png': 'No se pudo crear el PNG: exporte SVG en su lugar',
|
|
2545
|
+
// ------------------------------------------------------------ Quick SQL, SQL Scripts (sprint 162, CD-8)
|
|
2546
|
+
'qs.syntax': 'Sintaxis',
|
|
2547
|
+
'qs.syntax.tables': 'Un nombre de tabla en su propia línea, con sus columnas sangradas debajo. Una tabla sangrada bajo otra es una tabla hija: recibe `<parent>_id`, que hace referencia a la tabla padre.',
|
|
2548
|
+
'qs.syntax.types': 'Tipos de columna a partir del nombre (`*_id` bigint, `*_at` timestamptz, `*_date`/`*_on` date, `is_*` boolean, `price`/`amount` numeric, si no text) o escritos detrás: `vc200`, `num`, `num(10,2)`, `int`, `date`, `ts`, `tstz`, `clob`, `blob`, `json`, `bool`, `uuid`.',
|
|
2549
|
+
'qs.syntax.directives': 'Directivas de columna: `/nn`, `/pk`, `/unique`, `/idx`, `/fk table`, `/check a, b`, `/between 1 and 10`, `/default value`, `/lower`, `/upper`; `[a comment]`. Directiva de tabla: `/auditcols`.',
|
|
2550
|
+
'qs.syntax.settings': 'Configuración: `# pk: identity | seq | guid | none`, `# schema: name`, `# prefix: xx`, `# drop: true`, `# auditcols: true` o `# settings = { pk: "guid", schema: "app" }`.',
|
|
2551
|
+
'qs.syntax.views': '`view name table1 table2`: una vista que une las tablas por sus claves foráneas. `--` inicia un comentario.',
|
|
2552
|
+
'qs.generate': 'Generar SQL',
|
|
2553
|
+
'qs.line': 'Línea {line}: {message}',
|
|
2554
|
+
'qs.generated': 'SQL generado',
|
|
2555
|
+
'qs.save_or_run': 'Guardar o ejecutar',
|
|
2556
|
+
'qs.script_name': 'Nombre del script',
|
|
2557
|
+
'qs.save_script': 'Guardar como script',
|
|
2558
|
+
'qs.run': 'Ejecutar',
|
|
2559
|
+
'qs.too_large': 'El Quick SQL supera 1 MB.',
|
|
2560
|
+
'qs.script_too_large': 'El script generado es demasiado grande.',
|
|
2561
|
+
'qs.saved': 'Guardado como script «{name}».',
|
|
2562
|
+
'scr.error': 'Error',
|
|
2563
|
+
'scr.skipped': 'Omitida',
|
|
2564
|
+
'scr.not_run': 'No ejecutada',
|
|
2565
|
+
'scr.summary': '{n} sentencia(s): {ok} correctas, {failed} con error.',
|
|
2566
|
+
'scr.summary_rest': '{n} sentencia(s): {ok} correctas, {failed} con error, {rest} no ejecutadas u omitidas.',
|
|
2567
|
+
'scr.rolled_back_note': 'La transacción se revirtió: no se cambió nada.',
|
|
2568
|
+
'scr.no_statements': 'El script no tiene sentencias.',
|
|
2569
|
+
'scr.line': 'línea {line}',
|
|
2570
|
+
'scr.done': 'hecho',
|
|
2571
|
+
'scr.rows': '{n} fila(s)',
|
|
2572
|
+
'scr.first_rows': 'Primeras {shown} de {n} fila(s).',
|
|
2573
|
+
'scr.when_fails': 'Cuando falla una sentencia',
|
|
2574
|
+
'scr.stop': 'Detener el script',
|
|
2575
|
+
'scr.continue': 'Continuar con la siguiente sentencia',
|
|
2576
|
+
'scr.one_tx': 'Ejecutar en una transacción (con «Detener», un fallo revierte todo el script)',
|
|
2577
|
+
'scr.col.started': 'Inicio',
|
|
2578
|
+
'scr.col.script': 'Script',
|
|
2579
|
+
'scr.col.by': 'Por',
|
|
2580
|
+
'scr.col.statements': 'Sentencias',
|
|
2581
|
+
'scr.col.failed': 'Con error',
|
|
2582
|
+
'scr.col.result': 'Resultado',
|
|
2583
|
+
'scr.rolled_back': 'Revertido',
|
|
2584
|
+
'scr.errors': 'Errores',
|
|
2585
|
+
'scr.no_runs': 'Aún no hay ejecuciones.',
|
|
2586
|
+
'scr.col.updated': 'Actualizado',
|
|
2587
|
+
'scr.col.size': 'Tamaño',
|
|
2588
|
+
'scr.col.last_run': 'Última ejecución',
|
|
2589
|
+
'scr.col.open': 'Abrir',
|
|
2590
|
+
'scr.by': 'por {user}',
|
|
2591
|
+
'scr.never': 'nunca',
|
|
2592
|
+
'scr.worksheet': 'Hoja de trabajo',
|
|
2593
|
+
'scr.download': 'Descargar',
|
|
2594
|
+
'scr.none_yet': 'Aún no hay scripts. Cree uno, cargue un archivo .sql o genere uno con Quick SQL.',
|
|
2595
|
+
'scr.create': 'Crear script',
|
|
2596
|
+
'scr.scripts': 'Scripts',
|
|
2597
|
+
'scr.upload_title': 'Cargar un script',
|
|
2598
|
+
'scr.file': 'Archivo .sql (UTF-8, hasta {mb} MB)',
|
|
2599
|
+
'scr.upload': 'Cargar',
|
|
2600
|
+
'scr.recent_runs': 'Ejecuciones recientes',
|
|
2601
|
+
'scr.name': 'Nombre',
|
|
2602
|
+
'scr.description': 'Descripción',
|
|
2603
|
+
'scr.content_help': 'Las sentencias terminan en punto y coma (fuera de cadenas, comentarios y cuerpos $$). Los comandos de psql (\\set, \\i …) se omiten.',
|
|
2604
|
+
'scr.statements': '{n} sentencia(s).',
|
|
2605
|
+
'scr.save': 'Guardar',
|
|
2606
|
+
'scr.save_run': 'Guardar y ejecutar',
|
|
2607
|
+
'scr.delete_confirm': '¿Eliminar este script y su historial de ejecuciones?',
|
|
2608
|
+
'scr.delete': 'Eliminar',
|
|
2609
|
+
'scr.new': 'Nuevo script',
|
|
2610
|
+
'scr.script_title': 'Script: {name}',
|
|
2611
|
+
'scr.runs': 'Ejecuciones',
|
|
2612
|
+
'scr.err.name': 'Asigne un nombre al script (como máximo 200 caracteres).',
|
|
2613
|
+
'scr.err.size': 'El script supera {mb} MB.',
|
|
2614
|
+
'scr.err.exists': 'Ya existe un script llamado «{name}».',
|
|
2615
|
+
'scr.saved': 'Script «{name}» guardado.',
|
|
2616
|
+
'scr.deleted': 'Script «{name}» eliminado.',
|
|
2617
|
+
'scr.err.choose': 'Elija un archivo .sql.',
|
|
2618
|
+
'scr.err.file_size': 'El archivo supera {mb} MB.',
|
|
2619
|
+
'scr.err.utf8': 'El archivo no es texto UTF-8.',
|
|
2620
|
+
'scr.err.text': 'El archivo no es un archivo de texto.',
|
|
2621
|
+
'scr.uploaded': 'Script «{name}» cargado.',
|
|
2622
|
+
'scr.opt.stop': 'detener en caso de error',
|
|
2623
|
+
'scr.opt.continue': 'continuar en caso de error',
|
|
2624
|
+
'scr.opt.one_tx': 'una transacción',
|
|
2625
|
+
'scr.results_title': 'Resultados del script',
|
|
2626
|
+
'scr.results': 'Resultados',
|
|
2627
|
+
'scr.results_of': 'Resultados: {name}',
|
|
2628
|
+
'scr.run_by': 'Ejecutado por {user} a las {time} en {ms} ms ({options}).',
|
|
2629
|
+
'scr.edit': 'Editar el script',
|
|
2630
|
+
// ------------------------------------------------------------ Generate DDL, Schema Comparison, Change Log (sprint 162, CD-8)
|
|
2631
|
+
'ddl.type.types': 'Tipos y dominios',
|
|
2632
|
+
'ddl.type.sequences': 'Secuencias',
|
|
2633
|
+
'ddl.type.tables': 'Tablas (restricciones, índices)',
|
|
2634
|
+
'ddl.type.views': 'Vistas y vistas materializadas',
|
|
2635
|
+
'ddl.type.functions': 'Funciones y procedimientos',
|
|
2636
|
+
'ddl.type.triggers': 'Disparadores',
|
|
2637
|
+
'ddl.type.policies': 'Seguridad a nivel de fila y políticas',
|
|
2638
|
+
'ddl.choose_schema': '- elija un esquema -',
|
|
2639
|
+
'ddl.of': 'DDL de {schema}',
|
|
2640
|
+
'ddl.objects_review': '{n} objeto(s). Revise el script antes de ejecutarlo (SQL Workshop → Scripts SQL).',
|
|
2641
|
+
'ddl.download': 'Descargar {file}',
|
|
2642
|
+
'ddl.intro': 'El DDL de los objetos de un esquema, desde el catálogo de la base de datos, en un orden que se ejecuta: tipos, secuencias, tablas, funciones, vistas, restricciones, índices, disparadores, seguridad a nivel de fila, comentarios y privilegios (APEX: Generar DDL). Se omiten los objetos de extensiones.',
|
|
2643
|
+
'ddl.objects': 'Objetos',
|
|
2644
|
+
'ddl.comments': 'Comentarios',
|
|
2645
|
+
'ddl.grants': 'Privilegios',
|
|
2646
|
+
'ddl.generate': 'Generar',
|
|
2647
|
+
'cmp.only_source': 'Solo en el origen',
|
|
2648
|
+
'cmp.only_target': 'Solo en el destino',
|
|
2649
|
+
'cmp.different': 'Diferentes',
|
|
2650
|
+
'cmp.n_only_source': '{n} solo en el origen',
|
|
2651
|
+
'cmp.n_only_target': '{n} solo en el destino',
|
|
2652
|
+
'cmp.n_different': '{n} diferentes',
|
|
2653
|
+
'cmp.apply_confirm': '¿Ejecutar el script de cambios en {target} en una transacción?',
|
|
2654
|
+
'cmp.apply': 'Aplicar y registrar',
|
|
2655
|
+
'cmp.apply_note': 'Ejecuta el script en {target} (los drops comentados quedan fuera) y lo registra en el {log}.',
|
|
2656
|
+
'cmp.change_log': 'registro de cambios',
|
|
2657
|
+
'cmp.two_different': 'Elija dos esquemas distintos.',
|
|
2658
|
+
'cmp.summary': 'Resumen',
|
|
2659
|
+
'cmp.differences': '{n} diferencia(s): {parts}; {same} objeto(s) iguales.',
|
|
2660
|
+
'cmp.same': 'Los esquemas son iguales ({n} objetos).',
|
|
2661
|
+
'cmp.both': '{source} y {target}',
|
|
2662
|
+
'cmp.script_title': 'Script de cambios: hacer {target} como {source}',
|
|
2663
|
+
'cmp.script_intro': 'Crea lo que solo tiene {source}, cambia lo que difiere y lista lo que solo tiene {target} como drops comentados; las columnas que cambian de identidad o generación, y los tipos, dominios y secuencias que difieren, se dejan para revisión. No se ejecuta nada hasta que elija Aplicar y registrar.',
|
|
2664
|
+
'cmp.change_script': 'Script de cambios',
|
|
2665
|
+
'cmp.intro': 'Compara los objetos de dos esquemas de esta base de datos por su DDL (APEX: Comparación de esquemas), p. ej. una copia de desarrollo con el esquema de origen, y escribe un script que hace el destino como el origen. No se compara el orden de las columnas de una tabla.',
|
|
2666
|
+
'cmp.source': 'Origen',
|
|
2667
|
+
'cmp.target': 'Destino (se hará como el origen)',
|
|
2668
|
+
'cmp.compare': 'Comparar',
|
|
2669
|
+
'cmp.nothing': '{target} ya es como {source}: nada que aplicar.',
|
|
2670
|
+
'cmp.failed': 'No se cambió nada: el script de cambios se ejecutó en una transacción, que se revirtió. {error}',
|
|
2671
|
+
'cmp.applied': '{target} ahora es como {source}: {n} sentencia(s), registradas en el registro de cambios.',
|
|
2672
|
+
'cl.from.table': 'Propiedades de tabla',
|
|
2673
|
+
'cl.schemas': 'Esquemas',
|
|
2674
|
+
'cl.col.change_set': 'Conjunto de cambios',
|
|
2675
|
+
'cl.col.author': 'Autor',
|
|
2676
|
+
'cl.col.recorded': 'Registrado',
|
|
2677
|
+
'cl.col.from': 'Desde',
|
|
2678
|
+
'cl.col.latest_export': 'Última exportación de la aplicación',
|
|
2679
|
+
'cl.col.migration_file': 'Archivo de migración',
|
|
2680
|
+
'cl.rename': 'Cambiar nombre',
|
|
2681
|
+
'cl.delete_confirm': '¿Eliminar el conjunto de cambios {n} del registro? La base de datos no cambia y su número no se vuelve a asignar.',
|
|
2682
|
+
'cl.in_it': 'incluido',
|
|
2683
|
+
'cl.after_it': 'posterior',
|
|
2684
|
+
'cl.written': 'escrito {time}',
|
|
2685
|
+
'cl.not_yet': 'aún no',
|
|
2686
|
+
'cl.none_yet': 'Aún no hay conjuntos de cambios. Aquí se registra el DDL que ejecute en la hoja de trabajo SQL o aplique en Propiedades de tabla o desde Comparación de esquemas.',
|
|
2687
|
+
'cl.compare_with': 'Comparar con la última exportación de',
|
|
2688
|
+
'cl.show': 'Mostrar',
|
|
2689
|
+
'cl.export_note': '✓ incluido: registrado antes de la última exportación de la aplicación, por lo que un despliegue de esa exportación espera el cambio. {after}: aún por enviar con la próxima exportación.',
|
|
2690
|
+
'cl.no_exports': 'Aún no se ha exportado ninguna aplicación de este espacio de trabajo desde el constructor (Aplicación › Exportar): los conjuntos de cambios no se pueden comparar con una exportación.',
|
|
2691
|
+
'cl.format': 'Formato',
|
|
2692
|
+
'cl.format.flyway': 'Flyway: archivos V0001__name.sql (un zip para varios)',
|
|
2693
|
+
'cl.format.liquibase': 'Liquibase: changelog SQL formateado',
|
|
2694
|
+
'cl.format.sql': 'Script SQL simple',
|
|
2695
|
+
'cl.change_sets': 'Conjuntos de cambios',
|
|
2696
|
+
'cl.which.pending': 'Aún no escritos en un archivo ({n})',
|
|
2697
|
+
'cl.which.all': 'Todos de {schema} ({n})',
|
|
2698
|
+
'cl.which.after': 'Tras la última exportación de {app} ({n})',
|
|
2699
|
+
'cl.download': 'Descargar migración',
|
|
2700
|
+
'cl.intro': 'El registro de cambios (Liquibase, Flyway): el DDL ejecutado desde la hoja de trabajo SQL, Propiedades de tabla y Comparación de esquemas se guarda como conjuntos de cambios por esquema, con quién y cuándo lo ejecutó. Descárguelos como migración para otra base de datos: archivos versionados de Flyway, un changelog SQL formateado de Liquibase o un script simple. Solo se guardan las sentencias correctas; los cambios de datos (INSERT, UPDATE, DELETE) no.',
|
|
2701
|
+
'cl.change_sets_of': 'Conjuntos de cambios de {schema}',
|
|
2702
|
+
'cl.nothing_to_write': 'No hay conjuntos de cambios que escribir: todos están en un archivo anterior. Elija «Todos».',
|
|
2703
|
+
'cl.bad_name': 'Un nombre son letras minúsculas, dígitos y _ (como máximo 60), empezando por una letra o un dígito.',
|
|
2704
|
+
'cl.renamed': 'El conjunto de cambios {n} es ahora {file}.',
|
|
2705
|
+
'cl.deleted': 'Conjunto de cambios {n} eliminado del registro; la base de datos no cambia.',
|
|
2706
|
+
// ------------------------------------------------------------ Charts, Unload Data (sprint 162, CD-8)
|
|
2707
|
+
'ch.kind.bar': 'Barras',
|
|
2708
|
+
'ch.kind.column': 'Columnas',
|
|
2709
|
+
'ch.kind.stacked': 'Barras apiladas',
|
|
2710
|
+
'ch.kind.line': 'Líneas',
|
|
2711
|
+
'ch.kind.area': 'Área',
|
|
2712
|
+
'ch.kind.donut': 'Anillo',
|
|
2713
|
+
'ch.kind.pie': 'Circular',
|
|
2714
|
+
'ch.kind.scatter': 'Dispersión',
|
|
2715
|
+
'ch.type': 'Tipo',
|
|
2716
|
+
'ch.labels': 'Etiquetas',
|
|
2717
|
+
'ch.values': 'Valores',
|
|
2718
|
+
'ch.no_number': 'La consulta no tiene columna numérica que dibujar.',
|
|
2719
|
+
'ch.row_one': '1 fila.',
|
|
2720
|
+
'ch.rows': '{n} filas.',
|
|
2721
|
+
'ch.rows_first': '{n} filas (las primeras {n}).',
|
|
2722
|
+
'ch.intro': 'Consultas dibujadas como gráficos. Cree uno a partir de una consulta en la {worksheet} (su pestaña Gráfico, Ctrl+F11) y guárdelo.',
|
|
2723
|
+
'ch.all': 'Todos los gráficos',
|
|
2724
|
+
'ch.chart': 'Gráfico',
|
|
2725
|
+
'ch.on_dashboard_col': 'En el panel',
|
|
2726
|
+
'ch.changed': 'Modificado',
|
|
2727
|
+
'ch.yes': 'Sí',
|
|
2728
|
+
'ch.no': 'No',
|
|
2729
|
+
'ch.none_yet': 'Aún no hay gráficos.',
|
|
2730
|
+
'ch.on_dashboard': 'En el panel de gráficos',
|
|
2731
|
+
'ch.query': 'La consulta',
|
|
2732
|
+
'ch.open_worksheet': 'Abrir en la hoja de trabajo',
|
|
2733
|
+
'ch.delete_confirm': '¿Eliminar el gráfico {name}?',
|
|
2734
|
+
'ch.deleted': 'Gráfico {name} eliminado.',
|
|
2735
|
+
'ch.err.name': 'Un gráfico necesita un nombre (como máximo 120 caracteres).',
|
|
2736
|
+
'ch.err.exists': 'Ya existe un gráfico llamado «{name}».',
|
|
2737
|
+
'ch.saved': 'Gráfico {name} guardado.',
|
|
2738
|
+
'ch.err.select': 'Solo se puede guardar un gráfico de una única SELECT.',
|
|
2739
|
+
'ch.err.name_new': 'Ponga nombre al gráfico para guardarlo (como máximo 120 caracteres).',
|
|
2740
|
+
'ch.saved_new': 'Gráfico {name} guardado: está en el panel de gráficos.',
|
|
2741
|
+
'ul.fmt.xlsx': 'Excel (.xlsx)',
|
|
2742
|
+
'ul.fmt.sql': 'Inserts SQL',
|
|
2743
|
+
'ul.separator': 'Separador',
|
|
2744
|
+
'ul.sep.comma': 'Coma ,',
|
|
2745
|
+
'ul.sep.semicolon': 'Punto y coma ;',
|
|
2746
|
+
'ul.sep.tab': 'Tabulador',
|
|
2747
|
+
'ul.sep.pipe': 'Barra vertical |',
|
|
2748
|
+
'ul.enclosed': 'Delimitado por',
|
|
2749
|
+
'ul.enc.double': 'Comillas dobles "',
|
|
2750
|
+
'ul.enc.single': 'Comilla simple \'',
|
|
2751
|
+
'ul.enclosed_help': 'Solo se delimitan los valores que contienen el separador, el delimitador o un salto de línea.',
|
|
2752
|
+
'ul.header': 'Primera fila: nombres de columna',
|
|
2753
|
+
'ul.bom': 'Marca de orden de bytes UTF-8 (para Excel)',
|
|
2754
|
+
'ul.root': 'Elemento raíz',
|
|
2755
|
+
'ul.row': 'Elemento de fila',
|
|
2756
|
+
'ul.row_help': 'Un elemento hijo por columna; los valores vacíos (null) se omiten.',
|
|
2757
|
+
'ul.from': 'Descargar desde',
|
|
2758
|
+
'ul.table_or_view': 'Tabla o vista',
|
|
2759
|
+
'ul.intro': 'Descargue las filas de una tabla, una vista o una consulta como CSV, JSON, Excel o XML (hasta {n} filas).',
|
|
2760
|
+
'ul.intro2': 'Se ejecuta con la conexión propietaria del constructor (para los desarrolladores de un espacio de trabajo aislado, con su inicio de sesión de desarrollador) en una transacción de solo lectura. Para cargar un archivo en una tabla, use {load}.',
|
|
2761
|
+
'ul.unload_query': 'Descargar una consulta',
|
|
2762
|
+
'ul.one_select': 'Una sentencia SELECT (o WITH … SELECT).',
|
|
2763
|
+
'ul.choose_table': '- elija una tabla o vista -',
|
|
2764
|
+
'ul.view': '(vista)',
|
|
2765
|
+
'ul.choose': 'Elegir',
|
|
2766
|
+
'ul.unload_table': 'Descargar una tabla o vista',
|
|
2767
|
+
'ul.unload_of': 'Descargar {name}',
|
|
2768
|
+
'ul.columns': 'Columnas',
|
|
2769
|
+
'ul.where': 'Where',
|
|
2770
|
+
'ul.eg': 'p. ej. {x}',
|
|
2771
|
+
'ul.where_help': 'Opcional: una condición, sin la palabra WHERE.',
|
|
2772
|
+
'ul.order': 'Order by',
|
|
2773
|
+
'ul.order_help': 'Opcional: columnas, sin las palabras ORDER BY.',
|
|
2774
|
+
'ul.err.table': 'Elija una tabla o vista.',
|
|
2775
|
+
'ul.err.column': 'Elija al menos una columna.',
|
|
2776
|
+
'ul.err.failed': 'La consulta falló: {error}',
|
|
2777
|
+
// ------------------------------------------------------------ Sample Data (sprint 162, CD-8)
|
|
2778
|
+
'sd.help': 'Generadores y sus opciones',
|
|
2779
|
+
'sd.intro': 'Genere filas realistas para las tablas de un esquema: nombres, direcciones de correo, fechas y números en un rango, valores de una lista, claves foráneas que eligen filas padre existentes. Previsualícelas, insértelas en una transacción (primero los padres) o descárguelas como SQL o CSV. Se ejecuta con la conexión propietaria del constructor (para los desarrolladores de un espacio de trabajo aislado, con su inicio de sesión de desarrollador), como la {worksheet}.',
|
|
2780
|
+
'sd.none_saved': 'Aún no hay generadores guardados: genere filas abajo y guarde la definición para volver a ejecutarla.',
|
|
2781
|
+
'sd.table_one': '1 tabla',
|
|
2782
|
+
'sd.tables_n': '{n} tablas',
|
|
2783
|
+
'sd.tables_of': 'Tablas de {schema}',
|
|
2784
|
+
'sd.about_rows': '~{n} filas',
|
|
2785
|
+
'sd.propose': 'Proponer generadores',
|
|
2786
|
+
'sd.own_schema': 'Elija un esquema propio: no meta, information_schema ni pg_*.',
|
|
2787
|
+
'sd.new': 'Nuevo generador',
|
|
2788
|
+
'sd.saved_title': 'Generadores guardados',
|
|
2789
|
+
'sd.generator': 'Generador',
|
|
2790
|
+
'sd.col_generator': '{column}: generador',
|
|
2791
|
+
'sd.col_options': '{column}: opciones',
|
|
2792
|
+
'sd.options': 'opciones',
|
|
2793
|
+
'sd.col_nulls': '{column}: % nulos',
|
|
2794
|
+
'sd.pct_null': '% nulo',
|
|
2795
|
+
'sd.missing': 'Ya no se encuentran, se omiten: {tables}.',
|
|
2796
|
+
'sd.seed': 'Semilla',
|
|
2797
|
+
'sd.seed_help': 'La misma semilla da las mismas filas (para las mismas tablas y filas padre). Vacía: una semilla nueva en cada ejecución; una vista previa la rellena, así Insertar añade las filas que vio.',
|
|
2798
|
+
'sd.change_tables': 'cambiar tablas',
|
|
2799
|
+
'sd.preview': 'Vista previa',
|
|
2800
|
+
'sd.insert': 'Insertar filas',
|
|
2801
|
+
'sd.download_sql': 'Descargar SQL',
|
|
2802
|
+
'sd.download_csv': 'Descargar CSV',
|
|
2803
|
+
'sd.save_def': 'Guardar la definición',
|
|
2804
|
+
'sd.save_new': 'Guardar como generador nuevo',
|
|
2805
|
+
'sd.delete_confirm': '¿Eliminar esta definición de generador? Las filas ya insertadas se conservan.',
|
|
2806
|
+
'sd.delete': 'Eliminar generador',
|
|
2807
|
+
'sd.inserted': 'Insertado',
|
|
2808
|
+
'sd.inserted_counts': '{counts} insertadas (semilla {seed}).',
|
|
2809
|
+
'sd.rolled_back': 'Revertido: no se guardó nada.',
|
|
2810
|
+
'sd.seed_is': 'semilla {seed}',
|
|
2811
|
+
'sd.first_of': 'primeras {shown} de {n}',
|
|
2812
|
+
'sd.no_rows': 'Sin filas.',
|
|
2813
|
+
'sd.err.name': 'Asigne un nombre al generador para guardarlo.',
|
|
2814
|
+
'sd.err.length': 'El nombre tiene como máximo 100 caracteres y la descripción 1000.',
|
|
2815
|
+
'sd.err.table': 'Elija al menos una tabla.',
|
|
2816
|
+
'sd.saved': 'Generador {name} guardado.',
|
|
2817
|
+
'sd.err.action': 'Acción desconocida.',
|
|
2818
|
+
'sd.nothing_inserted': 'No se insertó nada: la transacción se revirtió.',
|
|
2819
|
+
'sd.deleted': 'Generador {name} eliminado.',
|
|
2820
|
+
// ------------------------------------------------------------ Sample Data generators (run-time keys sd.gen.*, sd.opt.*)
|
|
2821
|
+
'sd.gen.skip': 'Omitir (predeterminado / identidad)',
|
|
2822
|
+
'sd.gen.first_name': 'Nombre',
|
|
2823
|
+
'sd.gen.last_name': 'Apellido',
|
|
2824
|
+
'sd.gen.full_name': 'Nombre completo',
|
|
2825
|
+
'sd.gen.email': 'Dirección de correo electrónico',
|
|
2826
|
+
'sd.gen.username': 'Nombre de usuario',
|
|
2827
|
+
'sd.gen.phone': 'Número de teléfono',
|
|
2828
|
+
'sd.gen.company': 'Nombre de empresa',
|
|
2829
|
+
'sd.gen.job_title': 'Puesto',
|
|
2830
|
+
'sd.gen.address': 'Dirección',
|
|
2831
|
+
'sd.gen.postal_code': 'Código postal',
|
|
2832
|
+
'sd.gen.city': 'Ciudad',
|
|
2833
|
+
'sd.gen.country': 'País',
|
|
2834
|
+
'sd.gen.word': 'Palabra',
|
|
2835
|
+
'sd.gen.words': 'Palabras (título)',
|
|
2836
|
+
'sd.gen.sentence': 'Frase',
|
|
2837
|
+
'sd.gen.code': 'Código (patrón)',
|
|
2838
|
+
'sd.gen.url': 'Dirección web',
|
|
2839
|
+
'sd.gen.uuid': 'UUID',
|
|
2840
|
+
'sd.gen.integer': 'Número entero (rango)',
|
|
2841
|
+
'sd.gen.decimal': 'Número decimal (rango)',
|
|
2842
|
+
'sd.gen.date': 'Fecha (rango)',
|
|
2843
|
+
'sd.gen.timestamp': 'Marca de tiempo (rango)',
|
|
2844
|
+
'sd.gen.time': 'Hora del día (rango)',
|
|
2845
|
+
'sd.gen.boolean': 'Booleano (% verdadero)',
|
|
2846
|
+
'sd.gen.list': 'Valor de una lista',
|
|
2847
|
+
'sd.gen.sequence': 'Secuencia (inicio, paso)',
|
|
2848
|
+
'sd.gen.foreign_key': 'Clave foránea (fila padre existente)',
|
|
2849
|
+
'sd.gen.fixed': 'Valor fijo',
|
|
2850
|
+
'sd.opt.skip': 'no se inserta: el valor predeterminado de la columna, la identidad o null',
|
|
2851
|
+
'sd.opt.first_name': 'sin opciones',
|
|
2852
|
+
'sd.opt.last_name': 'sin opciones',
|
|
2853
|
+
'sd.opt.full_name': 'sin opciones',
|
|
2854
|
+
'sd.opt.email': 'sin opciones',
|
|
2855
|
+
'sd.opt.username': 'sin opciones',
|
|
2856
|
+
'sd.opt.phone': 'sin opciones',
|
|
2857
|
+
'sd.opt.company': 'sin opciones',
|
|
2858
|
+
'sd.opt.job_title': 'sin opciones',
|
|
2859
|
+
'sd.opt.address': 'sin opciones',
|
|
2860
|
+
'sd.opt.postal_code': 'sin opciones',
|
|
2861
|
+
'sd.opt.city': 'sin opciones',
|
|
2862
|
+
'sd.opt.country': 'sin opciones',
|
|
2863
|
+
'sd.opt.word': 'sin opciones',
|
|
2864
|
+
'sd.opt.words': 'número de palabras, p. ej. 1..3',
|
|
2865
|
+
'sd.opt.sentence': 'número de palabras, p. ej. 4..12',
|
|
2866
|
+
'sd.opt.code': 'patrón: A letra, a letra minúscula, 9 dígito, otros caracteres tal cual, p. ej. AAA-9999',
|
|
2867
|
+
'sd.opt.url': 'sin opciones',
|
|
2868
|
+
'sd.opt.uuid': 'sin opciones',
|
|
2869
|
+
'sd.opt.integer': 'mín..máx, p. ej. 1..1000; u otra columna más un rango, p. ej. quantity + 0..10',
|
|
2870
|
+
'sd.opt.decimal': 'mín..máx; los decimales de la columna o de los números, p. ej. 0.00..999.99; o columna + mín..máx',
|
|
2871
|
+
'sd.opt.date': 'desde..hasta, p. ej. 2021-01-01..2026-12-31; u otra columna más días, p. ej. start_date + 0..14',
|
|
2872
|
+
'sd.opt.timestamp': 'desde..hasta (fechas), p. ej. 2021-01-01..2026-12-31; o columna + mín..máx días, p. ej. created_at + 0..2',
|
|
2873
|
+
'sd.opt.time': 'desde..hasta, p. ej. 08:00..18:00',
|
|
2874
|
+
'sd.opt.boolean': 'porcentaje verdadero, p. ej. 50',
|
|
2875
|
+
'sd.opt.list': 'valores separados por comas, p. ej. NEW, OPEN, CLOSED',
|
|
2876
|
+
'sd.opt.sequence': 'inicio o inicio, paso, p. ej. 1000, 10',
|
|
2877
|
+
'sd.opt.foreign_key': 'una fila padre existente al azar; los padres generados en la misma ejecución se insertan primero',
|
|
2878
|
+
'sd.opt.fixed': 'el valor',
|
|
2879
|
+
// ------------------------------------------------------------ Query Builder (sprint 162, CD-8)
|
|
2880
|
+
'qb.tables': 'Tablas y vistas',
|
|
2881
|
+
'qb.tables_of': 'Tablas y vistas de {schema}',
|
|
2882
|
+
'qb.view': 'vista',
|
|
2883
|
+
'qb.no_tables': 'Este esquema no tiene tablas ni vistas.',
|
|
2884
|
+
'qb.apply': 'Aplicar',
|
|
2885
|
+
'qb.columns_help': 'Ninguna marcada: todas las columnas. Una función (count, sum, …) agrupa las filas por las demás columnas elegidas. Arrastre una tabla por su asa (o enfoque el asa y use las flechas); arrastre el punto junto a una columna sobre una columna de otra tabla para unirlas.',
|
|
2886
|
+
'qb.distinct': 'Filas distintas',
|
|
2887
|
+
'qb.move': 'Mover {table} (flechas)',
|
|
2888
|
+
'qb.drag_move': 'Arrastre para mover',
|
|
2889
|
+
'qb.function_for': 'Función para {column}',
|
|
2890
|
+
'qb.join_label': 'Unir {column} a una columna de otra tabla',
|
|
2891
|
+
'qb.join_title': 'Arrastre sobre una columna de otra tabla para unirlas',
|
|
2892
|
+
'qb.joins': 'Uniones',
|
|
2893
|
+
'qb.joins_help': 'A partir de las claves foráneas entre las tablas elegidas, o de las columnas que unió.',
|
|
2894
|
+
'qb.cross_join': 'Ninguna clave foránea conecta {table} con las otras tablas: se hace un producto cruzado. Una dos de sus columnas en el lienzo o en Uniones.',
|
|
2895
|
+
'qb.on': 'en',
|
|
2896
|
+
'qb.and': 'y',
|
|
2897
|
+
'qb.cross': 'producto cruzado',
|
|
2898
|
+
'qb.join_type': 'Tipo de unión para {table}',
|
|
2899
|
+
'qb.inner': 'unión interna',
|
|
2900
|
+
'qb.left': 'unión izquierda (conservar filas sin coincidencia)',
|
|
2901
|
+
'qb.join_two': 'Unir dos columnas',
|
|
2902
|
+
'qb.join_a': 'Unión: columna',
|
|
2903
|
+
'qb.join_b': 'Unión: columna de otra tabla',
|
|
2904
|
+
'qb.conditions': 'Condiciones',
|
|
2905
|
+
'qb.rows_match': 'Las filas deben cumplir',
|
|
2906
|
+
'qb.all': 'todas las condiciones',
|
|
2907
|
+
'qb.any': 'cualquier condición',
|
|
2908
|
+
'qb.cond_column': 'Condición {n}: columna',
|
|
2909
|
+
'qb.cond_operator': 'Condición {n}: operador',
|
|
2910
|
+
'qb.cond_value': 'Condición {n}: valor',
|
|
2911
|
+
'qb.add_condition': 'Aplicar / añadir una condición',
|
|
2912
|
+
'qb.sort_limit': 'Ordenar y limitar',
|
|
2913
|
+
'qb.sort_column': 'Orden {n}: columna',
|
|
2914
|
+
'qb.sort_dir': 'Orden {n}: dirección',
|
|
2915
|
+
'qb.asc': 'ascendente',
|
|
2916
|
+
'qb.desc': 'descendente',
|
|
2917
|
+
'qb.limit': 'Como máximo (filas)',
|
|
2918
|
+
'qb.run': 'Ejecutar en la hoja de trabajo SQL',
|
|
2919
|
+
'qb.fn.count': 'recuento',
|
|
2920
|
+
'qb.fn.count_distinct': 'recuento distinto',
|
|
2921
|
+
'qb.fn.sum': 'suma',
|
|
2922
|
+
'qb.fn.avg': 'promedio',
|
|
2923
|
+
'qb.fn.min': 'mínimo',
|
|
2924
|
+
'qb.fn.max': 'máximo',
|
|
2925
|
+
'qb.op.eq': 'igual a',
|
|
2926
|
+
'qb.op.ne': 'distinto de',
|
|
2927
|
+
'qb.op.lt': 'menor que',
|
|
2928
|
+
'qb.op.le': 'como máximo',
|
|
2929
|
+
'qb.op.gt': 'mayor que',
|
|
2930
|
+
'qb.op.ge': 'como mínimo',
|
|
2931
|
+
'qb.op.like': 'como (% _)',
|
|
2932
|
+
'qb.op.ilike': 'como, sin distinguir mayúsculas',
|
|
2933
|
+
'qb.op.in': 'en (a, b, c)',
|
|
2934
|
+
'qb.op.is_null': 'está vacío',
|
|
2935
|
+
'qb.op.is_not_null': 'no está vacío',
|
|
2936
|
+
// ------------------------------------------------------------ Object actions menu (sprint 162, CD-8)
|
|
2937
|
+
'oa.actions_for': 'Acciones para {name}',
|
|
2938
|
+
'oa.open': 'Abrir',
|
|
2939
|
+
'oa.edit': 'Editar…',
|
|
2940
|
+
'oa.template': 'Usar como plantilla',
|
|
2941
|
+
'oa.security': 'Seguridad…',
|
|
2942
|
+
'oa.load': 'Cargar datos',
|
|
2943
|
+
'oa.fulltext': 'Añadir búsqueda de texto completo…',
|
|
2944
|
+
'oa.vector': 'Añadir columna vectorial…',
|
|
2945
|
+
'oa.document': 'Vista de documento…',
|
|
2946
|
+
'oa.index': 'Añadir índice',
|
|
2947
|
+
'oa.trigger': 'Añadir disparador',
|
|
2948
|
+
'oa.policy': 'Añadir política',
|
|
2949
|
+
'oa.rest': 'REST › Activar / Desactivar',
|
|
2950
|
+
'oa.ddl': 'DDL rápido a la hoja de trabajo',
|
|
2951
|
+
'oa.ddl_file': 'DDL rápido como archivo',
|
|
2952
|
+
'oa.drop': 'Eliminar…',
|
|
2953
|
+
'oa.flash.ddl': 'El DDL de {name}.',
|
|
2954
|
+
'oa.flash.drop': 'Revise la sentencia DROP y ejecútela usted mismo: aún no se ha eliminado nada.',
|
|
2955
|
+
'oa.flash.fill': 'Complete la sentencia y ejecútela: aún no se ha cambiado nada.',
|
|
2956
|
+
// ------------------------------------------------------------ Data Modeler (sprint 162, CD-8)
|
|
2957
|
+
'dm.diagrams': 'Diagramas',
|
|
2958
|
+
'dm.delete_confirm': '¿Eliminar el diagrama {name}? Las tablas quedan como están.',
|
|
2959
|
+
'dm.delete_confirm_short': '¿Eliminar el diagrama {name}?',
|
|
2960
|
+
'dm.none_yet': 'Aún no hay diagramas en este espacio de trabajo.',
|
|
2961
|
+
'dm.name_placeholder': 'tablas principales',
|
|
2962
|
+
'dm.objects_placeholder': 'orders, customers o *',
|
|
2963
|
+
'dm.objects_help': 'Nombres separados por comas o espacios; `*` para todos, `ord*` para los que empiezan por ord. Puede añadir más después.',
|
|
2964
|
+
'dm.create': 'Crear diagrama',
|
|
2965
|
+
'dm.intro': 'Diagramas relacionales de las tablas y vistas de un esquema: sus columnas, claves y las claves foráneas entre ellas. A partir de un diagrama: su DDL y un diccionario de datos.',
|
|
2966
|
+
'dm.schema_gone': 'El esquema {schema} ya no existe o este espacio de trabajo no puede usarlo.',
|
|
2967
|
+
'dm.delete_diagram': 'Eliminar diagrama',
|
|
2968
|
+
'dm.diagram': 'Diagrama',
|
|
2969
|
+
'dm.undo': 'Deshacer',
|
|
2970
|
+
'dm.redo': 'Rehacer',
|
|
2971
|
+
'dm.zoom_out': 'Alejar',
|
|
2972
|
+
'dm.zoom_in': 'Acercar',
|
|
2973
|
+
'dm.fit': 'Ajustar',
|
|
2974
|
+
'dm.auto': 'Diseño automático',
|
|
2975
|
+
'dm.minimap': 'Minimapa',
|
|
2976
|
+
'dm.export_svg': 'Exportar SVG',
|
|
2977
|
+
'dm.print': 'Imprimir',
|
|
2978
|
+
'dm.dictionary': 'Diccionario de datos',
|
|
2979
|
+
'dm.add_objects': 'Añadir objetos',
|
|
2980
|
+
'dm.objects_in': 'Objetos de este diagrama',
|
|
2981
|
+
'dm.kind': 'Tipo',
|
|
2982
|
+
'dm.references': 'Referencias',
|
|
2983
|
+
'dm.remove_label': 'Quitar {name} del diagrama',
|
|
2984
|
+
'dm.remove': 'Quitar',
|
|
2985
|
+
'dm.no_objects': 'Aún no hay objetos: añada algunos abajo.',
|
|
2986
|
+
'dm.search_label': 'Buscar en las tablas y vistas de {schema}',
|
|
2987
|
+
'dm.search_placeholder': 'Parte de un nombre, emp* o * para todos',
|
|
2988
|
+
'dm.found': '{n} encontrados',
|
|
2989
|
+
'dm.found_first': '500 encontrados (los primeros 500)',
|
|
2990
|
+
'dm.add_to': 'Añadir al diagrama',
|
|
2991
|
+
'dm.nothing_matches': 'Nada más coincide con {q}.',
|
|
2992
|
+
'dm.settings': 'Cambiar el nombre o eliminar el diagrama',
|
|
2993
|
+
'dm.head': 'Esquema {schema} · {n} objetos · actualizado {time} por {user}',
|
|
2994
|
+
'dm.missing': 'Ya no están en {schema}: {names}. Al guardar el diagrama se omiten.',
|
|
2995
|
+
'dm.canvas_label': 'Diagrama {name}: arrastre un cuadro para moverlo, o enfóquelo y use las flechas',
|
|
2996
|
+
'dm.legend': 'P clave primaria · F clave foránea · U única · {star} no nulo · una línea va de la tabla que referencia (pata de gallo: muchos) a la referenciada (barra: uno); discontinua si la clave foránea puede estar vacía.',
|
|
2997
|
+
'dm.legend_opens_table': 'El nombre de un cuadro abre Propiedades de tabla.',
|
|
2998
|
+
'dm.legend_opens_object': 'El nombre de un cuadro abre el objeto.',
|
|
2999
|
+
'dm.add_title': 'Añadir objetos al diagrama',
|
|
3000
|
+
'dm.con.p': 'Clave primaria',
|
|
3001
|
+
'dm.con.u': 'Única',
|
|
3002
|
+
'dm.con.f': 'Clave foránea',
|
|
3003
|
+
'dm.con.c': 'Comprobación',
|
|
3004
|
+
'dm.dict_title': 'Diccionario de datos: {name}',
|
|
3005
|
+
'dm.dict_head': 'Esquema {schema} · {n} objetos · generado {time} UTC',
|
|
3006
|
+
'dm.columns_of': 'Columnas de {name}',
|
|
3007
|
+
'dm.col.column': 'Columna',
|
|
3008
|
+
'dm.col.null': 'Nulo',
|
|
3009
|
+
'dm.col.default': 'Predeterminado',
|
|
3010
|
+
'dm.col.key': 'Clave',
|
|
3011
|
+
'dm.col.comment': 'Comentario',
|
|
3012
|
+
'dm.constraints': 'Restricciones',
|
|
3013
|
+
'dm.constraints_of': 'Restricciones de {name}',
|
|
3014
|
+
'dm.definition': 'Definición',
|
|
3015
|
+
'dm.referenced_by': 'Referenciada por',
|
|
3016
|
+
'dm.err.name': 'Un diagrama necesita un nombre.',
|
|
3017
|
+
'dm.created_n': 'Diagrama {name} creado con {n} objetos.',
|
|
3018
|
+
'dm.created_empty': 'Diagrama {name} creado: añádale objetos.',
|
|
3019
|
+
'dm.err.exists': 'Ya hay un diagrama {name} en este espacio de trabajo.',
|
|
3020
|
+
'dm.removed': '{name} quitado del diagrama (la tabla queda como está).',
|
|
3021
|
+
'dm.err.nothing': 'Nada que añadir: elija tablas o vistas del esquema que no estén en el diagrama.',
|
|
3022
|
+
'dm.added': 'Se añadieron {n} objeto(s): {names}.',
|
|
3023
|
+
'dm.laid_out': 'Los cuadros se volvieron a distribuir.',
|
|
3024
|
+
'dm.saved': 'Diagrama guardado.',
|
|
3025
|
+
'dm.renamed': 'Diagrama renombrado a {name}.',
|
|
3026
|
+
'dm.deleted': 'Diagrama {name} eliminado.',
|
|
3027
|
+
'dm.ddl_intro': 'Las sentencias CREATE de los {n} objetos del diagrama en el esquema {schema}: tablas, sus claves, índices, disparadores, seguridad a nivel de fila, políticas, comentarios y privilegios, y vistas. Revíselas antes de ejecutarlas.',
|
|
3028
|
+
'dm.back': 'Volver al diagrama',
|
|
3029
|
+
'dm.open_worksheet': 'Abrir en la hoja de trabajo SQL',
|
|
3030
|
+
'dm.download_html': 'Descargar HTML',
|
|
3031
|
+
'dm.print_pdf': 'Imprimir o guardar como PDF',
|
|
3032
|
+
// ------------------------------------------------------------ Data Modeler (singular)
|
|
3033
|
+
'dm.added_one': 'Se añadió 1 objeto: {names}.',
|
|
3034
|
+
// ------------------------------------------------------------ Change Log (note)
|
|
3035
|
+
'cl.after_it_title': 'Posterior',
|
|
3036
|
+
// ------------------------------------------------------------ SQL Workshop Utilities, Object Reports, About Database (sprint 162, CD-8)
|
|
3037
|
+
'su.title': 'Utilidades de SQL Workshop',
|
|
3038
|
+
'su.failed': 'El informe falló.',
|
|
3039
|
+
'su.nothing': 'No se encontró nada.',
|
|
3040
|
+
'su.over': 'Sobre los esquemas que {role} puede usar.',
|
|
3041
|
+
'su.col.owner': 'Propietario',
|
|
3042
|
+
'su.tables': 'Tablas',
|
|
3043
|
+
'su.setting': 'Parámetro',
|
|
3044
|
+
'su.value': 'Valor',
|
|
3045
|
+
'su.extension': 'Extensión',
|
|
3046
|
+
'su.version': 'Versión',
|
|
3047
|
+
'su.database': 'Base de datos',
|
|
3048
|
+
'su.running_since': 'En ejecución desde',
|
|
3049
|
+
'su.runs_as': 'SQL Workshop se ejecuta como {user} (sesión iniciada como {login}).',
|
|
3050
|
+
'su.settings': 'Parámetros',
|
|
3051
|
+
'su.extensions': 'Extensiones',
|
|
3052
|
+
'su.no_schemas': 'No hay esquemas.',
|
|
3053
|
+
'su.r.no_primary_key': 'Tablas sin clave primaria',
|
|
3054
|
+
'su.r.no_primary_key.about': 'Los formularios, las cuadrículas interactivas y la escritura REST necesitan una clave para volver a encontrar una fila.',
|
|
3055
|
+
'su.r.unindexed_foreign_keys': 'Claves foráneas sin índice',
|
|
3056
|
+
'su.r.unindexed_foreign_keys.about': 'Eliminar o actualizar una fila padre recorre la tabla hija, y las uniones desde el padre son más lentas. Un índice en las columnas de la clave foránea (en este orden) lo evita.',
|
|
3057
|
+
'su.r.rls_without_policies': 'Seguridad a nivel de fila sin políticas',
|
|
3058
|
+
'su.r.rls_without_policies.about': 'La seguridad a nivel de fila está activada pero la tabla no tiene política: todos los roles salvo su propietario (y los que omiten RLS) no ven filas ni pueden cambiar ninguna.',
|
|
3059
|
+
'su.r.no_row_level_security': 'Tablas sin seguridad a nivel de fila',
|
|
3060
|
+
'su.r.no_row_level_security.about': 'Todo rol con privilegios sobre estas tablas ve y cambia todas sus filas. Bien para tablas de consulta; active la seguridad a nivel de fila donde las filas pertenecen a usuarios o inquilinos.',
|
|
3061
|
+
'su.r.public_grants': 'Privilegios concedidos a PUBLIC',
|
|
3062
|
+
'su.r.public_grants.about': 'Todos los roles de base de datos, incluidos los creados más tarde, tienen estos privilegios.',
|
|
3063
|
+
'su.r.unused_indexes': 'Índices sin usar',
|
|
3064
|
+
'su.r.unused_indexes.about': 'Índices que ninguna consulta ha usado desde el último restablecimiento de las estadísticas (no claves primarias ni únicas). Ralentizan las escrituras y ocupan espacio; compruebe cada servidor (las réplicas cuentan aparte) antes de eliminar uno.',
|
|
3065
|
+
'su.r.largest_tables': 'Tablas más grandes',
|
|
3066
|
+
'su.r.largest_tables.about': 'Las 100 tablas más grandes con sus índices y datos TOAST.',
|
|
3067
|
+
'su.r.no_comments': 'Tablas sin comentario',
|
|
3068
|
+
'su.r.no_comments.about': 'Los comentarios (COMMENT ON) documentan un modelo de datos; el App Builder y su IA los leen. SQL Workshop → IA → Describir tablas los redacta.',
|
|
3069
|
+
'su.col.rows': 'Filas (estimación)',
|
|
3070
|
+
'su.col.constraint': 'Clave foránea',
|
|
3071
|
+
'su.col.columns': 'Columnas',
|
|
3072
|
+
'su.col.parent': 'Referencia',
|
|
3073
|
+
'su.col.suggestion': 'Índice',
|
|
3074
|
+
'su.col.forced': 'Forzada para el propietario',
|
|
3075
|
+
'su.col.grants': 'Concedido a',
|
|
3076
|
+
'su.col.kind': 'Tipo',
|
|
3077
|
+
'su.col.privileges': 'Privilegios',
|
|
3078
|
+
'su.col.index': 'Índice',
|
|
3079
|
+
'su.col.size': 'Tamaño',
|
|
3080
|
+
'su.col.table_size': 'Tabla',
|
|
3081
|
+
'su.col.index_size': 'Índices',
|
|
3082
|
+
'su.col.total': 'Total',
|
|
3083
|
+
'su.col.commented': 'Con comentario',
|
|
3084
|
+
// ------------------------------------------------------------ SQL Workshop AI (sprint 162, CD-8)
|
|
3085
|
+
'swai.service': 'Servicio de IA: {name} ({provider}, {model}). Se le envían los nombres, tipos y descripciones de tablas y columnas, y lo que usted escribe.',
|
|
3086
|
+
'swai.no_service': 'App Builder aún no tiene servicio de IA: pida a un administrador que elija uno aquí.',
|
|
3087
|
+
'swai.service_label': 'Servicio de IA de App Builder (administradores)',
|
|
3088
|
+
'swai.none': '- ninguno: sin IA en App Builder -',
|
|
3089
|
+
'swai.service_help': 'Se le envían los nombres, tipos y descripciones de tablas y columnas (nunca filas) y lo que escriben los desarrolladores. Sus llamadas se registran sin aplicación.',
|
|
3090
|
+
'swai.describe_link': 'Describir tablas para la IA',
|
|
3091
|
+
'swai.describe_why': '(mejores respuestas: diga qué significan tablas y columnas)',
|
|
3092
|
+
'swai.question_title': 'SQL a partir de una pregunta',
|
|
3093
|
+
'swai.question_intro': 'La respuesta se muestra, nunca se ejecuta: revísela y ejecútela en la hoja de trabajo SQL si quiere.',
|
|
3094
|
+
'swai.question': 'Pregunta',
|
|
3095
|
+
'swai.question_placeholder': 'p. ej. empleados por departamento con su salario medio',
|
|
3096
|
+
'swai.thinking': 'Pensando…',
|
|
3097
|
+
'swai.write_sql': 'Escribir el SQL',
|
|
3098
|
+
'swai.explain_title': 'Explicar una consulta o un error',
|
|
3099
|
+
'swai.schema_optional': 'Esquema (opcional)',
|
|
3100
|
+
'swai.none_short': '- ninguno -',
|
|
3101
|
+
'swai.error_optional': 'Mensaje de error (opcional)',
|
|
3102
|
+
'swai.back': 'IA de SQL Workshop',
|
|
3103
|
+
'swai.describe_intro': 'Diga qué significan tablas y columnas: las descripciones acompañan la lista de tablas cuando App Builder pide a un modelo SQL o páginas. Sin descripción, se usa el comentario de la base de datos.',
|
|
3104
|
+
'swai.choose': '- elija -',
|
|
3105
|
+
'swai.show_tables': 'Mostrar tablas',
|
|
3106
|
+
'swai.described': 'descrita',
|
|
3107
|
+
'swai.drafted': 'Redactado por la IA a partir de los nombres y tipos: revise y cambie las descripciones, y guarde.',
|
|
3108
|
+
'swai.the_kind': 'Descripción ({kind})',
|
|
3109
|
+
'swai.key': 'clave',
|
|
3110
|
+
'swai.description_of': 'Descripción de {name}',
|
|
3111
|
+
'swai.as_comments': 'Guardarlas también como comentarios de la base de datos (COMMENT ON)',
|
|
3112
|
+
'swai.save_descriptions': 'Guardar las descripciones',
|
|
3113
|
+
'swai.draft': 'Redactar con IA',
|
|
3114
|
+
'swai.describe_crumb': 'Describir tablas',
|
|
3115
|
+
'swai.proposed': 'SQL propuesto',
|
|
3116
|
+
'swai.not_run': 'SQL (no ejecutado)',
|
|
3117
|
+
'swai.explanation': 'Explicación',
|
|
3118
|
+
'swai.err.question': 'Escriba una pregunta.',
|
|
3119
|
+
'swai.err.schema': 'Elija un esquema.',
|
|
3120
|
+
'swai.err.paste': 'Pegue una consulta, un mensaje de error o ambos.',
|
|
3121
|
+
'swai.err.no_such': 'No existe el servicio de IA {name}.',
|
|
3122
|
+
'swai.uses': 'App Builder usa el servicio de IA {name}.',
|
|
3123
|
+
'swai.uses_none': 'App Builder no usa ningún servicio de IA.',
|
|
3124
|
+
'swai.saved': 'Descripciones de {name} guardadas.',
|
|
3125
|
+
'swai.saved_comments': 'Descripciones de {name} guardadas, también como comentarios de la base de datos.',
|
|
3126
|
+
'swai.not_saved': 'No guardado: {error}',
|
|
3127
|
+
// ------------------------------------------------------------ Schema Export / Import (sprint 162, CD-8)
|
|
3128
|
+
'dp.content.all': 'Definiciones y datos',
|
|
3129
|
+
'dp.content.definitions': 'Solo definiciones',
|
|
3130
|
+
'dp.content.data': 'Solo datos',
|
|
3131
|
+
'dp.admins_only': 'Solo los administradores exportan e importan esquemas: una exportación contiene todas las filas de un esquema y una importación ejecuta su SQL con el rol propietario de pgkiln.',
|
|
3132
|
+
'dp.status.uploaded': 'cargado',
|
|
3133
|
+
'dp.status.running': 'en ejecución',
|
|
3134
|
+
'dp.status.succeeded': 'correcto',
|
|
3135
|
+
'dp.status.failed': 'con error',
|
|
3136
|
+
'dp.status.cancelled': 'cancelado',
|
|
3137
|
+
'dp.what.export': 'Exportación de {schema}',
|
|
3138
|
+
'dp.plain_sql': '(SQL simple)',
|
|
3139
|
+
'dp.what.upload': 'Carga de {file}',
|
|
3140
|
+
'dp.what.import': 'Importación de {schema} en {target}',
|
|
3141
|
+
'dp.tools': '{version} y pg_restore para un servidor PostgreSQL {server}. Los archivos se guardan {n} días en el directorio de volcados.',
|
|
3142
|
+
'dp.tools_one': '{version} y pg_restore para un servidor PostgreSQL {server}. Los archivos se guardan {n} día en el directorio de volcados.',
|
|
3143
|
+
'dp.need_tools': 'La exportación y la importación necesitan pg_dump y pg_restore.',
|
|
3144
|
+
'dp.found': 'Encontrados: {list}.',
|
|
3145
|
+
'dp.col.job': 'Trabajo',
|
|
3146
|
+
'dp.col.what': 'Qué',
|
|
3147
|
+
'dp.col.seconds': 'Segundos',
|
|
3148
|
+
'dp.intro': 'Un esquema a un archivo con pg_dump y un archivo a un esquema con pg_restore (Data Pump), como trabajos en segundo plano.',
|
|
3149
|
+
'dp.export_schema': 'Exportar un esquema',
|
|
3150
|
+
'dp.import': 'Importar',
|
|
3151
|
+
'dp.jobs': 'Trabajos',
|
|
3152
|
+
'dp.removed': 'eliminado',
|
|
3153
|
+
'dp.no_jobs': 'Aún no hay exportaciones ni importaciones.',
|
|
3154
|
+
'dp.export_of': 'Exportar {schema}',
|
|
3155
|
+
'dp.fmt.custom': 'Personalizado (comprimido; se importa aquí con pg_restore)',
|
|
3156
|
+
'dp.fmt.plain': 'SQL simple (para psql; no se importa aquí)',
|
|
3157
|
+
'dp.content': 'Contenido',
|
|
3158
|
+
'dp.tables': 'Tablas, vistas y secuencias',
|
|
3159
|
+
'dp.mode.all': 'Todo el esquema',
|
|
3160
|
+
'dp.mode.only': 'Solo los marcados',
|
|
3161
|
+
'dp.mode.except': 'Todos salvo los marcados',
|
|
3162
|
+
'dp.no_tables': 'El esquema no tiene tablas, vistas ni secuencias.',
|
|
3163
|
+
'dp.some_tables_note': 'Solo algunas tablas: el archivo no tiene CREATE SCHEMA, y las funciones, tipos y demás objetos del esquema quedan fuera.',
|
|
3164
|
+
'dp.start_export': 'Iniciar la exportación',
|
|
3165
|
+
'dp.export': 'Exportación',
|
|
3166
|
+
'dp.col.file': 'Archivo',
|
|
3167
|
+
'dp.col.made': 'Creado',
|
|
3168
|
+
'dp.upload_title': 'Cargar un volcado',
|
|
3169
|
+
'dp.upload_label': 'Un archivo custom o tar de un esquema (pg_dump -Fc o -Ft), hasta {mb} MB',
|
|
3170
|
+
'dp.upload_note': 'La página siguiente muestra lo que contiene el archivo antes de ejecutar nada. Un volcado es código: sus funciones y disparadores se ejecutan con el rol propietario de pgkiln, así que importe solo volcados de confianza.',
|
|
3171
|
+
'dp.or_export': 'O una exportación de este servidor',
|
|
3172
|
+
'dp.import_dots': 'Importar…',
|
|
3173
|
+
'dp.no_exports': 'No se conserva ninguna exportación en formato custom.',
|
|
3174
|
+
'dp.no_create_schema': '(algunas tablas: sin CREATE SCHEMA)',
|
|
3175
|
+
'dp.none': 'ninguno',
|
|
3176
|
+
'dp.data_of': '(datos de {n})',
|
|
3177
|
+
'dp.object_type': 'Tipo de objeto',
|
|
3178
|
+
'dp.entries': 'Entradas',
|
|
3179
|
+
'dp.import_into': 'Importar en',
|
|
3180
|
+
'dp.target_help': 'Se crea un esquema nuevo; en uno existente se añaden los objetos del volcado (o se reemplazan, abajo). Un nombre distinto de {schema} renombra el esquema del volcado en la misma transacción.',
|
|
3181
|
+
'dp.clean': 'Eliminar primero los objetos del volcado en el esquema',
|
|
3182
|
+
'dp.one_tx_note': 'Todo se ejecuta en una transacción: un error lo revierte todo. Los objetos pertenecen al rol propietario de pgkiln. Los nombres dentro de cuerpos PL/pgSQL son texto: tras un cambio de nombre siguen diciendo {schema}.',
|
|
3183
|
+
'dp.start_import': 'Iniciar la importación',
|
|
3184
|
+
'dp.holds': 'Qué contiene {file}',
|
|
3185
|
+
'dp.job': 'Trabajo #{id}',
|
|
3186
|
+
'dp.opt.format': 'formato {format}',
|
|
3187
|
+
'dp.opt.only': 'solo {list}',
|
|
3188
|
+
'dp.opt.without': 'sin {list}',
|
|
3189
|
+
'dp.opt.cleaned': 'objetos existentes eliminados primero',
|
|
3190
|
+
'dp.created': 'Creado',
|
|
3191
|
+
'dp.finished': 'Terminado',
|
|
3192
|
+
'dp.options': 'Opciones',
|
|
3193
|
+
'dp.job_lower': 'trabajo #{id}',
|
|
3194
|
+
'dp.kept_until': 'se conserva hasta {time}',
|
|
3195
|
+
'dp.delete_with_file': 'Eliminar con su archivo',
|
|
3196
|
+
'dp.job_kind': 'Trabajo #{id}: {kind}',
|
|
3197
|
+
'dp.kind.export': 'exportación',
|
|
3198
|
+
'dp.kind.import': 'importación',
|
|
3199
|
+
'dp.log': 'Registro',
|
|
3200
|
+
'dp.nothing_logged': 'No se registró nada.',
|
|
3201
|
+
'dp.nothing_logged_yet': 'Aún no se registró nada.',
|
|
3202
|
+
'dp.err.check_tables': 'Marque las tablas que exportar.',
|
|
3203
|
+
'dp.err.not_importable': 'Este archivo (ya) no se puede importar.',
|
|
3204
|
+
'dp.err.schema_name': 'El esquema: letras, dígitos, _ y $, hasta 63, sin empezar por un dígito.',
|
|
3205
|
+
'dp.err.choose_file': 'Elija un archivo.',
|
|
3206
|
+
'dp.err.too_large': 'El archivo supera {mb} MB (PGKILN_DUMP_MAX_MB).',
|
|
3207
|
+
'dp.err.empty': 'El archivo está vacío.',
|
|
3208
|
+
'dp.cancelling': 'Cancelando el trabajo.',
|
|
3209
|
+
'dp.not_running': 'El trabajo (ya) no se ejecuta en este servidor.',
|
|
3210
|
+
'dp.deleted': 'Trabajo #{id} eliminado.',
|
|
3211
|
+
// ------------------------------------------------------------ Scheduling (sprint 162, CD-8)
|
|
3212
|
+
'cr.job_n': 'Trabajo {id}',
|
|
3213
|
+
'cr.job_n_lower': 'trabajo {id}',
|
|
3214
|
+
'cr.admins_only': 'Solo los administradores programan trabajos de base de datos: pg_cron los ejecuta en el servidor, con cualquier rol.',
|
|
3215
|
+
'cr.next_runs': 'Próximas ejecuciones ({tz}):',
|
|
3216
|
+
'cr.no_times': 'Sin horas programadas: se ejecuta cuando se inicia el servidor de base de datos.',
|
|
3217
|
+
'cr.inactive': 'inactivo',
|
|
3218
|
+
'cr.at_start': 'al iniciar el servidor',
|
|
3219
|
+
'cr.unreadable': 'ilegible',
|
|
3220
|
+
'cr.never_ran': 'nunca se ejecutó',
|
|
3221
|
+
'cr.step1': 'Instale el paquete pg_cron en el servidor de base de datos (por ejemplo {apt}, o la opción pg_cron de su proveedor de nube).',
|
|
3222
|
+
'cr.step2': 'En {conf} (o {alter}): {preload} y {db}; opcionalmente {tz} (GMT si no se define). Reinicie PostgreSQL.',
|
|
3223
|
+
'cr.step3': 'Como superusuario, en esta base de datos: {create}',
|
|
3224
|
+
'cr.why.not_available': 'pg_cron no está instalado en este servidor de base de datos.',
|
|
3225
|
+
'cr.why.not_loaded': 'pg_cron está instalado en el servidor pero no cargado: no está en {preload}.',
|
|
3226
|
+
'cr.why.other_database': 'pg_cron se ejecuta en la base de datos {other} ({setting}), no en {db}. Establezca {set} y reinicie, o programe desde esa base de datos (los trabajos pueden seguir ejecutándose aquí con {fn}).',
|
|
3227
|
+
'cr.why.not_created': 'pg_cron está cargado, pero la extensión aún no se ha creado en esta base de datos.',
|
|
3228
|
+
'cr.why.no_access': 'pg_cron está instalado, pero la conexión propietaria de pgkiln no puede leer sus trabajos: {message}. Concédale acceso (como superusuario: {grant}) o conecte pgkiln con el rol propietario de los trabajos.',
|
|
3229
|
+
'cr.why.old': 'Este pg_cron ({version}) es demasiado antiguo: pgkiln necesita la versión 1.4 o posterior ({fn1}, {fn2}). {update}',
|
|
3230
|
+
'cr.to_schedule': 'Para programar SQL con pg_cron:',
|
|
3231
|
+
'cr.own_scheduler': 'El planificador propio de pgkiln funciona sin él: las {automations} de una aplicación ejecutan SQL según una programación como la aplicación, y las cadenas de ejecución en segundo plano se ejecutan como {jobs}. Se listan abajo.',
|
|
3232
|
+
'cr.automations_path': 'Componentes compartidos › Automatizaciones',
|
|
3233
|
+
'cr.process_jobs_lower': 'trabajos de proceso',
|
|
3234
|
+
'cr.col.automation': 'Automatización',
|
|
3235
|
+
'cr.col.schedule': 'Programación',
|
|
3236
|
+
'cr.col.next_run': 'Próxima ejecución',
|
|
3237
|
+
'cr.col.last_run': 'Última ejecución',
|
|
3238
|
+
'cr.col.started_by': 'Iniciado por',
|
|
3239
|
+
'cr.col.queued': 'En cola',
|
|
3240
|
+
'cr.col.ended': 'Finalizado',
|
|
3241
|
+
'cr.automations': 'Automatizaciones',
|
|
3242
|
+
'cr.automations_intro': 'Programadas por el propio pgkiln, por aplicación (Componentes compartidos › Automatizaciones), en la zona horaria de cada automatización.',
|
|
3243
|
+
'cr.disabled': 'desactivada',
|
|
3244
|
+
'cr.soon': 'pronto',
|
|
3245
|
+
'cr.no_automations': 'No hay automatizaciones.',
|
|
3246
|
+
'cr.process_jobs': 'Trabajos de proceso',
|
|
3247
|
+
'cr.process_jobs_intro': 'Las últimas cadenas de ejecución que las páginas iniciaron en segundo plano.',
|
|
3248
|
+
'cr.no_process_jobs': 'No hay trabajos de proceso.',
|
|
3249
|
+
'cr.col.run_as': 'Ejecutar como',
|
|
3250
|
+
'cr.create': 'Crear trabajo',
|
|
3251
|
+
'cr.history': 'Historial de ejecuciones',
|
|
3252
|
+
'cr.jobs': 'Trabajos',
|
|
3253
|
+
'cr.failed_last': 'Fallaron en su última ejecución',
|
|
3254
|
+
'cr.pg_cron_jobs': 'Trabajos de pg_cron',
|
|
3255
|
+
'cr.list_intro': 'pg_cron {version} ejecuta estos trabajos en el servidor de base de datos; las horas están en su zona horaria {tz} ({setting}).',
|
|
3256
|
+
'cr.own_only': 'La conexión propietaria de pgkiln ({user}) solo ve sus propios trabajos: pg_cron muestra a cada rol los suyos.',
|
|
3257
|
+
'cr.search': 'Buscar trabajos',
|
|
3258
|
+
'cr.failures': '{n} fallos en las últimas 10 ejecuciones',
|
|
3259
|
+
'cr.no_match': 'Ningún trabajo coincide.',
|
|
3260
|
+
'cr.none_yet': 'Aún no hay trabajos. {create}.',
|
|
3261
|
+
'cr.create_one': 'Cree uno',
|
|
3262
|
+
'cr.own_work': 'Trabajo programado propio de pgkiln (automatizaciones, trabajos de proceso)',
|
|
3263
|
+
'cr.job': 'Trabajo',
|
|
3264
|
+
'cr.name_placeholder': 'vacuum nocturno',
|
|
3265
|
+
'cr.name_help': 'Único por rol con el que se ejecuta.',
|
|
3266
|
+
'cr.database_help': 'pg_cron se conecta a ella para ejecutar el comando.',
|
|
3267
|
+
'cr.run_as_help': 'El rol con el que se ejecuta el comando. Solo un superusuario programa trabajos para otro rol.',
|
|
3268
|
+
'cr.active_help': 'Un trabajo inactivo conserva su programación y no se ejecuta.',
|
|
3269
|
+
'cr.command': 'Comando',
|
|
3270
|
+
'cr.command_help': 'SQL ejecutado fuera de un bloque de transacción, como lo ejecuta pg_cron: `vacuum analyze` funciona; varias sentencias se confirman cada una por su cuenta.',
|
|
3271
|
+
'cr.schedule_help': 'Cinco campos, `minute hour day-of-month month day-of-week`; `n seconds` (1 a 59); o `@hourly`, `@daily`, `@weekly`, `@monthly`, `@yearly`, `@reboot`.',
|
|
3272
|
+
'cr.presets': 'Programaciones habituales',
|
|
3273
|
+
'cr.choose': 'Elegir…',
|
|
3274
|
+
'cr.use': 'Usar',
|
|
3275
|
+
'cr.builder': 'Generador de programación',
|
|
3276
|
+
'cr.use_fields': 'Usar estos campos',
|
|
3277
|
+
'cr.review': 'Revisar SQL',
|
|
3278
|
+
'cr.review_intro': 'Estas sentencias se ejecutan en una transacción en la conexión propietaria de pgkiln al aplicarlas: todas o ninguna.',
|
|
3279
|
+
'cr.nothing': 'Nada que cambiar.',
|
|
3280
|
+
'cr.failed_box': '{nothing}: las sentencias se ejecutaron en una transacción, que se revirtió.',
|
|
3281
|
+
'cr.nothing_changed': 'No se cambió nada',
|
|
3282
|
+
'cr.edit_title': 'Editar {name}',
|
|
3283
|
+
'cr.edit': 'Editar',
|
|
3284
|
+
'cr.create_crumb': 'Crear',
|
|
3285
|
+
'cr.err.clash': '{user} ya tiene un trabajo llamado {name}.',
|
|
3286
|
+
'cr.change_title': 'Cambiar {name}',
|
|
3287
|
+
'cr.create_title': 'Crear el trabajo {name}',
|
|
3288
|
+
'cr.back_form': 'Volver al formulario',
|
|
3289
|
+
'cr.review_crumb': 'Revisar',
|
|
3290
|
+
'cr.err.changed_form': 'Las sentencias cambiaron desde que las revisó (cambió el trabajo o el formulario): revíselas de nuevo.',
|
|
3291
|
+
'cr.changed': 'Trabajo {name} cambiado.',
|
|
3292
|
+
'cr.created': 'Trabajo {name} creado.',
|
|
3293
|
+
'cr.col.run': 'Ejecución',
|
|
3294
|
+
'cr.col.duration': 'Duración',
|
|
3295
|
+
'cr.col.message': 'Mensaje',
|
|
3296
|
+
'cr.no_runs': 'No hay ejecuciones.',
|
|
3297
|
+
'cr.run_confirm': '¿Ejecutar {name} ahora, como {user} en {db}?',
|
|
3298
|
+
'cr.run_now': 'Ejecutar ahora',
|
|
3299
|
+
'cr.disable': 'Desactivar',
|
|
3300
|
+
'cr.enable': 'Activar',
|
|
3301
|
+
'cr.unschedule_dots': 'Desprogramar…',
|
|
3302
|
+
'cr.job_id': 'Id. del trabajo',
|
|
3303
|
+
'cr.recent_runs': 'Ejecuciones recientes',
|
|
3304
|
+
'cr.all_runs': 'Todas las ejecuciones de este trabajo',
|
|
3305
|
+
'cr.purge_its': 'Purgar su historial',
|
|
3306
|
+
'cr.enable_failed': 'La activación falló: {error}',
|
|
3307
|
+
'cr.disable_failed': 'La desactivación falló: {error}',
|
|
3308
|
+
'cr.enabled': '{name} activado: {sql}',
|
|
3309
|
+
'cr.disabled_flash': '{name} desactivado: {sql}',
|
|
3310
|
+
'cr.err.changed': 'Las sentencias cambiaron desde que las revisó: revíselas de nuevo.',
|
|
3311
|
+
'cr.unscheduled': '{name} desprogramado. Su historial de ejecuciones se conserva hasta que lo purgue.',
|
|
3312
|
+
'cr.unschedule_title': 'Desprogramar {name}',
|
|
3313
|
+
'cr.unschedule_note': 'pg_cron olvida el trabajo; sus ejecuciones quedan en el historial hasta que se purguen.',
|
|
3314
|
+
'cr.unschedule': 'Desprogramar',
|
|
3315
|
+
'cr.ran': '{what} en {secs}, como {user} en {db}: {message}',
|
|
3316
|
+
'cr.ran_ok': 'Ejecutado',
|
|
3317
|
+
'cr.ran_failed': 'Falló',
|
|
3318
|
+
'cr.run_now_note': 'Ejecutar ahora ejecuta el comando desde pgkiln, no desde pg_cron: no figura en el historial de pg_cron; el registro de actividad de pgkiln sí lo tiene.',
|
|
3319
|
+
'cr.purge_dots': 'Purgar…',
|
|
3320
|
+
'cr.runs': 'Ejecuciones',
|
|
3321
|
+
'cr.history_intro': '{table} de pg_cron, primero las más recientes (200 como máximo); horas en {tz}. pg_cron conserva cada ejecución hasta que se purga.',
|
|
3322
|
+
'cr.all_jobs': 'Todos los trabajos',
|
|
3323
|
+
'cr.any_status': 'Cualquier estado',
|
|
3324
|
+
'cr.search_messages_label': 'Buscar mensajes y comandos',
|
|
3325
|
+
'cr.search_messages': 'Buscar mensajes',
|
|
3326
|
+
'cr.filter': 'Filtrar',
|
|
3327
|
+
'cr.older_7': 'con más de 7 días',
|
|
3328
|
+
'cr.older_30': 'con más de 30 días',
|
|
3329
|
+
'cr.older_90': 'con más de 90 días',
|
|
3330
|
+
'cr.purge_all': 'todas',
|
|
3331
|
+
'cr.purged': 'Historial de ejecuciones purgado.',
|
|
3332
|
+
'cr.purge_title': 'Purgar el historial de ejecuciones',
|
|
3333
|
+
'cr.which_runs': 'Qué ejecuciones',
|
|
3334
|
+
'cr.runs_of': 'Ejecuciones de {name}',
|
|
3335
|
+
'cr.would_delete_one': 'Se eliminaría 1 ejecución.',
|
|
3336
|
+
'cr.would_delete': 'Se eliminarían {n} ejecuciones.',
|
|
3337
|
+
'cr.purge': 'Purgar',
|
|
3338
|
+
// ------------------------------------------------------------ Scheduling: fields, statuses, presets, schedules in words (cron.*)
|
|
3339
|
+
'cr.f.minute': 'Minuto',
|
|
3340
|
+
'cr.f.minute_help': '0-59',
|
|
3341
|
+
'cr.f.hour': 'Hora',
|
|
3342
|
+
'cr.f.hour_help': '0-23',
|
|
3343
|
+
'cr.f.day': 'Día del mes',
|
|
3344
|
+
'cr.f.day_help': '1-31, $ = último',
|
|
3345
|
+
'cr.f.month': 'Mes',
|
|
3346
|
+
'cr.f.month_help': '1-12 o jan-dec',
|
|
3347
|
+
'cr.f.weekday': 'Día de la semana',
|
|
3348
|
+
'cr.f.weekday_help': '0-6 (0 = domingo) o sun-sat',
|
|
3349
|
+
'cr.status.starting': 'iniciando',
|
|
3350
|
+
'cr.status.running': 'en ejecución',
|
|
3351
|
+
'cr.status.sending': 'enviando',
|
|
3352
|
+
'cr.status.connecting': 'conectando',
|
|
3353
|
+
'cr.status.succeeded': 'correcto',
|
|
3354
|
+
'cr.status.failed': 'con error',
|
|
3355
|
+
'cr.preset.p1': 'Cada minuto',
|
|
3356
|
+
'cr.preset.p2': 'Cada 30 segundos',
|
|
3357
|
+
'cr.preset.p3': 'Cada 5 minutos',
|
|
3358
|
+
'cr.preset.p4': 'Cada 15 minutos',
|
|
3359
|
+
'cr.preset.p5': 'Cada hora',
|
|
3360
|
+
'cr.preset.p6': 'Cada día a las 02:00',
|
|
3361
|
+
'cr.preset.p7': 'Cada día a medianoche',
|
|
3362
|
+
'cr.preset.p8': 'Días laborables a las 07:00',
|
|
3363
|
+
'cr.preset.p9': 'Cada domingo a las 03:00',
|
|
3364
|
+
'cr.preset.p10': 'Primer día del mes a las 01:00',
|
|
3365
|
+
'cr.preset.p11': 'Último día del mes a las 23:00',
|
|
3366
|
+
'cr.preset.p12': 'Cada año el 1 de enero',
|
|
3367
|
+
'cron.reboot': 'Al iniciarse el servidor de base de datos',
|
|
3368
|
+
'cron.every_second': 'Cada segundo',
|
|
3369
|
+
'cron.every_seconds': 'Cada {n} segundos',
|
|
3370
|
+
'cron.every_minute': 'Cada minuto',
|
|
3371
|
+
'cron.every_minutes': 'Cada {n} minutos',
|
|
3372
|
+
'cron.every_hour': 'Cada hora',
|
|
3373
|
+
'cron.minute_of_hour': 'En el minuto {m} de cada hora',
|
|
3374
|
+
'cron.minutes_of_hour': 'En los minutos {list} de cada hora',
|
|
3375
|
+
'cron.at': 'A las {times}',
|
|
3376
|
+
'cron.at_minute': 'En el minuto {m}',
|
|
3377
|
+
'cron.at_minutes': 'En los minutos {list}',
|
|
3378
|
+
'cron.of_every_hours': '{mins} de cada {n} horas',
|
|
3379
|
+
'cron.past_hours': '{mins} de las horas {list}',
|
|
3380
|
+
'cron.day_and_last': 'el día {list} y el último día del mes',
|
|
3381
|
+
'cron.last_day': 'el último día del mes',
|
|
3382
|
+
'cron.day_of_month': 'el día {list} del mes',
|
|
3383
|
+
'cron.weekdays': 'los días laborables',
|
|
3384
|
+
'cron.on_days': 'el {list}',
|
|
3385
|
+
'cron.a_days': 'un {list}',
|
|
3386
|
+
'cron.either': '{dom} o {dow}',
|
|
3387
|
+
'cron.if': '{dom} si es {dow}',
|
|
3388
|
+
'cron.every_day': 'cada día',
|
|
3389
|
+
'cron.in_months': 'en {list}',
|
|
3390
|
+
'cron.range': '{from} a {to}',
|
|
3391
|
+
// ------------------------------------------------------------ Region and report settings (CD-8)
|
|
3392
|
+
'rs.set_items': 'Establecer elementos',
|
|
3393
|
+
'rs.text_when_there_are_no': 'Texto cuando no hay filas',
|
|
3394
|
+
'rs.fill_colour_lines_polygons': 'Color de relleno (líneas / polígonos)',
|
|
3395
|
+
'rs.line_colour': 'Color de línea',
|
|
3396
|
+
'rs.line_width': 'Ancho de línea',
|
|
3397
|
+
'rs.opacity_0_1': 'Opacidad (0–1)',
|
|
3398
|
+
'rs.rows_per_page': 'Filas por página',
|
|
3399
|
+
'rs.aggregates_in_the_footer': 'Agregados en el pie',
|
|
3400
|
+
'rs.frozen_columns': 'Columnas fijas',
|
|
3401
|
+
'rs.public_reports_by': 'Informes públicos por',
|
|
3402
|
+
'rs.as_a_master_column_of': 'Como maestro: columna de la fila seleccionada',
|
|
3403
|
+
'rs.goes_into_item': '… va al elemento',
|
|
3404
|
+
'rs.as_a_detail_follows_item': 'Como detalle: sigue al elemento',
|
|
3405
|
+
'rs.and_new_rows_get_it': '… y las filas nuevas lo reciben en la columna',
|
|
3406
|
+
'rs.load': 'Carga',
|
|
3407
|
+
'rs.name_legend': 'Nombre (leyenda)',
|
|
3408
|
+
'rs.show_places_as': 'Mostrar lugares como',
|
|
3409
|
+
'rs.query': 'Consulta',
|
|
3410
|
+
'rs.each_place_links_to_page': 'Cada lugar enlaza a la página',
|
|
3411
|
+
'rs.report_region': 'Región de informe',
|
|
3412
|
+
'rs.filter_by': 'Filtrar por',
|
|
3413
|
+
'rs.suggestions_per_facet_0_10': 'Sugerencias por faceta (0–10)',
|
|
3414
|
+
'rs.placeholder_of_the_search_field': 'Marcador del campo de búsqueda',
|
|
3415
|
+
'rs.shown_first': 'Se muestra primero',
|
|
3416
|
+
'rs.week_and_day_views_from': 'Vistas de semana y día desde la hora',
|
|
3417
|
+
'rs.until_hour': 'Hasta la hora',
|
|
3418
|
+
'rs.sql_that_moves_an_event': 'SQL que mueve un evento',
|
|
3419
|
+
'rs.key_column': 'Columna clave',
|
|
3420
|
+
'rs.who_may_drag': 'Quién puede arrastrar',
|
|
3421
|
+
'rs.show_as': 'Mostrar como',
|
|
3422
|
+
'rs.carousel_next_region_every_seconds': 'Carrusel: siguiente región cada (segundos)',
|
|
3423
|
+
'rs.chart_type': 'Tipo de gráfico',
|
|
3424
|
+
'rs.sql_that_moves_a_task': 'SQL que mueve una tarea',
|
|
3425
|
+
'rs.steps': 'Pasos',
|
|
3426
|
+
'rs.style': 'Estilo',
|
|
3427
|
+
'rs.list': 'Lista',
|
|
3428
|
+
'rs.template': 'Plantilla',
|
|
3429
|
+
'rs.layer_name_legend': 'Nombre de la capa (leyenda)',
|
|
3430
|
+
'rs.height': 'Altura',
|
|
3431
|
+
'rs.zoom_for_a_single_place': 'Zoom para un solo lugar (1–19)',
|
|
3432
|
+
'rs.levels_open_at_first': 'Niveles abiertos al principio',
|
|
3433
|
+
'rs.show': 'Mostrar',
|
|
3434
|
+
'rs.behaviour': 'Comportamiento',
|
|
3435
|
+
'rs.totals_and_columns': 'Totales y columnas',
|
|
3436
|
+
'rs.views': 'Vistas',
|
|
3437
|
+
'rs.row_actions': 'Acciones de fila',
|
|
3438
|
+
'rs.master_detail': 'Maestro-detalle',
|
|
3439
|
+
'rs.columns': 'Columnas',
|
|
3440
|
+
'rs.filter_a_report': 'Filtrar un informe',
|
|
3441
|
+
'rs.filters': 'Filtros',
|
|
3442
|
+
'rs.facets': 'Facetas',
|
|
3443
|
+
'rs.drag_and_drop': 'Arrastrar y soltar',
|
|
3444
|
+
'rs.appearance': 'Apariencia',
|
|
3445
|
+
'rs.regions': 'Regiones',
|
|
3446
|
+
'rs.gauge': 'Indicador',
|
|
3447
|
+
'rs.gantt_drag_and_drop': 'Gantt: arrastrar y soltar',
|
|
3448
|
+
'rs.workflows': 'Flujos de trabajo',
|
|
3449
|
+
'rs.tasks': 'Tareas',
|
|
3450
|
+
'rs.saving_needs_a_process_of': 'Para guardar se necesita un proceso de tipo "grid_dml" para esta región; sin él la cuadrícula es de solo lectura.',
|
|
3451
|
+
'rs.column_sum_avg_count_min': 'columna=sum, avg, count, min o max; separe las columnas con ";". Se calcula sobre todas las filas de la búsqueda, no solo la página. Los usuarios pueden añadir los suyos (Acciones → Agregado).',
|
|
3452
|
+
'rs.stay_in_view_while_the': 'Permanecen visibles mientras la cuadrícula se desplaza lateralmente. Los usuarios pueden cambiarlo, mover, redimensionar y ocultar columnas; "layout" en el JSON fija el orden y los anchos predeterminados.',
|
|
3453
|
+
'rs.views_users_may_switch_to': 'Vistas a las que los usuarios pueden cambiar además de la cuadrícula. La vista de fila única edita una fila a la vez (también desde el menú de acciones de fila); agrupar y gráfico se configuran en Acciones.',
|
|
3454
|
+
'rs.a_master_grid_s_selected': 'La fila seleccionada de una cuadrícula maestra pone su valor en un elemento de página; las cuadrículas de detalle y los informes lo usan en su consulta (:P1_ID) y se actualizan sin recargar la página. Otros tipos de región siguen con {"master": {"item": "P1_ID"}}.',
|
|
3455
|
+
'rs.edit_as_picks_a_shared': '"Editar como" elige una lista de valores compartida (Componentes compartidos → Listas de valores) para una lista de selección.',
|
|
3456
|
+
'rs.the_visible_area_and_vector': 'El área visible y los mosaicos vectoriales necesitan `lat`/`lng` (o una geometría PostGIS) y se recargan al mover el mapa. Los mosaicos vectoriales dibujan puntos, líneas y áreas, sin agrupación ni lista.',
|
|
3457
|
+
'rs.the_same_columns_as_the': 'Las mismas columnas que la consulta del mapa. Vacíe la consulta para quitar la capa.',
|
|
3458
|
+
'rs.the_condition_runs_on_the': 'La condición se ejecuta en el servidor: con PostGIS instalado sobre una columna geometry/geography, si no sobre latitud y longitud.',
|
|
3459
|
+
'rs.users_switch_between_the_ticked': 'Los usuarios cambian entre las vistas marcadas. Las horas fuera del rango se añaden cuando un evento las necesita.',
|
|
3460
|
+
'rs.runs_as_the_application_s': 'Se ejecuta con el rol de base de datos de la aplicación (se aplica la seguridad a nivel de fila) con `:EVENT_ID` (el valor de la columna clave), `:NEW_START` y `:NEW_END` (la misma duración que antes). Vacío: los eventos no se pueden arrastrar.',
|
|
3461
|
+
'rs.only_events_the_user_sees': 'Solo se pueden mover los eventos que el usuario ve en este calendario; sin ratón, el enlace de edición cambia las fechas.',
|
|
3462
|
+
'rs.not_while_the_pointer_or': 'No mientras el puntero o el foco estén en el carrusel, ni para usuarios que prefieren movimiento reducido. Un carrusel no tiene "Mostrar todo".',
|
|
3463
|
+
'rs.a_chosen_region_gets_display': 'Una región elegida recibe `"display_selector": true` en su configuración (una pestaña con su nombre) o el nombre de la pestaña: las regiones con el mismo nombre de pestaña comparten una pestaña (p. ej. filtros inteligentes y su informe). Sin JavaScript se muestran todas las regiones, con enlaces a cada una.',
|
|
3464
|
+
'rs.gauge_charts_only_a_warning': 'Solo gráficos de indicador. Un umbral de advertencia por encima del crítico significa que los valores bajos son malos (p. ej. advertencia 50, crítico 20).',
|
|
3465
|
+
'rs.drill_down_column_takes_the': 'Desglose: `#column#` toma el valor de la fila del punto y `#series#` el nombre de su serie. Las columnas a las que solo se refiere el enlace no se dibujan.',
|
|
3466
|
+
'rs.gantt_charts_with_a_task': 'Gráficos de Gantt con una columna `task_id`. Se ejecuta con el rol de base de datos de la aplicación (se aplica la seguridad a nivel de fila) con `:TASK_ID`, `:NEW_START` y `:NEW_END` (`YYYY-MM-DD`, o `YYYY-MM-DDTHH:MM` por horas; un hito recibe el mismo inicio y fin). Vacío: las tareas no se pueden arrastrar.',
|
|
3467
|
+
'rs.only_tasks_the_user_sees': 'Solo se pueden mover las tareas que el usuario ve en este gráfico; después el gráfico se vuelve a dibujar a partir de su consulta.',
|
|
3468
|
+
'rs.column': 'Columna',
|
|
3469
|
+
'rs.heading': 'Encabezado',
|
|
3470
|
+
'rs.shown': 'Visible',
|
|
3471
|
+
'rs.read_only': 'Solo lectura',
|
|
3472
|
+
'rs.required': 'Obligatorio',
|
|
3473
|
+
'rs.edit_as': 'Editar como',
|
|
3474
|
+
'rs.facet': 'Faceta',
|
|
3475
|
+
'rs.label': 'Etiqueta',
|
|
3476
|
+
'rs.type': 'Tipo',
|
|
3477
|
+
'rs.values_shown': 'Valores mostrados',
|
|
3478
|
+
'rs.exclude': 'Excluir',
|
|
3479
|
+
'rs.ranges': 'Rangos',
|
|
3480
|
+
'rs.from_to': 'Desde/hasta',
|
|
3481
|
+
'rs.chart': 'Gráfico',
|
|
3482
|
+
'rs.order': 'Orden',
|
|
3483
|
+
'rs.region': 'Región',
|
|
3484
|
+
'rs.in_a_tab': 'En una pestaña',
|
|
3485
|
+
'rs.tab_name': 'Nombre de la pestaña',
|
|
3486
|
+
'rs.no_columns_yet': 'Aún no hay columnas.',
|
|
3487
|
+
'rs.the_report_has_no_columns': 'El informe no tiene columnas.',
|
|
3488
|
+
'rs.there_are_no_other_regions': 'No hay otras regiones en esta página.',
|
|
3489
|
+
'rs.shows_a_list_from_shared': 'Muestra una lista de Componentes compartidos → Listas. Se omiten las entradas que el usuario no puede abrir.',
|
|
3490
|
+
'rs.these_fields_write_the_region': 'Estos campos escriben el JSON de configuración de la región de arriba (se conservan las demás claves).',
|
|
3491
|
+
'rs.users_may_add_rows': 'Los usuarios pueden añadir filas',
|
|
3492
|
+
'rs.users_may_change_rows': 'Los usuarios pueden cambiar filas',
|
|
3493
|
+
'rs.users_may_delete_rows': 'Los usuarios pueden eliminar filas',
|
|
3494
|
+
'rs.actions_menu_columns_aggregates_saved': 'Menú Acciones (columnas, agregados, informes guardados)',
|
|
3495
|
+
'rs.users_may_save_grid_reports': 'Los usuarios pueden guardar informes de cuadrícula',
|
|
3496
|
+
'rs.row_actions_menu': 'Menú de acciones de fila',
|
|
3497
|
+
'rs.duplicate': 'Duplicar',
|
|
3498
|
+
'rs.delete': 'Eliminar',
|
|
3499
|
+
'rs.read_the_search_as_a': 'Leer la búsqueda como una frase ("oficinistas con salario entre 1000 y 3000") y ofrecerla como filtros',
|
|
3500
|
+
'rs.a_search_field_searches_all': 'Un campo de búsqueda (busca en todas las columnas del informe)',
|
|
3501
|
+
'rs.show_all_choice_shows_every': 'Opción "Mostrar todo" (muestra todas las regiones)',
|
|
3502
|
+
'rs.remember_the_choice_during_the': 'Recordar la elección durante la sesión',
|
|
3503
|
+
'rs.group_markers_that_are_close': 'Agrupar marcadores cercanos (agrupación)',
|
|
3504
|
+
'rs.include_completed_and_terminated_workflows': 'Incluir flujos de trabajo completados y terminados',
|
|
3505
|
+
'rs.include_completed_and_cancelled_tasks': 'Incluir tareas completadas y canceladas',
|
|
3506
|
+
'rs.no_link': '- sin enlace -',
|
|
3507
|
+
'rs.text_field': '- campo de texto -',
|
|
3508
|
+
'rs.nobody': '- nadie -',
|
|
3509
|
+
'rs.not_a_master': '- no es maestro -',
|
|
3510
|
+
'rs.all_rows_with_the_page': 'Todas las filas con la página',
|
|
3511
|
+
'rs.rows_in_the_visible_area': 'Filas del área visible',
|
|
3512
|
+
'rs.vector_tiles_large_data_sets': 'Mosaicos vectoriales (grandes conjuntos de datos)',
|
|
3513
|
+
'rs.markers': 'Marcadores',
|
|
3514
|
+
'rs.heat_map': 'Mapa de calor',
|
|
3515
|
+
'rs.lines': 'Líneas',
|
|
3516
|
+
'rs.polygons': 'Polígonos',
|
|
3517
|
+
'rs.extruded_polygons_shaded_by_height': 'Polígonos extruidos (sombreados por altura)',
|
|
3518
|
+
'rs.none': '- ninguno -',
|
|
3519
|
+
'rs.the_visible_area': 'El área visible',
|
|
3520
|
+
'rs.distance_from_the_centre': 'Distancia desde el centro',
|
|
3521
|
+
'rs.none_2': 'Ninguno',
|
|
3522
|
+
'rs.bar': 'Barras',
|
|
3523
|
+
'rs.pie': 'Circular',
|
|
3524
|
+
'rs.choose': '- elija -',
|
|
3525
|
+
'rs.everyone_who_sees_the_calendar': 'Todos los que ven el calendario',
|
|
3526
|
+
'rs.signed_in_users': 'Usuarios con sesión iniciada',
|
|
3527
|
+
'rs.tabs': 'Pestañas',
|
|
3528
|
+
'rs.select_list': 'Lista de selección',
|
|
3529
|
+
'rs.carousel_one_at_a_time': 'Carrusel (una a la vez, Anterior y Siguiente)',
|
|
3530
|
+
'rs.everyone_who_sees_the_chart': 'Todos los que ven el gráfico',
|
|
3531
|
+
'rs.days_or_hours_when_a': 'Días, u horas cuando una tarea tiene hora',
|
|
3532
|
+
'rs.days': 'Días',
|
|
3533
|
+
'rs.hours': 'Horas',
|
|
3534
|
+
'rs.cards': 'Tarjetas',
|
|
3535
|
+
'rs.kpi_tiles_metric': 'Mosaicos KPI (métrica)',
|
|
3536
|
+
'rs.links_nested': 'Enlaces (anidados)',
|
|
3537
|
+
'rs.badge_list': 'Lista de insignias',
|
|
3538
|
+
'rs.cards_menu': 'Tarjetas (menú)',
|
|
3539
|
+
'rs.wizard_progress_numbered_steps': 'Progreso del asistente (pasos numerados)',
|
|
3540
|
+
'rs.small': 'Pequeño',
|
|
3541
|
+
'rs.medium': 'Mediano',
|
|
3542
|
+
'rs.large': 'Grande',
|
|
3543
|
+
'rs.workflows_i_started': 'Flujos de trabajo que inicié',
|
|
3544
|
+
'rs.workflows_i_administer': 'Flujos de trabajo que administro',
|
|
3545
|
+
'rs.my_tasks_to_act_on': 'Mis tareas: por atender, por reclamar o asignadas a mí',
|
|
3546
|
+
'rs.tasks_i_requested': 'Tareas que solicité',
|
|
3547
|
+
'rs.tasks_i_administer': 'Tareas que administro',
|
|
3548
|
+
'rs.aria_list_of_values_of': 'Lista de valores de {name}',
|
|
3549
|
+
'rs.aria_heading_of': 'Encabezado de {name}',
|
|
3550
|
+
'rs.aria_show': 'Mostrar {name}',
|
|
3551
|
+
'rs.aria_facet_on': 'Faceta sobre {name}',
|
|
3552
|
+
'rs.aria_label_of': 'Etiqueta de {name}',
|
|
3553
|
+
'rs.aria_type_of_the_facet_on': 'Tipo de la faceta sobre {name}',
|
|
3554
|
+
'rs.aria_values_shown_for': 'Valores mostrados para {name}',
|
|
3555
|
+
'rs.aria_users_may_exclude_values_of': 'Los usuarios pueden excluir valores de {name}',
|
|
3556
|
+
'rs.aria_ranges_of': 'Rangos de {name}',
|
|
3557
|
+
'rs.aria_users_may_type_a_range': 'Los usuarios pueden escribir un rango para {name}',
|
|
3558
|
+
'rs.aria_chart_of_the_facet_on': 'Gráfico de la faceta sobre {name}',
|
|
3559
|
+
'rs.aria_order_of': 'Orden de {name}',
|
|
3560
|
+
'rs.aria_show_in_the_display_selector': 'Mostrar {name} en el selector de visualización',
|
|
3561
|
+
'rs.aria_tab_name_of': 'Nombre de pestaña de {name}',
|
|
3562
|
+
'rs.no_data_found': 'No se encontraron datos',
|
|
3563
|
+
'rs.search_or_filter': 'Buscar o filtrar…',
|
|
3564
|
+
'rs.link': 'Enlace',
|
|
3565
|
+
'rs.link_help': 'ELEMENTO=#column#, separados por comas; #column# se sustituye por el valor de la fila.',
|
|
3566
|
+
'rs.links_to_page': '{what} enlaza a la página',
|
|
3567
|
+
'rs.w.edit': 'Editar',
|
|
3568
|
+
'rs.row_actions_edit': 'Acciones de fila: editar',
|
|
3569
|
+
'rs.w.event': 'Cada evento',
|
|
3570
|
+
'rs.edit_link': 'Enlace de edición',
|
|
3571
|
+
'rs.w.slot': 'Un hueco vacío de día u hora',
|
|
3572
|
+
'rs.create_on_click': 'Crear al hacer clic',
|
|
3573
|
+
'rs.create_help': 'ELEMENTO=#start#, #end# o #date#: el hueco pulsado (YYYY-MM-DD, o YYYY-MM-DD HH:MI para un hueco de hora).',
|
|
3574
|
+
'rs.w.point': 'Cada punto de datos',
|
|
3575
|
+
'rs.w.card': 'Cada tarjeta',
|
|
3576
|
+
'rs.w.place': 'Cada lugar',
|
|
3577
|
+
'rs.w.node': 'Cada nodo',
|
|
3578
|
+
'rs.layer_n': 'Capa {n}: {name}',
|
|
3579
|
+
'rs.add_layer': 'Añadir una capa',
|
|
3580
|
+
'rs.group_markers': 'Agrupar marcadores cercanos',
|
|
3581
|
+
'rs.off_at_first': 'Desactivada al principio',
|
|
3582
|
+
'rs.map_report_help': 'Los usuarios pueden mostrar solo las filas del área visible del mapa ("Mostrar esta área en la lista") o cerca de su centro. El informe necesita columnas lat y lng (o location), o una columna PostGIS geometry/geography.',
|
|
3583
|
+
'rs.map_report_none': 'Añada una región de informe a esta página para filtrarla por el área del mapa.',
|
|
3584
|
+
'rs.report_smart_help': 'El informe de esta página que filtran los filtros inteligentes. Guarde para listar sus columnas.',
|
|
3585
|
+
'rs.report_facets_help': 'El informe de esta página que filtran las facetas. Guarde para listar sus columnas.',
|
|
3586
|
+
'rs.report_first': 'Añada primero una región de informe a esta página.',
|
|
3587
|
+
'rs.untitled': '(sin título)',
|
|
3588
|
+
'rs.gauge.min': 'Mínimo',
|
|
3589
|
+
'rs.gauge.max': 'Máximo',
|
|
3590
|
+
'rs.gauge.warning': 'Advertencia desde',
|
|
3591
|
+
'rs.gauge.critical': 'Crítico desde',
|
|
3592
|
+
'rs.t.settings': 'Configuración',
|
|
3593
|
+
'rs.t.grid': 'Configuración de la cuadrícula',
|
|
3594
|
+
'rs.t.chart': 'Configuración del gráfico',
|
|
3595
|
+
'rs.t.cards': 'Configuración de tarjetas',
|
|
3596
|
+
'rs.t.calendar': 'Configuración del calendario',
|
|
3597
|
+
'rs.t.facets': 'Configuración de la búsqueda facetada',
|
|
3598
|
+
'rs.t.smart': 'Configuración de los filtros inteligentes',
|
|
3599
|
+
'rs.t.selector': 'Configuración del selector de visualización',
|
|
3600
|
+
'rs.t.list': 'Configuración de la lista',
|
|
3601
|
+
'rs.t.map': 'Configuración del mapa',
|
|
3602
|
+
'rs.t.tree': 'Configuración del árbol',
|
|
3603
|
+
'rs.t.workflows': 'Configuración de la consola de flujos de trabajo',
|
|
3604
|
+
'rs.t.tasks': 'Configuración de la lista de tareas',
|
|
3605
|
+
'rs.saved': 'Configuración guardada.',
|
|
3606
|
+
'rs.chart.bar': 'Barras (horizontales)',
|
|
3607
|
+
'rs.chart.column': 'Columnas',
|
|
3608
|
+
'rs.chart.stacked': 'Columnas apiladas',
|
|
3609
|
+
'rs.chart.line': 'Líneas',
|
|
3610
|
+
'rs.chart.area': 'Área',
|
|
3611
|
+
'rs.chart.combo': 'Columnas y línea (primera serie como columnas)',
|
|
3612
|
+
'rs.chart.scatter': 'Dispersión (la primera columna es x)',
|
|
3613
|
+
'rs.chart.donut': 'Anillo',
|
|
3614
|
+
'rs.chart.pie': 'Circular',
|
|
3615
|
+
'rs.chart.bubble': 'Burbujas (columnas label, x, y y size)',
|
|
3616
|
+
'rs.chart.gauge': 'Indicador (un dial por fila)',
|
|
3617
|
+
'rs.chart.funnel': 'Embudo (etapas en el orden de la consulta)',
|
|
3618
|
+
'rs.chart.radar': 'Radar (un eje por fila)',
|
|
3619
|
+
'rs.chart.gantt': 'Gantt (columnas task, start y end)',
|
|
3620
|
+
'rs.chart.treemap': 'Mapa de árbol (label y value; node_id, parent_id para una jerarquía)',
|
|
3621
|
+
'rs.chart.sunburst': 'Rayos de sol (label y value; node_id, parent_id para una jerarquía)',
|
|
3622
|
+
'rs.chart.timeline': 'Línea de tiempo (label, start, end; una columna series para carriles)',
|
|
3623
|
+
'rs.chart.pyramid': 'Pirámide (una serie; dos series espalda con espalda)',
|
|
3624
|
+
'rs.chart.polar': 'Área polar (un sector por fila)',
|
|
3625
|
+
'rs.chart.range': 'Rango (columnas low y high: columnas flotantes)',
|
|
3626
|
+
'rs.chart.boxplot': 'Diagrama de caja (un valor por fila, o min, Q1, median, Q3 y max)',
|
|
3627
|
+
'rs.chart.stock': 'Bursátil (columnas open, high, low y close: velas)',
|
|
3628
|
+
'rs.gridview.row': 'Vista de fila única',
|
|
3629
|
+
'rs.gridview.group': 'Agrupar por',
|
|
3630
|
+
'rs.gridview.chart': 'Gráfico',
|
|
3631
|
+
'rs.facet.checkbox': 'Casillas',
|
|
3632
|
+
'rs.facet.range': 'Rangos',
|
|
3633
|
+
'rs.facet.star': 'Valoración con estrellas',
|
|
3634
|
+
'rs.view.month': 'Mes',
|
|
3635
|
+
'rs.view.week': 'Semana',
|
|
3636
|
+
'rs.view.day': 'Día',
|
|
3637
|
+
'rs.view.list': 'Lista',
|
|
3638
|
+
'rpt.rows_per_page': 'Filas por página',
|
|
3639
|
+
'rpt.on_phones': 'En teléfonos',
|
|
3640
|
+
'rpt.text_when_there_are_no': 'Texto cuando no hay filas',
|
|
3641
|
+
'rpt.who_may_save_public_reports': 'Quién puede guardar informes públicos',
|
|
3642
|
+
'rpt.pagination': 'Paginación',
|
|
3643
|
+
'rpt.keyset_columns': 'Columnas de keyset',
|
|
3644
|
+
'rpt.maximum_row_count': 'Número máximo de filas',
|
|
3645
|
+
'rpt.cache': 'Caché',
|
|
3646
|
+
'rpt.cache_for_seconds': 'Caché durante (segundos)',
|
|
3647
|
+
'rpt.columns_read_from_a_json': 'Columnas leídas de una columna json o jsonb',
|
|
3648
|
+
'rpt.link_column': 'Columna de enlace',
|
|
3649
|
+
'rpt.to_page': 'A la página',
|
|
3650
|
+
'rpt.set_items': 'Establecer elementos',
|
|
3651
|
+
'rpt.value_column': 'Columna de valor',
|
|
3652
|
+
'rpt.into_item': 'En el elemento',
|
|
3653
|
+
'rpt.report_layout': 'Diseño de informe',
|
|
3654
|
+
'rpt.behaviour': 'Comportamiento',
|
|
3655
|
+
'rpt.large_tables': 'Tablas grandes',
|
|
3656
|
+
'rpt.json_path_columns': 'Columnas de ruta JSON',
|
|
3657
|
+
'rpt.columns': 'Columnas',
|
|
3658
|
+
'rpt.link': 'Enlace',
|
|
3659
|
+
'rpt.row_selection': 'Selección de filas',
|
|
3660
|
+
'rpt.pdf': 'PDF',
|
|
3661
|
+
'rpt.row_ranges_skip_counting_the': 'Los rangos de filas no cuentan las filas: úselos para tablas grandes.',
|
|
3662
|
+
'rpt.with_row_ranges_columns_that': 'Con rangos de filas: columnas que hacen única una fila (separadas por comas, indexadas). Siguiente y Anterior continúan entonces tras la última fila en lugar de saltar filas (páginas profundas rápidas).',
|
|
3663
|
+
'rpt.the_report_and_its_downloads': 'El informe (y sus descargas) lee como máximo este número de filas.',
|
|
3664
|
+
'rpt.a_submit_of_the_page': 'Un envío de la página vacía su caché.',
|
|
3665
|
+
'rpt.format_masks_numbers_like_999g999g990d00': 'Máscaras de formato: números como 999G999G990D00, FML999G990D00 (moneda), 990D0% o 0000 (G y D son los separadores del idioma); fechas como DD-MON-YYYY. Vacío: los formatos de la aplicación. Las descargas Excel y CSV conservan los valores sin formato.',
|
|
3666
|
+
'rpt.item_column_comma_separated_column': 'ELEMENTO=#column#, separados por comas; #column# se sustituye por el valor de la fila.',
|
|
3667
|
+
'rpt.a_checkbox_per_row_on': 'Una casilla por fila; al enviar, los valores de las filas marcadas llegan al elemento, separados por dos puntos (p. ej. 7839:7902). Normalmente un elemento oculto. Trate los valores como entrada del usuario en su proceso.',
|
|
3668
|
+
'rpt.layouts_are_under_shared_components': 'Los diseños están en Componentes compartidos → Diseños de informe.',
|
|
3669
|
+
'rpt.column': 'Columna',
|
|
3670
|
+
'rpt.heading': 'Encabezado',
|
|
3671
|
+
'rpt.format_mask': 'Máscara de formato',
|
|
3672
|
+
'rpt.display': 'Visualización',
|
|
3673
|
+
'rpt.shown': 'Visible',
|
|
3674
|
+
'rpt.in_pdf': 'En PDF',
|
|
3675
|
+
'rpt.pdf_width_mm': 'Ancho en PDF (mm)',
|
|
3676
|
+
'rpt.these_fields_write_the_region': 'Estos campos escriben el JSON de configuración de la región de arriba (se conservan las demás claves).',
|
|
3677
|
+
'rpt.no_columns_yet': 'Aún no hay columnas.',
|
|
3678
|
+
'rpt.search_box': 'Cuadro de búsqueda',
|
|
3679
|
+
'rpt.actions_menu_filters_break_aggregates': 'Menú Acciones (filtros, cortes, agregados, descargas…)',
|
|
3680
|
+
'rpt.sortable': 'Ordenable',
|
|
3681
|
+
'rpt.users_may_save_reports': 'Los usuarios pueden guardar informes',
|
|
3682
|
+
'rpt.load_after_the_page_shows': 'Cargar después de mostrar la página (carga diferida)',
|
|
3683
|
+
'rpt.normal': 'Normal',
|
|
3684
|
+
'rpt.cards_reflow': 'Tarjetas (reflujo)',
|
|
3685
|
+
'rpt.scrolling_table': 'Tabla desplazable',
|
|
3686
|
+
'rpt.nobody': '- nadie -',
|
|
3687
|
+
'rpt.rows_x_y_of_z': 'Filas X–Y de Z (cuenta el total)',
|
|
3688
|
+
'rpt.row_ranges_x_y_no': 'Rangos de filas X–Y (sin total)',
|
|
3689
|
+
'rpt.no_cache': '- sin caché -',
|
|
3690
|
+
'rpt.per_user': 'Por usuario',
|
|
3691
|
+
'rpt.per_session': 'Por sesión',
|
|
3692
|
+
'rpt.for_all_users_with_the': 'Para todos los usuarios (con los mismos roles)',
|
|
3693
|
+
'rpt.no_link': '- sin enlace -',
|
|
3694
|
+
'rpt.choose': '- elija -',
|
|
3695
|
+
'rpt.no_row_selection': '- sin selección de filas -',
|
|
3696
|
+
'rpt.aria_heading_of': 'Encabezado de {name}',
|
|
3697
|
+
'rpt.aria_format_mask_of': 'Máscara de formato de {name}',
|
|
3698
|
+
'rpt.aria_display_of': 'Visualización de {name}',
|
|
3699
|
+
'rpt.aria_show': 'Mostrar {name}',
|
|
3700
|
+
'rpt.aria_print': 'Imprimir {name}',
|
|
3701
|
+
'rpt.aria_pdf_width_of': 'Ancho en PDF de {name}',
|
|
3702
|
+
'rpt.no_data_found': 'No se encontraron datos',
|
|
3703
|
+
'rpt.saved_without': 'Configuración del informe guardada, sin estas máscaras de formato: {masks}.',
|
|
3704
|
+
'rpt.saved': 'Configuración del informe guardada.',
|
|
3705
|
+
// ------------------------------------------------------------ Region settings help (CD-8)
|
|
3706
|
+
'rs.not_in_query': 'no está en la consulta',
|
|
3707
|
+
'rpt.report_settings': 'Configuración del informe',
|
|
3708
|
+
'rpt.save_report_settings': 'Guardar configuración del informe',
|
|
3709
|
+
'rs.no_position_alert': 'El informe no tiene columnas `lat`/`lng` ni `location`, así que el área del mapa no puede filtrarlo.',
|
|
3710
|
+
'rs.facets_help': 'Las casillas muestran los valores más frecuentes (Excluir permite a los usuarios filtrarlos fuera). Rangos y Desde/hasta necesitan una columna numérica o de fecha: los rangos son `from..to = label` separados por `;`, con un extremo abierto vacío (`..1000`, `2020-01-01..`); un rango incluye su inicio, no su fin. Una valoración con estrellas ofrece «4 estrellas o más», etc. (hasta 5; `"max"` en el JSON lo cambia).',
|
|
3711
|
+
'rs.facets_help_chart': 'Gráfico: un gráfico de barras o circular de los recuentos bajo la faceta (contraído); una barra o porción filtra por su valor.',
|
|
3712
|
+
'rs.calendar_help': 'La consulta devuelve `start_date`, `title` y opcionalmente `end_date` (fechas para eventos de todo el día, marcas de tiempo para eventos con hora).',
|
|
3713
|
+
'rs.chart_help': 'La primera columna es la etiqueta; cada columna numérica siguiente es una serie (hasta 8). Un diagrama de Gantt lee `label, start, end` (fechas o marcas de tiempo; un fin vacío es un hito) y columnas opcionales llamadas `progress` (0 a 100), `task_id` y `depends_on` (los ids que espera una tarea, p. ej. `3,4`).',
|
|
3714
|
+
'rs.map_help': 'Cada fila es un marcador en `lat`, `lng` (o `location` como "lat,lng"), con `title` y `body` en su ventana emergente; una columna `geojson` dibuja líneas y áreas (con PostGIS instalado también sirve una columna `geometry` o `geography` en WGS 84). Un mapa de calor pondera cada lugar por una columna `weight`.',
|
|
3715
|
+
'rs.tree_help': 'La consulta devuelve `id`, `parent_id` y `label` (y opcionalmente `icon`); las filas cuyo padre no está en el resultado son las raíces.',
|
|
3716
|
+
'rs.workflow_help': 'Los flujos de trabajo vienen de definiciones de flujo (Componentes compartidos); el SQL de la aplicación los inicia con `meta.start_workflow(…)`.',
|
|
3717
|
+
'rs.task_help': 'Las tareas vienen de definiciones de tarea (Componentes compartidos); el SQL de la aplicación las crea con `meta.create_task(…)`.',
|
|
3718
|
+
// ------------------------------------------------------------ SQL Workshop › RESTful Services › Modules (CD-8)
|
|
3719
|
+
'rm.type.collection': 'Consulta de colección: filas, paginadas',
|
|
3720
|
+
'rm.type.item': 'Fila única: un objeto, 404 sin fila',
|
|
3721
|
+
'rm.type.sql': 'SQL: la primera fila de la última sentencia',
|
|
3722
|
+
'rm.type.plpgsql': 'Bloque PL/pgSQL: meta.rest_reply(body, status)',
|
|
3723
|
+
'rm.type.media': 'Recurso multimedia: content_type y content',
|
|
3724
|
+
'rm.modules': 'Módulos',
|
|
3725
|
+
'rm.module': 'Módulo',
|
|
3726
|
+
'rm.autorest_tab': 'AutoREST (tablas y vistas)',
|
|
3727
|
+
'rm.run_only_suffix': 'Vuelva a ponerla en Ejecutar y compilar para cambiarla.',
|
|
3728
|
+
'rm.locked_suffix': 'Los cambios se rechazan hasta que se desbloquee.',
|
|
3729
|
+
'rm.or': 'o',
|
|
3730
|
+
'rm.public': 'público',
|
|
3731
|
+
'rm.token': 'token',
|
|
3732
|
+
'rm.module_role': 'rol del módulo {roles}',
|
|
3733
|
+
'rm.role': 'rol {roles}',
|
|
3734
|
+
'rm.tree_aria': 'Plantillas y manejadores',
|
|
3735
|
+
'rm.disabled_suffix': 'desactivado',
|
|
3736
|
+
'rm.base_path': 'Ruta base',
|
|
3737
|
+
'rm.application': 'Aplicación',
|
|
3738
|
+
'rm.templates': 'Plantillas',
|
|
3739
|
+
'rm.template': 'Plantilla',
|
|
3740
|
+
'rm.handlers': 'Manejadores',
|
|
3741
|
+
'rm.privilege': 'Privilegio',
|
|
3742
|
+
'rm.off': 'desactivado',
|
|
3743
|
+
'rm.any_token': 'cualquier token',
|
|
3744
|
+
'rm.none_yet': 'Todavía no hay módulos REST. Cree uno abajo: una ruta base, luego plantillas y manejadores.',
|
|
3745
|
+
'rm.app_help': 'Su rol de base de datos ejecuta los manejadores; sus tokens y roles deciden quién puede llamarlos.',
|
|
3746
|
+
'rm.base_path_rule': 'letras minúsculas, dígitos, _ y - (como máximo 40)',
|
|
3747
|
+
'rm.eg': 'p. ej. {example}',
|
|
3748
|
+
'rm.eg_sales_api': 'p. ej. API de ventas',
|
|
3749
|
+
'rm.title': 'Título',
|
|
3750
|
+
'rm.privilege_roles': 'Privilegio: roles',
|
|
3751
|
+
'rm.any_caller': 'cualquier llamador con un token',
|
|
3752
|
+
'rm.roles_help_app': 'Separados por comas: cada manejador necesita uno de estos roles de la aplicación.',
|
|
3753
|
+
'rm.roles_help': 'Separados por comas: cada manejador necesita uno de estos roles.',
|
|
3754
|
+
'rm.description': 'Descripción',
|
|
3755
|
+
'rm.create_module': 'Crear módulo',
|
|
3756
|
+
'rm.create_a_module': 'Crear un módulo',
|
|
3757
|
+
'rm.list_title': 'Servicios RESTful: módulos',
|
|
3758
|
+
'rm.enabled': 'Activado',
|
|
3759
|
+
'rm.status': 'Estado',
|
|
3760
|
+
'rm.disabled_404': 'Desactivado (404)',
|
|
3761
|
+
'rm.save': 'Guardar',
|
|
3762
|
+
'rm.saved': 'Guardado.',
|
|
3763
|
+
'rm.no_templates': 'Todavía no hay plantillas.',
|
|
3764
|
+
'rm.uri_template': 'Plantilla de URI',
|
|
3765
|
+
'rm.add_template': 'Añadir plantilla',
|
|
3766
|
+
'rm.checks': 'Comprobaciones',
|
|
3767
|
+
'rm.delete_module': 'Eliminar módulo',
|
|
3768
|
+
'rm.module_title': 'Módulo REST {name}',
|
|
3769
|
+
'rm.method': 'Método',
|
|
3770
|
+
'rm.source_type': 'Tipo de origen',
|
|
3771
|
+
'rm.access': 'Acceso',
|
|
3772
|
+
'rm.no_handlers': 'Todavía no hay manejadores: la URI responde 404.',
|
|
3773
|
+
'rm.add_handler': 'Añadir manejador',
|
|
3774
|
+
'rm.url': 'URL:',
|
|
3775
|
+
'rm.uri_rename_help': 'Al renombrarla también se mueven sus manejadores.',
|
|
3776
|
+
'rm.delete_template': 'Eliminar plantilla',
|
|
3777
|
+
'rm.source': 'Origen',
|
|
3778
|
+
'rm.none_here': 'ninguno aquí',
|
|
3779
|
+
'rm.who': 'Quién puede llamarlo',
|
|
3780
|
+
'rm.auth_token': 'Un token bearer de la aplicación',
|
|
3781
|
+
'rm.auth_public': 'Público: sin token',
|
|
3782
|
+
'rm.roles': 'Roles',
|
|
3783
|
+
'rm.no_further_role': 'ningún rol adicional',
|
|
3784
|
+
'rm.roles_help_handler': 'Separados por comas: el llamador también necesita uno de ellos.',
|
|
3785
|
+
'rm.page_size': 'Tamaño de página',
|
|
3786
|
+
'rm.page_size_help': 'Consultas de colección: filas sin ?limit=.',
|
|
3787
|
+
'rm.status_ph': '201 para POST, si no 200',
|
|
3788
|
+
'rm.status_help': 'Manejadores SQL y PL/pgSQL.',
|
|
3789
|
+
'rm.params': 'Parámetros (documentación)',
|
|
3790
|
+
'rm.create_handler': 'Crear manejador',
|
|
3791
|
+
'rm.delete_handler': 'Eliminar manejador',
|
|
3792
|
+
'rm.new_handler_for': 'Nuevo manejador para {uri}',
|
|
3793
|
+
'rm.new_handler': 'Nuevo manejador',
|
|
3794
|
+
'rm.response': 'Respuesta',
|
|
3795
|
+
'rm.no_token': 'sin token',
|
|
3796
|
+
'rm.no_token_option': 'Sin token',
|
|
3797
|
+
'rm.try_it': 'Probar',
|
|
3798
|
+
'rm.as': 'Como',
|
|
3799
|
+
'rm.query_string': 'Cadena de consulta',
|
|
3800
|
+
'rm.json_body': 'Cuerpo JSON',
|
|
3801
|
+
'rm.send': 'Enviar {method}',
|
|
3802
|
+
'rm.content': 'contenido',
|
|
3803
|
+
'rm.characters': '({n} caracteres)',
|
|
3804
|
+
'rm.bytes_of': '({n} bytes de {type})',
|
|
3805
|
+
'rm.openapi_doc': 'El documento OpenAPI 3 del módulo (sin el SQL):',
|
|
3806
|
+
'rm.openapi_help': 'Impórtelo en Swagger UI, Postman o un generador de clientes. Los parámetros documentados de los manejadores se convierten en sus parámetros de consulta y cuerpos de solicitud.',
|
|
3807
|
+
'rm.delete_module_confirm': '¿Eliminar el módulo {name} con todas sus plantillas y manejadores?',
|
|
3808
|
+
'rm.delete_template_confirm': '¿Eliminar la plantilla {uri} y sus {n} manejador(es)?',
|
|
3809
|
+
'rm.delete_handler_confirm': '¿Eliminar el manejador {method} {uri}?',
|
|
3810
|
+
'rm.auth_token_role': 'Un token bearer de la aplicación con el rol del módulo {roles}',
|
|
3811
|
+
'rm.auth_public_help': '(se ejecuta como `nobody`)',
|
|
3812
|
+
'rm.auth_public_403': '(se ejecuta como `nobody`; los roles del módulo siguen aplicándose, así que responde 403)',
|
|
3813
|
+
'rm.uri_help': 'Segmentos y `:parameters` (enlazados como `:ID`)',
|
|
3814
|
+
'rm.chk.runs_as': 'Los manejadores se ejecutan como `{role}` con `meta.app_user()` como llamador',
|
|
3815
|
+
'rm.chk.role_problem': 'El rol de base de datos de la aplicación: {problem} Sus manejadores responden 403.',
|
|
3816
|
+
'rm.chk.no_role': 'La aplicación no tiene rol de base de datos: los manejadores se ejecutan con el rol de ejecución de pgkiln. Dele su propio rol (Aplicación › Configuración) para que los permisos y la seguridad a nivel de fila sean suyos.',
|
|
3817
|
+
'rm.chk.disabled': 'Desactivado: cada manejador responde 404',
|
|
3818
|
+
'rm.chk.privilege': 'Privilegio: los llamadores necesitan el rol {roles}',
|
|
3819
|
+
'rm.chk.no_privilege': 'Sin roles de privilegio: cualquier token válido de la aplicación (los manejadores pueden añadir roles)',
|
|
3820
|
+
'rm.response_as': '{request} como {as}',
|
|
3821
|
+
'rm.try_intro': 'Envía la solicitud al endpoint real: un PUT, POST o DELETE cambia datos. {as} una cuenta emite un token de corta duración para ella, como hace App › REST API; sin ella ve lo que obtiene un llamador sin token.',
|
|
3822
|
+
'rm.intro': 'Módulos de servicios RESTful: un módulo es una ruta base de una aplicación, sus plantillas son URI con `:parameters` y cada plantilla tiene manejadores por método con su origen: una consulta de colección, una fila única, SQL, un bloque PL/pgSQL o un recurso multimedia. Los manejadores se ejecutan con el rol de base de datos de la aplicación y el llamador como `meta.app_user()`, así que se aplican sus permisos y su seguridad a nivel de fila; los parámetros se enlazan, nunca se pegan en el SQL. Cada módulo tiene un documento OpenAPI. Los módulos pertenecen a su aplicación: viajan con su exportación (también en Componentes compartidos › Servicios RESTful).',
|
|
3823
|
+
'rm.source_help': 'Variables de enlace, en mayúsculas: parámetros de ruta ({params}), parámetros de consulta y campos del cuerpo JSON; `:BODY` es el cuerpo entero; `:APP_USER` es el llamador. Los valores se enlazan, nunca se pegan en el SQL. PL/pgSQL: un bloque (`declare … begin … end`, o sentencias) que responde con `perform meta.rest_reply(jsonb_build_object(…), 201)`. Multimedia: una consulta que devuelve `content_type`, `content` y opcionalmente `filename`.',
|
|
3824
|
+
'rm.params_help': 'Uno por línea: `name query|body [{types}] [required] [description]`. Van al documento OpenAPI y al formulario Probar; si falta uno obligatorio, la respuesta es 400.',
|
|
3825
|
+
'rm.e.params_line': 'Parámetros, línea {n}: escriba "name query" o "name body" y, opcionalmente, un tipo ({types}), "required" y una descripción.',
|
|
3826
|
+
'rm.e.choose_app': 'Elija una aplicación de este espacio de trabajo.',
|
|
3827
|
+
'rm.e.base_path': 'La ruta base empieza por una letra minúscula: letras, dígitos, _ y - (como máximo 40).',
|
|
3828
|
+
'rm.e.title': 'El título tiene de 1 a 200 caracteres.',
|
|
3829
|
+
'rm.created': 'Módulo {name} creado en {path}. Añada ahora una plantilla.',
|
|
3830
|
+
'rm.e.exists': '{app} ya tiene un módulo {name}.',
|
|
3831
|
+
'rm.deleted': 'Módulo {name} eliminado: sus URL responden 404.',
|
|
3832
|
+
'rm.e.template_exists': 'La plantilla {uri} ya existe.',
|
|
3833
|
+
'rm.e.template_gone': 'La plantilla ya no existe.',
|
|
3834
|
+
'rm.template_deleted': 'Plantilla {uri} y sus manejadores eliminados.',
|
|
3835
|
+
'rm.e.handler_gone': 'El manejador ya no existe.',
|
|
3836
|
+
'rm.handler_deleted': 'Manejador {method} {uri} eliminado.',
|
|
3837
|
+
'rm.e.choose_account': 'Elija una cuenta con acceso a la aplicación.',
|
|
3838
|
+
'rm.e.bad_json': 'El cuerpo no es JSON válido.',
|
|
3839
|
+
'rm.e.module_gone': 'El módulo ya no existe.',
|
|
3840
|
+
'rm.e.auth': 'Elija quién puede llamarlo: un token de la aplicación o público.',
|
|
3841
|
+
'rm.e.role_length': 'Los nombres de rol tienen como máximo 100 caracteres.',
|
|
3842
|
+
'rm.e.page_size': 'El tamaño de página es de 1 a 500.',
|
|
3843
|
+
'rm.e.status': 'El estado es de 200 a 299.',
|
|
3844
|
+
// ------------------------------------------------------------ SQL Workshop › RESTful Services › AutoREST (CD-8)
|
|
3845
|
+
'ar.kind.table': 'tabla',
|
|
3846
|
+
'ar.kind.view': 'vista',
|
|
3847
|
+
'ar.kind.mview': 'vista materializada',
|
|
3848
|
+
'ar.kind.foreign': 'tabla foránea',
|
|
3849
|
+
'ar.m.get': 'filas y una fila',
|
|
3850
|
+
'ar.m.post': 'insertar una fila',
|
|
3851
|
+
'ar.m.put': 'cambiar una fila',
|
|
3852
|
+
'ar.m.delete': 'eliminar una fila',
|
|
3853
|
+
'ar.methods': 'Métodos',
|
|
3854
|
+
'ar.auth_token_help': '(el token de una cuenta o un cliente OAuth, App › REST API)',
|
|
3855
|
+
'ar.auth_public': 'Público: cualquiera, sin token',
|
|
3856
|
+
'ar.auth_public_help': '(se ejecuta como `nobody`; los permisos y la seguridad a nivel de fila siguen aplicándose)',
|
|
3857
|
+
'ar.object': 'Objeto',
|
|
3858
|
+
'ar.none_yet': 'Todavía no se publica ninguna tabla ni vista. Active una abajo, o con {menu} en el menú ⋯ de un objeto.',
|
|
3859
|
+
'ar.menu_enable': 'REST › Activar',
|
|
3860
|
+
'ar.table_or_view': 'Tabla o vista',
|
|
3861
|
+
'ar.choose': '- elegir -',
|
|
3862
|
+
'ar.runs_as': 'se ejecuta como {role}',
|
|
3863
|
+
'ar.app_help': 'Su rol de base de datos ejecuta las sentencias; sus tokens y roles deciden quién puede llamarlo.',
|
|
3864
|
+
'ar.url_name': 'Nombre en la URL',
|
|
3865
|
+
'ar.object_name_ph': 'el nombre del objeto',
|
|
3866
|
+
'ar.url_name_rule': 'letras minúsculas, dígitos, _ y -',
|
|
3867
|
+
'ar.any_caller': 'cualquier llamador',
|
|
3868
|
+
'ar.roles_help': 'Separados por comas: el llamador necesita uno de estos roles de la aplicación.',
|
|
3869
|
+
'ar.page_size_help': 'Filas por página sin ?limit= (como máximo {max}).',
|
|
3870
|
+
'ar.enable': 'Activar',
|
|
3871
|
+
'ar.no_usable_app': 'Ninguna aplicación de este espacio de trabajo tiene un rol de base de datos con el que ejecutarse.',
|
|
3872
|
+
'ar.intro': 'Servicios RESTful: publique una tabla o vista como endpoints REST (AutoREST). Las filas llegan paginadas como JSON, con filtros; una clave primaria permite GET, PUT y DELETE de una sola fila. Las solicitudes se ejecutan con el rol de base de datos de la aplicación que publica y el llamador como `meta.app_user()`, así que se aplican sus permisos y su seguridad a nivel de fila.',
|
|
3873
|
+
'ar.intro_module': 'Para endpoints a medida con su propio SQL o PL/pgSQL, cree un {module}.',
|
|
3874
|
+
'ar.module_link': 'módulo',
|
|
3875
|
+
'ar.published': 'Objetos publicados',
|
|
3876
|
+
'ar.enable_a': 'Activar una tabla o vista',
|
|
3877
|
+
'ar.gone': 'El objeto ya no existe: sus endpoints responden 404.',
|
|
3878
|
+
'ar.chk.runs_as': 'Se ejecuta como `{role}`: no es el propietario, ni superusuario, ni omite la seguridad a nivel de fila',
|
|
3879
|
+
'ar.chk.may': '`{role}` puede {priv}',
|
|
3880
|
+
'ar.chk.may_not': '`{role}` no puede {priv}',
|
|
3881
|
+
'ar.chk.rls_on_1': 'La seguridad a nivel de fila está activada (1 política)',
|
|
3882
|
+
'ar.chk.rls_on': 'La seguridad a nivel de fila está activada ({n} políticas)',
|
|
3883
|
+
'ar.chk.rls_off': 'La seguridad a nivel de fila está desactivada: los llamadores ven todas las filas que el rol puede seleccionar',
|
|
3884
|
+
'ar.chk.invoker': 'La vista es security_invoker: la seguridad a nivel de fila de las tablas se aplica al llamador',
|
|
3885
|
+
'ar.chk.definer': 'La vista se ejecuta con los derechos de su propietario, así que no se aplica la seguridad a nivel de fila de las tablas subyacentes:',
|
|
3886
|
+
'ar.chk.key': 'Clave primaria {columns}: filas individuales en',
|
|
3887
|
+
'ar.chk.no_key': 'Sin clave primaria: solo la colección (GET y POST)',
|
|
3888
|
+
'ar.chk.hidden_columns': 'Se omiten las columnas que el rol no puede seleccionar: {columns}',
|
|
3889
|
+
'ar.ep.rows': 'Filas, paginadas: ?limit= (1–{max}, por defecto {size}) &offset= ; ?<column>=<value> ; ?q=<text> ; ?order=<column>.desc',
|
|
3890
|
+
'ar.ep.post': 'Un objeto JSON de valores de columna: la nueva fila (201)',
|
|
3891
|
+
'ar.ep.one': 'Una fila (404 si no hay ninguna)',
|
|
3892
|
+
'ar.ep.put': 'Cambiar las columnas que nombra el objeto JSON',
|
|
3893
|
+
'ar.ep.delete': 'Eliminar la fila (204)',
|
|
3894
|
+
'ar.enabled_l': 'activado',
|
|
3895
|
+
'ar.disabled_alert': 'Desactivado: los endpoints responden 404.',
|
|
3896
|
+
'ar.endpoints': 'Endpoints',
|
|
3897
|
+
'ar.does': 'Hace',
|
|
3898
|
+
'ar.openapi_note': '(los objetos públicos; envíe un token para verlos todos)',
|
|
3899
|
+
'ar.public_no_token': 'Público: no hace falta token.',
|
|
3900
|
+
'ar.get_token': 'Obtenga {token} en {link}: emita un token para una cuenta o use el token de acceso de un cliente OAuth.',
|
|
3901
|
+
'ar.caller_needs': 'El llamador necesita el rol {roles}.',
|
|
3902
|
+
'ar.status_codes': 'Sin un token válido los endpoints responden 401; sin el rol o un permiso, 403.',
|
|
3903
|
+
'ar.settings': 'Configuración',
|
|
3904
|
+
'ar.published_by': 'Publicado por {app} (se ejecuta como {role}) en {path}.',
|
|
3905
|
+
'ar.remove': 'Desactivar REST (quitar)',
|
|
3906
|
+
'ar.remove_help': 'Los endpoints responden 404 al instante; la tabla en sí no cambia.',
|
|
3907
|
+
'ar.e.no_role': 'La aplicación no tiene rol de base de datos. AutoREST se ejecuta con el rol de la aplicación: defina uno en su configuración.',
|
|
3908
|
+
'ar.e.role_problem': 'El rol de base de datos de la aplicación: {problem}',
|
|
3909
|
+
'ar.e.owner': '"{role}" es propietario de {object} (o miembro de su propietario): los permisos y la seguridad a nivel de fila no se aplicarían. Publíquelo mediante una aplicación cuyo rol no sea su propietario.',
|
|
3910
|
+
'ar.e.method': 'Elija al menos un método.',
|
|
3911
|
+
'ar.e.page_size': 'El tamaño de página es de 1 a {max}.',
|
|
3912
|
+
'ar.e.mview': 'Una vista materializada solo responde a GET.',
|
|
3913
|
+
'ar.e.no_key': 'PUT y DELETE necesitan una clave primaria; este objeto no tiene.',
|
|
3914
|
+
'ar.e.choose_object': 'Elija una tabla o vista de un esquema que el SQL Workshop pueda usar.',
|
|
3915
|
+
'ar.e.url_name': 'El nombre en la URL empieza por una letra minúscula: letras, dígitos, _ y - (como máximo 63).',
|
|
3916
|
+
'ar.published_at': '{object} está publicado en {path}.',
|
|
3917
|
+
'ar.e.alias_taken': '{app} ya publica algo como {alias}: elija otro nombre en la URL.',
|
|
3918
|
+
'ar.e.already': '{app} ya publica {object}.',
|
|
3919
|
+
'ar.unpublished': '{object} ya no está publicado.',
|
|
3920
|
+
// ------------------------------------------------------------ SQL Workshop › Load Data (CD-8)
|
|
3921
|
+
'dl.row': 'Fila',
|
|
3922
|
+
'dl.error': 'Error',
|
|
3923
|
+
'dl.first_errors': 'Se muestran los primeros {n} errores.',
|
|
3924
|
+
'dl.failed': 'No se pudieron cargar {n} fila(s), así que no se cargó nada. Corrija el archivo o marque «Omitir filas con errores».',
|
|
3925
|
+
'dl.inserted': '{n} fila(s) insertada(s)',
|
|
3926
|
+
'dl.updated': '{n} actualizada(s)',
|
|
3927
|
+
'dl.skipped': '{n} omitida(s)',
|
|
3928
|
+
'dl.from_file': 'Cargar datos desde un archivo',
|
|
3929
|
+
'dl.intro': 'CSV o TSV (UTF-8 o Windows-1252; el delimitador se detecta), Excel .xlsx (la primera hoja), JSON (un array de objetos o JSON Lines) o XML (filas de un elemento repetido), hasta {mb} MB. Después elige una tabla nueva o existente. La carga se ejecuta con la conexión de propietario del builder.',
|
|
3930
|
+
'dl.intro_unload': 'Para descargar una tabla o una consulta como archivo, use {link}.',
|
|
3931
|
+
'dl.file': 'Archivo',
|
|
3932
|
+
'dl.headers': 'La primera fila contiene los nombres de columna',
|
|
3933
|
+
'dl.row_tag': 'Elemento de fila XML',
|
|
3934
|
+
'dl.row_tag_ph': 'p. ej. employee (vacío: se detecta)',
|
|
3935
|
+
'dl.row_tag_help': 'Solo XML. No se aceptan DTD ni declaraciones de entidades.',
|
|
3936
|
+
'dl.no_definition': '- ninguna: elegir la tabla después -',
|
|
3937
|
+
'dl.definition_help': 'Componentes compartidos de una aplicación: tabla, asignación de columnas y transformaciones.',
|
|
3938
|
+
'dl.next': 'Siguiente',
|
|
3939
|
+
'dl.e.no_file': 'Elija un archivo.',
|
|
3940
|
+
'dl.e.too_large': 'El archivo supera los {mb} MB.',
|
|
3941
|
+
'dl.info': '{rows} fila(s), {columns} columna(s)',
|
|
3942
|
+
'dl.xml_rows': 'filas XML {path}',
|
|
3943
|
+
'dl.delimiter': 'delimitador {d}',
|
|
3944
|
+
'dl.tab': 'tabulador',
|
|
3945
|
+
'dl.first_shown': '(se muestran las primeras {n})',
|
|
3946
|
+
'dl.another_file': 'Elegir otro archivo',
|
|
3947
|
+
'dl.def_into': 'Definición {def}: en {table}, modo {mode}',
|
|
3948
|
+
'dl.def_skipping': 'omitiendo filas con errores',
|
|
3949
|
+
'dl.def_by_name': 'Las columnas del archivo se asignan a las de la tabla por nombre.',
|
|
3950
|
+
'dl.after_mapping': 'Tras la asignación y las transformaciones:',
|
|
3951
|
+
'dl.after_mapping_first': 'Tras la asignación y las transformaciones (primeras {n} filas):',
|
|
3952
|
+
'dl.load_into': 'Cargar en {table}',
|
|
3953
|
+
'dl.preview': 'Vista previa',
|
|
3954
|
+
'dl.load_with': 'Cargar con {name}',
|
|
3955
|
+
'dl.skip_errors': 'Omitir filas con errores (si no, no se carga nada cuando falla una fila)',
|
|
3956
|
+
'dl.table_name': 'Nombre de la tabla',
|
|
3957
|
+
'dl.table_name_help': 'schema.table; la tabla recibe una clave primaria identity `id`.',
|
|
3958
|
+
'dl.file_column': 'Columna del archivo',
|
|
3959
|
+
'dl.column_name': 'Nombre de columna (vacío = omitir)',
|
|
3960
|
+
'dl.type': 'Tipo',
|
|
3961
|
+
'dl.aria_name': 'Nombre de columna para {column}',
|
|
3962
|
+
'dl.aria_type': 'Tipo de {column}',
|
|
3963
|
+
'dl.create_and_load': 'Crear tabla y cargar',
|
|
3964
|
+
'dl.table_column': 'Columna de la tabla',
|
|
3965
|
+
'dl.aria_map': 'Columna de la tabla para {column}',
|
|
3966
|
+
'dl.skip': '- omitir -',
|
|
3967
|
+
'dl.key': 'clave',
|
|
3968
|
+
'dl.mode': 'Modo',
|
|
3969
|
+
'dl.mode_append': 'Añadir: insertar todas las filas',
|
|
3970
|
+
'dl.mode_merge': 'Combinar: actualizar las filas con la misma clave primaria, insertar las demás',
|
|
3971
|
+
'dl.mode_replace': 'Reemplazar: eliminar primero todas las filas',
|
|
3972
|
+
'dl.save_mapping': 'Guardar esta asignación como definición de carga de datos',
|
|
3973
|
+
'dl.save_mapping_help': 'Para el proceso data_load de una aplicación y para volver a cargar archivos como este.',
|
|
3974
|
+
'dl.name': 'Nombre',
|
|
3975
|
+
'dl.save_definition': 'Guardar como definición',
|
|
3976
|
+
'dl.table': 'Tabla',
|
|
3977
|
+
'dl.choose_table': '- elegir una tabla -',
|
|
3978
|
+
'dl.map_columns': 'Asignar columnas',
|
|
3979
|
+
'dl.into_new': 'Cargar en una tabla nueva',
|
|
3980
|
+
'dl.into_existing': 'Cargar en una tabla existente',
|
|
3981
|
+
'dl.def_saved': 'Definición de carga de datos {name} guardada.',
|
|
3982
|
+
'dl.def_not_saved': 'No se pudo guardar la definición: {reason}',
|
|
3983
|
+
'dl.def_exists': 'la aplicación ya tiene una definición llamada {name}.',
|
|
3984
|
+
'dl.e.def_gone': 'La definición de carga de datos ya no existe.',
|
|
3985
|
+
'dl.e.no_columns': 'Dé nombre al menos a una columna.',
|
|
3986
|
+
'dl.view': 'Ver {table}',
|
|
3987
|
+
'dl.load_another': 'Cargar otro archivo',
|
|
3988
|
+
// ------------------------------------------------------------ SQL Workshop › Object Browser › Security and Document view (CD-8)
|
|
3989
|
+
'ds.roles_and_columns': 'Roles de base de datos y columnas',
|
|
3990
|
+
'ds.db_role': 'Rol de base de datos',
|
|
3991
|
+
'ds.masked_in': 'Enmascarada en {view}',
|
|
3992
|
+
'ds.masked': 'enmascarada',
|
|
3993
|
+
'ds.runs': 'ejecuta {apps}',
|
|
3994
|
+
'ds.read': 'leer',
|
|
3995
|
+
'ds.update': 'actualizar',
|
|
3996
|
+
'ds.no_grants': 'Ningún rol de base de datos tiene privilegios sobre esta tabla, y ninguna aplicación del espacio de trabajo se ejecuta con un rol de base de datos.',
|
|
3997
|
+
'ds.excluded': 'No están en la matriz, porque los privilegios de columna no pueden restringirlos:',
|
|
3998
|
+
'ds.masks_per_column': 'Máscaras por columna',
|
|
3999
|
+
'ds.column': 'Columna',
|
|
4000
|
+
'ds.mask': 'Máscara',
|
|
4001
|
+
'ds.role_sees': '{role} lo ve',
|
|
4002
|
+
'ds.others_see': 'Todos los demás lo ven',
|
|
4003
|
+
'ds.aria_mask': 'Máscara de {column}',
|
|
4004
|
+
'ds.not_masked': 'Sin máscara',
|
|
4005
|
+
'ds.mask.null': 'vacío (null)',
|
|
4006
|
+
'ds.mask.stars': '***',
|
|
4007
|
+
'ds.mask.partial': '*** + últimos 4',
|
|
4008
|
+
'ds.aria_role_sees': '{role} ve {column}',
|
|
4009
|
+
'ds.aria_others_see': 'Todos los demás ven {column}',
|
|
4010
|
+
'ds.rows': 'Filas',
|
|
4011
|
+
'ds.rls_is': 'La seguridad a nivel de fila está {state}',
|
|
4012
|
+
'ds.rls_on_owner': 'activada, también para el propietario',
|
|
4013
|
+
'ds.rls_on': 'activada',
|
|
4014
|
+
'ds.rls_off': 'desactivada',
|
|
4015
|
+
'ds.rls_off_detail': 'todo rol que puede leer la tabla lee todas las filas',
|
|
4016
|
+
'ds.rls_how': '{props} la activa; {policy} escribe una en la hoja de trabajo.',
|
|
4017
|
+
'ds.table_properties': 'Propiedades de la tabla',
|
|
4018
|
+
'ds.add_policy': 'Añadir política',
|
|
4019
|
+
'ds.policy': 'Política',
|
|
4020
|
+
'ds.command': 'Comando',
|
|
4021
|
+
'ds.roles': 'Roles',
|
|
4022
|
+
'ds.restrictive': 'restrictiva',
|
|
4023
|
+
'ds.no_policies': 'Sin políticas.',
|
|
4024
|
+
'ds.no_policies_rls': 'Sin políticas: con la seguridad a nivel de fila activada, los roles de abajo no leen ninguna fila.',
|
|
4025
|
+
'ds.columns': 'Columnas',
|
|
4026
|
+
'ds.columns_help': 'Lo que cada rol de base de datos puede leer y actualizar, por columna. PostgreSQL rechaza una columna que un rol no puede leer, envíe quien envíe la consulta: páginas, manejadores REST, AutoREST, herramientas de IA, MCP o psql.',
|
|
4027
|
+
'ds.values': 'Valores',
|
|
4028
|
+
'ds.values_help': 'Las columnas enmascaradas muestran su valor solo a los roles de aplicación que marque (`meta.has_role()` del usuario conectado); los demás ven la máscara. Las máscaras viven en una vista junto a la tabla que los roles de arriba leen en lugar de la tabla.',
|
|
4029
|
+
'ds.masking_view': 'Vista de enmascaramiento',
|
|
4030
|
+
'ds.view_name': 'Nombre de la vista',
|
|
4031
|
+
'ds.app_roles': 'Roles de aplicación',
|
|
4032
|
+
'ds.app_roles_help': 'Separados por comas. Los roles cambiados obtienen su columna en la tabla de abajo tras Vista previa de SQL.',
|
|
4033
|
+
'ds.no_changes': 'Sin cambios: la seguridad de la tabla es la que muestra el formulario.',
|
|
4034
|
+
'ds.preview_sql': 'Vista previa de SQL',
|
|
4035
|
+
'ds.changed_1': 'Seguridad de {table} cambiada: 1 sentencia.',
|
|
4036
|
+
'ds.changed': 'Seguridad de {table} cambiada: {n} sentencias.',
|
|
4037
|
+
'ds.rolled_back': 'No se cambió nada: las sentencias se ejecutaron en una transacción, que se revirtió.',
|
|
4038
|
+
'ds.failed_statement': 'Sentencia fallida',
|
|
4039
|
+
'ds.title': 'Seguridad de {table}',
|
|
4040
|
+
'ds.security': 'Seguridad',
|
|
4041
|
+
'docv.no_key': '{table} no tiene clave primaria: una vista de documentos encuentra sus filas por ella.',
|
|
4042
|
+
'docv.doc_is_key': 'La columna del documento no puede llamarse como una columna clave ({name}).',
|
|
4043
|
+
'docv.made': 'La vista de documentos {view} está creada.',
|
|
4044
|
+
'docv.children': 'Tablas hijas en el documento',
|
|
4045
|
+
'docv.list': 'Lista en el documento',
|
|
4046
|
+
'docv.fk': 'Clave foránea',
|
|
4047
|
+
'docv.no_children': 'Ninguna otra tabla referencia {table}: el documento es solo la fila.',
|
|
4048
|
+
'docv.children_help': 'Cada fila hija es un objeto en su lista, sin las columnas de clave foránea. Escribir un documento actualiza los hijos que lista por su clave, inserta los que no tienen clave y elimina los que omite; un documento sin la lista no toca los hijos.',
|
|
4049
|
+
'docv.view': 'Vista',
|
|
4050
|
+
'docv.doc_column': 'Columna del documento',
|
|
4051
|
+
'docv.intro': 'Una vista de documentos muestra cada fila de {table} con sus filas hijas como un documento JSON, como una JSON Relational Duality View de Oracle. Los informes, REST (AutoREST sobre la vista) y MCP leen documentos enteros; un update de la columna del documento escribe la fila y sus hijas en una sentencia. Se aplican la seguridad a nivel de fila y los permisos de la tabla (la vista es security_invoker y recibe los permisos de la tabla).',
|
|
2425
4052
|
};
|