Repository navigation
Expand file tree
/
Copy pathes.json
More file actions
2469 lines (2469 loc) · 124 KB
/
Copy pathes.json
File metadata and controls
2469 lines (2469 loc) · 124 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"toolbar": {
"valuePicker": {
"open": "Elegir entre valores",
"title": "Elegir valores",
"search": "Buscar valores",
"loading": "Cargando valores…",
"error": "No se pudieron cargar los valores",
"retry": "Reintentar",
"empty": "No hay valores en esta columna",
"noMatch": "No hay valores coincidentes",
"limited": "Los {{count}} más frecuentes",
"use": "Usar {{count}} seleccionados",
"useNone": "Usar seleccionados"
},
"autoRefresh": {
"label": "Actualización automática",
"off": "Desactivada",
"seconds": "{{seconds}} s",
"paused": "En pausa durante la edición",
"pausedSelection": "En pausa mientras haya filas seleccionadas",
"refresh": "Actualizar tabla",
"failed": "Error al actualizar: {{error}}"
},
"filters": "Filtros",
"toggleFilterPanel": "Panel de filtros estructurados",
"filterConditions": "Condiciones de filtro",
"matchMode": "Modo de coincidencia",
"matchAll": "Todas",
"matchAny": "Cualquiera",
"activeOf": "{{active}} de {{total}} activos",
"noFilters": "Sin filtros —",
"addFirstFilter": "agregar el primer filtro",
"noActiveFilters": "sin filtros activos",
"closePanelEsc": "Cerrar panel de filtros (ESC)",
"unset": "Limpiar",
"sql": "SQL",
"addFilter": "Agregar filtro",
"applyAll": "Aplicar todos",
"apply": "Aplicar",
"applied": "Aplicado",
"switchToSql": "Cambiar a entrada SQL WHERE",
"duplicateFilter": "Duplicar filtro",
"removeFilter": "Eliminar filtro",
"deselectFromApplyAll": "Deseleccionar de Aplicar todos",
"selectForApplyAll": "Seleccionar para Aplicar todos",
"valuePlaceholder": "valor",
"fromPlaceholder": "desde",
"toPlaceholder": "hasta",
"opContains": "contiene",
"opStartsWith": "empieza con",
"opEndsWith": "termina con",
"opIsEmpty": "está vacío",
"opIsNotEmpty": "no está vacío"
},
"tags": {
"label": "Etiquetas",
"new": "Nueva etiqueta",
"add": "Añadir",
"namePlaceholder": "Nombre de la etiqueta…",
"manage": "Gestionar etiquetas",
"done": "Hecho",
"deleteTitle": "Eliminar etiqueta",
"deleteConfirm": "¿Eliminar la etiqueta \"{{name}}\"? Se quitará de todas las conexiones."
},
"environment": {
"label": "Entorno",
"none": "Sin entorno",
"development": "Desarrollo",
"staging": "Staging",
"production": "Producción",
"short": { "development": "DEV", "staging": "STAGING", "production": "PROD" },
"banner": "Producción — {{name}}",
"warnTitle": "Base de datos de producción",
"warnMessage": "Está a punto de modificar datos de producción en \"{{name}}\". ¿Seguro que desea continuar?",
"warnConfirm": "Ejecutar de todos modos",
"warnSnooze": "No volver a preguntar para esta conexión (esta sesión)"
},
"common": {
"save": "Guardar",
"close": "Cerrar",
"resizeColumn": "Redimensionar columna",
"cancel": "Cancelar",
"delete": "Eliminar",
"edit": "Editar",
"clone": "Clonar",
"connect": "Conectar",
"disconnect": "Desconectar",
"loading": "Cargando...",
"search": "Buscar...",
"noResults": "No se encontraron resultados",
"error": "Error",
"success": "Éxito",
"ok": "OK",
"continue": "Continuar",
"back": "Atrás",
"copy": "Copiar",
"copied": "¡Copiado!",
"showDetails": "Mostrar detalles",
"hideDetails": "Ocultar detalles",
"beta": "Beta",
"dismiss": "Cerrar"
},
"sidebar": {
"connections": "Conexiones",
"settings": "Configuración",
"savedQueries": "Consultas Guardadas",
"tables": "Tablas",
"newConsole": "Nueva Consola",
"newVisualQuery": "Nueva Consulta Visual",
"refresh": "Actualizar",
"refreshTables": "Actualizar Tablas",
"refreshViews": "Actualizar Vistas",
"createView": "Crear Nueva Vista",
"views": "Vistas",
"noViews": "No se encontraron vistas",
"materializedViews": "Vistas Materializadas",
"refreshMaterializedView": "Actualizar",
"showDefinition": "Mostrar Definición",
"copyDdl": "Copiar DDL",
"editView": "Editar Vista",
"viewDefinition": "Definición de Vista",
"dropView": "Eliminar Vista",
"dropViewConfirm": "¿Estás seguro de que deseas eliminar la vista \"{{view}}\"?",
"failGetViewDefinition": "Error al obtener la definición de la vista: ",
"failDropView": "Error al eliminar la vista: ",
"explorer": "Explorador",
"sqlEditor": "Editor SQL",
"loadingSchema": "Cargando esquema...",
"noSavedQueries": "No hay consultas guardadas",
"searchFavorites": "Buscar en favoritos...",
"noFavoritesSearchResults": "Ningun favorito coincide con la busqueda",
"execute": "Ejecutar",
"edit": "Editar",
"delete": "Eliminar",
"confirmDeleteQuery": "¿Estás seguro de que quieres eliminar la consulta \"{{name}}\"?",
"confirmDeleteTitle": "Eliminar Consulta",
"noTables": "No se encontraron tablas",
"expandTable": "Expandir tabla {{name}}",
"collapseTable": "Contraer tabla {{name}}",
"expandView": "Expandir vista {{name}}",
"collapseView": "Contraer vista {{name}}",
"columns": "columnas",
"parameters": "parámetros",
"noParameters": "Sin parámetros",
"keys": "claves",
"foreignKeys": "claves foráneas",
"indexes": "índices",
"deleteColumn": "Eliminar Columna",
"deleteColumnConfirm": "¿Estás seguro de que deseas eliminar la columna \"{{column}}\" de la tabla \"{{table}}\"?\n\nADVERTENCIA: Esto eliminará permanentemente todos los datos de esta columna. Esta acción no se puede deshacer.",
"failDeleteColumn": "Error al eliminar la columna: ",
"failDeleteIndex": "Error al eliminar el índice: ",
"modifyColumn": "Modificar Columna",
"copyName": "Copiar Nombre",
"openInEditor": "Abrir en el Editor",
"openInNewWindow": "Abrir en una nueva ventana",
"closePanel": "Cerrar panel",
"setAsActive": "Establecer como Activa",
"deleteTable": "Eliminar Tabla",
"deleteTableConfirm": "¿Estás seguro de que deseas eliminar la tabla \"{{table}}\"?",
"failDeleteTable": "Error al eliminar la tabla: ",
"showData": "Mostrar Datos",
"countRows": "Contar Filas",
"viewSchema": "Ver Esquema",
"viewERDiagram": "Ver Diagrama ER",
"generateSQL": "Generar SQL",
"addColumn": "Agregar Columna",
"addIndex": "Agregar Índice",
"deleteIndex": "Eliminar Índice",
"deleteIndexConfirm": "¿Eliminar el índice \"{{name}}\"?",
"addFk": "Agregar Clave Foránea",
"deleteFk": "Eliminar FK",
"deleteFkConfirm": "¿Eliminar la clave foránea \"{{name}}\"?",
"sqliteFkError": "SQLite no soporta la eliminación de FKs mediante ALTER TABLE.",
"mcpServer": "Servidor MCP",
"routines": "Rutinas",
"functions": "Funciones",
"procedures": "Procedimientos",
"noRoutines": "No se encontraron rutinas",
"routineMetadataLoadError": "No se pudieron cargar las rutinas. Las tablas y vistas siguen disponibles.",
"routineMetadataLoadErrorFor": "No se pudieron cargar las rutinas de \"{{schema}}\". Las tablas y vistas siguen disponibles.",
"routineMetadataErrorTitle": "Error de metadatos de rutinas",
"refreshRoutines": "Actualizar Rutinas",
"objectSummary": "Objetos",
"databases": "Bases de Datos",
"failGetRoutineDefinition": "Error al obtener la definición de la rutina: ",
"schemas": "Esquemas",
"noSchemas": "No se encontraron esquemas",
"loadingSchemas": "Cargando esquemas...",
"schemaLoadError": "No se pudieron cargar los esquemas",
"errorDetails": "Detalles",
"copyError": "Copiar mensaje de error",
"retry": "Reintentar",
"expandExplorer": "Expandir Explorador",
"selectSchemas": "Seleccionar Esquemas",
"selectSchemasHint": "Selecciona los esquemas a cargar:",
"selectAll": "Seleccionar Todo",
"deselectAll": "Deseleccionar Todo",
"confirmSelection": "Confirmar",
"editSchemas": "Editar Esquemas",
"selectConnection": "Seleccionar Conexión",
"disconnect": "Desconectar",
"switchConnection": "Cambiar Conexión",
"noOtherConnections": "No hay otras conexiones",
"openConnections": "Abiertas",
"availableConnections": "Disponibles",
"splitVertical": "Dividir Vertical",
"splitHorizontal": "Dividir Horizontal",
"separateConnections": "Separar Conexiones",
"splitGroup": "Grupo Dividido",
"resizePanels": "Redimensionar paneles",
"filterTables": "Filtrar tablas...",
"noTablesMatch": "No hay tablas que coincidan",
"filterDatabases": "Filtrar bases de datos...",
"manageDatabases": "Gestionar Bases de Datos",
"databaseSelectionUpdated": "Selección de bases de datos actualizada",
"droppedDatabasesRemoved": "Se eliminaron porque ya no existen en el servidor: {{names}}",
"structure": "Estructura",
"favorites": "Favoritos",
"queryHistory": "Historial",
"noQueryHistory": "Sin historial de consultas",
"noHistorySearchResults": "Ninguna consulta coincide con la busqueda",
"searchHistory": "Buscar en el historial...",
"historyOutcomeFilter": "Filtrar por resultado",
"historyOutcomeAny": "Cualquier resultado",
"historyOutcomeSucceeded": "Correctas",
"historyOutcomeFailed": "Fallidas",
"historyTimeRangeFilter": "Filtrar por periodo",
"historyTimeAll": "Todo el tiempo",
"historyTimeLastHour": "Última hora",
"historyTimeToday": "Hoy",
"historyTimeLast7Days": "Últimos 7 días",
"historyTimeLast30Days": "Últimos 30 días",
"clearAllHistory": "Borrar Todo el Historial",
"historyRecoveredTitle": "Historial de consultas restablecido",
"historyRecoveredBody": "El archivo de historial estaba corrupto y se ha movido a un respaldo. Las nuevas consultas se registrarán con normalidad. Archivo de respaldo:",
"historyRecoveredDismiss": "Descartar",
"confirmDeleteHistoryEntry": "¿Estás seguro de que quieres eliminar esta consulta del historial?",
"confirmClearHistory": "¿Estás seguro de que quieres borrar todo el historial de consultas para esta conexión?",
"confirmClearHistoryTitle": "Borrar Historial de Consultas",
"addToFavorites": "Agregar a Favoritos",
"insertToEditor": "Insertar en el Editor",
"openInNewTab": "Abrir en Nueva Pestaña",
"copyQuery": "Copiar Consulta",
"runQuery": "Ejecutar Consulta",
"dateGroupToday": "Hoy",
"dateGroupYesterday": "Ayer",
"dateGroupThisWeek": "Esta Semana",
"dateGroupThisMonth": "Este Mes",
"dateGroupOlder": "Anteriores",
"notebooks": {
"tab": "Notebooks",
"search": "Buscar notebooks",
"refresh": "Actualizar",
"empty": "Aún no hay notebooks guardados.",
"noSearchResults": "Ningún notebook coincide con tu búsqueda.",
"open": "Abrir",
"rename": "Renombrar",
"delete": "Eliminar",
"deleteConfirm": "¿Eliminar el notebook \"{{title}}\"? Esta acción no se puede deshacer.",
"renamePlaceholder": "Nombre del notebook"
},
"addToSplitGroup": "Añadir al Grupo Dividido",
"removeFromSplitGroup": "Quitar del Grupo",
"movePanel": "Mover panel",
"refreshDatabaseList": "Actualizar lista de bases de datos",
"databaseListUpToDate": "La lista de bases de datos está actualizada",
"allDatabasesRefreshed": "Bases de datos actualizadas: {{names}}"
},
"groups": {
"title": "Grupos",
"newGroup": "Nuevo grupo",
"createGroup": "Crear grupo",
"rename": "Renombrar",
"delete": "Eliminar",
"deleteConfirm": "¿Seguro que quieres eliminar el grupo \"{{name}}\"? Las conexiones de este grupo pasarán a estar sin agrupar.",
"deleteTitle": "Eliminar grupo",
"connection": "conexión",
"connections": "conexiones",
"ungrouped": "Sin agrupar",
"moveToGroup": "Mover a",
"removeFromGroup": "Quitar del grupo",
"noGroups": "Aún no hay grupos",
"createFirst": "Crea tu primer grupo para organizar las conexiones",
"groupName": "Nombre del grupo",
"dragHint": "Arrastra las conexiones aquí",
"createError": "No se pudo crear el grupo",
"subgroupNamePrompt": "Nombre de la subcarpeta (usa / para niveles anidados)"
},
"mcp": {
"title": "Integración del Servidor MCP",
"subtitle": "Conecta Tabularis a Claude Desktop, Cursor y más",
"description": "El Model Context Protocol (MCP) permite a los asistentes de IA (como Claude) conectarse a tus herramientas locales. Tabularis expone un servidor MCP que permite a la IA leer el esquema de tu base de datos y ejecutar consultas de forma segura.",
"checking": "Verificando configuración...",
"configPath": "Archivo de Configuración",
"notFound": "Archivo de configuración no encontrado (crear manualmente)",
"installed": "Instalado",
"install": "Instalar Configuración",
"manualConfig": "CONFIGURACIÓN MANUAL",
"manualText": "Agrega esto al archivo de configuración del cliente manualmente si la instalación automática falla.",
"successTitle": "Éxito",
"successMsg": "¡Configuración instalada correctamente para {{client}}! Reinicia la app para aplicar.",
"errorTitle": "Instalación Fallida",
"clients": "CLIENTES IA",
"manualCommand": "COMANDO MANUAL",
"manualCommandText": "Ejecuta este comando en tu terminal y reinicia Claude Code.",
"tabs": {
"setup": "Configuración",
"activity": "Actividad",
"safety": "Seguridad"
},
"output": {
"title": "Salida de herramientas",
"formatLabel": "Formato de salida predeterminado",
"formatDescription": "Se usa cuando una llamada a una herramienta MCP no especifica output_format. JSON mantiene la compatibilidad; TOON puede reducir el uso de tokens."
},
"safety": {
"readOnlyTitle": "Modo solo lectura",
"readOnlyDefault": "Hacer todas las consultas MCP de solo lectura",
"readOnlyDefaultDesc": "Bloquea cualquier sentencia que no sea SELECT vía MCP, salvo las conexiones autorizadas abajo.",
"readOnlyList": "Conexiones de solo lectura",
"readOnlyListDesc": "Estas conexiones rechazarán escrituras desde MCP. Las otras se comportan normalmente.",
"allowList": "Permitir escrituras desde MCP",
"allowListDesc": "El resto sigue en solo lectura. Solo las marcadas pueden ejecutar escrituras.",
"approvalTitle": "Puerta de aprobación",
"approvalMode": "Aprobación requerida",
"approvalModeDesc": "Pausa las escrituras (o todas las consultas) y pide al usuario que apruebe antes de ejecutar.",
"modeOff": "Desactivada",
"modeWritesOnly": "Solo escrituras",
"modeAll": "Todas las consultas",
"approvalTimeout": "Tiempo de espera",
"approvalTimeoutDesc": "Cuánto espera el subproceso MCP la decisión del usuario antes de fallar.",
"preflightExplain": "EXPLAIN previo",
"preflightExplainDesc": "Ejecuta un EXPLAIN antes de mostrar el modal para que el usuario vea el plan.",
"approvalAlwaysOnTop": "Traer el diálogo de aprobación al frente",
"approvalAlwaysOnTopDesc": "Cuando una acción MCP que no sea de lectura necesite aprobación, trae Tabularis al frente y lo mantiene temporalmente por encima de las demás ventanas.",
"approvalNotifySound": "Enviar notificación y reproducir sonido",
"approvalNotifySoundDesc": "Muestra una notificación nativa del sistema y reproduce un sonido corto cuando llega una nueva solicitud de aprobación MCP."
}
},
"connections": {
"title": "Conexiones",
"addConnection": "Agregar Conexión",
"deprecated": "Obsoleto",
"deprecatedTooltip": "Este controlador integrado está siendo reemplazado por el complemento {{replacement}}.",
"deprecatedTooltipDate": "Este controlador integrado está siendo reemplazado por el complemento {{replacement}}, provisionalmente el {{date}}.",
"newSqliteDatabase": {
"menuLabel": "Nueva base de datos SQLite…",
"dialogTitle": "Nueva base de datos SQLite",
"fileType": "Base de datos SQLite",
"error": "No se pudo crear la base de datos SQLite"
},
"noConnections": "No hay conexiones activas",
"createFirst": "Crea tu primera conexión",
"active": "Activa",
"sshEnabled": "Túnel SSH habilitado",
"disconnect": "Desconectar",
"connect": "Conectar",
"edit": "Editar",
"duplicate": "Duplicar",
"delete": "Eliminar",
"clone": "Clonar",
"confirmDelete": "¿Estás seguro de que deseas eliminar esta conexión?",
"deleteTitle": "Confirmar eliminación",
"failConnect": "Error al conectar a {{name}}. Verifica tu configuración o asegúrate de que la base de datos esté en ejecución.",
"failDisconnect": "No se pudo desconectar de la base de datos",
"failDuplicate": "Error al duplicar la conexión",
"connecting": "Conectando...",
"open": "Abierta",
"pluginDisabled": "Plugin desactivado",
"connectionCount": "{{count}} conexión/es",
"noConnectionsHint": "Crea tu primera conexión para empezar.",
"searchPlaceholder": "Buscar conexiones...",
"noSearchResults": "Ninguna conexión coincide con \"{{query}}\"",
"gridView": "Vista de cuadrícula",
"listView": "Vista de lista",
"selectedCount": "{{count}} seleccionadas",
"deleteSelected": "Eliminar seleccionadas",
"moveSelected": "Mover a grupo",
"exportSelected": "Exportar selección",
"deselectAll": "Deseleccionar todo",
"confirmDeleteSelected": "¿Seguro que quieres eliminar {{count}} conexiones seleccionadas?",
"deleteSelectedTitle": "Eliminar conexiones seleccionadas",
"export": "Exportar conexiones",
"import": "Importar conexiones",
"exportTitle": "Exportar conexiones",
"exportWarning": "El archivo exportado contendrá tus contraseñas de base de datos y SSH en texto plano. Guárdalo de forma segura.",
"exportModal": {
"title": "Exportar conexiones",
"subtitle": "Elige cómo exportar tus conexiones",
"subtitleSelected": "Exportar {{count}} conexión(es) seleccionada(s)",
"encrypted": "Cifrado con contraseña",
"encryptedDesc": "Se incluyen todas las conexiones y contraseñas, protegidas con una contraseña de tu elección. Recomendado para copias de seguridad.",
"noSecrets": "En texto plano, sin contraseñas",
"noSecretsDesc": "Las conexiones se exportan como JSON legible, pero se excluyen todas las contraseñas y frases de paso. Recomendado para compartir.",
"plaintext": "En texto plano, con todas las contraseñas",
"plaintextDesc": "Las conexiones y contraseñas se exportan como JSON legible. Cualquiera con el archivo puede leer tus credenciales.",
"password": "Contraseña",
"confirmPassword": "Confirmar contraseña",
"passwordRequired": "Se requiere una contraseña para una exportación cifrada.",
"passwordMismatch": "Las contraseñas no coinciden.",
"export": "Exportar"
},
"importPasswordModal": {
"title": "Archivo de exportación cifrado",
"subtitle": "Este archivo está protegido con una contraseña",
"password": "Contraseña",
"unlock": "Importar"
},
"importFromApp": {
"title": "Import from App",
"subtitle": "Import connections from another installed SQL client",
"previewSubtitle": "Review connections from {{source}}",
"notInstalled": "Not installed",
"chooseFile": "Choose an export file to import",
"chooseConfigPath": "Choose the app config folder to import",
"connectionsFound_one": "1 connection found",
"connectionsFound_other": "{{count}} connections found",
"includePasswords": "Include passwords",
"includePasswordsHint": "Saved passwords are read and decrypted during import (may require Keychain permission)",
"credentialsAborted": "Some passwords could not be read",
"importCount_one": "Import 1 connection",
"importCount_other": "Import {{count}} connections",
"noConnections": "No connections found to import",
"duplicateOf": "Duplicate of \"{{name}}\"",
"action": {
"import": "Import",
"skip": "Skip",
"replace": "Replace",
"applyToAll": "Acción para todas:"
},
"tabularisJsonHint": "Archivo de exportación de Tabularis (.json)",
"menuLabel": "Importar conexiones…",
"group": {
"label": "Grupo:",
"none": "Sin grupo",
"new": "Nuevo grupo…",
"newPlaceholder": "Nombre del grupo",
"parentLabel": "en",
"parentNone": "Nivel superior",
"applyToAll": "Grupo para todas:",
"keepPerConnection": "Por conexión"
},
"betaNotice": "La importación desde otra app está en beta. Si tienes algún problema,",
"reportIssue": "repórtalo en GitHub."
},
"databaseCount_one": "{{count}} base de datos",
"databaseCount_other": "{{count}} bases de datos"
},
"connectionAppearance": {
"section": "Apariencia",
"accentColor": "Color de acento",
"customColor": "Personalizado",
"resetColor": "Restablecer al valor predeterminado",
"resetIcon": "Restablecer al valor predeterminado",
"icon": "Icono",
"tabs": {
"default": "Predeterminado",
"pack": "Icono",
"emoji": "Emoji",
"image": "Imagen"
},
"previewLabel": "Vista previa",
"defaultHint": "Usando el icono predeterminado del driver.",
"emojiSelected": "Emoji seleccionado",
"emojiHint": "Haz clic en otro emoji abajo para cambiarlo.",
"removeEmoji": "Quitar",
"chooseImage": "Elegir imagen…",
"removeImage": "Quitar",
"imageHint": "PNG, JPG, WebP o SVG · máx. 512 KB",
"errors": {
"invalidEmoji": "Introduce exactamente un emoji",
"invalidHex": "Introduce un color hex válido como #1a2b3c"
}
},
"settings": {
"title": "Configuración",
"general": "General",
"privacy": "Privacidad",
"network": {
"tab": "Network",
"title": "Proxy",
"description": "Route selected application traffic through an HTTP or SOCKS5 proxy. Connection and AI provider overrides take priority over these global settings.",
"enabled": "Enable proxy",
"enabledDesc": "Turn on the global proxy. Individual scopes below must also be checked for traffic to use it.",
"protocol": "Protocol",
"protocolDesc": "HTTP CONNECT or SOCKS5.",
"host": "Proxy host",
"hostDesc": "Hostname or IP of the proxy server.",
"port": "Proxy port",
"portDesc": "TCP port of the proxy server.",
"username": "Username",
"usernameDesc": "Optional proxy authentication username.",
"password": "Password",
"passwordDesc": "Optional proxy password. Stored in the OS keychain, never in config.json.",
"passwordReplaceDesc": "A password is already stored. Enter a new one to replace it.",
"clearPassword": "Clear",
"applyTo": "Apply proxy to",
"applyToDesc": "Opt-in traffic categories. Unchecked categories never use the global proxy.",
"scopes": {
"appHttp": "App network requests",
"appHttpDesc": "Plugin downloads (including legacy raw.githubusercontent.com registry.json), Tabularium registry API, update checks, and WebDAV backup uploads.",
"database": "Database connections",
"databaseDesc": "Direct TCP connections to databases (skipped when already on a local SSH/K8s tunnel).",
"ai": "AI / LLM endpoints",
"aiDesc": "Requests to configured AI providers. Per-provider overrides can still customize or disable.",
"sshTunnel": "SSH tunnels",
"sshTunnelDesc": "Outbound connection to the SSH bastion before port-forwarding to the database."
},
"overrideMode": "Proxy mode",
"overrideModeDesc": "Inherit the global proxy, set a custom proxy, or disable proxying for this target.",
"modeInherit": "Inherit",
"modeCustom": "Custom",
"modeDisabled": "Disabled",
"providerProxy": "Provider proxy",
"providerProxyDesc": "Override the global AI proxy for this provider only.",
"connectionProxy": "Proxy",
"connectionProxyDesc": "Override the global proxy for this connection’s database and SSH traffic. When an SSH tunnel is used, the proxy applies to the bastion hop; the local tunnel leg is not re-proxied.",
"passwordAfterSave": "Save the connection first to store a proxy password in the keychain."
},
"columnMasking": "Enmascaramiento de columnas",
"columnMaskingDesc": "Oculta el contenido de las columnas sensibles (contraseñas, correos, tokens…) en la cuadrícula de resultados. Copiar y exportar siguen usando los valores reales.",
"columnMaskingEnabled": "Enmascarar columnas sensibles",
"columnMaskingEnabledDesc": "Muestra un marcador de posición en lugar del valor real para las columnas cuyo nombre coincide con un patrón sensible.",
"maskingPatterns": "Patrones de nombres de columnas sensibles",
"maskingPatternsDesc": "Un patrón por línea. Una columna se enmascara cuando su nombre contiene algún patrón (sin distinción de mayúsculas).",
"maskingOverrides": "Excepciones por conexión",
"maskingOverridesDesc": "Obliga a enmascarar (incluir) o a no enmascarar (excluir) columnas concretas de una conexión. Una entrada tabla.columna por línea; las exclusiones prevalecen sobre inclusiones y patrones.",
"maskingConnection": "Conexión",
"maskingConnectionDesc": "Elige a qué conexión se aplican estas excepciones.",
"maskingInclude": "Enmascarar siempre",
"maskingIncludeDesc": "Columnas siempre enmascaradas en esta conexión, aunque su nombre no coincida con ningún patrón.",
"maskingExclude": "No enmascarar nunca",
"maskingExcludeDesc": "Columnas nunca enmascaradas en esta conexión, aunque su nombre coincida con un patrón.",
"maskingOverridePlaceholder": "p. ej. usuarios.password",
"info": "Info",
"dataEditor": "Editor de Datos",
"pageSize": "Tamaño de Página de Resultados (Límite)",
"pageSizeDesc": "Limita el número de filas obtenidas por consulta para prevenir problemas de rendimiento. Establece en 0 para desactivar (no recomendado).",
"rows": "filas",
"copyFormat": "Formato de copia predeterminado",
"copyFormatDesc": "Elige el formato predeterminado al copiar filas con Ctrl+C / Cmd+C.",
"csvDelimiter": "Delimitador CSV",
"csvDelimiterDesc": "Elige el delimitador predeterminado utilizado al copiar o exportar filas en formato CSV.",
"delimiterComma": "Coma (,)",
"delimiterSemicolon": "Punto y coma (;)",
"delimiterTab": "Tab",
"delimiterPipe": "Pipe (|)",
"csvIncludeHeaders": "Incluir encabezados CSV",
"csvIncludeHeadersDesc": "Incluir una fila de encabezado con los nombres de las columnas al copiar filas como CSV.",
"rowEditorFollowSelection": "El editor de filas sigue la selección",
"rowEditorFollowSelectionDesc": "Cuando la barra lateral del editor de filas está abierta, se actualiza automáticamente para mostrar la fila recién seleccionada.",
"cellDoubleClickAction": "Acción de doble clic en celda",
"cellDoubleClickActionDesc": "Elija qué sucede al hacer doble clic en una celda de datos.",
"cellDoubleClickInline": "Edición en línea",
"cellDoubleClickSidebar": "Abrir en barra lateral",
"cellDoubleClickBoth": "Ambos",
"csvHeaders": "Exportar nombres de columnas",
"detectJsonInTextColumns": "Detectar JSON en columnas de texto",
"detectJsonInTextColumnsDesc": "Muestra el visor de JSON cuando una celda de texto sin tipar contiene un objeto o array JSON. Añade un pequeño coste de análisis por celda.",
"appearance": "Apariencia",
"localization": "Localización",
"themeSelection": "Selección de Tema",
"themeMode": "Modo de tema",
"themeModeDesc": "Elige un tema fijo o sigue la apariencia clara/oscura del sistema.",
"themeModeStatic": "Estático",
"themeModeSystem": "Seguir sistema",
"lightTheme": "Tema claro",
"darkTheme": "Tema oscuro",
"fontFamily": "Familia de Fuente",
"fonts": {
"system": "Predeterminado del tema",
"systemDesc": "Usa la fuente predeterminada del sistema",
"custom": "Fuente Personalizada",
"customPlaceholder": "ej. Comic Sans MS",
"enterFontName": "Ingresa el nombre de la fuente arriba"
},
"fontSize": "Tamaño de Fuente",
"fontSizeLabel": "Tamaño de Fuente",
"fontSizeDesc": "Ajusta el tamaño base de fuente usado en la aplicación (10-20px).",
"preview": "Vista Previa",
"fontPreviewText": "El veloz zorro marrón salta sobre el perro perezoso",
"dataGrid": {
"zebraStripes": "Fondo de filas alternas",
"zebraStripesDesc": "Sombrea una fila de cada dos para seguir más fácilmente una fila en tablas anchas."
},
"appearance_general": "General",
"appearance_sqlEditor": "Editor SQL",
"appearance_editorTheme": "Tema del Editor",
"appearance_editorThemeDesc": "Elige un tema independiente para el editor SQL, o mantenlo sincronizado con el tema de la app.",
"appearance_sameAsApp": "Igual que la app",
"appearance_editorFontFamily": "Fuente del Editor",
"appearance_editorFontSize": "Tamaño de Fuente del Editor",
"appearance_editorLineHeight": "Altura de Línea",
"appearance_editorTabSize": "Tamaño de Tab",
"appearance_editorWordWrap": "Ajuste de Línea",
"appearance_editorWordWrapDesc": "Ajusta las líneas largas en el editor en vez de desplazarse horizontalmente.",
"appearance_editorHighlightInvisibleCharacters": "Mostrar caracteres invisibles",
"appearance_editorHighlightInvisibleCharactersDesc": "Marca caracteres Unicode ocultos y caracteres similares en SQL.",
"appearance_editorShowLineNumbers": "Mostrar Números de Línea",
"appearance_editorShowLineNumbersDesc": "Muestra los números de línea en el margen del editor.",
"appearance_editorAcceptSuggestionOnEnter": "Aceptar Sugerencia con Intro",
"appearance_editorAcceptSuggestionOnEnterDesc": "Permite que Intro (además de Tab) acepte la sugerencia de autocompletado activa. Cuando está desactivado, Intro siempre inserta una nueva línea.",
"queryExecution": "Ejecución de consultas",
"runStatementUnderCursor": "Ejecutar la instrucción bajo el cursor",
"runStatementUnderCursorDesc": "Cuando un script tiene varias instrucciones, ejecuta la que está bajo el cursor en lugar de mostrar el selector de consultas. Selecciona texto para ejecutar un rango específico.",
"safetyConfirmationDelay": "Retrasar las confirmaciones de seguridad",
"safetyConfirmationDelayDesc": "Desactiva los botones de confirmación durante cinco segundos para consultas destructivas y escrituras en producción.",
"notifyLongQueries": "Avisar cuando terminen las consultas largas",
"notifyLongQueriesDesc": "Envía una notificación de escritorio cuando una consulta termina con Tabularis en segundo plano.",
"notifyLongQueriesThreshold": "Umbral de notificación",
"notifyLongQueriesThresholdDesc": "Solo avisa de las consultas que hayan durado al menos este tiempo.",
"formatter_title": "Formateador SQL",
"formatter_keywordCase": "Mayúsculas en palabras clave",
"formatter_keywordCaseDesc": "Cómo se capitalizan las palabras clave SQL (SELECT, FROM, WHERE) después del formateo.",
"formatter_functionCase": "Mayúsculas en funciones",
"formatter_functionCaseDesc": "Cómo se capitalizan los nombres de funciones (COUNT, SUM, COALESCE) después del formateo.",
"formatter_indentStyle": "Estilo de indentación",
"formatter_indentStyleDesc": "Estándar indenta normalmente. Tabular alinea las cláusulas en columnas.",
"formatter_tabWidth": "Ancho de indentación",
"formatter_useTabs": "Usar tabulaciones",
"formatter_useTabsDesc": "Indentar con tabulaciones en lugar de espacios.",
"formatter_linesBetweenQueries": "Líneas entre consultas",
"formatter_linesBetweenQueriesDesc": "Número de líneas en blanco entre sentencias SQL separadas.",
"formatter_denseOperators": "Operadores compactos",
"formatter_denseOperatorsDesc": "Eliminar espacios alrededor de operadores (ej. a=1 en lugar de a = 1).",
"autocomplete_title": "Autocompletado",
"autocomplete_keywordCase": "Mayúsculas en palabras clave",
"autocomplete_keywordCaseDesc": "Mayúsculas y minúsculas de las palabras clave SQL insertadas por el autocompletado.",
"autocomplete_keywordCaseMatch": "Igualar lo escrito",
"editConfigJson": "Editar config.json",
"editConfigJsonDesc": "Edita directamente el archivo de configuración en bruto. Se requiere reinicio para aplicar los cambios.",
"configJsonModal": {
"title": "config.json",
"saveAndRestart": "Guardar y Reiniciar",
"restartNow": "Reiniciar Ahora",
"restartLater": "Más tarde",
"restartRequired": "Se requiere reinicio para aplicar los cambios.",
"restartMessage": "El archivo de configuración ha sido guardado. ¿Reiniciar ahora para aplicar los cambios?",
"invalidJson": "JSON inválido — corrige los errores antes de guardar."
},
"language": "Idioma",
"languageDesc": "Elige tu idioma preferido. 'Auto' usará el idioma del sistema.",
"languageSearch": "Buscar idiomas...",
"auto": "Auto (Sistema)",
"english": "English",
"italian": "Italiano",
"spanish": "Español",
"projectStatus": "Estado del Proyecto",
"roadmapDesc": "Este proyecto es un Work In Progress (WIP). Las funciones principales son estables, pero tenemos grandes planes.",
"support": "Apoya el Desarrollo",
"supportDesc": "Si te gusta tabularis y quieres ver más funcionalidades, considera apoyar el proyecto contribuyendo código, reportando errores o dando una estrella en GitHub.",
"followUs": "Síguenos",
"followUsDesc": "Mantente al día y conecta con la comunidad en tu plataforma favorita.",
"version": "Versión",
"starOnGithub": "Estrella en GitHub",
"ai": {
"tab": "IA",
"title": "Configuración de IA",
"description": "Configura los proveedores de IA para habilitar la generación de SQL desde lenguaje natural. Las claves se almacenan de forma segura en el llavero del sistema.",
"enable": "Habilitar Funciones de IA",
"enableDesc": "Mostrar los botones de Asistente IA y Explicar en el editor",
"defaultProvider": "Proveedor Predeterminado",
"defaultModel": "Modelo Predeterminado",
"configuration": "Configuración",
"selectProviderFirst": "Selecciona un proveedor primero",
"modelDesc": "Selecciona el modelo a utilizar para la generación y explicación.",
"manageKeys": "Gestionar Claves API",
"apiKey": "Clave API de {{provider}}",
"configured": "Configurado",
"notConfigured": "No configurado",
"enterKey": "Ingresa la Clave de {{provider}}",
"keyStoredSecurely": "La clave API se almacena de forma segura en el llavero del sistema. Establecer una clave aquí sobrescribe la variable de entorno.",
"fromEnv": "Variable de Entorno",
"fromEnvTooltip": "Esta clave se carga desde una variable de entorno",
"envVariableDetected": "Se detectó una variable de entorno, pero puedes sobrescribirla estableciendo una clave arriba.",
"reset": "Restablecer",
"changeKey": "Cambiar",
"resetKey": "Eliminar clave personalizada y volver a la variable de entorno (si existe)",
"keyResetSuccess": "Clave personalizada eliminada correctamente",
"promptCustomization": "Personalización de Prompts",
"systemPrompt": "Generación SQL",
"systemPromptDesc": "Instrucciones para la generación de SQL con IA. Usa {{SCHEMA}} como marcador para la estructura de la base de datos.",
"enterSystemPrompt": "Ingresa el prompt del sistema...",
"resetDefault": "Restablecer Predeterminado",
"savePrompt": "Guardar Prompt",
"explainPrompt": "Explicación de Consultas",
"explainPromptDesc": "Instrucciones para la explicación de consultas con IA. Usa {{LANGUAGE}} como marcador para el idioma de salida.",
"enterExplainPrompt": "Ingresa el prompt de explicación...",
"cellnamePrompt": "Prompt Nombre de Celda Notebook",
"cellnamePromptDesc": "Personaliza las instrucciones para la generación de nombres de celda en notebooks con IA. El contenido de la celda (SQL o Markdown) se envía como mensaje del usuario.",
"enterCellnamePrompt": "Ingresa el prompt de nombre de celda...",
"tabrenamePrompt": "Prompt Nombre de Pestaña de Consulta",
"tabrenamePromptDesc": "Personaliza las instrucciones para la generación de nombres de pestañas de resultados de consulta con IA. La consulta SQL se envía como mensaje del usuario.",
"enterTabrenamePrompt": "Ingresa el prompt de nombre de pestaña...",
"explainplanPrompt": "Prompt Analisis del Plan de Ejecucion",
"explainplanPromptDesc": "Personaliza las instrucciones para el analisis IA de los planes EXPLAIN. Usa {{LANGUAGE}} para el idioma de salida.",
"enterExplainplanPrompt": "Ingresa el prompt de analisis del plan de ejecucion...",
"keySaved": "Clave API guardada de forma segura",
"promptSaved": "Prompt guardado",
"explainPromptSaved": "Prompt de explicación guardado correctamente",
"promptReset": "Prompt del sistema restablecido al predeterminado",
"modelPlaceholder": "Selecciona un modelo",
"searchPlaceholder": "Buscar modelos...",
"noResults": "No se encontraron modelos",
"refresh": "Actualizar Modelos",
"refreshSuccess": "Modelos de IA actualizados desde los proveedores",
"refreshError": "Error al actualizar los modelos",
"ollamaConnected": "Ollama conectado ({{count}} modelos encontrados)",
"ollamaNotDetected": "Ollama no detectado en el puerto {{port}}. ¿Está en ejecución?",
"ollamaPort": "Puerto de Ollama",
"modelNotFound": "Modelo <strong>{{model}}</strong> no encontrado en <strong>{{provider}}</strong>. Puede que no funcione correctamente.",
"customOpenaiEndpoint": "Endpoint Personalizado",
"endpointUrl": "URL del Endpoint",
"endpointUrlDesc": "La URL base de tu API compatible con OpenAI. Ejemplos: https://api.groq.com/openai/v1, http://localhost:8000/v1",
"customOpenaiModelPlaceholder": "ej., llama3-70b-8192, mixtral-8x7b",
"customOpenaiModelDesc": "Ingresa el nombre del modelo proporcionado por tu servicio compatible con OpenAI.",
"customOpenaiModelHelp": "Ingresa el nombre exacto del modelo para tu proveedor compatible con OpenAI.",
"promptResetSuccess": "Prompt restablecido al valor predeterminado",
"apiKeySaved": "Clave API guardada de forma segura"
},
"updates": "Actualizaciones",
"openSourceLibraries": "Librerías Open Source",
"openSourceLibrariesDesc": "Consulta las dependencias open source directas usadas por la app, el backend y la toolchain.",
"openSourceLibrariesSource": "Dependencias directas declaradas en package.json y src-tauri/Cargo.toml.",
"openSourceLibrariesTotal": "{{count}} librerías",
"openSourceLibrariesOpenProject": "Abrir página del paquete",
"openSourceLibrariesSections": {
"npm-runtime": "Dependencias Frontend",
"npm-tooling": "Dependencias Dev Frontend",
"cargo-runtime": "Dependencias Rust",
"cargo-tooling": "Build y Test Rust"
},
"openSourceLibrariesEcosystem": {
"npm": "ecosistema npm",
"cargo": "ecosistema Cargo"
},
"autoCheckUpdates": "Buscar actualizaciones al inicio",
"autoCheckUpdatesDesc": "Buscar automáticamente nuevas versiones al iniciar la aplicación",
"checkNow": "Buscar Actualizaciones Ahora",
"checking": "Verificando...",
"currentVersion": "Versión Actual",
"logs": "Registros",
"logSettings": "Configuración de Registros",
"enableLogging": "Habilitar Registros",
"enableLoggingDesc": "Recopilar registros de la aplicación en memoria para depuración",
"maxLogEntries": "Máximo de Entradas de Registro",
"maxLogEntriesDesc": "Cuántos registros mantener en memoria (1-10000)",
"currentLogCount": "Registros Actuales",
"clearLogs": "Limpiar Registros",
"clearLogsConfirm": "¿Estás seguro de que deseas borrar todos los registros?",
"exportLogs": "Exportar Registros",
"exportLogsSuccess": "Registros exportados",
"noLogs": "No hay registros disponibles",
"refreshLogs": "Actualizar",
"logLevel": "Nivel",
"logMessage": "Mensaje",
"logTimestamp": "Marca de Tiempo",
"filterByLevel": "Filtrar por nivel",
"allLevels": "Todos los niveles",
"debug": "Debug",
"warn": "Warn",
"error": "Error",
"connectionHealthCheck": "Verificación de Conexión",
"pingInterval": "Intervalo de Ping",
"pingIntervalDesc": "Frecuencia con la que se verifica si las conexiones activas siguen disponibles. Establece 0 para desactivar.",
"seconds": "segundos",
"entries": "entradas",
"queryHistory": "Historial de Consultas",
"queryHistoryMaxEntries": "Máx. Entradas de Historial",
"queryHistoryMaxEntriesDesc": "Número máximo de entradas del historial de consultas almacenadas por conexión.",
"startup": "Inicio",
"showWelcome": "Mostrar pantalla de bienvenida",
"showWelcomeDesc": "Mostrar la pantalla de bienvenida al iniciar la aplicación.",
"autoConnectLastConnection": "Reabrir últimas conexiones",
"autoConnectLastConnectionDesc": "Se reconecta a las conexiones que estaban abiertas al cerrar la aplicación.",
"startMaximized": "Iniciar maximizada",
"startMaximizedDesc": "Abre la ventana maximizada para llenar la pantalla al iniciar.",
"windowDecorations": "Decoraciones de ventana",
"windowDecorationsDesc": "Oculta automáticamente las decoraciones nativas al detectar un gestor de ventanas en mosaico, o usa el comportamiento elegido.",
"windowDecorationsAutomatic": "Automático",
"windowDecorationsAlwaysShow": "Mostrar siempre",
"windowDecorationsAlwaysHide": "Ocultar siempre",
"erDiagram": "Diagrama ER",
"erDiagramDefaultLayout": "Diseño Predeterminado",
"erDiagramDefaultLayoutDesc": "Elige la dirección de diseño predeterminada para los diagramas ER",
"plugins": {
"runtimeTitle": "Ejecución de plugins",
"callTimeout": "Tiempo de espera de llamadas",
"callTimeoutDesc": "Tiempo máximo que Tabularis espera la respuesta de un plugin a una sola solicitud (incluidas las consultas). Usa 0 para desactivar el límite. Cada plugin puede sobrescribir este valor en su propia configuración.",
"title": "Plugins",
"overviewTitle": "Centro de plugins",
"overviewDesc": "Instala extensiones, gestiona drivers de plugins y mantén bajo control los ajustes de ejecución.",
"installedMetric": "Instalados",
"enabledMetric": "Habilitados",
"registryMetric": "Registro",
"updatesMetric": "Actualizaciones",
"available": "Plugins Disponibles",
"availableDesc": "Explora e instala plugins del registro.",
"refresh": "Actualizar",
"loadingRegistry": "Cargando registro de plugins...",
"registryError": "Error al cargar el registro",
"installed": "Instalado",
"latest": "Más reciente",
"by": "por",
"platformNotSupported": "No disponible para tu plataforma",
"update": "Actualizar",
"install": "Instalar",
"upToDate": "Actualizado",
"downgrade": "Degradar a",
"deprecated": "Obsoleto",
"deprecatedTooltip": "Este controlador integrado está siendo reemplazado por el complemento {{replacement}}.",
"deprecatedTooltipDate": "Este controlador integrado está siendo reemplazado por el complemento {{replacement}}, provisionalmente el {{date}}.",
"migrationProgress": "{{migrated}} de {{total}} migradas",
"olderVersions": "Versiones anteriores",
"noPlugins": "No hay plugins disponibles en el registro.",
"searchPlaceholder": "Buscar plugins…",
"filterAll": "Todos",
"filterInstalled": "Instalados",
"filterUpdates": "Actualizaciones",
"kindFilter": "Filtrar por tipo",
"kindAll": "Todos los tipos",
"kindDrivers": "Controladores",
"kindThemes": "Temas",
"kindTheme": "Tema",
"kindDriver": "Controlador",
"manageThemes": "Administrar en Apariencia",
"searchNoResults": "Ningún plugin coincide con la búsqueda.",
"version": "Versión",
"requiresVersion": "Requiere Tabularis ≥ {{version}}",
"installedPlugins": "Plugins Instalados",
"installedDesc": "Habilita o deshabilita los drivers de base de datos. Los drivers integrados no se pueden deshabilitar.",
"remove": "Eliminar",
"removeTitle": "Eliminar Plugin",
"confirmRemove": "¿Estás seguro de que deseas eliminar \"{{name}}\"? Los archivos del plugin serán eliminados.",
"enabled": "Habilitado",
"disabled": "Deshabilitado",
"openFolder": "Abrir carpeta de plugins",
"installError": {
"title": "Instalación fallida",
"subtitle": "Ocurrió un error al instalar el plugin. Consulta los detalles a continuación.",
"details": "Detalles del error",
"copy": "Copiar",
"copied": "¡Copiado!",
"reload": "Recargar plugins"
},
"uninstallError": {
"title": "Desinstalación fallida",
"subtitle": "Ocurrió un error al desinstalar el plugin. Consulta los detalles a continuación."
},
"devRuntimeWarning": {
"title": "Compilación de desarrollo: el plugin \"{{plugin}}\" omitió la comprobación de versión de Tabularis"
},
"startError": {
"title": "El Plugin no se pudo iniciar",
"subtitle": "No se pudo lanzar el proceso del plugin. Revisa los detalles del error.",
"interpreterHint": "Este plugin puede requerir un intérprete (p.ej. Python). Usa Configuración del Plugin para establecer la ruta del intérprete.",
"details": "Detalles del Error",
"copy": "Copiar",
"copied": "¡Copiado!",
"configure": "Configurar Intérprete"
},
"pluginSettings": {
"callTimeout": "Tiempo de espera de llamadas",
"callTimeoutDesc": "Sobrescribe el tiempo de espera global solo para este plugin. Usa 0 para desactivar el límite; déjalo vacío para heredar el valor global.",
"callTimeoutPlaceholder": "Heredar global ({{seconds}} s)",
"callTimeoutInherit": "Heredar el valor global",
"title": "Configuración del Plugin",
"interpreter": "Intérprete",
"interpreterDesc": "Opcional. Especifica el ejecutable para iniciar este plugin (p.ej. python3 en macOS/Linux, python o ruta completa en Windows). Deja en blanco para usar el valor predeterminado.",
"interpreterPlaceholder": "p.ej. python3",
"browse": "Explorar...",
"fieldRequired": "{{label}} es obligatorio",
"saved": "Guardado",
"resetToDefault": "Restablecer predeterminado",
"reportIssue": "Reportar un problema del complemento",
"builtin": {
"mysql": {
"maxAllowedPacket": {
"label": "Paquete Máximo Permitido",
"description": "Tamaño máximo de paquete usado por el conector MySQL."
},
"socketTimeout": {
"label": "Tiempo de Espera del Socket",
"description": "Tiempo de espera del socket en milisegundos."
},
"connectTimeout": {
"label": "Tiempo de Espera de Conexión",
"description": "Tiempo de espera de conexión en milisegundos."
},
"timezone": {
"label": "Zona Horaria",
"description": "Zona horaria de sesión enviada a MySQL después de conectar."
}
},
"postgres": {
"poolMaxSize": {
"label": "Tamaño Máximo del Pool",
"description": "Número máximo de conexiones PostgreSQL mantenidas en el pool."
}
}
}
},
"poweredBy": "Con tecnología de",
"openHomepage": "Abrir página"
},
"shortcuts": {
"title": "Atajos de teclado",
"categories": {
"editor": "Editor",
"navigation": "Navegación",
"data_grid": "Cuadrícula de datos",
"notebook": "Cuaderno"
},
"runQuery": "Ejecutar consulta",
"runQueryEditor": "Ejecutar consulta (en el editor)",
"runAll": "Ejecutar todas las sentencias",
"runAllEditor": "Ejecutar todas las sentencias (en el editor)",
"tabSwitcher": "Cambiar pestaña",
"copySelection": "Copiar selección",
"toggleSidebar": "Mostrar/ocultar barra lateral",
"toggleRightSidebar": "Alternar barra lateral derecha",
"focusTableFilter": "Enfocar el filtro de tablas",
"openConnections": "Abrir conexiones",
"openSettings": "Abrir configuración",
"conflict": "Este atajo entra en conflicto con «{{shortcut}}».",
"needsModifier": "Añade una tecla modificadora, como Ctrl o Alt.",
"newConnection": "Nueva conexión",
"newTab": "Nueva pestaña",
"closeTab": "Cerrar pestaña",
"reopenClosedTab": "Reabrir pestaña cerrada",
"nextPage": "Página siguiente",
"prevPage": "Página anterior",
"switchConnection": "Cambiar a conexión 1–9",
"resetToDefault": "Restablecer predeterminado",
"notOverridable": "Integrado, no personalizable",
"pressKeys": "Pulsa la combinación de teclas...",
"notebookRunAll": "Ejecutar Todas las Celdas",
"categories_notebook": "Notebook",
"pasteImportClipboard": "Importar desde Portapapeles",
"quickNavigator": "Navegador rápido",
"commandPalette": "Paleta de comandos",
"commandPaletteActions": "Buscar acciones",
"triggerSuggestions": "Mostrar sugerencias",
"formatSql": "Formatear SQL",
"refreshTable": "Actualizar tabla",
"extendCellRange": "Extender rango de celdas",
"jumpToEdge": "Saltar al borde de la cuadrícula",
"jumpToColumn": "Ir a columna",
"extendCellRangeToEdge": "Extender rango hasta el borde",
"selectRow": "Seleccionar fila",
"selectColumn": "Seleccionar columna"
},
"aiActivity": "Actividad IA",
"storage": {
"title": "Almacenamiento",
"locations": "Ubicaciones",
"dataFolder": "Carpeta de datos",
"dataFolderDesc": "Aquí se guardan conexiones, ajustes, consultas guardadas, temas, notebooks e historial de consultas. Apunta a una carpeta sincronizada (iCloud Drive, Dropbox, …) para compartirlos entre equipos. Los plugins instalados siempre permanecen en local.",
"sourceDefault": "Ubicación predeterminada",
"sourceCustom": "Ubicación personalizada",
"sourceEnv": "Definida por TABULARIS_DATA_DIR",
"envHint": "La carpeta la controla la variable de entorno TABULARIS_DATA_DIR. Elimínala para cambiar la ubicación desde aquí.",
"envVar": "Variable de entorno",
"envVarDesc": "Define TABULARIS_DATA_DIR con una ruta absoluta para sustituir la carpeta de datos en un arranque o una instalación. Tiene prioridad sobre la carpeta elegida arriba, se aplica también al servidor MCP y resulta útil para instalaciones portátiles, scripts y desarrollo.",
"envVarExample": "TABULARIS_DATA_DIR=/ruta/a/la/carpeta tabularis",
"changeFolder": "Cambiar carpeta…",
"openFolder": "Abrir carpeta",
"resetToDefault": "Usar ubicación predeterminada",
"concurrencyWarning": "Tabularis lee esta carpeta al iniciarse. Evita ejecutar dos instancias sobre la misma carpeta al mismo tiempo, por ejemplo en dos equipos mientras se sincroniza.",
"newFolder": "Nueva carpeta",
"modeExisting": "Usar los datos que ya hay en esta carpeta",
"modeExistingDesc": "Esta carpeta ya contiene datos de Tabularis, por ejemplo sincronizados desde otro equipo.",
"modeCopy": "Copiar mis datos actuales a esta carpeta",
"modeCopyDesc": "Los archivos que ya están en la carpeta se conservan. Los plugins instalados no se copian.",
"modeEmpty": "Empezar con una carpeta vacía",
"apply": "Aplicar",
"restartRequired": "Reinicio necesario",
"restartRequiredDesc": "Tabularis usará {{path}} después de reiniciar.",
"restartNow": "Reiniciar ahora"
},
"backup": {
"title": "Backup",
"directory": "Carpeta de copias",
"directoryDesc": "Ninguna carpeta seleccionada.",
"chooseDirectory": "Elegir carpeta",
"password": "Contraseña de copia",
"passwordDesc": "Las copias siempre están cifradas. La contraseña se guarda en el llavero del sistema.",
"passwordSetDesc": "Las copias de seguridad se cifran con esta contraseña. Se guarda en el llavero del sistema.",
"passwordReplaceDesc": "Introduce una nueva contraseña. Las copias ya creadas conservan la anterior.",
"changePassword": "Cambiar contraseña",
"webdavPasswordSetDesc": "Hay una contraseña guardada en el llavero del sistema.",
"passwordSaved": "Contraseña de copia guardada.",
"configureFirst": "Configura primero un destino y define una contraseña de copia.",
"interval": "Frecuencia",
"intervalDesc": "Con qué frecuencia se escribe una nueva copia.",
"every6h": "6 h",
"every12h": "12 h",
"daily": "Diaria",
"weekly": "Semanal",