@rebasepro/app 0.0.1-canary.4829d6e
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/LICENSE +21 -0
- package/README.md +174 -0
- package/dist/auth/api.d.ts +66 -0
- package/dist/auth/index.d.ts +13 -0
- package/dist/auth/types.d.ts +127 -0
- package/dist/auth/useRebaseAuthController.d.ts +13 -0
- package/dist/components/AIIcon.d.ts +17 -0
- package/dist/components/AuthSimulationMenu.d.ts +0 -0
- package/dist/components/ConfirmationDialog.d.ts +9 -0
- package/dist/components/Debug/UIReferenceView.d.ts +13 -0
- package/dist/components/Debug/UIStyleGuide.d.ts +2 -0
- package/dist/components/Debug/collection-views/CardViewDemo.d.ts +2 -0
- package/dist/components/Debug/collection-views/CollectionTableDemo.d.ts +2 -0
- package/dist/components/Debug/collection-views/KanbanBoardDemo.d.ts +2 -0
- package/dist/components/Debug/collection-views/index.d.ts +3 -0
- package/dist/components/Debug/collection-views/sample_data.d.ts +23 -0
- package/dist/components/Debug/crm-dashboard/CalendarWidget.d.ts +22 -0
- package/dist/components/Debug/crm-dashboard/CrmDashboardDemo.d.ts +2 -0
- package/dist/components/Debug/crm-dashboard/DashboardMetrics.d.ts +15 -0
- package/dist/components/Debug/crm-dashboard/PipelineOverview.d.ts +34 -0
- package/dist/components/Debug/crm-dashboard/RecentActivity.d.ts +19 -0
- package/dist/components/Debug/crm-dashboard/TaskFilters.d.ts +30 -0
- package/dist/components/Debug/crm-dashboard/TaskTable.d.ts +50 -0
- package/dist/components/Debug/crm-dashboard/TasksView.d.ts +41 -0
- package/dist/components/ErrorTooltip.d.ts +3 -0
- package/dist/components/ErrorView.d.ts +21 -0
- package/dist/components/LanguageToggle.d.ts +2 -0
- package/dist/components/LoginView/LoginView.d.ts +113 -0
- package/dist/components/LoginView/index.d.ts +2 -0
- package/dist/components/NotFoundPage.d.ts +2 -0
- package/dist/components/RebaseAuth.d.ts +10 -0
- package/dist/components/RebaseLogo.d.ts +7 -0
- package/dist/components/SchemaDriftBanner.d.ts +27 -0
- package/dist/components/UnsavedChangesDialog.d.ts +9 -0
- package/dist/components/UserDisplay.d.ts +7 -0
- package/dist/components/UserSelectPopover.d.ts +63 -0
- package/dist/components/UserSettingsView.d.ts +2 -0
- package/dist/components/common/index.d.ts +6 -0
- package/dist/components/common/table_height.d.ts +5 -0
- package/dist/components/common/types.d.ts +66 -0
- package/dist/components/common/useColumnsIds.d.ts +9 -0
- package/dist/components/common/useDataTableController.d.ts +45 -0
- package/dist/components/common/useDebouncedData.d.ts +9 -0
- package/dist/components/common/useScrollRestoration.d.ts +14 -0
- package/dist/components/index.d.ts +18 -0
- package/dist/contexts/AdminModeController.d.ts +4 -0
- package/dist/contexts/AnalyticsContext.d.ts +3 -0
- package/dist/contexts/AuthControllerContext.d.ts +3 -0
- package/dist/contexts/CollectionScopeContext.d.ts +50 -0
- package/dist/contexts/ComponentOverrideContext.d.ts +42 -0
- package/dist/contexts/CustomizationControllerContext.d.ts +3 -0
- package/dist/contexts/DataDriverContext.d.ts +3 -0
- package/dist/contexts/DataSourcesContext.d.ts +31 -0
- package/dist/contexts/DatabaseAdminContext.d.ts +3 -0
- package/dist/contexts/DialogsProvider.d.ts +4 -0
- package/dist/contexts/EffectiveRoleController.d.ts +4 -0
- package/dist/contexts/ModeController.d.ts +4 -0
- package/dist/contexts/RebaseClientInstanceContext.d.ts +6 -0
- package/dist/contexts/RebaseDataContext.d.ts +3 -0
- package/dist/contexts/SnackbarProvider.d.ts +2 -0
- package/dist/contexts/StorageSourceContext.d.ts +3 -0
- package/dist/contexts/StorageSourcesContext.d.ts +25 -0
- package/dist/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
- package/dist/contexts/index.d.ts +17 -0
- package/dist/core/PluginLifecycleManager.d.ts +17 -0
- package/dist/core/PluginProviderStack.d.ts +21 -0
- package/dist/core/Rebase.d.ts +15 -0
- package/dist/core/RebaseProps.d.ts +291 -0
- package/dist/core/RebaseRouter.d.ts +4 -0
- package/dist/core/RebaseRoutes.d.ts +17 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/hooks/ApiConfigContext.d.ts +24 -0
- package/dist/hooks/data/delete.d.ts +33 -0
- package/dist/hooks/data/save.d.ts +40 -0
- package/dist/hooks/data/useCollection.d.ts +62 -0
- package/dist/hooks/data/useData.d.ts +13 -0
- package/dist/hooks/data/useDataOrder.d.ts +12 -0
- package/dist/hooks/data/useFetch.d.ts +43 -0
- package/dist/hooks/data/useRelationSelector.d.ts +52 -0
- package/dist/hooks/index.d.ts +36 -0
- package/dist/hooks/useAdminModeController.d.ts +19 -0
- package/dist/hooks/useAnalyticsController.d.ts +5 -0
- package/dist/hooks/useAuthController.d.ts +11 -0
- package/dist/hooks/useAuthSubscription.d.ts +2 -0
- package/dist/hooks/useBackendStorageSource.d.ts +30 -0
- package/dist/hooks/useBridgeRegistration.d.ts +18 -0
- package/dist/hooks/useBrowserTitleAndIcon.d.ts +6 -0
- package/dist/hooks/useBuildAdminModeController.d.ts +6 -0
- package/dist/hooks/useBuildEffectiveRoleController.d.ts +8 -0
- package/dist/hooks/useBuildLocalConfigurationPersistence.d.ts +2 -0
- package/dist/hooks/useBuildModeController.d.ts +6 -0
- package/dist/hooks/useClipboard.d.ts +57 -0
- package/dist/hooks/useCollapsedGroups.d.ts +27 -0
- package/dist/hooks/useComponentOverride.d.ts +32 -0
- package/dist/hooks/useCustomizationController.d.ts +11 -0
- package/dist/hooks/useDialogsController.d.ts +11 -0
- package/dist/hooks/useEffectiveRoleController.d.ts +7 -0
- package/dist/hooks/useLargeLayout.d.ts +1 -0
- package/dist/hooks/useModeController.d.ts +19 -0
- package/dist/hooks/usePermissions.d.ts +12 -0
- package/dist/hooks/useRebaseClient.d.ts +5 -0
- package/dist/hooks/useRebaseContext.d.ts +11 -0
- package/dist/hooks/useRebaseRegistry.d.ts +34 -0
- package/dist/hooks/useResolvedComponent.d.ts +47 -0
- package/dist/hooks/useSlot.d.ts +18 -0
- package/dist/hooks/useSnackbarController.d.ts +20 -0
- package/dist/hooks/useStorageSource.d.ts +6 -0
- package/dist/hooks/useStudioBridge.d.ts +79 -0
- package/dist/hooks/useTranslation.d.ts +17 -0
- package/dist/hooks/useUnsavedChangesDialog.d.ts +12 -0
- package/dist/hooks/useUserConfigurationPersistence.d.ts +8 -0
- package/dist/i18n/RebaseI18nProvider.d.ts +33 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.es.js +16843 -0
- package/dist/index.es.js.map +1 -0
- package/dist/index.umd.js +17021 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/internal/common.d.ts +14 -0
- package/dist/internal/useRestoreScroll.d.ts +15 -0
- package/dist/locales/de.d.ts +2 -0
- package/dist/locales/en.d.ts +10 -0
- package/dist/locales/es.d.ts +10 -0
- package/dist/locales/fr.d.ts +2 -0
- package/dist/locales/hi.d.ts +2 -0
- package/dist/locales/it.d.ts +2 -0
- package/dist/locales/pt.d.ts +7 -0
- package/dist/util/constants.d.ts +1 -0
- package/dist/util/createFormexStub.d.ts +2 -0
- package/dist/util/entity_cache.d.ts +22 -0
- package/dist/util/enums.d.ts +5 -0
- package/dist/util/icon_list.d.ts +5 -0
- package/dist/util/icons.d.ts +20 -0
- package/dist/util/index.d.ts +8 -0
- package/dist/util/previews.d.ts +4 -0
- package/dist/util/useStorageUploadController.d.ts +44 -0
- package/dist/vitePlugin.d.ts +60 -0
- package/dist/vitePlugin.js +113 -0
- package/package.json +145 -0
- package/src/auth/api.ts +148 -0
- package/src/auth/index.ts +25 -0
- package/src/auth/types.ts +115 -0
- package/src/auth/useRebaseAuthController.ts +328 -0
- package/src/components/AIIcon.tsx +47 -0
- package/src/components/AuthSimulationMenu.tsx +0 -0
- package/src/components/ConfirmationDialog.tsx +48 -0
- package/src/components/Debug/UIReferenceView.tsx +958 -0
- package/src/components/Debug/UIStyleGuide.tsx +156 -0
- package/src/components/Debug/collection-views/CardViewDemo.tsx +85 -0
- package/src/components/Debug/collection-views/CollectionTableDemo.tsx +107 -0
- package/src/components/Debug/collection-views/KanbanBoardDemo.tsx +90 -0
- package/src/components/Debug/collection-views/index.ts +3 -0
- package/src/components/Debug/collection-views/sample_data.ts +42 -0
- package/src/components/Debug/crm-dashboard/CalendarWidget.tsx +389 -0
- package/src/components/Debug/crm-dashboard/CrmDashboardDemo.tsx +1102 -0
- package/src/components/Debug/crm-dashboard/DashboardMetrics.tsx +133 -0
- package/src/components/Debug/crm-dashboard/PipelineOverview.tsx +290 -0
- package/src/components/Debug/crm-dashboard/RecentActivity.tsx +215 -0
- package/src/components/Debug/crm-dashboard/TaskFilters.tsx +184 -0
- package/src/components/Debug/crm-dashboard/TaskTable.tsx +427 -0
- package/src/components/Debug/crm-dashboard/TasksView.tsx +234 -0
- package/src/components/ErrorTooltip.tsx +12 -0
- package/src/components/ErrorView.tsx +94 -0
- package/src/components/LanguageToggle.tsx +59 -0
- package/src/components/LoginView/LoginView.tsx +932 -0
- package/src/components/LoginView/index.ts +2 -0
- package/src/components/NotFoundPage.tsx +27 -0
- package/src/components/RebaseAuth.tsx +27 -0
- package/src/components/RebaseLogo.tsx +29 -0
- package/src/components/SchemaDriftBanner.tsx +102 -0
- package/src/components/UnsavedChangesDialog.tsx +46 -0
- package/src/components/UserDisplay.tsx +54 -0
- package/src/components/UserSelectPopover.tsx +399 -0
- package/src/components/UserSettingsView.tsx +318 -0
- package/src/components/common/index.ts +6 -0
- package/src/components/common/table_height.tsx +21 -0
- package/src/components/common/types.tsx +66 -0
- package/src/components/common/useColumnsIds.tsx +222 -0
- package/src/components/common/useDataTableController.tsx +514 -0
- package/src/components/common/useDebouncedData.ts +49 -0
- package/src/components/common/useScrollRestoration.tsx +68 -0
- package/src/components/index.tsx +26 -0
- package/src/contexts/AdminModeController.tsx +11 -0
- package/src/contexts/AnalyticsContext.tsx +4 -0
- package/src/contexts/AuthControllerContext.tsx +4 -0
- package/src/contexts/CollectionScopeContext.tsx +67 -0
- package/src/contexts/ComponentOverrideContext.tsx +81 -0
- package/src/contexts/CustomizationControllerContext.tsx +4 -0
- package/src/contexts/DataDriverContext.tsx +4 -0
- package/src/contexts/DataSourcesContext.tsx +36 -0
- package/src/contexts/DatabaseAdminContext.tsx +4 -0
- package/src/contexts/DialogsProvider.tsx +56 -0
- package/src/contexts/EffectiveRoleController.tsx +12 -0
- package/src/contexts/ModeController.tsx +11 -0
- package/src/contexts/RebaseClientInstanceContext.tsx +7 -0
- package/src/contexts/RebaseDataContext.tsx +4 -0
- package/src/contexts/SnackbarProvider.tsx +15 -0
- package/src/contexts/StorageSourceContext.tsx +4 -0
- package/src/contexts/StorageSourcesContext.tsx +30 -0
- package/src/contexts/UserConfigurationPersistenceContext.tsx +4 -0
- package/src/contexts/index.ts +17 -0
- package/src/core/PluginLifecycleManager.tsx +95 -0
- package/src/core/PluginProviderStack.tsx +40 -0
- package/src/core/Rebase.tsx +439 -0
- package/src/core/RebaseProps.tsx +320 -0
- package/src/core/RebaseRouter.tsx +17 -0
- package/src/core/RebaseRoutes.tsx +24 -0
- package/src/core/index.tsx +5 -0
- package/src/hooks/ApiConfigContext.tsx +41 -0
- package/src/hooks/data/delete.ts +55 -0
- package/src/hooks/data/save.ts +77 -0
- package/src/hooks/data/useCollection.tsx +176 -0
- package/src/hooks/data/useData.tsx +18 -0
- package/src/hooks/data/useDataOrder.ts +26 -0
- package/src/hooks/data/useFetch.tsx +140 -0
- package/src/hooks/data/useRelationSelector.tsx +234 -0
- package/src/hooks/index.tsx +45 -0
- package/src/hooks/useAdminModeController.tsx +23 -0
- package/src/hooks/useAnalyticsController.tsx +8 -0
- package/src/hooks/useAuthController.tsx +14 -0
- package/src/hooks/useAuthSubscription.ts +87 -0
- package/src/hooks/useBackendStorageSource.ts +288 -0
- package/src/hooks/useBridgeRegistration.tsx +32 -0
- package/src/hooks/useBrowserTitleAndIcon.tsx +23 -0
- package/src/hooks/useBuildAdminModeController.tsx +24 -0
- package/src/hooks/useBuildEffectiveRoleController.tsx +31 -0
- package/src/hooks/useBuildLocalConfigurationPersistence.tsx +75 -0
- package/src/hooks/useBuildModeController.tsx +71 -0
- package/src/hooks/useClipboard.tsx +158 -0
- package/src/hooks/useCollapsedGroups.ts +116 -0
- package/src/hooks/useComponentOverride.tsx +59 -0
- package/src/hooks/useCustomizationController.tsx +14 -0
- package/src/hooks/useDialogsController.tsx +15 -0
- package/src/hooks/useEffectiveRoleController.tsx +10 -0
- package/src/hooks/useLargeLayout.tsx +65 -0
- package/src/hooks/useModeController.tsx +23 -0
- package/src/hooks/usePermissions.ts +44 -0
- package/src/hooks/useRebaseClient.tsx +10 -0
- package/src/hooks/useRebaseContext.tsx +83 -0
- package/src/hooks/useRebaseRegistry.tsx +91 -0
- package/src/hooks/useResolvedComponent.tsx +159 -0
- package/src/hooks/useSlot.tsx +64 -0
- package/src/hooks/useSnackbarController.tsx +52 -0
- package/src/hooks/useStorageSource.tsx +11 -0
- package/src/hooks/useStudioBridge.tsx +209 -0
- package/src/hooks/useTranslation.ts +33 -0
- package/src/hooks/useUnsavedChangesDialog.tsx +64 -0
- package/src/hooks/useUserConfigurationPersistence.tsx +11 -0
- package/src/i18n/RebaseI18nProvider.tsx +160 -0
- package/src/index.ts +25 -0
- package/src/internal/common.tsx +16 -0
- package/src/internal/useRestoreScroll.tsx +69 -0
- package/src/locales/de.ts +902 -0
- package/src/locales/en.ts +980 -0
- package/src/locales/es.ts +922 -0
- package/src/locales/fr.ts +901 -0
- package/src/locales/hi.ts +901 -0
- package/src/locales/it.ts +901 -0
- package/src/locales/pt.ts +909 -0
- package/src/util/constants.ts +7 -0
- package/src/util/createFormexStub.tsx +66 -0
- package/src/util/entity_cache.ts +239 -0
- package/src/util/enums.ts +32 -0
- package/src/util/icon_list.ts +22 -0
- package/src/util/icons.tsx +149 -0
- package/src/util/index.ts +12 -0
- package/src/util/previews.ts +105 -0
- package/src/util/useStorageUploadController.tsx +350 -0
- package/src/vitePlugin.ts +196 -0
|
@@ -0,0 +1,922 @@
|
|
|
1
|
+
import { RebaseTranslations } from "@rebasepro/types";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Spanish baseline translations for @rebasepro/app.
|
|
5
|
+
*
|
|
6
|
+
* This is the single source of truth for all default UI strings in Spanish.
|
|
7
|
+
* Override any key via the `translations` prop on Rebase entry-point components.
|
|
8
|
+
*
|
|
9
|
+
* @group Core
|
|
10
|
+
*/
|
|
11
|
+
export const es: RebaseTranslations = {
|
|
12
|
+
// ─── Form actions ────────────────────────────────────────────
|
|
13
|
+
save: "Guardar",
|
|
14
|
+
create: "Crear",
|
|
15
|
+
create_copy: "Crear copia",
|
|
16
|
+
save_and_close: "Guardar y cerrar",
|
|
17
|
+
create_copy_and_close: "Crear copia y cerrar",
|
|
18
|
+
create_and_close: "Crear y cerrar",
|
|
19
|
+
discard: "Descartar",
|
|
20
|
+
clear: "Limpiar",
|
|
21
|
+
cancel: "Cancelar",
|
|
22
|
+
|
|
23
|
+
// ─── Entity actions ──────────────────────────────────────────
|
|
24
|
+
edit: "Editar",
|
|
25
|
+
copy: "Copiar",
|
|
26
|
+
delete: "Eliminar",
|
|
27
|
+
delete_not_allowed: "Has seleccionado al menos una entidad que no puedes eliminar",
|
|
28
|
+
|
|
29
|
+
// ─── Delete dialog ───────────────────────────────────────────
|
|
30
|
+
delete_confirmation_title: "¿Eliminar?",
|
|
31
|
+
delete_confirmation_body: "Esto eliminará la entidad. ¿Estás seguro?",
|
|
32
|
+
delete_multiple_confirmation_body: "Esto eliminará las entidades seleccionadas. ¿Estás seguro?",
|
|
33
|
+
|
|
34
|
+
// ─── Unsaved-changes dialog ───────────────────────────────────
|
|
35
|
+
unsaved_changes_title: "Cambios sin guardar",
|
|
36
|
+
unsaved_changes_body: "Tienes cambios sin guardar. ¿Quieres descartarlos?",
|
|
37
|
+
discard_changes: "Descartar cambios",
|
|
38
|
+
keep_editing: "Seguir editando",
|
|
39
|
+
clear_form: "¿Vaciar formulario?",
|
|
40
|
+
discard_changes_confirmation: "Todos los cambios no guardados se perderán. Esta acción no se puede deshacer.",
|
|
41
|
+
clear_form_confirmation: "Todos los valores introducidos se borrarán. Esta acción no se puede deshacer.",
|
|
42
|
+
|
|
43
|
+
// ─── Collection table / toolbar ──────────────────────────────
|
|
44
|
+
search: "Buscar",
|
|
45
|
+
find_by_id: "Buscar por ID",
|
|
46
|
+
find_entity_by_id: "Buscar entidad por ID",
|
|
47
|
+
filter: "Filtrar",
|
|
48
|
+
filters: "Filtros",
|
|
49
|
+
clear_filter: "Borrar filtro",
|
|
50
|
+
clear_filter_sort: "Borrar filtro/orden",
|
|
51
|
+
clear_sort: "Borrar orden",
|
|
52
|
+
clear_all: "Borrar todo",
|
|
53
|
+
no_items: "Sin elementos",
|
|
54
|
+
no_entries_found: "No se encontraron entradas",
|
|
55
|
+
all_entries_loaded: "Todas las {{count}} entradas cargadas",
|
|
56
|
+
create_your_first_entry: "Crea tu primera entrada",
|
|
57
|
+
no_results_filter_sort: "No hay resultados con el filtro/orden aplicado",
|
|
58
|
+
no_results_search: "No se encontraron resultados para \"{{search}}\"",
|
|
59
|
+
add: "Añadir",
|
|
60
|
+
remove: "Quitar",
|
|
61
|
+
multiple_entities: "Múltiples entidades",
|
|
62
|
+
unsaved_changes: "Tienes cambios sin guardar en esta colección {{collectionName}}.",
|
|
63
|
+
so_empty: "Tan vacío...",
|
|
64
|
+
no_results: "No hay resultados con el filtro/orden aplicado",
|
|
65
|
+
refresh_data: "Actualizar datos",
|
|
66
|
+
dark_mode: "Oscuro",
|
|
67
|
+
light_mode: "Claro",
|
|
68
|
+
system_mode: "Sistema",
|
|
69
|
+
ok: "Aceptar",
|
|
70
|
+
save_collection_config: "Guardar la estructura de la colección",
|
|
71
|
+
search_for_more_icons: "Buscar más iconos…",
|
|
72
|
+
ai_modified: "Modificado por IA",
|
|
73
|
+
size_label: "Tamaño",
|
|
74
|
+
group_by: "Agrupar por",
|
|
75
|
+
initialize_kanban_order: "Inicializar el orden para Kanban",
|
|
76
|
+
copy_id: "Copiar ID",
|
|
77
|
+
add_specific: "Añadir {{name}}",
|
|
78
|
+
select_specific: "Seleccionar {{name}}",
|
|
79
|
+
select_from: "Seleccionar de {{name}}",
|
|
80
|
+
done: "Hecho",
|
|
81
|
+
log_out: "Cerrar sesión",
|
|
82
|
+
column_cannot_be_edited: "Esta columna no se puede editar directamente",
|
|
83
|
+
close: "Cerrar",
|
|
84
|
+
unsaved_local_changes: "Cambios locales sin guardar",
|
|
85
|
+
unsaved_local_changes_description: "Este documento ha sido editado localmente y tiene cambios sin guardar. Estos cambios locales se perderán si no los aplicas.",
|
|
86
|
+
preview_changes: "Previsualizar cambios",
|
|
87
|
+
apply_changes: "Aplicar cambios",
|
|
88
|
+
discard_local_changes: "Descartar cambios locales",
|
|
89
|
+
preview_local_changes: "Previsualizar cambios locales",
|
|
90
|
+
preview_local_changes_description: "Estos son los cambios locales que se aplicarán al formulario.",
|
|
91
|
+
type: "Tipo",
|
|
92
|
+
string: "cadena",
|
|
93
|
+
number: "número",
|
|
94
|
+
boolean: "booleano",
|
|
95
|
+
date: "fecha",
|
|
96
|
+
map: "mapa",
|
|
97
|
+
array: "lista",
|
|
98
|
+
arrays_of_arrays_not_supported: "Las listas de listas no están soportadas.",
|
|
99
|
+
data_type_not_supported: "Tipo de datos {{dataType}} no soportado aún",
|
|
100
|
+
passkey_error_unsupported: "Tu dispositivo o navegador no soporta passkeys.",
|
|
101
|
+
|
|
102
|
+
// ─── Entity form feedback ─────────────────────────────────────
|
|
103
|
+
saved_correctly: "Guardado correctamente",
|
|
104
|
+
error_before_saving: "Error al preparar los datos",
|
|
105
|
+
error_after_saving: "Error en el proceso posterior al guardado",
|
|
106
|
+
error_saving_entity: "Error al guardar la entidad",
|
|
107
|
+
entity_does_not_exist: "Esta entidad no existe en la base de datos",
|
|
108
|
+
form_modified: "Este formulario ha sido modificado",
|
|
109
|
+
form_in_sync: "El formulario actual está sincronizado con la base de datos",
|
|
110
|
+
fix_errors_before_saving: "Corrija los errores resaltados antes de guardar",
|
|
111
|
+
|
|
112
|
+
admin: "Admin",
|
|
113
|
+
home: "Inicio",
|
|
114
|
+
this_form_has_errors: "Este formulario tiene errores",
|
|
115
|
+
error_loading_navigation: "Error cargando la navegación",
|
|
116
|
+
error_loading_auth: "Error cargando la autenticación",
|
|
117
|
+
this_form_has_been_modified: "Este formulario ha sido modificado",
|
|
118
|
+
current_form_in_sync: "El formulario actual está sincronizado con la base de datos",
|
|
119
|
+
unexpected_value: "Valor inesperado",
|
|
120
|
+
unexpected_value_click_to_edit: "Valor inesperado. Haz clic para editar",
|
|
121
|
+
unexpected_reference_value: "Valor de referencia inesperado. Haz clic para editar",
|
|
122
|
+
copy_url_to_clipboard: "Copiar URL al portapapeles",
|
|
123
|
+
open_image_in_new_tab: "Abrir imagen en una nueva pestaña",
|
|
124
|
+
reference_not_set: "Referencia no establecida",
|
|
125
|
+
reference_does_not_exist: "La referencia no existe",
|
|
126
|
+
entity_not_found: "Entidad no encontrada",
|
|
127
|
+
file_not_found: "Archivo no encontrado",
|
|
128
|
+
unsaved_changes_in_entity: "Tienes cambios sin guardar en esta entidad.",
|
|
129
|
+
delete_this_role: "Eliminar este rol",
|
|
130
|
+
no_roles_yet: "Aún no tienes roles.",
|
|
131
|
+
create_default_roles: "Crear roles por defecto",
|
|
132
|
+
delete_role_confirmation: "¿Estás seguro de que quieres eliminar este rol?",
|
|
133
|
+
delete_this_user: "Eliminar este usuario",
|
|
134
|
+
no_users_yet: "Aún no hay usuarios",
|
|
135
|
+
add_logged_user_as_admin: "Añadir al usuario autenticado como administrador",
|
|
136
|
+
add_current_user_as_admin: "Añadir usuario actual como administrador",
|
|
137
|
+
create_default_roles_and_add_admin: "Crear roles por defecto y añadir usuario actual como administrador",
|
|
138
|
+
delete_user_confirmation: "¿Estás seguro de que quieres eliminar a este usuario?",
|
|
139
|
+
create_your_users_and_roles: "Crea tus usuarios y roles",
|
|
140
|
+
no_users_or_roles_defined: "No tienes usuarios ni roles. Puedes crear los roles por defecto y añadirte a ti mismo como administrador.",
|
|
141
|
+
no_permission_to_view_users: "No tienes permisos para ver los usuarios",
|
|
142
|
+
no_permission_to_view_roles: "No tienes permisos para ver los roles",
|
|
143
|
+
no_permission_description: "Contacta a un administrador si necesitas acceso a esta sección.",
|
|
144
|
+
save_before_changing_schema: "Debes guardar el documento antes de cambiar el esquema",
|
|
145
|
+
edit_schema_for_this_form: "Editar esquema para este formulario",
|
|
146
|
+
no_permissions_to_edit_collection: "No tienes permisos para editar esta colección",
|
|
147
|
+
browser_does_not_support_audio: "Tu navegador no soporta el elemento de audio.",
|
|
148
|
+
user_not_found: "Usuario no encontrado: {{value}}",
|
|
149
|
+
|
|
150
|
+
// ─── Collection view actions ──────────────────────────────────
|
|
151
|
+
delete_selected: "Eliminar",
|
|
152
|
+
cannot_delete_selected: "Has seleccionado al menos una entidad que no puedes eliminar",
|
|
153
|
+
|
|
154
|
+
// ─── Array / field containers ─────────────────────────────────
|
|
155
|
+
add_entry: "Añadir",
|
|
156
|
+
add_on_top: "Añadir arriba",
|
|
157
|
+
add_below: "Añadir debajo",
|
|
158
|
+
add_to_field: "Añadir a {{fieldName}}",
|
|
159
|
+
value: "Valor",
|
|
160
|
+
key: "Clave",
|
|
161
|
+
drag_drop_multiple: "Arrastra y suelta algunos archivos aquí, o haz clic para seleccionar archivos. Arrastra para reordenar.",
|
|
162
|
+
drag_drop_single: "Arrastra y suelta un archivo aquí, o haz clic para seleccionar uno",
|
|
163
|
+
|
|
164
|
+
// ─── Navigation / scaffold ────────────────────────────────────
|
|
165
|
+
open_menu: "Abrir menú",
|
|
166
|
+
close_drawer: "Cerrar panel",
|
|
167
|
+
navigation_drawer: "Panel de navegación",
|
|
168
|
+
collapse: "Contraer",
|
|
169
|
+
expand: "Expandir",
|
|
170
|
+
|
|
171
|
+
// ─── Error states ─────────────────────────────────────────────
|
|
172
|
+
error: "Error",
|
|
173
|
+
error_uploading_file: "Error al subir archivo",
|
|
174
|
+
error_deleting: "Error al eliminar",
|
|
175
|
+
error_before_delete: "Error antes de eliminar",
|
|
176
|
+
error_updating_asset: "Error al actualizar recurso",
|
|
177
|
+
error_deleting_asset: "Error al eliminar recurso",
|
|
178
|
+
error_firestore_index: "Se requiere un índice de Firestore para esta consulta.",
|
|
179
|
+
create_index: "Crear índice",
|
|
180
|
+
value_is_not_reference: "El valor no es una referencia.",
|
|
181
|
+
click_to_edit: "Haz clic para editar",
|
|
182
|
+
data_is_not_array_of_references: "Los datos no son un array de referencias",
|
|
183
|
+
collection_does_not_exist: "La colección especificada no existe. Revisa la consola",
|
|
184
|
+
|
|
185
|
+
// ─── Misc ─────────────────────────────────────────────────────
|
|
186
|
+
loading: "Cargando",
|
|
187
|
+
local_changes_applied: "Cambios locales aplicados al formulario",
|
|
188
|
+
local_changes_discarded: "Cambios locales descartados",
|
|
189
|
+
open_in_console: "Abrir en consola",
|
|
190
|
+
see_console_details: "Consulta la consola para más detalles.",
|
|
191
|
+
drop_here_create_group: "Suelta aquí para crear un nuevo grupo",
|
|
192
|
+
filter_for_null_values: "Filtrar por valores nulos",
|
|
193
|
+
value_updated_elsewhere: "Este valor ha sido actualizado en otro lugar",
|
|
194
|
+
add_property: "Añadir propiedad",
|
|
195
|
+
edit_name: "Editar {{name}}",
|
|
196
|
+
this_entity_not_exist: "Esta entidad no existe en la base de datos",
|
|
197
|
+
internal_error: "ERROR Interno",
|
|
198
|
+
are_you_sure_leave: "¿Estás seguro de que quieres salir de esta página?",
|
|
199
|
+
|
|
200
|
+
// ─── Rename group dialog ──────────────────────────────────────
|
|
201
|
+
rename_group: "Renombrar grupo",
|
|
202
|
+
group_name_label: "Nombre del grupo",
|
|
203
|
+
group_name_empty_error: "El nombre del grupo no puede estar vacío.",
|
|
204
|
+
group_name_exists_error: "Este nombre de grupo ya existe.",
|
|
205
|
+
|
|
206
|
+
// ─── Search ───────────────────────────────────────────────────
|
|
207
|
+
search_collections: "Buscar colecciones",
|
|
208
|
+
|
|
209
|
+
// ─── Navigation groups ────────────────────────────────────────
|
|
210
|
+
views_group: "Vistas",
|
|
211
|
+
|
|
212
|
+
// ─── Entity Edit View ─────────────────────────────────────────
|
|
213
|
+
youd_need_to_save_before_additional_collections: "Debes guardar la entidad antes de añadir colecciones adicionales",
|
|
214
|
+
|
|
215
|
+
// ─── Not Found Page ───────────────────────────────────────────
|
|
216
|
+
page_not_found: "Página no encontrada",
|
|
217
|
+
page_not_found_body: "Esta página no existe o podrías no tener acceso a ella",
|
|
218
|
+
back_to_home: "Volver al inicio",
|
|
219
|
+
|
|
220
|
+
// ─── Collection Editor ─────────────────────────────────────────
|
|
221
|
+
default_collection_view: "Vista por defecto de la colección",
|
|
222
|
+
table_view: "Tabla",
|
|
223
|
+
cards_view: "Tarjetas",
|
|
224
|
+
kanban_view: "Kanban",
|
|
225
|
+
choose_how_entities_displayed_default: "Elige cómo se deben mostrar por defecto las entidades",
|
|
226
|
+
|
|
227
|
+
document_view: "Vista de documento",
|
|
228
|
+
side_panel: "Panel lateral",
|
|
229
|
+
full_screen: "Pantalla completa",
|
|
230
|
+
should_documents_opened_full_screen: "¿Quieres que los documentos se abran en pantalla completa o en un panel lateral?",
|
|
231
|
+
|
|
232
|
+
select_custom_view: "Seleccionar vista personalizada",
|
|
233
|
+
no_custom_views_defined: "No hay vistas personalizadas definidas. Define tus vistas en los ajustes de personalización, antes de usar este diálogo.",
|
|
234
|
+
|
|
235
|
+
select_custom_action: "Seleccionar acción personalizada",
|
|
236
|
+
no_custom_actions_defined: "No hay acciones personalizadas definidas. Define tus acciones en los ajustes de personalización, antes de usar este diálogo.",
|
|
237
|
+
|
|
238
|
+
no_collections_found: "No se encontraron colecciones",
|
|
239
|
+
start_building_collections: "Empieza a crear colecciones en Rebase fácilmente. Mapea la información a tu base de datos existente, importa desde archivos o utiliza nuestras plantillas.",
|
|
240
|
+
create_first_collection: "Crea tu primera colección",
|
|
241
|
+
define_collections_programmatically: "También puedes definir colecciones programáticamente.",
|
|
242
|
+
edit_collection: "Editar colección",
|
|
243
|
+
no_permissions_edit_collection: "No tienes permisos para editar esta colección",
|
|
244
|
+
no_permissions_create_collection: "No tienes permisos para crear colecciones",
|
|
245
|
+
create_collection: "Crear colección",
|
|
246
|
+
update_collection: "Actualizar colección",
|
|
247
|
+
|
|
248
|
+
new_collection: "Nueva colección",
|
|
249
|
+
add_new_collection: "Añadir nueva colección",
|
|
250
|
+
collection_with_name: "Colección {{name}}",
|
|
251
|
+
change_icon: "Cambiar icono",
|
|
252
|
+
is_subcollection_of: "Esta es una subcolección de",
|
|
253
|
+
name: "Nombre",
|
|
254
|
+
collection_name_description: "Nombre de esta colección (usualmente un nombre en plural, ej. 'Productos')",
|
|
255
|
+
path: "Ruta",
|
|
256
|
+
relative_path_to_parent: "Ruta relativa al nivel superior (no es necesario incluir la ruta padre)",
|
|
257
|
+
path_in_database: "La ruta donde está almacenada esta colección en la base de datos",
|
|
258
|
+
singular_name: "Nombre en singular",
|
|
259
|
+
singular_name_description: "Opcionalmente define un nombre en singular para tus entidades",
|
|
260
|
+
description: "Descripción",
|
|
261
|
+
description_of_collection: "Descripción de la colección, puedes usar markdown",
|
|
262
|
+
collection_id: "ID de la Colección",
|
|
263
|
+
collection_id_description: "Este ID identifica a esta colección. Típicamente es el mismo que la ruta.",
|
|
264
|
+
collection_group: "Grupo de colección",
|
|
265
|
+
collection_group_description: "Un grupo de colección consiste en todas las colecciones con la misma ruta. Esto te permite realizar consultas sobre múltiples colecciones a la vez.",
|
|
266
|
+
advanced_settings: "Ajustes avanzados",
|
|
267
|
+
doc_history_global: "Historial de revisiones de documentos habilitado si está activado globalmente",
|
|
268
|
+
doc_history_enabled: "Historial de revisiones de documentos HABILITADO",
|
|
269
|
+
doc_history_not_enabled: "Historial de revisiones de documentos NO habilitado",
|
|
270
|
+
doc_history_description: "Al estar habilitado, cada documento de esta colección tendrá un registro de cambios. Esto es útil para fines de auditoría. Los datos se almacenan en una subcolección del documento en tu base de datos __history.",
|
|
271
|
+
document_id_generation: "Generación de IDs de documentos",
|
|
272
|
+
code_defined: "Definido por código",
|
|
273
|
+
users_must_define_id: "Los usuarios deben definir un ID",
|
|
274
|
+
users_can_define_id: "Los usuarios pueden definir un ID, pero no es obligatorio",
|
|
275
|
+
doc_id_auto_generated: "El ID del documento se genera automáticamente",
|
|
276
|
+
config_doc_id_generation: "Configura cómo se generan los IDs de los documentos al crear nuevas entidades.",
|
|
277
|
+
enable_text_search: "Habilitar búsqueda de texto para esta colección",
|
|
278
|
+
text_search_description: "Permite buscar texto en esta colección. Si no has especificado un mecanismo de búsqueda de texto, utilizará la búsqueda local incorporada. Esto no se recomienda para colecciones grandes, ya que puede incidir en el rendimiento.",
|
|
279
|
+
database_id: "ID de la base de datos",
|
|
280
|
+
default_text: "(por defecto)",
|
|
281
|
+
|
|
282
|
+
custom_actions: "Acciones personalizadas",
|
|
283
|
+
more_info: "Más información",
|
|
284
|
+
define_custom_actions_cli: "Define tus propias acciones personalizadas subiéndolas con la CLI.",
|
|
285
|
+
action_defined_in_code: "Esta acción está definida en el código con la clave",
|
|
286
|
+
add_custom_entity_action: "Añadir acción personalizada de entidad",
|
|
287
|
+
remove_this_action: "¿Eliminar esta acción?",
|
|
288
|
+
remove_action_warning: "Esto no eliminará ningún dato, sólo se retirará del CMS",
|
|
289
|
+
|
|
290
|
+
subcollections_of: "Subcolecciones de",
|
|
291
|
+
add_subcollection: "Añadir subcolección",
|
|
292
|
+
custom_views: "Vistas personalizadas",
|
|
293
|
+
define_custom_views_cli: "Define tus propias vistas personalizadas subiéndolas con la CLI.",
|
|
294
|
+
view_defined_in_code: "Esta vista se define en el código con la clave",
|
|
295
|
+
add_custom_entity_view: "Añadir vista de entidad personalizada",
|
|
296
|
+
delete_this_subcollection: "¿Eliminar esta subcolección?",
|
|
297
|
+
remove_collection_warning: "Esto no eliminará ningún dato, sólo la colección en el CMS",
|
|
298
|
+
remove_this_view: "¿Eliminar esta vista?",
|
|
299
|
+
remove_view_warning: "Esto no eliminará ningún dato, sólo la vista en el CMS",
|
|
300
|
+
|
|
301
|
+
no_collection_selected: "Ninguna colección seleccionada",
|
|
302
|
+
code_for_collection: "Código para",
|
|
303
|
+
use_config_define_json: "Usa esta configuración para definir la colección en formato JSON.",
|
|
304
|
+
customise_collection_code: "Si deseas personalizar la colección en código, puedes añadir este código a la configuración de tu aplicación de CMS.",
|
|
305
|
+
copied: "Copiado",
|
|
306
|
+
|
|
307
|
+
property_cant_be_edited: "Esta propiedad no se puede editar",
|
|
308
|
+
property_not_editable_description: "Puede que no tengas permisos para editarla o que esté definida en código y no se pueda modificar.",
|
|
309
|
+
delete_this_property: "¿Eliminar esta propiedad?",
|
|
310
|
+
delete_property_warning: "Esto no eliminará datos, sólo modificará la configuración de la colección.",
|
|
311
|
+
error_must_specify_id: "Debes especificar un id para el campo",
|
|
312
|
+
error_id_format: "El id sólo puede contener letras, números y guiones bajos (_), y no puede empezar con un número",
|
|
313
|
+
error_id_already_exists: "Ya existe otro campo con este ID",
|
|
314
|
+
error_must_specify_title: "Debes especificar un título para el campo",
|
|
315
|
+
custom_or_other: "Personalizado/Otro",
|
|
316
|
+
select_property_widget: "Selecciona un widget de propiedad",
|
|
317
|
+
error_changing_data_type: "Este widget utiliza un tipo de dato diferente al seleccionado inicialmente. Esto puede generar errores con los datos existentes.",
|
|
318
|
+
required: "Requerido",
|
|
319
|
+
|
|
320
|
+
enum_form_dialog: "Diálogo de formulario Enum",
|
|
321
|
+
imported_data_preview: "Vista previa de datos importados",
|
|
322
|
+
entities_with_same_id_overwritten: "Las entidades con el mismo id se sobrescribirán",
|
|
323
|
+
collection_editor: "Editor de colecciones",
|
|
324
|
+
properties_in_this_group: "Propiedades en este grupo",
|
|
325
|
+
data_property_mapping: "Mapeo de propiedades",
|
|
326
|
+
property_edit_view: "Vista de edición de propiedad",
|
|
327
|
+
all_of_these: "Todos estos",
|
|
328
|
+
any_of_these: "Cualquiera de estos",
|
|
329
|
+
|
|
330
|
+
only_admins_edit_roles: "Sólo los administradores pueden editar roles",
|
|
331
|
+
error_user_not_found: "Usuario no encontrado",
|
|
332
|
+
all_roles: "Todos los roles",
|
|
333
|
+
role: "Rol",
|
|
334
|
+
name_of_this_role: "Nombre del rol",
|
|
335
|
+
id_of_this_role: "ID del rol",
|
|
336
|
+
create_entities: "Crear entidades",
|
|
337
|
+
read_entities: "Leer entidades",
|
|
338
|
+
update_entities: "Actualizar entidades",
|
|
339
|
+
delete_entities: "Eliminar entidades",
|
|
340
|
+
all_collections: "Todas las colecciones",
|
|
341
|
+
create_entities_in_collections: "Crear entidades en colecciones",
|
|
342
|
+
access_all_data_in_every_collection: "Acceder a todos los datos en cada colección",
|
|
343
|
+
update_data_in_any_collection: "Actualizar datos en cualquier colección",
|
|
344
|
+
delete_data_in_any_collection: "Eliminar datos en cualquier colección",
|
|
345
|
+
allow_all_permissions_in_this_collections: "Permitir todos los permisos en estas colecciones",
|
|
346
|
+
all: "Todo",
|
|
347
|
+
customise_permissions_description: "Puedes personalizar los permisos de los usuarios para este rol en cada colección",
|
|
348
|
+
create_collections: "Crear colecciones",
|
|
349
|
+
yes: "Sí",
|
|
350
|
+
no: "No",
|
|
351
|
+
can_user_create_collections: "¿Puede el usuario crear colecciones?",
|
|
352
|
+
edit_collections: "Editar colecciones",
|
|
353
|
+
only_own_collections: "Sólo las propias",
|
|
354
|
+
own: "Propias",
|
|
355
|
+
can_user_edit_collections: "¿Puede el usuario editar colecciones?",
|
|
356
|
+
delete_collections: "Eliminar colecciones",
|
|
357
|
+
can_user_delete_collections: "¿Puede el usuario eliminar colecciones?",
|
|
358
|
+
error_saving_role: "Hubo un error al guardar este rol",
|
|
359
|
+
create_role: "Crear rol",
|
|
360
|
+
update: "Actualizar",
|
|
361
|
+
|
|
362
|
+
only_admins_change_roles: "Sólo los administradores pueden cambiar roles",
|
|
363
|
+
must_be_at_least_one_admin: "Tiene que haber al menos un administrador",
|
|
364
|
+
logged_user_not_found: "Usuario autenticado no encontrado",
|
|
365
|
+
user: "Usuario",
|
|
366
|
+
user_id: "ID del usuario",
|
|
367
|
+
name_of_this_user: "Nombre de este usuario",
|
|
368
|
+
email_of_this_user: "Correo electrónico de este usuario",
|
|
369
|
+
roles: "Roles",
|
|
370
|
+
create_user: "Crear usuario",
|
|
371
|
+
|
|
372
|
+
users: "Usuarios",
|
|
373
|
+
add_user: "Añadir usuario",
|
|
374
|
+
add_role: "Añadir rol",
|
|
375
|
+
is_admin: "Es Administrador",
|
|
376
|
+
default_permissions: "Permisos predeterminados",
|
|
377
|
+
created_on: "Creado en",
|
|
378
|
+
email: "Email",
|
|
379
|
+
id: "ID",
|
|
380
|
+
read: "Leer",
|
|
381
|
+
|
|
382
|
+
column_in_file: "Columna en el archivo",
|
|
383
|
+
map_to_property: "Mapear a Propiedad",
|
|
384
|
+
default_values: "Valores por defecto",
|
|
385
|
+
default_values_description: "Puedes seleccionar un valor por defecto para columnas no mapeadas o valores en blanco:",
|
|
386
|
+
property: "Propiedad",
|
|
387
|
+
default_value: "Valor predeterminado",
|
|
388
|
+
autogenerate_id: "Autogenerar ID",
|
|
389
|
+
id_column_description: "Columna que se utilizará como ID de cada documento",
|
|
390
|
+
do_not_set_value: "No asignar valor",
|
|
391
|
+
set_value_to_true: "Asignar valor verdadero (true)",
|
|
392
|
+
set_value_to_false: "Asignar valor falso (false)",
|
|
393
|
+
drag_and_drop_file: "Arrastra y suelta un archivo aquí, o haz clic para subirlo",
|
|
394
|
+
error_saving_data: "Error al guardar los datos",
|
|
395
|
+
retry: "Reintentar",
|
|
396
|
+
saving_data: "Guardando datos",
|
|
397
|
+
entities_saved: "entidades guardadas",
|
|
398
|
+
do_not_close_tab: "No cierres esta pestaña o se interrumpirá la importación",
|
|
399
|
+
import: "Importar",
|
|
400
|
+
import_data: "Importar datos",
|
|
401
|
+
upload_file_description: "Sube un archivo CSV, Excel o JSON y mapéalo a tu esquema actual",
|
|
402
|
+
back: "Atrás",
|
|
403
|
+
next: "Siguiente",
|
|
404
|
+
save_data: "Guardar datos",
|
|
405
|
+
use_column_as_id: "Usar esta columna como ID",
|
|
406
|
+
do_not_import_property: "No importar esta propiedad",
|
|
407
|
+
entities_will_be_overwritten: "Las entidades con el mismo ID se sobrescribirán",
|
|
408
|
+
data_imported_successfully: "Datos importados correctamente",
|
|
409
|
+
export: "Exportar",
|
|
410
|
+
export_data: "Exportar datos",
|
|
411
|
+
download_table_csv: "Descargar el contenido de esta tabla como CSV",
|
|
412
|
+
csv: "CSV",
|
|
413
|
+
json: "JSON",
|
|
414
|
+
dates_as_timestamps: "Fechas como marcas de tiempo (timestamps)",
|
|
415
|
+
dates_as_strings: "Fechas como cadenas (strings)",
|
|
416
|
+
flatten_arrays: "Aplanar arrays",
|
|
417
|
+
download: "Descargar",
|
|
418
|
+
large_number_of_documents: "Esta colección posee un gran número de documentos ({{count}}).",
|
|
419
|
+
include_undefined_values: "Incluir valores omitidos (undefined)",
|
|
420
|
+
submit: "Enviar",
|
|
421
|
+
|
|
422
|
+
no_filterable_properties: "No hay propiedades filtrables disponibles",
|
|
423
|
+
apply_filters: "Aplicar filtros",
|
|
424
|
+
list: "Lista",
|
|
425
|
+
table_view_mode: "Tabla",
|
|
426
|
+
cards: "Tarjetas",
|
|
427
|
+
board: "Tablero",
|
|
428
|
+
initialize_kanban_order_desc: "Esto asignará valores secuenciales para todos los elementos sin ordenación. Los elementos mantendrán su orden actual en cada columna.",
|
|
429
|
+
kanban_view_not_available: "La vista Kanban no está disponible",
|
|
430
|
+
kanban_view_requires_enum: "La vista Kanban requiere una propiedad de tipo texto con opciones (enum) para poder agrupar. Por favor, asegúrate de añadir una propiedad de este tipo a la colección para utilizar esta vista.",
|
|
431
|
+
no_enum_values_configured: 'No hay opciones (enum) configuradas para la propiedad "{{property}}"',
|
|
432
|
+
items_need_backfill: "Existen elementos sin valores de ordenación. Inicialízalos para habilitar la reorganización con arrastrar y soltar.",
|
|
433
|
+
kanban_order_not_configured: "El ordenamiento por arrastrar y soltar no está configurado. Establece una propiedad de orden en la configuración de la colección para persistir las posiciones de las tarjetas.",
|
|
434
|
+
initialize: "Inicializar",
|
|
435
|
+
confirm_multiple_delete: "¿Confirmar eliminación múltiple?",
|
|
436
|
+
delete_entity_confirm_title: "¿Confirmas que quieres borrar el elemento '{{entityName}}'?",
|
|
437
|
+
multiple_deleted: "Múltiples eliminados",
|
|
438
|
+
some_entities_deleted: "Algunas entidades han sido eliminadas, pero no todas",
|
|
439
|
+
error_deleting_entities: "Error al eliminar entidades",
|
|
440
|
+
deleted: "eliminado",
|
|
441
|
+
|
|
442
|
+
/** Recently extracted strings for collection editor */
|
|
443
|
+
/** AI Collection Generator Popover */
|
|
444
|
+
generate_collection_with_ai: "Generar colección con IA",
|
|
445
|
+
modify_collection_with_ai: "Modificar colección con IA",
|
|
446
|
+
describe_collection_to_create: "Describe la colección que quieres crear.",
|
|
447
|
+
describe_changes_to_make: "Describe los cambios que quieres hacer en esta colección.",
|
|
448
|
+
ai_placeholder_create: "p. ej., Crear una colección de productos con nombre, precio, descripción y categoría...",
|
|
449
|
+
ai_placeholder_modify: "p. ej., Agregar un campo de imagen en miniatura con almacenamiento, hacer el precio obligatorio...",
|
|
450
|
+
ai_assist: "Asistente IA",
|
|
451
|
+
generating: "Generando...",
|
|
452
|
+
|
|
453
|
+
this_is_subcollection_of: "Esta es una subcolección de",
|
|
454
|
+
use_existing_paths_database: "Usa una de las rutas existentes en tu base de datos:",
|
|
455
|
+
describe_collection_ai: "Describe tu colección a la IA:",
|
|
456
|
+
generate_with_ai: "Generar con IA",
|
|
457
|
+
create_from_json_config: "Crear desde configuración JSON:",
|
|
458
|
+
paste_json_config: "Pegar configuración JSON",
|
|
459
|
+
create_collection_from_file_formats: "Crear una colección desde un archivo (csv, json, xls, xslx...)",
|
|
460
|
+
select_template: "Seleccionar una plantilla:",
|
|
461
|
+
products: "Productos",
|
|
462
|
+
collection_products_subtitle: "Una colección de productos con imágenes, precios y existencias",
|
|
463
|
+
collection_users_subtitle: "Una colección de usuarios con correos electrónicos, nombres y roles",
|
|
464
|
+
blog_posts: "Entradas de blog",
|
|
465
|
+
collection_blog_posts_subtitle: "Una colección de artículos con imágenes, autores y contenido complejo",
|
|
466
|
+
pages: "Páginas",
|
|
467
|
+
collection_pages_subtitle: "Una colección de páginas con imágenes, autores y contenido complejo",
|
|
468
|
+
continue_from_scratch: "Continuar desde cero",
|
|
469
|
+
|
|
470
|
+
/** Admin views config */
|
|
471
|
+
cms_users: "Usuarios del CMS",
|
|
472
|
+
roles_menu: "Roles",
|
|
473
|
+
project_settings: "Ajustes del proyecto",
|
|
474
|
+
|
|
475
|
+
by_signing_in_you_agree_to_our: "Al iniciar sesión aceptas nuestros",
|
|
476
|
+
terms_and_conditions: "Términos y Condiciones",
|
|
477
|
+
and_our: "y nuestra",
|
|
478
|
+
privacy_policy: "Política de Privacidad",
|
|
479
|
+
email_password: "Email/Contraseña",
|
|
480
|
+
sign_in_with_google: "Iniciar sesión con Google",
|
|
481
|
+
|
|
482
|
+
// --- Auth error messages ---
|
|
483
|
+
auth_user_not_found: "Usuario no encontrado",
|
|
484
|
+
auth_wrong_password: "Contraseña incorrecta. Por favor, inténtalo de nuevo.",
|
|
485
|
+
auth_user_disabled: "Usuario deshabilitado. Por favor, contacta con soporte.",
|
|
486
|
+
auth_account_exists_with_different_credential: "Ya existe una cuenta con un método de inicio de sesión diferente",
|
|
487
|
+
auth_email_already_in_use: "El correo electrónico ya está en uso",
|
|
488
|
+
auth_google_permissions_required: "Necesitas conceder permisos adicionales para gestionar tus proyectos de Google Cloud",
|
|
489
|
+
auth_invalid_email_password: "Por favor introduce tanto el correo electrónico como la contraseña",
|
|
490
|
+
auth_enter_email_first: "Por favor introduce tu correo electrónico primero",
|
|
491
|
+
auth_password_reset_sent: "Correo electrónico de restablecimiento de contraseña enviado",
|
|
492
|
+
auth_sign_in_account: "Inicia sesión en tu cuenta",
|
|
493
|
+
auth_create_new_account: "Crea una cuenta nueva",
|
|
494
|
+
auth_password: "Contraseña",
|
|
495
|
+
auth_reset_password: "Restablecer contraseña",
|
|
496
|
+
auth_new_user: "¿Usuario nuevo?",
|
|
497
|
+
auth_have_account: "¿Tienes una cuenta?",
|
|
498
|
+
auth_sign_in: "Iniciar Sesión",
|
|
499
|
+
auth_sign_up: "Regístrate",
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
auto_setup_collections_button: "Configurar colecciones automáticamente",
|
|
503
|
+
auto_setup_collections_title: "¿Configurar colecciones automáticamente?",
|
|
504
|
+
auto_setup_collections_desc: "Esto creará automáticamente la configuración de las colecciones que <b>NO</b> estén mapeadas",
|
|
505
|
+
this_can_take_a_minute: "Esto puede tardar un minuto o dos",
|
|
506
|
+
no_collections_found_to_setup: "No se encontraron colecciones para configurar",
|
|
507
|
+
collections_have_been_setup: "¡Tus colecciones han sido configuradas!",
|
|
508
|
+
error_setting_up_collections: "Error al configurar colecciones",
|
|
509
|
+
|
|
510
|
+
// --- Home Suggestions ---
|
|
511
|
+
add_your: "Añade tus",
|
|
512
|
+
database_collections: "colecciones de base de datos",
|
|
513
|
+
no_unmapped_collections: "No hay colecciones sin mapear en la base de datos",
|
|
514
|
+
query_and_update_with_datatalk: "Consulta y actualiza tus datos en lenguaje natural con",
|
|
515
|
+
|
|
516
|
+
welcome_to_rebase: "Bienvenido a Rebase Cloud",
|
|
517
|
+
admin_panel_ready_bring_data: "Tu panel de administración está listo. Traigamos tus datos.",
|
|
518
|
+
admin_panel_ready_get_started: "Tu panel de administración está listo. Así es como puedes empezar.",
|
|
519
|
+
auto_detect_collections: "Autodetectar colecciones",
|
|
520
|
+
auto_detect_collections_desc: "Deja que la IA escanee tu base de datos y genere esquemas de colección automáticamente.",
|
|
521
|
+
create_a_collection: "Crear una colección",
|
|
522
|
+
create_collection_desc: "Define manualmente tu primera colección desde cero usando el editor visual.",
|
|
523
|
+
read_the_docs: "Consulta la documentación",
|
|
524
|
+
read_the_docs_desc: "Aprende cómo personalizar campos, vistas, acciones y más.",
|
|
525
|
+
explore_docs: "Explorar la documentación",
|
|
526
|
+
want_to_customize_with_code: "¿Quieres personalizar con código? Ejecuta",
|
|
527
|
+
to_scaffold_a_local_project: "para crear un proyecto local.",
|
|
528
|
+
|
|
529
|
+
// ─── Collection Editor — Validation ──────────────────────────
|
|
530
|
+
validation: "Validación",
|
|
531
|
+
unique: "Único",
|
|
532
|
+
required_message: "Mensaje de campo obligatorio",
|
|
533
|
+
required_tooltip: "No podrás guardar esta entidad si este valor no está establecido",
|
|
534
|
+
unique_tooltip: "No puede haber múltiples entidades con el mismo valor",
|
|
535
|
+
lowercase: "Minúsculas",
|
|
536
|
+
uppercase: "Mayúsculas",
|
|
537
|
+
trim: "Recortar espacios",
|
|
538
|
+
exact_length: "Longitud exacta",
|
|
539
|
+
min_length: "Longitud mínima",
|
|
540
|
+
max_length: "Longitud máxima",
|
|
541
|
+
matches_regex: "Coincide con regex",
|
|
542
|
+
not_valid_regexp: "No es una expresión regular válida",
|
|
543
|
+
regex_helper: "ej. /^\\d+$/ solo para dígitos",
|
|
544
|
+
min_value: "Valor mínimo",
|
|
545
|
+
max_value: "Valor máximo",
|
|
546
|
+
less_than: "Menor que",
|
|
547
|
+
more_than: "Mayor que",
|
|
548
|
+
positive_value: "Valor positivo",
|
|
549
|
+
negative_value: "Valor negativo",
|
|
550
|
+
integer_value: "Valor entero",
|
|
551
|
+
|
|
552
|
+
// ─── Collection Editor — Property Edit ───────────────────────
|
|
553
|
+
invalid_regular_expression: "Expresión regular no válida",
|
|
554
|
+
must_specify_target_collection: "Debes especificar una colección de destino para el campo",
|
|
555
|
+
need_specify_repeat_field: "Debes especificar un campo de repetición",
|
|
556
|
+
need_specify_block_properties: "Debes especificar las propiedades de este bloque",
|
|
557
|
+
incomplete_condition: "Condición incompleta - por favor selecciona un campo",
|
|
558
|
+
field_name: "Nombre del campo",
|
|
559
|
+
|
|
560
|
+
// ─── Collection Editor — Display & Config ────────────────────
|
|
561
|
+
kanban_column_property: "Propiedad de columna Kanban",
|
|
562
|
+
select_a_property: "Seleccionar una propiedad",
|
|
563
|
+
kanban_property_not_found: "La propiedad \"{{property}}\" no existe o no es una propiedad de tipo string con enum. Selecciona una propiedad válida o borra la selección.",
|
|
564
|
+
no_enum_string_properties: "No se encontraron propiedades de tipo string con enum. Agrega una propiedad string con enumValues para usar la vista Kanban.",
|
|
565
|
+
kanban_column_description: "Selecciona una propiedad de tipo string con valores enum para agrupar entidades en columnas",
|
|
566
|
+
create_property: "+ Crear propiedad \"{{property}}\"",
|
|
567
|
+
order_property: "Propiedad de orden",
|
|
568
|
+
order_property_not_found: "La propiedad \"{{property}}\" no existe o no es una propiedad numérica. Selecciona una propiedad válida o borra la selección.",
|
|
569
|
+
no_number_properties: "No se encontraron propiedades numéricas. Agrega una propiedad numérica para habilitar el ordenamiento.",
|
|
570
|
+
order_property_description: "Selecciona una propiedad numérica para mantener el orden de los elementos",
|
|
571
|
+
display_settings: "Configuración de visualización",
|
|
572
|
+
default_row_size: "Tamaño de fila predeterminado",
|
|
573
|
+
side_dialog_width: "Ancho del diálogo lateral",
|
|
574
|
+
side_dialog_width_description: "Opcionalmente define el ancho (en píxeles) del diálogo lateral de entidades. El valor predeterminado es 768px",
|
|
575
|
+
inline_editing_enabled: "Los datos se pueden editar directamente en la vista de tabla",
|
|
576
|
+
inline_editing_disabled: "Los datos solo se pueden editar en la vista de formulario",
|
|
577
|
+
inline_editing_description: "Permitir editar datos directamente en la vista de tabla, sin abrir la vista de formulario.",
|
|
578
|
+
include_json_view: "Incluir vista JSON",
|
|
579
|
+
no_json_view: "No incluir vista JSON",
|
|
580
|
+
json_view_description: "Incluir la representación JSON del documento.",
|
|
581
|
+
not_found_suffix: "no encontrado",
|
|
582
|
+
|
|
583
|
+
// ─── Editor ─────────────────────────────────────────────────
|
|
584
|
+
editor_text: "Texto",
|
|
585
|
+
editor_text_description: "Empieza a escribir con texto plano.",
|
|
586
|
+
editor_heading_1: "Encabezado 1",
|
|
587
|
+
editor_heading_1_description: "Encabezado de sección grande.",
|
|
588
|
+
editor_heading_2: "Encabezado 2",
|
|
589
|
+
editor_heading_2_description: "Encabezado de sección mediano.",
|
|
590
|
+
editor_heading_3: "Encabezado 3",
|
|
591
|
+
editor_heading_3_description: "Encabezado de sección pequeño.",
|
|
592
|
+
editor_todo_list: "Lista de tareas",
|
|
593
|
+
editor_todo_list_description: "Sigue tus tareas con una lista de tareas.",
|
|
594
|
+
editor_bullet_list: "Lista con viñetas",
|
|
595
|
+
editor_bullet_list_description: "Crea una lista simple con viñetas.",
|
|
596
|
+
editor_numbered_list: "Lista numerada",
|
|
597
|
+
editor_numbered_list_description: "Crea una lista con numeración.",
|
|
598
|
+
editor_quote: "Cita",
|
|
599
|
+
editor_quote_description: "Captura una cita.",
|
|
600
|
+
editor_code: "Código",
|
|
601
|
+
editor_code_description: "Captura un fragmento de código.",
|
|
602
|
+
editor_image: "Imagen",
|
|
603
|
+
editor_image_description: "Sube una imagen desde tu ordenador.",
|
|
604
|
+
editor_multiple: "Múltiple",
|
|
605
|
+
editor_link: "Enlace",
|
|
606
|
+
editor_save: "Guardar",
|
|
607
|
+
editor_cancel: "Cancelar",
|
|
608
|
+
editor_remove_link: "Eliminar enlace",
|
|
609
|
+
editor_paste_or_type_link: "Pega o escribe el enlace",
|
|
610
|
+
editor_open_in_new_window: "Abrir en una ventana nueva",
|
|
611
|
+
editor_bold: "Negrita",
|
|
612
|
+
editor_italic: "Cursiva",
|
|
613
|
+
editor_underline: "Subrayado",
|
|
614
|
+
editor_strikethrough: "Tachado",
|
|
615
|
+
editor_autocomplete: "Autocompletar",
|
|
616
|
+
editor_autocomplete_description: "Añade texto basado en el contexto.",
|
|
617
|
+
|
|
618
|
+
settings_heading: "Ajustes",
|
|
619
|
+
settings_project_name: "Nombre del proyecto",
|
|
620
|
+
settings_default_language: "Idioma predeterminado",
|
|
621
|
+
settings_default_language_caption: "Selecciona el idioma base para este proyecto. Los usuarios pueden modificar esta preferencia en sus ajustes personales.",
|
|
622
|
+
settings_enable_local_text_search: "Habilitar búsqueda de texto local",
|
|
623
|
+
settings_local_text_search_caption: "Habilita la búsqueda de texto local para todas las colecciones. Esto te permitirá buscar campos de texto en tus colecciones usando la barra de búsqueda de Rebase. Ten en cuenta que esta función puede implicar un mayor número de lecturas, ya que indexará todos los campos de texto de tus colecciones.",
|
|
624
|
+
settings_doc_history_all_collections: "Historial de documentos habilitado para todas las colecciones",
|
|
625
|
+
settings_doc_history_caption: "Cuando está activado, todas las colecciones tendrán el historial habilitado por defecto. Puedes cambiar este ajuste en cada colección. El historial se guardará en la subcolección __history de cada documento.",
|
|
626
|
+
settings_theme: "Tema",
|
|
627
|
+
settings_primary_color: "Color primario",
|
|
628
|
+
settings_secondary_color: "Color secundario",
|
|
629
|
+
settings_sample_theme_components: "Componentes de ejemplo del tema",
|
|
630
|
+
settings_drag_drop_logo: "Arrastra y suelta tu logotipo aquí",
|
|
631
|
+
settings_security_rules: "Reglas de seguridad",
|
|
632
|
+
settings_security_rules_description: "Rebase utiliza las reglas de seguridad de Firebase para restringir el acceso a los datos. Al crear un nuevo usuario a través de Rebase, se añade el atributo personalizado rebaseUser al usuario en el proyecto cliente. Al añadir las siguientes reglas de seguridad a tu proyecto, te aseguras de que los usuarios de Rebase puedan acceder a los datos a través de Rebase.",
|
|
633
|
+
settings_security_rules_add_domain: "Recuerda añadir el dominio {{domain}} a los dominios permitidos de tu proveedor",
|
|
634
|
+
settings_security_rules_caption: "Estas reglas restringen el acceso a los datos solo para usuarios de Rebase, pero no aplican los permisos a nivel de base de datos. Los permisos se aplican en el frontend, lo que funciona bien en la mayoría de los proyectos. Si necesitas aplicar los permisos a nivel de base de datos, puedes modificar estas reglas de seguridad. Los roles asignados a un usuario se configuran como atributos personalizados en el token de autenticación de Firebase, por lo que puedes usarlos en tus reglas de seguridad.",
|
|
635
|
+
|
|
636
|
+
// ─── Text Search Dialog ─────────────────────────────────────
|
|
637
|
+
text_search_dialog_title: "Activar búsqueda de texto",
|
|
638
|
+
text_search_local_not_recommended: "La búsqueda de texto local no es recomendable para colecciones grandes.",
|
|
639
|
+
text_search_local_fetch_warning: "Ten en cuenta que activar la búsqueda de texto local requiere descargar todos los documentos de la colección y almacenarlos en el navegador. Esto puede ser ineficiente para colecciones grandes y generar costes adicionales.",
|
|
640
|
+
text_search_external_suggestion: "Para colecciones más grandes, te recomendamos usar un motor de búsqueda externo como Algolia o Elastic Search, y asignar un delegado de búsqueda a tu configuración.",
|
|
641
|
+
text_search_local_description: "La búsqueda de texto local es la forma más sencilla de activar la búsqueda de texto en tu colección. Carga todos los documentos de la colección en el navegador y realiza la búsqueda de forma local. Es la opción recomendada para colecciones pequeñas.",
|
|
642
|
+
text_search_own_implementation: "Has implementado tu propio controlador de búsqueda de texto. Puedes activar la búsqueda de texto para tu colección.",
|
|
643
|
+
text_search_enable_for_collection: "Activar para esta colección",
|
|
644
|
+
text_search_enable_for_project: "Activar para el proyecto",
|
|
645
|
+
text_search_enabled_snackbar: "Búsqueda de texto local activada",
|
|
646
|
+
|
|
647
|
+
// ─── Missing keys (English placeholders — translate) ───
|
|
648
|
+
no_filter: "No filter",
|
|
649
|
+
is_true: "is true",
|
|
650
|
+
is_false: "is false",
|
|
651
|
+
error_uploading_file_size: "Error uploading file: File is larger than {{maxSize}} bytes",
|
|
652
|
+
error_uploading_file_type: "Error uploading file: File type is not supported",
|
|
653
|
+
drag_drop_files: "Drag 'n' drop some files here, or click here to edit",
|
|
654
|
+
drag_drop_file: "Drag 'n' drop a file here, or click here to edit",
|
|
655
|
+
select_reference: "Select reference",
|
|
656
|
+
select_references: "Select references",
|
|
657
|
+
account_settings: "Account Settings",
|
|
658
|
+
profile: "Profile",
|
|
659
|
+
sessions: "Sesiones",
|
|
660
|
+
security: "Seguridad",
|
|
661
|
+
change_password: "Cambiar Contraseña",
|
|
662
|
+
current_password: "Contraseña Actual",
|
|
663
|
+
new_password: "Nueva Contraseña",
|
|
664
|
+
confirm_password: "Confirmar Nueva Contraseña",
|
|
665
|
+
password_changed: "Contraseña cambiada con éxito. Se cerrará tu sesión.",
|
|
666
|
+
passwords_dont_match: "Las contraseñas no coinciden",
|
|
667
|
+
password_too_short: "La contraseña debe tener al menos 8 caracteres",
|
|
668
|
+
password_change_not_available: "El cambio de contraseña no está disponible para cuentas que usan proveedores de inicio de sesión externos.",
|
|
669
|
+
changing_password: "Cambiando...",
|
|
670
|
+
display_name: "Display Name",
|
|
671
|
+
photo_url: "Photo URL",
|
|
672
|
+
save_profile: "Save Profile",
|
|
673
|
+
saving: "Saving...",
|
|
674
|
+
no_active_sessions: "No active sessions found.",
|
|
675
|
+
revoking: "Revoking...",
|
|
676
|
+
revoke_all_sessions: "Revoke All Sessions",
|
|
677
|
+
unknown_device: "Unknown Device",
|
|
678
|
+
current: "Current",
|
|
679
|
+
role_id: "Role ID",
|
|
680
|
+
role_name: "Role Name",
|
|
681
|
+
add_reference: "Add reference",
|
|
682
|
+
add_reference_to: "Add reference to {{name}}",
|
|
683
|
+
role_deleted_successfully: "Role deleted successfully",
|
|
684
|
+
error_deleting_role: "Error deleting role",
|
|
685
|
+
collection_permissions: "Collection permissions",
|
|
686
|
+
collection: "Collection",
|
|
687
|
+
no_collections_configured: "No collections configured",
|
|
688
|
+
no_security_rules_defined: "No security rules defined — all operations unrestricted",
|
|
689
|
+
no_rules: "no rules",
|
|
690
|
+
bootstrap_admin_success: "You are now an admin! Refreshing...",
|
|
691
|
+
failed_to_bootstrap_admin: "Failed to bootstrap admin",
|
|
692
|
+
user_deleted_successfully: "User deleted successfully",
|
|
693
|
+
error_deleting_user: "Error deleting user",
|
|
694
|
+
add_row_before: "Add row before",
|
|
695
|
+
add_row_after: "Add row after",
|
|
696
|
+
delete_row: "Delete row",
|
|
697
|
+
add_column_before: "Add column before",
|
|
698
|
+
add_column_after: "Add column after",
|
|
699
|
+
delete_column: "Delete column",
|
|
700
|
+
delete_table: "Delete table",
|
|
701
|
+
alt_text: "Alt text",
|
|
702
|
+
title: "Title",
|
|
703
|
+
a_property_of_this_map_has_error: "A property of this map has an error",
|
|
704
|
+
studio_sql_executing_query: "EXECUTING QUERY...",
|
|
705
|
+
studio_sql_query_error: "Query Error",
|
|
706
|
+
studio_sql_run_query_placeholder: "Run a query to see results",
|
|
707
|
+
studio_sql_visual_execution_plan: "Visual Execution Plan",
|
|
708
|
+
studio_sql_success: "SUCCESS",
|
|
709
|
+
studio_sql_no_results: "Query executed successfully but returned no results.",
|
|
710
|
+
studio_sql_rows: "Rows:",
|
|
711
|
+
studio_sql_time: "Time:",
|
|
712
|
+
studio_sql_copy_markdown: "Copy Markdown",
|
|
713
|
+
studio_sql_export_json: "Export JSON",
|
|
714
|
+
studio_sql_export_csv: "Export CSV",
|
|
715
|
+
studio_sql_format_sql: "Format SQL",
|
|
716
|
+
studio_sql_explain: "Explain",
|
|
717
|
+
studio_sql_limit_1000: "Limit 1000",
|
|
718
|
+
studio_sql_remove_from_favorites: "Remove from Favorites",
|
|
719
|
+
studio_sql_add_to_favorites: "Add to Favorites",
|
|
720
|
+
studio_sql_save: "Save",
|
|
721
|
+
studio_sql_run: "Run",
|
|
722
|
+
studio_sql_database: "Database",
|
|
723
|
+
studio_sql_role: "Role",
|
|
724
|
+
studio_sql_admin: "(Admin)",
|
|
725
|
+
studio_sql_select_db: "Select DB",
|
|
726
|
+
studio_sql_query_results: "Query Results",
|
|
727
|
+
studio_sql_save_snippet: "Save SQL Snippet",
|
|
728
|
+
studio_sql_snippet_name: "Snippet Name",
|
|
729
|
+
studio_sql_snippet_name_placeholder: "e.g., Get All Users",
|
|
730
|
+
studio_sql_snippet_saved_local: "This will be saved to your local storage.",
|
|
731
|
+
studio_sql_cancel: "Cancel",
|
|
732
|
+
studio_sql_dangerous_operation: "Dangerous Operation Detected",
|
|
733
|
+
studio_sql_dangerous_operation_body: "The query you are about to run contains potentially destructive operations (DELETE, DROP, TRUNCATE, or UPDATE without WHERE). Are you sure you want to proceed?",
|
|
734
|
+
studio_sql_snippet_saved: "Snippet \"{{name}}\" saved.",
|
|
735
|
+
studio_sql_markdown_copied: "Results copied as Markdown!",
|
|
736
|
+
studio_sql_markdown_copy_failed: "Failed to copy Markdown to clipboard.",
|
|
737
|
+
studio_sql_row_updated: "Row updated successfully.",
|
|
738
|
+
studio_sql_cannot_edit_missing_query: "Cannot edit rows: The underlying query is missing.",
|
|
739
|
+
studio_sql_cannot_resolve_table: "Could not resolve table/primary key",
|
|
740
|
+
studio_sql_missing_pk: "Row is missing primary key column(s): {{columns}}. Cannot safely update.",
|
|
741
|
+
studio_sql_update_failed: "Failed to update: {{message}}",
|
|
742
|
+
studio_sql_execution_not_supported: "SQL execution is not supported by the current data source.",
|
|
743
|
+
studio_sql_error_executing: "An error occurred while executing the query.",
|
|
744
|
+
studio_sql_error_explaining: "An error occurred while explaining the query.",
|
|
745
|
+
studio_sql_save_first_to_favorite: "Please save the snippet first before favoriting.",
|
|
746
|
+
studio_sql_cms: "Collections:",
|
|
747
|
+
studio_sql_cms_collections_tooltip: "Tables in this query that are mapped as CMS collections",
|
|
748
|
+
studio_sql_edit_entity: "Edit {{name}} #{{id}}",
|
|
749
|
+
studio_sql_sql_not_supported: "SQL execution not supported by this data source",
|
|
750
|
+
studio_sql_fetch_error: "Failed to fetch connection options: {{message}}",
|
|
751
|
+
studio_sql_unexpected_format: "Unexpected data format: {{type}}",
|
|
752
|
+
studio_sql_no_tables: "No tables found in this database.",
|
|
753
|
+
studio_sql_schema_fetch_error: "Failed to fetch schema: {{message}}",
|
|
754
|
+
studio_sql_sidebar_snippets: "Snippets",
|
|
755
|
+
studio_sql_sidebar_history: "History",
|
|
756
|
+
studio_sql_sidebar_schema: "Schema",
|
|
757
|
+
studio_sql_sidebar_no_snippets: "No saved snippets",
|
|
758
|
+
studio_sql_sidebar_save_snippet_hint: "Save a query to access it here.",
|
|
759
|
+
studio_sql_sidebar_no_history: "No history",
|
|
760
|
+
studio_sql_sidebar_history_hint: "Executed queries will appear here.",
|
|
761
|
+
studio_sql_sidebar_delete_snippet: "Delete snippet",
|
|
762
|
+
studio_schema_tables: "Tables",
|
|
763
|
+
studio_schema_loading: "Loading schema...",
|
|
764
|
+
studio_schema_no_tables: "No tables found",
|
|
765
|
+
studio_schema_retry: "Retry",
|
|
766
|
+
studio_schema_primary_key: "Primary Key",
|
|
767
|
+
studio_schema_select_all: "SELECT * FROM",
|
|
768
|
+
studio_schema_insert_into: "INSERT INTO",
|
|
769
|
+
studio_schema_update: "UPDATE",
|
|
770
|
+
studio_schema_delete_from: "DELETE FROM",
|
|
771
|
+
studio_schema_columns: "{{count}} columns",
|
|
772
|
+
studio_rls_title: "Row Level Security",
|
|
773
|
+
studio_rls_description: "Manage RLS policies for your tables",
|
|
774
|
+
studio_rls_enabled: "RLS Enabled",
|
|
775
|
+
studio_rls_disabled: "RLS Disabled",
|
|
776
|
+
studio_rls_no_rls: "No RLS",
|
|
777
|
+
studio_rls_enable_rls: "Enable RLS",
|
|
778
|
+
studio_rls_disable_rls: "Disable RLS",
|
|
779
|
+
studio_rls_create_policy: "Create Policy",
|
|
780
|
+
studio_rls_policies: "Policies",
|
|
781
|
+
studio_rls_no_policies: "No policies defined",
|
|
782
|
+
studio_rls_no_policies_desc: "This table has no RLS policies. All rows are accessible based on the RLS status.",
|
|
783
|
+
studio_rls_add_first_policy: "Add your first policy",
|
|
784
|
+
studio_rls_force_rls: "Force RLS",
|
|
785
|
+
studio_rls_force_rls_desc: "When enabled, RLS policies apply to the table owner as well.",
|
|
786
|
+
studio_rls_enable_force_rls: "Enable Force RLS",
|
|
787
|
+
studio_rls_disable_force_rls: "Disable Force RLS",
|
|
788
|
+
studio_rls_edit: "Edit",
|
|
789
|
+
studio_rls_delete: "Delete",
|
|
790
|
+
studio_rls_confirm_delete_title: "Delete Policy",
|
|
791
|
+
studio_rls_confirm_delete_body: "Are you sure you want to delete this policy? This action cannot be undone.",
|
|
792
|
+
studio_rls_confirm_enable_title: "Enable Row Level Security",
|
|
793
|
+
studio_rls_confirm_enable_body: "Enabling RLS will restrict access to rows in this table based on your policies. Make sure you have appropriate policies in place.",
|
|
794
|
+
studio_rls_confirm_disable_title: "Disable Row Level Security",
|
|
795
|
+
studio_rls_confirm_disable_body: "Disabling RLS will make all rows accessible to all roles. Are you sure you want to continue?",
|
|
796
|
+
studio_rls_select_table: "Select a table",
|
|
797
|
+
studio_rls_no_tables: "No tables available",
|
|
798
|
+
studio_rls_error: "Error loading policies",
|
|
799
|
+
studio_rls_retry: "Retry",
|
|
800
|
+
studio_rls_loading: "Loading policies...",
|
|
801
|
+
studio_policy_edit: "Edit Policy",
|
|
802
|
+
studio_policy_create: "Create New Policy",
|
|
803
|
+
studio_policy_defining_rules: "Defining access rules for",
|
|
804
|
+
studio_policy_cancel: "Cancel",
|
|
805
|
+
studio_policy_save: "Save Policy",
|
|
806
|
+
studio_policy_template: "Start from a template (Optional)",
|
|
807
|
+
studio_policy_select_template: "Select a template...",
|
|
808
|
+
studio_policy_name: "Policy Name",
|
|
809
|
+
studio_policy_name_placeholder: "Give your policy a descriptive name",
|
|
810
|
+
studio_policy_behavior: "Policy Behavior",
|
|
811
|
+
studio_policy_permissive: "Permissive",
|
|
812
|
+
studio_policy_permissive_desc: "Combined using \"OR\"",
|
|
813
|
+
studio_policy_restrictive: "Restrictive",
|
|
814
|
+
studio_policy_restrictive_desc: "Combined using \"AND\"",
|
|
815
|
+
studio_policy_command: "Policy Command",
|
|
816
|
+
studio_policy_target_roles: "Target Roles",
|
|
817
|
+
studio_policy_roles_placeholder: "Select roles (defaults to public)",
|
|
818
|
+
studio_policy_using_expr: "USING expression",
|
|
819
|
+
studio_policy_using_expr_desc: "Applies to existing rows (SELECT, UPDATE, DELETE)",
|
|
820
|
+
studio_policy_check_expr: "WITH CHECK expression",
|
|
821
|
+
studio_policy_check_expr_desc: "Applies to new or modified rows (INSERT, UPDATE)",
|
|
822
|
+
studio_policy_help_title: "Row Level Security (RLS) Guide",
|
|
823
|
+
studio_policy_help_intro: "Row Level Security (RLS) allows you to restrict which rows a user can access or modify based on their authentication status or roles.",
|
|
824
|
+
studio_policy_help_step1_title: "1. Select a Template",
|
|
825
|
+
studio_policy_help_step1_desc: "If you're new to RLS, the easiest way to start is by selecting a predefined template from the dropdown. It will automatically configure the policy for common use cases like \"Users can update their own rows\".",
|
|
826
|
+
studio_policy_help_step2_title: "2. Target Roles",
|
|
827
|
+
studio_policy_help_step2_desc: "Choose which users the policy applies to:",
|
|
828
|
+
studio_policy_help_role_public: "Applies to everyone (logged in or not).",
|
|
829
|
+
studio_policy_help_role_authenticated: "Only applies to users who are logged in.",
|
|
830
|
+
studio_policy_help_role_anon: "Only applies to users who are NOT logged in.",
|
|
831
|
+
studio_policy_help_step3_title: "3. USING Expression",
|
|
832
|
+
studio_policy_help_step3_desc: "A SQL condition that must evaluate to true for existing rows to be visible or updatable (SELECT, UPDATE, DELETE).",
|
|
833
|
+
studio_policy_help_step3_example: "Ensures users can only see rows where they are the owner.",
|
|
834
|
+
studio_policy_help_step4_title: "4. WITH CHECK Expression",
|
|
835
|
+
studio_policy_help_step4_desc: "A SQL condition that must evaluate to true for new or modified rows to be saved (INSERT, UPDATE).",
|
|
836
|
+
studio_policy_help_step4_example: "Usually the same as the USING expression when users are only allowed to insert/edit their own data.",
|
|
837
|
+
studio_policy_help_auth_vars_title: "Rebase Auth Variables",
|
|
838
|
+
studio_policy_help_auth_vars_desc: "Rebase provides native helper functions that you can use in your expressions:",
|
|
839
|
+
studio_policy_help_auth_uid: "Returns the current user's ID as text. Example:",
|
|
840
|
+
studio_policy_help_auth_jwt: "Returns the full JWT payload as JSONB so you can check custom claims. Example:",
|
|
841
|
+
studio_policy_help_auth_roles: "Returns the user's role IDs as a comma-separated string. Best used with:",
|
|
842
|
+
studio_policy_help_docs_cta: "To learn more about Postgres policies, check out the official documentation.",
|
|
843
|
+
studio_policy_help_read_docs: "Read Docs",
|
|
844
|
+
studio_policy_help_got_it: "Got it!",
|
|
845
|
+
studio_add_kanban_column: "Add column",
|
|
846
|
+
studio_add_kanban_column_title: "Add Kanban Column",
|
|
847
|
+
studio_add_kanban_column_name: "Column name",
|
|
848
|
+
studio_add_kanban_column_name_placeholder: "New column name",
|
|
849
|
+
studio_add_kanban_column_add: "Add",
|
|
850
|
+
studio_add_kanban_column_cancel: "Cancel",
|
|
851
|
+
studio_collection_view_sql: "SQL Editor",
|
|
852
|
+
studio_collection_view_cms: "CMS View",
|
|
853
|
+
studio_editor_collection_tooltip: "Edit collection schema",
|
|
854
|
+
studio_editor_collection_no_permission: "You don't have permission to edit this collection",
|
|
855
|
+
studio_editor_collection_start_tooltip: "Copy path or edit schema",
|
|
856
|
+
studio_editor_collection_start_no_permission: "You don't have permission to modify this collection",
|
|
857
|
+
studio_editor_collection_start_copied: "Copied!",
|
|
858
|
+
studio_editor_entity_tooltip: "Edit entity schema",
|
|
859
|
+
studio_editor_entity_no_permission: "You don't have permission to edit this entity",
|
|
860
|
+
studio_home_edit_collection: "Edit collection",
|
|
861
|
+
studio_home_delete_collection: "Delete collection",
|
|
862
|
+
studio_home_confirm_delete_title: "Delete collection?",
|
|
863
|
+
studio_home_confirm_delete_body: "Are you sure you want to delete the collection \"{{name}}\"? This action cannot be undone.",
|
|
864
|
+
studio_kanban_setup: "Kanban Setup",
|
|
865
|
+
studio_missing_reference: "Missing reference: {{path}}",
|
|
866
|
+
studio_missing_reference_create: "Create",
|
|
867
|
+
studio_new_collection: "New collection",
|
|
868
|
+
studio_new_collection_card: "New collection",
|
|
869
|
+
studio_new_collection_no_permission: "You don't have permissions to create collections",
|
|
870
|
+
studio_property_add_column: "Add new property",
|
|
871
|
+
studio_property_add_column_no_permission: "You don't have permission to add new properties",
|
|
872
|
+
studio_add_kanban_column_desc: "Add a new option to the \"{{property}}\" property. This will create a new column in the Kanban board.",
|
|
873
|
+
studio_add_kanban_column_adding: "Adding...",
|
|
874
|
+
studio_collection_view_edit: "Edit",
|
|
875
|
+
studio_editor_collection_disabled: "Collection editing is disabled",
|
|
876
|
+
studio_editor_collection_edit: "Edit collection",
|
|
877
|
+
studio_editor_entity_save_first: "You need to save the document before changing the schema",
|
|
878
|
+
studio_editor_entity_edit_schema: "Edit schema for this form",
|
|
879
|
+
studio_editor_collection_start_save_filter: "Save default filter and sort",
|
|
880
|
+
studio_editor_collection_start_clear_filter: "Clear default filter and sort",
|
|
881
|
+
studio_editor_collection_start_reset_filter: "Reset to default filter and sort",
|
|
882
|
+
studio_editor_collection_start_saved: "Default config saved",
|
|
883
|
+
studio_home_duplicate_collection: "Duplicate",
|
|
884
|
+
studio_home_delete: "Delete",
|
|
885
|
+
studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the CMS",
|
|
886
|
+
studio_home_collection_deleted: "Collection deleted",
|
|
887
|
+
studio_kanban_configure: "Configure Kanban",
|
|
888
|
+
studio_missing_reference_error: "No collection for path: {{path}}",
|
|
889
|
+
studio_new_collection_add: "Añadir nueva colección",
|
|
890
|
+
|
|
891
|
+
// ─── Property field labels ──────────────────────────────────
|
|
892
|
+
db_column_type: "Tipo de columna de base de datos",
|
|
893
|
+
primary_key_unique_id: "Clave primaria / ID único",
|
|
894
|
+
spread_children_as_columns: "Expandir hijos como columnas",
|
|
895
|
+
mode: "Modo",
|
|
896
|
+
timezone: "Zona horaria",
|
|
897
|
+
target_collection: "Colección destino",
|
|
898
|
+
|
|
899
|
+
// ─── Storage property ───────────────────────────────────────
|
|
900
|
+
storage_file_name: "Nombre del archivo",
|
|
901
|
+
storage_path: "Ruta de almacenamiento",
|
|
902
|
+
storage_max_size: "Tamaño máximo (en bytes)",
|
|
903
|
+
storage_resize_mode: "Modo de redimensionamiento",
|
|
904
|
+
storage_output_format: "Formato de salida",
|
|
905
|
+
storage_max_width: "Ancho máximo (px)",
|
|
906
|
+
storage_max_height: "Alto máximo (px)",
|
|
907
|
+
storage_quality: "Calidad (0-100)",
|
|
908
|
+
storage_file_upload_config: "Configuración de subida de archivos",
|
|
909
|
+
storage_image_resize_config: "Configuración de redimensionamiento de imagen",
|
|
910
|
+
storage_all_file_types: "Todos los tipos de archivo permitidos",
|
|
911
|
+
storage_allowed_file_types: "Tipos de archivo permitidos",
|
|
912
|
+
storage_include_bucket_url: "Incluir URL del bucket (s3://...) en el valor guardado",
|
|
913
|
+
storage_save_url: "Guardar URL en lugar de la ruta de almacenamiento",
|
|
914
|
+
|
|
915
|
+
// ─── DateTime property ──────────────────────────────────────
|
|
916
|
+
datetime_automatic_value: "Valor automático",
|
|
917
|
+
|
|
918
|
+
// ─── Markdown property ──────────────────────────────────────
|
|
919
|
+
markdown_paste_behavior: "Comportamiento al pegar",
|
|
920
|
+
markdown_strip_html: "Eliminar HTML al pegar",
|
|
921
|
+
markdown_convert_pasted: "Convertir texto pegado a markdown"
|
|
922
|
+
};
|