@rebasepro/app 0.25.0-canary.ge06257e → 0.25.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"es-DSOOSgPW.js","names":[],"sources":["../src/locales/es.ts"],"sourcesContent":["import { RebaseTranslations } from \"@rebasepro/cms-types\";\n\n/**\n * Spanish baseline translations for @rebasepro/app.\n *\n * This is the single source of truth for all default UI strings in Spanish.\n * Override any key via the `translations` prop on Rebase entry-point components.\n *\n * @group Core\n */\nexport const es: RebaseTranslations = {\n // ─── Form actions ────────────────────────────────────────────\n save: \"Guardar\",\n create: \"Crear\",\n create_copy: \"Crear copia\",\n save_and_close: \"Guardar y cerrar\",\n create_copy_and_close: \"Crear copia y cerrar\",\n create_and_close: \"Crear y cerrar\",\n discard: \"Descartar\",\n clear: \"Limpiar\",\n cancel: \"Cancelar\",\n\n // ─── Entity actions ──────────────────────────────────────────\n edit: \"Editar\",\n copy: \"Copiar\",\n delete: \"Eliminar\",\n delete_not_allowed: \"Has seleccionado al menos una entidad que no puedes eliminar\",\n edit_entity: \"Editar\",\n back_to_detail: \"Volver a los detalles\",\n\n // ─── Delete dialog ───────────────────────────────────────────\n delete_confirmation_title: \"¿Eliminar?\",\n delete_confirmation_body: \"Esto eliminará la entidad. ¿Estás seguro?\",\n delete_multiple_confirmation_body: \"Esto eliminará las entidades seleccionadas. ¿Estás seguro?\",\n\n // ─── Unsaved-changes dialog ───────────────────────────────────\n unsaved_changes_title: \"Cambios sin guardar\",\n unsaved_changes_body: \"Tienes cambios sin guardar. ¿Quieres descartarlos?\",\n discard_changes: \"Descartar cambios\",\n keep_editing: \"Seguir editando\",\n clear_form: \"¿Vaciar formulario?\",\n discard_changes_confirmation: \"Todos los cambios no guardados se perderán. Esta acción no se puede deshacer.\",\n clear_form_confirmation: \"Todos los valores introducidos se borrarán. Esta acción no se puede deshacer.\",\n\n // ─── Collection table / toolbar ──────────────────────────────\n search: \"Buscar\",\n find_by_id: \"Buscar por ID\",\n find_entity_by_id: \"Buscar entidad por ID\",\n filter: \"Filtrar\",\n filters: \"Filtros\",\n records_in_view: \"Registros en esta vista\",\n clear_filter: \"Borrar filtro\",\n clear_filter_sort: \"Borrar filtro/orden\",\n clear_sort: \"Borrar orden\",\n sort: \"Ordenar\",\n sort_by: \"Ordenar por\",\n sort_then_by: \"Luego por\",\n sort_ascending: \"Ordenar ascendente\",\n sort_descending: \"Ordenar descendente\",\n sort_remove: \"Quitar orden\",\n sort_move_up: \"Dar más importancia a esta clave\",\n sort_move_down: \"Dar menos importancia a esta clave\",\n sort_remove_key: \"Quitar esta clave de orden\",\n sort_key_position: \"Clave de orden {{position}}\",\n sort_shift_click_hint: \"Mayús+clic para añadir una columna bajo el orden actual\",\n save_entity_before_subcollections: \"Guarda este registro antes de añadir registros relacionados.\",\n clear_all: \"Borrar todo\",\n no_items: \"Sin elementos\",\n no_entries_found: \"No se encontraron entradas\",\n all_entries_loaded: \"Todas las {{count}} entradas cargadas\",\n error_loading_data_message: \"Error al cargar los datos: {{message}}\",\n clear_search: \"Borrar búsqueda\",\n open_time_picker: \"Abrir selector de hora\",\n relative_just_now: \"justo ahora\",\n relative_in_a_moment: \"en un momento\",\n relative_minutes_ago: \"hace {{count}} min\",\n relative_in_minutes: \"en {{count}} min\",\n relative_hours_ago: \"hace {{count}} h\",\n relative_in_hours: \"en {{count}} h\",\n relative_days_ago: \"hace {{count}} d\",\n relative_in_days: \"en {{count}} d\",\n create_your_first_entry: \"Crea tu primera entrada\",\n no_results_filter_sort: \"No hay resultados con el filtro/orden aplicado\",\n no_results_filter: \"No hay resultados con los filtros aplicados\",\n no_results_search: \"No se encontraron resultados para \\\"{{search}}\\\"\",\n add: \"Añadir\",\n remove: \"Quitar\",\n multiple_entities: \"Múltiples entidades\",\n unsaved_changes: \"Tienes cambios sin guardar en esta colección {{collectionName}}.\",\n so_empty: \"Tan vacío...\",\n no_results: \"No hay resultados con el filtro/orden aplicado\",\n refresh_data: \"Actualizar datos\",\n dark_mode: \"Oscuro\",\n light_mode: \"Claro\",\n system_mode: \"Sistema\",\n join_newsletter: \"Únete a la newsletter, sin spam\",\n ok: \"Aceptar\",\n save_collection_config: \"Guardar la estructura de la colección\",\n search_for_more_icons: \"Buscar más iconos…\",\n ai_modified: \"Modificado por IA\",\n size_label: \"Tamaño\",\n group_by: \"Agrupar por\",\n initialize_kanban_order: \"Inicializar el orden para Kanban\",\n copy_id: \"Copiar ID\",\n add_specific: \"Añadir {{name}}\",\n add_named: \"Añadir \\\"{{name}}\\\"\",\n select_specific: \"Seleccionar {{name}}\",\n select_from: \"Seleccionar de {{name}}\",\n done: \"Hecho\",\n log_out: \"Cerrar sesión\",\n column_cannot_be_edited: \"Esta columna no se puede editar directamente\",\n close: \"Cerrar\",\n hide_list: \"Ocultar lista\",\n show_list: \"Mostrar lista\",\n unsaved_local_changes: \"Cambios locales sin guardar\",\n 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.\",\n preview_changes: \"Previsualizar cambios\",\n apply_changes: \"Aplicar cambios\",\n discard_local_changes: \"Descartar cambios locales\",\n preview_local_changes: \"Previsualizar cambios locales\",\n preview_local_changes_description: \"Estos son los cambios locales que se aplicarán al formulario.\",\n type: \"Tipo\",\n string: \"cadena\",\n number: \"número\",\n boolean: \"booleano\",\n date: \"fecha\",\n map: \"mapa\",\n array: \"lista\",\n arrays_of_arrays_not_supported: \"Las listas de listas no están soportadas.\",\n data_type_not_supported: \"Tipo de datos {{dataType}} no soportado aún\",\n passkey_error_unsupported: \"Tu dispositivo o navegador no soporta passkeys.\",\n\n // ─── Entity form feedback ─────────────────────────────────────\n saved_correctly: \"Guardado correctamente\",\n error_before_saving: \"Error al preparar los datos\",\n error_after_saving: \"Error en el proceso posterior al guardado\",\n error_saving_entity: \"Error al guardar la entidad\",\n error_record_changed_elsewhere: \"Este registro ha cambiado desde que lo abriste. Tus cambios se conservan: revisa los campos marcados como actualizados en otro lugar y vuelve a guardar.\",\n entity_does_not_exist: \"Esta entidad no existe en la base de datos\",\n form_modified: \"Este formulario ha sido modificado\",\n form_in_sync: \"El formulario actual está sincronizado con la base de datos\",\n fix_errors_before_saving: \"Corrija los errores resaltados antes de guardar\",\n form_predating_rule_violations: \"Algunos campos que no ha cambiado no cumplen sus reglas actuales. No impiden guardar:\",\n\n admin: \"Admin\",\n home: \"Inicio\",\n this_form_has_errors: \"Este formulario tiene errores\",\n error_loading_navigation: \"Error cargando la navegación\",\n error_loading_auth: \"Error cargando la autenticación\",\n this_form_has_been_modified: \"Este formulario ha sido modificado\",\n current_form_in_sync: \"El formulario actual está sincronizado con la base de datos\",\n open_in_console: \"Abrir en consola\",\n collection_does_not_exist: \"La colección especificada no existe. Revisa la consola\",\n unexpected_value: \"Valor inesperado\",\n unexpected_value_click_to_edit: \"Valor inesperado. Haz clic para editar\",\n unexpected_reference_value: \"Valor de referencia inesperado. Haz clic para editar\",\n copy_url_to_clipboard: \"Copiar URL al portapapeles\",\n open_image_in_new_tab: \"Abrir imagen en una nueva pestaña\",\n reference_not_set: \"Referencia no establecida\",\n reference_does_not_exist: \"La referencia no existe\",\n entity_not_found: \"Entidad no encontrada\",\n entity_not_found_body: \"Este registro no existe, o puede estar oculto para ti por la seguridad a nivel de fila.\",\n collection_not_found: \"Colección no encontrada\",\n collection_not_found_body: \"No hay nada registrado para \\\"{{path}}\\\".\",\n collection_not_found_hint: \"La URL nombra una colección que el panel no conoce. Puede que se haya renombrado o quitado del array de colecciones, o que el slug no coincida con la ruta.\",\n back_to_collection: \"Volver a {{name}}\",\n file_not_found: \"Archivo no encontrado\",\n unsaved_changes_in_entity: \"Tienes cambios sin guardar en esta entidad.\",\n delete_this_role: \"Eliminar este rol\",\n no_roles_yet: \"Aún no tienes roles.\",\n create_default_roles: \"Crear roles por defecto\",\n delete_role_confirmation: \"¿Estás seguro de que quieres eliminar este rol?\",\n delete_this_user: \"Eliminar este usuario\",\n no_users_yet: \"Aún no hay usuarios\",\n add_logged_user_as_admin: \"Añadir al usuario autenticado como administrador\",\n add_current_user_as_admin: \"Añadir usuario actual como administrador\",\n create_default_roles_and_add_admin: \"Crear roles por defecto y añadir usuario actual como administrador\",\n delete_user_confirmation: \"¿Estás seguro de que quieres eliminar a este usuario?\",\n create_your_users_and_roles: \"Crea tus usuarios y roles\",\n no_users_or_roles_defined: \"No tienes usuarios ni roles. Puedes crear los roles por defecto y añadirte a ti mismo como administrador.\",\n save_before_changing_schema: \"Debes guardar el documento antes de cambiar el esquema\",\n edit_schema_for_this_form: \"Editar esquema para este formulario\",\n no_permissions_to_edit_collection: \"No tienes permisos para editar esta colección\",\n browser_does_not_support_audio: \"Tu navegador no soporta el elemento de audio.\",\n user_not_found: \"Usuario no encontrado: {{value}}\",\n\n // ─── Collection view actions ──────────────────────────────────\n delete_selected: \"Eliminar\",\n cannot_delete_selected: \"Has seleccionado al menos una entidad que no puedes eliminar\",\n\n // ─── Array / field containers ─────────────────────────────────\n add_entry: \"Añadir\",\n add_on_top: \"Añadir arriba\",\n add_below: \"Añadir debajo\",\n add_to_field: \"Añadir a {{fieldName}}\",\n value: \"Valor\",\n key: \"Clave\",\n drag_drop_multiple: \"Arrastra y suelta algunos archivos aquí, o haz clic para seleccionar archivos. Arrastra para reordenar.\",\n drag_drop_single: \"Arrastra y suelta un archivo aquí, o haz clic para seleccionar uno\",\n\n // ─── Navigation / scaffold ────────────────────────────────────\n open_menu: \"Abrir menú\",\n close_drawer: \"Cerrar panel\",\n navigation_drawer: \"Panel de navegación\",\n collapse: \"Contraer\",\n expand: \"Expandir\",\n change_language: \"Cambiar idioma\",\n toggle_theme: \"Cambiar tema\",\n user_menu: \"Menú de usuario\",\n resize_sidebar: \"Cambiar el tamaño de la barra lateral\",\n resize_editor: \"Cambiar el tamaño del editor\",\n resize_list: \"Cambiar el tamaño de la lista\",\n panel_mode: \"Modo del panel\",\n\n // ─── Error states ─────────────────────────────────────────────\n error: \"Error\",\n error_loading_data: \"No se pudieron cargar los datos\",\n error_check_server_logs: \"Consulta los registros del servidor para más detalles.\",\n error_technical_details: \"Detalles técnicos\",\n error_uploading_file: \"Error al subir archivo\",\n error_deleting: \"Error al eliminar\",\n error_before_delete: \"Error antes de eliminar\",\n error_updating_asset: \"Error al actualizar recurso\",\n error_deleting_asset: \"Error al eliminar recurso\",\n error_firestore_index: \"Se requiere un índice de Firestore para esta consulta.\",\n realtime_connection_lost_title: \"Actualizaciones en directo en pausa\",\n realtime_connection_lost_body: \"Se ha perdido la conexión con el servidor, así que lo que ves puede estar desactualizado. Se actualizará en cuanto vuelva la conexión.\",\n create_index: \"Crear índice\",\n value_is_not_reference: \"El valor no es una referencia.\",\n click_to_edit: \"Haz clic para editar\",\n data_is_not_array_of_references: \"Los datos no son un array de referencias\",\n\n // ─── Misc ─────────────────────────────────────────────────────\n loading: \"Cargando\",\n local_changes_applied: \"Cambios locales aplicados al formulario\",\n local_changes_discarded: \"Cambios locales descartados\",\n are_you_sure_leave: \"¿Estás seguro de que quieres salir de esta página?\",\n see_console_details: \"Consulta la consola para más detalles.\",\n drop_here_create_group: \"Suelta aquí para crear un nuevo grupo\",\n filter_for_null_values: \"Filtrar por valores nulos\",\n value_updated_elsewhere: \"Este valor ha sido actualizado en otro lugar\",\n entity_deleted_elsewhere: \"Este registro se eliminó en otro lugar. Lo que ves aquí no se ha guardado; guárdalo como un registro nuevo para conservarlo.\",\n save_as_new: \"Guardar como nuevo\",\n add_property: \"Añadir propiedad\",\n edit_name: \"Editar {{name}}\",\n this_entity_not_exist: \"Esta entidad no existe en la base de datos\",\n internal_error: \"ERROR Interno\",\n\n // ─── Rename group dialog ──────────────────────────────────────\n rename_group: \"Renombrar grupo\",\n group_name_label: \"Nombre del grupo\",\n group_name_empty_error: \"El nombre del grupo no puede estar vacío.\",\n group_name_exists_error: \"Este nombre de grupo ya existe.\",\n\n // ─── Search ───────────────────────────────────────────────────\n search_collections: \"Buscar colecciones\",\n\n // ─── Navigation groups ────────────────────────────────────────\n views_group: \"Vistas\",\n\n // ─── Entity Edit View ─────────────────────────────────────────\n youd_need_to_save_before_additional_collections: \"Guarda este registro antes de añadir registros relacionados.\",\n\n // ─── Not Found Page ───────────────────────────────────────────\n page_not_found: \"Página no encontrada\",\n page_not_found_body: \"Esta página no existe o podrías no tener acceso a ella\",\n back_to_home: \"Volver al inicio\",\n\n // ─── Collection Editor ─────────────────────────────────────────\n default_collection_view: \"Vista por defecto de la colección\",\n table_view: \"Tabla\",\n cards_view: \"Tarjetas\",\n kanban_view: \"Kanban\",\n choose_how_entities_displayed_default: \"Elige cómo se deben mostrar por defecto las entidades\",\n\n document_view: \"Vista de documento\",\n side_panel: \"Panel lateral\",\n full_screen: \"Pantalla completa\",\n should_documents_opened_full_screen: \"¿Quieres que los documentos se abran en pantalla completa o en un panel lateral?\",\n\n select_custom_view: \"Seleccionar vista personalizada\",\n no_custom_views_defined: \"No hay vistas personalizadas definidas. Define tus vistas en los ajustes de personalización, antes de usar este diálogo.\",\n\n select_custom_action: \"Seleccionar acción personalizada\",\n no_custom_actions_defined: \"No hay acciones personalizadas definidas. Define tus acciones en los ajustes de personalización, antes de usar este diálogo.\",\n\n no_collections_found: \"No se encontraron colecciones\",\n 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.\",\n create_first_collection: \"Crea tu primera colección\",\n define_collections_programmatically: \"También puedes definir colecciones programáticamente.\",\n edit_collection: \"Editar colección\",\n no_permissions_edit_collection: \"No tienes permisos para editar esta colección\",\n no_permissions_create_collection: \"No tienes permisos para crear colecciones\",\n create_collection: \"Crear colección\",\n update_collection: \"Actualizar colección\",\n\n new_collection: \"Nueva colección\",\n add_new_collection: \"Añadir nueva colección\",\n collection_with_name: \"Colección {{name}}\",\n change_icon: \"Cambiar icono\",\n is_subcollection_of: \"Esta es una subcolección de\",\n name: \"Nombre\",\n collection_name_description: \"Nombre de esta colección (usualmente un nombre en plural, ej. 'Productos')\",\n path: \"Ruta\",\n relative_path_to_parent: \"Ruta relativa al nivel superior (no es necesario incluir la ruta padre)\",\n path_in_database: \"La ruta donde está almacenada esta colección en la base de datos\",\n singular_name: \"Nombre en singular\",\n singular_name_description: \"Opcionalmente define un nombre en singular para tus entidades\",\n description: \"Descripción\",\n description_of_collection: \"Descripción de la colección, puedes usar markdown\",\n collection_id: \"ID de la Colección\",\n collection_id_description: \"Este ID identifica a esta colección. Típicamente es el mismo que la ruta.\",\n collection_group: \"Grupo de colección\",\n 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.\",\n advanced_settings: \"Ajustes avanzados\",\n doc_history_global: \"Historial de revisiones de documentos habilitado si está activado globalmente\",\n doc_history_enabled: \"Historial de revisiones de documentos HABILITADO\",\n doc_history_not_enabled: \"Historial de revisiones de documentos NO habilitado\",\n 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.\",\n document_id_generation: \"Generación de IDs de documentos\",\n code_defined: \"Definido por código\",\n users_must_define_id: \"Los usuarios deben definir un ID\",\n users_can_define_id: \"Los usuarios pueden definir un ID, pero no es obligatorio\",\n doc_id_auto_generated: \"El ID del documento se genera automáticamente\",\n config_doc_id_generation: \"Configura cómo se generan los IDs de los documentos al crear nuevas entidades.\",\n enable_text_search: \"Habilitar búsqueda de texto para esta colección\",\n 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.\",\n database_id: \"ID de la base de datos\",\n default_text: \"(por defecto)\",\n\n custom_actions: \"Acciones personalizadas\",\n more_info: \"Más información\",\n define_custom_actions_cli: \"Define tus propias acciones personalizadas subiéndolas con la CLI.\",\n action_defined_in_code: \"Esta acción está definida en el código con la clave\",\n add_custom_entity_action: \"Añadir acción personalizada de entidad\",\n remove_this_action: \"¿Eliminar esta acción?\",\n remove_action_warning: \"Esto no eliminará ningún dato, sólo se retirará del panel de administración\",\n\n subcollections_of: \"Subcolecciones de\",\n add_subcollection: \"Añadir subcolección\",\n custom_views: \"Vistas personalizadas\",\n define_custom_views_cli: \"Define tus propias vistas personalizadas subiéndolas con la CLI.\",\n view_defined_in_code: \"Esta vista se define en el código con la clave\",\n add_custom_entity_view: \"Añadir vista de entidad personalizada\",\n delete_this_subcollection: \"¿Eliminar esta subcolección?\",\n remove_collection_warning: \"Esto no eliminará ningún dato, sólo la colección en el panel de administración\",\n remove_this_view: \"¿Eliminar esta vista?\",\n remove_view_warning: \"Esto no eliminará ningún dato, sólo la vista en el panel de administración\",\n\n no_collection_selected: \"Ninguna colección seleccionada\",\n code_for_collection: \"Código para\",\n use_config_define_json: \"Usa esta configuración para definir la colección en formato JSON.\",\n 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 administración.\",\n copied: \"Copiado\",\n\n property_cant_be_edited: \"Esta propiedad no se puede editar\",\n property_not_editable_description: \"Puede que no tengas permisos para editarla o que esté definida en código y no se pueda modificar.\",\n delete_this_property: \"¿Eliminar esta propiedad?\",\n delete_property_warning: \"Esto no eliminará datos, sólo modificará la configuración de la colección.\",\n error_must_specify_id: \"Debes especificar un id para el campo\",\n error_id_format: \"El id sólo puede contener letras, números y guiones bajos (_), y no puede empezar con un número\",\n error_id_already_exists: \"Ya existe otro campo con este ID\",\n error_must_specify_title: \"Debes especificar un título para el campo\",\n custom_or_other: \"Personalizado/Otro\",\n select_property_widget: \"Selecciona un widget de propiedad\",\n error_changing_data_type: \"Este widget utiliza un tipo de dato diferente al seleccionado inicialmente. Esto puede generar errores con los datos existentes.\",\n required: \"Requerido\",\n\n enum_form_dialog: \"Diálogo de formulario Enum\",\n imported_data_preview: \"Vista previa de datos importados\",\n entities_with_same_id_overwritten: \"Las entidades con el mismo id se sobrescribirán\",\n collection_editor: \"Editor de colecciones\",\n properties_in_this_group: \"Propiedades en este grupo\",\n data_property_mapping: \"Mapeo de propiedades\",\n property_edit_view: \"Vista de edición de propiedad\",\n all_of_these: \"Todos estos\",\n any_of_these: \"Cualquiera de estos\",\n\n only_admins_edit_roles: \"Sólo los administradores pueden editar roles\",\n error_user_not_found: \"Usuario no encontrado\",\n all_roles: \"Todos los roles\",\n role: \"Rol\",\n name_of_this_role: \"Nombre del rol\",\n id_of_this_role: \"ID del rol\",\n create_entities: \"Crear entidades\",\n read_entities: \"Leer entidades\",\n update_entities: \"Actualizar entidades\",\n delete_entities: \"Eliminar entidades\",\n all_collections: \"Todas las colecciones\",\n create_entities_in_collections: \"Crear entidades en colecciones\",\n access_all_data_in_every_collection: \"Acceder a todos los datos en cada colección\",\n update_data_in_any_collection: \"Actualizar datos en cualquier colección\",\n delete_data_in_any_collection: \"Eliminar datos en cualquier colección\",\n allow_all_permissions_in_this_collections: \"Permitir todos los permisos en estas colecciones\",\n all: \"Todo\",\n customise_permissions_description: \"Puedes personalizar los permisos de los usuarios para este rol en cada colección\",\n create_collections: \"Crear colecciones\",\n yes: \"Sí\",\n no: \"No\",\n can_user_create_collections: \"¿Puede el usuario crear colecciones?\",\n edit_collections: \"Editar colecciones\",\n only_own_collections: \"Sólo las propias\",\n own: \"Propias\",\n can_user_edit_collections: \"¿Puede el usuario editar colecciones?\",\n delete_collections: \"Eliminar colecciones\",\n can_user_delete_collections: \"¿Puede el usuario eliminar colecciones?\",\n error_saving_role: \"Hubo un error al guardar este rol\",\n create_role: \"Crear rol\",\n update: \"Actualizar\",\n\n only_admins_change_roles: \"Sólo los administradores pueden cambiar roles\",\n must_be_at_least_one_admin: \"Tiene que haber al menos un administrador\",\n logged_user_not_found: \"Usuario autenticado no encontrado\",\n user: \"Usuario\",\n user_id: \"ID del usuario\",\n name_of_this_user: \"Nombre de este usuario\",\n email_of_this_user: \"Correo electrónico de este usuario\",\n roles: \"Roles\",\n create_user: \"Crear usuario\",\n\n users: \"Usuarios\",\n add_user: \"Añadir usuario\",\n add_role: \"Añadir rol\",\n is_admin: \"Es Administrador\",\n default_permissions: \"Permisos predeterminados\",\n created_on: \"Creado en\",\n email: \"Email\",\n id: \"ID\",\n read: \"Leer\",\n\n column_in_file: \"Columna en el archivo\",\n map_to_property: \"Mapear a Propiedad\",\n default_values: \"Valores por defecto\",\n default_values_description: \"Puedes seleccionar un valor por defecto para columnas no mapeadas o valores en blanco:\",\n property: \"Propiedad\",\n default_value: \"Valor predeterminado\",\n autogenerate_id: \"Autogenerar ID\",\n id_column_description: \"Columna que se utilizará como ID de cada documento\",\n do_not_set_value: \"No asignar valor\",\n set_value_to_true: \"Asignar valor verdadero (true)\",\n set_value_to_false: \"Asignar valor falso (false)\",\n drag_and_drop_file: \"Arrastra y suelta un archivo aquí, o haz clic para subirlo\",\n error_saving_data: \"Error al guardar los datos\",\n retry: \"Reintentar\",\n saving_data: \"Guardando datos\",\n entities_saved: \"entidades guardadas\",\n do_not_close_tab: \"No cierres esta pestaña o se interrumpirá la importación\",\n import: \"Importar\",\n import_data: \"Importar datos\",\n upload_file_description: \"Sube un archivo CSV, Excel o JSON y mapéalo a tu esquema actual\",\n back: \"Atrás\",\n next: \"Siguiente\",\n save_data: \"Guardar datos\",\n use_column_as_id: \"Usar esta columna como ID\",\n do_not_import_property: \"No importar esta propiedad\",\n import_problems_title: \"Valores que no se pueden importar: {{count}}\",\n import_problems_description: \"Estas celdas no se pueden convertir al tipo del campo al que están asignadas, así que quedarán vacías. Vuelve atrás para asignar la columna a un campo de texto, o corrige el archivo y súbelo de nuevo.\",\n import_problems_column: \"{{column}} → {{property}} ({{type}}): {{count}} sin importar\",\n import_problems_example: \"Fila {{row}}: «{{value}}», {{reason}}\",\n import_problems_more: \"…y {{count}} más\",\n import_problem_not_a_number: \"no es un número\",\n import_problem_number_leading_zero: \"como número perdería el cero inicial\",\n import_problem_number_too_precise: \"tiene más dígitos de los que un número guarda con exactitud\",\n import_problem_not_a_boolean: \"no es sí ni no\",\n import_problem_not_a_date: \"no es una fecha\",\n import_problem_ambiguous_date: \"podría ser día/mes o mes/día\",\n import_problem_not_a_vector: \"no es una lista de números\",\n import_problem_not_a_map: \"no es un mapa (se esperaba el JSON de un objeto)\",\n import_problem_not_a_geopoint: \"no es un geopunto (se esperaba {\\\"latitude\\\": …, \\\"longitude\\\": …})\",\n entities_will_be_overwritten: \"Las entidades con el mismo ID se sobrescribirán\",\n data_imported_successfully: \"Datos importados correctamente\",\n export: \"Exportar\",\n export_data: \"Exportar datos\",\n download_table_csv: \"Descargar el contenido de esta tabla como CSV\",\n csv: \"CSV\",\n json: \"JSON\",\n dates_as_timestamps: \"Fechas como marcas de tiempo (timestamps)\",\n dates_as_strings: \"Fechas como cadenas (strings)\",\n flatten_arrays: \"Aplanar arrays\",\n download: \"Descargar\",\n large_number_of_documents: \"Esta colección posee un gran número de documentos ({{count}}).\",\n too_many_documents_to_export: \"Esta colección tiene más documentos ({{count}}) de los que el navegador puede exportar en un solo archivo (límite {{limit}}). Fíltrala antes de exportar.\",\n include_undefined_values: \"Incluir valores omitidos (undefined)\",\n submit: \"Enviar\",\n\n no_filterable_properties: \"No hay propiedades filtrables disponibles\",\n apply_filters: \"Aplicar filtros\",\n\n // ─── Filter Presets ──────────────────────────────────────────\n filter_presets: \"Preajustes\",\n filter_preset_apply: \"Aplicar preajuste\",\n filter_preset_active: \"Activo: {{label}}\",\n\n list: \"Lista\",\n table_view_mode: \"Tabla\",\n cards: \"Tarjetas\",\n board: \"Tablero\",\n 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.\",\n kanban_view_not_available: \"La vista Kanban no está disponible\",\n 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.\",\n no_enum_values_configured: \"No hay opciones (enum) configuradas para la propiedad \\\"{{property}}\\\"\",\n items_need_backfill: \"Existen elementos sin valores de ordenación. Inicialízalos para habilitar la reorganización con arrastrar y soltar.\",\n 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.\",\n initialize: \"Inicializar\",\n confirm_multiple_delete: \"¿Confirmar eliminación múltiple?\",\n delete_entity_confirm_title: \"¿Confirmas que quieres borrar el elemento '{{entityName}}'?\",\n add_existing: \"Añadir existente\",\n unlink_entity_confirm_title: \"¿Quitar este/a {{entityName}} de este registro?\",\n unlink_entity_confirm_body: \"Seguirá en {{collectionName}} y disponible para otros registros.\",\n confirm_multiple_unlink: \"¿quitarlos de este registro?\",\n remove_from_record: \"Quitar de este registro\",\n removed_from_record: \"Quitado de este registro\",\n no_filter: \"Sin filtro\",\n is_true: \"es verdadero\",\n is_false: \"es falso\",\n error_uploading_file_size: \"Error al subir el archivo: supera los {{maxSize}} bytes\",\n error_uploading_file_type: \"Error al subir el archivo: el tipo de archivo no es compatible\",\n drag_drop_files: \"Arrastra archivos aquí o haz clic para editarlos\",\n drag_drop_file: \"Arrastra un archivo aquí o haz clic para editarlo\",\n multiple_deleted: \"Múltiples eliminados\",\n some_entities_deleted: \"Algunas entidades han sido eliminadas, pero no todas\",\n error_deleting_entities: \"Error al eliminar entidades\",\n delete_rows_failed: \"{{failed}} de {{total}} sin eliminar. {{reason}}\",\n deleted: \"eliminado\",\n selection_options: \"Opciones de selección\",\n selection_menu_all_loaded: \"Todo en esta página\",\n selection_menu_all_matching: \"Los {{total}} {{collection}}\",\n selection_menu_none: \"Ninguno\",\n selection_select_all_loaded: \"Seleccionar las filas cargadas\",\n selection_deselect_all: \"Deseleccionar todo\",\n selection_reading_rows: \"Leyendo filas… {{loaded}} de {{total}}\",\n selection_reading_rows_unknown: \"Leyendo filas… {{loaded}} hasta ahora\",\n selection_deleting_progress: \"Eliminados {{completed}} de {{total}}\",\n confirm_delete_selection: \"¿Eliminar {{total}} {{collection}}?\",\n confirm_delete_selection_unknown: \"¿Eliminar todas las filas que coinciden con el filtro actual?\",\n confirm_delete_selection_body: \"Esta acción no se puede deshacer. Cada fila se elimina por separado, así que puede tardar un rato.\",\n\n export_selection_count: \"Descargar las {{total}} filas seleccionadas en {{format}}\",\n export_selection_all_matching: \"Descargar todos los {{collection}} que coinciden con el filtro actual\",\n\n select_reference: \"Seleccionar referencia\",\n select_references: \"Seleccionar referencias\",\n account_settings: \"Configuración de la cuenta\",\n profile: \"Profile\",\n security: \"Seguridad\",\n sessions: \"Sesiones\",\n change_password: \"Cambiar Contraseña\",\n current_password: \"Contraseña Actual\",\n new_password: \"Nueva Contraseña\",\n confirm_password: \"Confirmar Nueva Contraseña\",\n password_changed: \"Contraseña cambiada. Se cerró la sesión en tus otros dispositivos.\",\n passwords_dont_match: \"Las contraseñas no coinciden\",\n password_too_short: \"La contraseña debe tener al menos 8 caracteres\",\n password_change_not_available: \"El cambio de contraseña no está disponible para cuentas que usan proveedores de inicio de sesión externos.\",\n changing_password: \"Cambiando...\",\n display_name: \"Nombre visible\",\n photo_url: \"URL de la foto\",\n save_profile: \"Guardar perfil\",\n saving: \"Saving...\",\n no_active_sessions: \"No se encontraron sesiones activas.\",\n revoking: \"Revoking...\",\n revoke_all_sessions: \"Revocar todas las sesiones\",\n unknown_device: \"Dispositivo desconocido\",\n unknown_address: \"Desconocida\",\n session_details: \"IP: {{ip}} • Creada: {{created}}\",\n revoke_session: \"Revocar sesión\",\n current: \"Current\",\n role_id: \"ID del rol\",\n role_name: \"Nombre del rol\",\n add_reference: \"Añadir referencia\",\n add_reference_to: \"Añadir referencia a {{name}}\",\n\n /** RolesView — table & permissions */\n role_deleted_successfully: \"Rol eliminado correctamente\",\n error_deleting_role: \"Error al eliminar el rol\",\n collection_permissions: \"Permisos de la colección\",\n collection: \"Collection\",\n no_collections_configured: \"No hay colecciones configuradas\",\n no_security_rules_defined: \"No hay reglas de seguridad definidas: todas las operaciones están sin restricciones\",\n no_rules: \"sin reglas\",\n\n /** UsersView — snackbar */\n bootstrap_admin_success: \"¡Ya eres administrador! Actualizando...\",\n failed_to_bootstrap_admin: \"No se pudo crear el administrador inicial\",\n user_deleted_successfully: \"Usuario eliminado correctamente\",\n error_deleting_user: \"Error al eliminar el usuario\",\n user_created_successfully: \"Usuario creado correctamente\",\n invitation_sent: \"Se ha enviado un correo de invitación a {{email}}. Puede usar el enlace para establecer su contraseña.\",\n invitation_sent_title: \"Invitación enviada\",\n temporary_password: \"Contraseña temporal\",\n temporary_password_description: \"El correo no está configurado. Comparte esta contraseña temporal con el usuario de forma segura. No se volverá a mostrar.\",\n temporary_password_email_failed_description: \"No se pudo entregar el correo. Comparte esta contraseña temporal con el usuario de forma segura. No se volverá a mostrar.\",\n copy_password: \"Copiar contraseña\",\n password_copied: \"Contraseña copiada al portapapeles\",\n\n /** UsersView — pagination & search */\n search_users: \"Buscar usuarios\",\n created: \"Creado\",\n actions: \"Acciones\",\n no_users_found: \"No se encontraron usuarios\",\n reset_password: \"Restablecer contraseña\",\n reset_password_success: \"Contraseña restablecida correctamente\",\n reset_password_confirmation: \"¿Seguro que quieres restablecer la contraseña de este usuario?\",\n reset_password_send_email: \"Enviar un correo para restablecer la contraseña\",\n reset_password_set_manually: \"Establecer una contraseña manualmente\",\n reset_password_set_manually_description: \"La contraseña se actualiza de inmediato y no se envía ningún correo. Compártela con el usuario de forma segura.\",\n\n /** Permission-denied empty states */\n no_permission_to_view_users: \"No tienes permisos para ver los usuarios\",\n no_permission_to_view_roles: \"No tienes permisos para ver los roles\",\n no_permission_description: \"Contacta a un administrador si necesitas acceso a esta sección.\",\n error_resetting_password: \"Error al restablecer la contraseña\",\n\n /** Editor table-bubble */\n add_row_before: \"Insertar fila antes\",\n add_row_after: \"Insertar fila después\",\n delete_row: \"Eliminar fila\",\n add_column_before: \"Insertar columna antes\",\n add_column_after: \"Insertar columna después\",\n delete_column: \"Eliminar columna\",\n delete_table: \"Eliminar tabla\",\n\n /** Editor image-bubble */\n alt_text: \"Texto alternativo\",\n title: \"Title\",\n\n /** MapFieldBinding */\n a_property_of_this_map_has_error: \"Una propiedad de este mapa contiene un error\",\n\n /** AI Collection Generator Popover */\n generate_collection_with_ai: \"Generar colección con IA\",\n modify_collection_with_ai: \"Modificar colección con IA\",\n describe_collection_to_create: \"Describe la colección que quieres crear.\",\n describe_changes_to_make: \"Describe los cambios que quieres hacer en esta colección.\",\n ai_placeholder_create: \"p. ej., Crear una colección de productos con nombre, precio, descripción y categoría...\",\n ai_placeholder_modify: \"p. ej., Agregar un campo de imagen en miniatura con almacenamiento, hacer el precio obligatorio...\",\n ai_assist: \"Asistente IA\",\n generating: \"Generando...\",\n\n /** Recently extracted strings for collection editor */\n this_is_subcollection_of: \"Esta es una subcolección de\",\n use_existing_paths_database: \"Usa una de las rutas existentes en tu base de datos:\",\n describe_collection_ai: \"Describe tu colección a la IA:\",\n generate_with_ai: \"Generar con IA\",\n create_from_json_config: \"Crear desde configuración JSON:\",\n paste_json_config: \"Pegar configuración JSON\",\n create_collection_from_file_formats: \"Crear una colección desde un archivo (csv, json, xls, xslx...)\",\n select_template: \"Seleccionar una plantilla:\",\n products: \"Productos\",\n collection_products_subtitle: \"Una colección de productos con imágenes, precios y existencias\",\n collection_users_subtitle: \"Una colección de usuarios con correos electrónicos, nombres y roles\",\n blog_posts: \"Entradas de blog\",\n collection_blog_posts_subtitle: \"Una colección de artículos con imágenes, autores y contenido complejo\",\n pages: \"Páginas\",\n collection_pages_subtitle: \"Una colección de páginas con imágenes, autores y contenido complejo\",\n continue_from_scratch: \"Continuar desde cero\",\n\n /** Admin views config */\n admin_users: \"Usuarios del panel de administración\",\n roles_menu: \"Roles\",\n project_settings: \"Ajustes del proyecto\",\n\n by_signing_in_you_agree_to_our: \"Al iniciar sesión aceptas nuestros\",\n terms_and_conditions: \"Términos y Condiciones\",\n and_our: \"y nuestra\",\n privacy_policy: \"Política de Privacidad\",\n email_password: \"Email/Contraseña\",\n sign_in_with_google: \"Iniciar sesión con Google\",\n\n // --- Auth error messages ---\n auth_user_not_found: \"Usuario no encontrado\",\n auth_wrong_password: \"Contraseña incorrecta. Por favor, inténtalo de nuevo.\",\n auth_user_disabled: \"Usuario deshabilitado. Por favor, contacta con soporte.\",\n auth_account_exists_with_different_credential: \"Ya existe una cuenta con este correo electrónico. Inicia sesión como lo hiciste la última vez.\",\n auth_account_exists_sign_in_with_password: \"Ya existe una cuenta con este correo electrónico. Inicia sesión con tu correo electrónico y contraseña.\",\n auth_email_already_in_use: \"El correo electrónico ya está en uso\",\n auth_google_permissions_required: \"Necesitas conceder permisos adicionales para gestionar tus proyectos de Google Cloud\",\n auth_invalid_email_password: \"Por favor introduce tanto el correo electrónico como la contraseña\",\n auth_enter_email_first: \"Por favor introduce tu correo electrónico primero\",\n auth_password_reset_sent: \"Correo electrónico de restablecimiento de contraseña enviado\",\n auth_sign_in_account: \"Inicia sesión en tu cuenta\",\n auth_create_new_account: \"Crea una cuenta nueva\",\n auth_password: \"Contraseña\",\n auth_reset_password: \"Restablecer contraseña\",\n auth_new_user: \"¿Usuario nuevo?\",\n auth_have_account: \"¿Tienes una cuenta?\",\n auth_sign_in: \"Iniciar Sesión\",\n auth_sign_up: \"Regístrate\",\n auth_new_password_title: \"Establece una nueva contraseña\",\n auth_new_password_subtitle: \"Elige la contraseña con la que iniciarás sesión a partir de ahora.\",\n auth_password_requirements: \"La contraseña debe tener al menos 8 caracteres, con mayúsculas, minúsculas y un número\",\n auth_set_password: \"Establecer contraseña\",\n auth_password_changed_title: \"Contraseña cambiada\",\n auth_password_changed_body: \"Inicia sesión con tu nueva contraseña.\",\n auth_continue_to_sign_in: \"Continuar al inicio de sesión\",\n auth_link_invalid_or_expired: \"Este enlace no es válido o ha caducado. Solicita uno nuevo desde la pantalla de inicio de sesión.\",\n auth_password_reset_unavailable: \"El restablecimiento de contraseña no está disponible en este backend.\",\n auth_verifying_email: \"Confirmando tu dirección de correo…\",\n auth_email_verified_title: \"Correo confirmado\",\n auth_email_verified_body: \"Tu dirección de correo está confirmada. Ya puedes iniciar sesión.\",\n auth_email_verification_failed_title: \"Correo no confirmado\",\n auth_email_verification_unavailable: \"La verificación de correo no está disponible en este backend.\",\n auth_verify_email_proof_title: \"Confirma que es tu cuenta\",\n auth_verify_email_proof_body: \"Esta cuenta tiene una contraseña. Escríbela para conservarla e iniciar sesión. Si nunca creaste una, puede que otra persona haya registrado tu dirección: confírmala sin la contraseña y la suya se eliminará.\",\n auth_verify_email_password_label: \"La contraseña que elegiste\",\n auth_verify_email_with_password: \"Confirmar e iniciar sesión\",\n auth_verify_email_without_password: \"No creé ninguna contraseña\",\n auth_verify_email_wrong_password: \"Esa no es la contraseña de esta cuenta.\",\n auth_email_verified_password_removed_body: \"Tu dirección de correo está confirmada. Esta cuenta tenía una contraseña creada antes de confirmar la dirección, así que se eliminó. Inicia sesión con un enlace o crea una nueva con «¿Olvidaste tu contraseña?».\",\n auth_confirm_email_sent_title: \"Revisa tu bandeja de entrada\",\n auth_confirm_email_sent_body: \"Te enviamos un enlace a tu dirección de correo. Síguelo para confirmar tu dirección y luego inicia sesión.\",\n auth_email_not_confirmed: \"Primero confirma tu dirección de correo. Te enviamos un enlace nuevo.\",\n auth_mfa_title: \"Verificación en dos pasos\",\n auth_mfa_subtitle: \"Introduce el código de tu aplicación de autenticación o uno de tus códigos de recuperación.\",\n auth_mfa_factor_label: \"Verificar con\",\n auth_mfa_factor_totp: \"Aplicación de autenticación\",\n auth_mfa_code_label: \"Código de verificación\",\n auth_mfa_verify: \"Verificar\",\n auth_mfa_code_invalid: \"Ese código no es correcto. Prueba el código actual de tu aplicación de autenticación o un código de recuperación.\",\n auth_mfa_challenge_exhausted: \"Demasiados códigos incorrectos. Introduce un código nuevo de tu aplicación de autenticación para volver a intentarlo.\",\n auth_mfa_expired: \"Este inicio de sesión ha caducado. Vuelve a iniciar sesión para continuar.\",\n auth_mfa_sign_in_again: \"Volver a iniciar sesión\",\n email_address: \"Dirección de correo\",\n email_change_description: \"Enviamos un enlace a la nueva dirección. Tu cuenta pasa a usarla cuando se abre el enlace.\",\n email_change_button: \"Cambiar correo\",\n email_change_pending: \"Enviamos un enlace a {{email}}. Tu dirección de correo cambia cuando se abre.\",\n email_change_taken: \"Otra cuenta ya usa esa dirección.\",\n email_change_undeliverable: \"Ningún correo puede llegar a esa dirección.\",\n email_change_unchanged: \"Esa ya es tu dirección de correo.\",\n email_change_needs_second_factor: \"Vuelve a iniciar sesión con tu segundo factor antes de cambiar tu dirección de correo.\",\n auth_confirming_email_change: \"Cambiando tu dirección de correo…\",\n auth_email_change_confirmed_title: \"Dirección de correo cambiada\",\n auth_email_change_confirmed_body: \"Tu cuenta ahora usa {{email}}.\",\n auth_email_change_providers_removed: \"Se quitó el inicio de sesión con {{providers}}, porque estaba vinculado a tu dirección anterior.\",\n auth_email_change_failed_title: \"La dirección de correo no se cambió\",\n auth_email_change_continue: \"Continuar\",\n auth_email_change_unavailable: \"Cambiar la dirección de correo no está disponible en este backend.\",\n auth_signing_in_with_link: \"Iniciando tu sesión…\",\n auth_magic_link_failed_title: \"Enlace de inicio de sesión no aceptado\",\n auth_magic_link_unavailable: \"Los enlaces de inicio de sesión no están disponibles en este backend.\",\n reset_mfa_title: \"Restablecer la verificación en dos pasos\",\n reset_mfa_description: \"Quita las aplicaciones de autenticación y los códigos de recuperación de este usuario y cierra todas sus sesiones. Podrá iniciar sesión solo con su contraseña y volver a configurar la verificación en dos pasos.\",\n reset_mfa_confirm: \"Restablecer\",\n reset_mfa_success: \"Verificación en dos pasos restablecida\",\n account_access_title: \"Acceso a la cuenta\",\n account_access_action: \"Desactivar o activar la cuenta\",\n account_disabled_label: \"Cuenta desactivada\",\n account_disabled_description: \"Una cuenta desactivada no puede iniciar sesión, y todas sus sesiones y tokens dejan de funcionar al instante. Sus datos se conservan; vuelve a activarla para devolverle el acceso.\",\n account_disabled_success: \"Cuenta desactivada\",\n account_enabled_success: \"Cuenta activada\",\n\n\n auto_setup_collections_button: \"Configurar colecciones automáticamente\",\n auto_setup_collections_title: \"¿Configurar colecciones automáticamente?\",\n auto_setup_collections_desc: \"Esto creará automáticamente la configuración de las colecciones que <b>NO</b> estén mapeadas\",\n this_can_take_a_minute: \"Esto puede tardar un minuto o dos\",\n no_collections_found_to_setup: \"No se encontraron colecciones para configurar\",\n collections_have_been_setup: \"¡Tus colecciones han sido configuradas!\",\n error_setting_up_collections: \"Error al configurar colecciones\",\n\n // --- Home Suggestions ---\n\n admin_panel_ready_bring_data: \"Tu panel de administración está listo. Traigamos tus datos.\",\n admin_panel_ready_get_started: \"Tu panel de administración está listo. Así es como puedes empezar.\",\n auto_detect_collections: \"Autodetectar colecciones\",\n auto_detect_collections_desc: \"Deja que la IA escanee tu base de datos y genere esquemas de colección automáticamente.\",\n create_a_collection: \"Crear una colección\",\n create_collection_desc: \"Define manualmente tu primera colección desde cero usando el editor visual.\",\n read_the_docs: \"Consulta la documentación\",\n read_the_docs_desc: \"Aprende cómo personalizar campos, vistas, acciones y más.\",\n explore_docs: \"Explorar la documentación\",\n want_to_customize_with_code: \"¿Quieres personalizar con código? Ejecuta\",\n to_scaffold_a_local_project: \"para crear un proyecto local.\",\n\n // ─── Collection Editor — Validation ──────────────────────────\n validation: \"Validación\",\n unique: \"Único\",\n required_message: \"Mensaje de campo obligatorio\",\n required_tooltip: \"No podrás guardar esta entidad si este valor no está establecido\",\n unique_tooltip: \"No puede haber múltiples entidades con el mismo valor\",\n lowercase: \"Minúsculas\",\n uppercase: \"Mayúsculas\",\n trim: \"Recortar espacios\",\n exact_length: \"Longitud exacta\",\n min_length: \"Longitud mínima\",\n max_length: \"Longitud máxima\",\n varchar_narrowing_warning: \"Al guardar, esta columna {{columnType}} se reduce a {{max}} caracteres. rebase db push pregunta antes de reducir una columna, y el cambio falla mientras haya un valor guardado más largo.\",\n matches_regex: \"Coincide con regex\",\n not_valid_regexp: \"No es una expresión regular válida\",\n regex_helper: \"ej. /^\\\\d+$/ solo para dígitos\",\n min_value: \"Valor mínimo\",\n max_value: \"Valor máximo\",\n less_than: \"Menor que\",\n more_than: \"Mayor que\",\n positive_value: \"Valor positivo\",\n negative_value: \"Valor negativo\",\n integer_value: \"Valor entero\",\n\n // ─── Collection Editor — Property Edit ───────────────────────\n invalid_regular_expression: \"Expresión regular no válida\",\n must_specify_target_collection: \"Debes especificar una colección de destino para el campo\",\n need_specify_repeat_field: \"Debes especificar un campo de repetición\",\n need_specify_block_properties: \"Debes especificar las propiedades de este bloque\",\n incomplete_condition: \"Condición incompleta - por favor selecciona un campo\",\n field_name: \"Nombre del campo\",\n\n // ─── Collection Editor — Display & Config ────────────────────\n kanban_column_property: \"Propiedad de columna Kanban\",\n select_a_property: \"Seleccionar una propiedad\",\n 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.\",\n no_enum_string_properties: \"No se encontraron propiedades de tipo string con enum. Agrega una propiedad string con enumValues para usar la vista Kanban.\",\n kanban_column_description: \"Selecciona una propiedad de tipo string con valores enum para agrupar entidades en columnas\",\n create_property: \"+ Crear propiedad \\\"{{property}}\\\"\",\n order_property: \"Propiedad de orden\",\n 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.\",\n no_number_properties: \"No se encontraron propiedades numéricas. Agrega una propiedad numérica para habilitar el ordenamiento.\",\n order_property_description: \"Selecciona una propiedad numérica para mantener el orden de los elementos\",\n display_settings: \"Configuración de visualización\",\n default_row_size: \"Tamaño de fila predeterminado\",\n side_dialog_width: \"Ancho del diálogo lateral\",\n side_dialog_width_description: \"Opcionalmente define el ancho (en píxeles) del diálogo lateral de entidades. El valor predeterminado es 768px\",\n inline_editing_enabled: \"Los datos se pueden editar directamente en la vista de tabla\",\n inline_editing_disabled: \"Los datos solo se pueden editar en la vista de formulario\",\n inline_editing_description: \"Permitir editar datos directamente en la vista de tabla, sin abrir la vista de formulario.\",\n include_json_view: \"Incluir vista JSON\",\n no_json_view: \"No incluir vista JSON\",\n json_view_description: \"Incluir la representación JSON del documento.\",\n not_found_suffix: \"no encontrado\",\n\n // ─── Editor ─────────────────────────────────────────────────\n editor_text: \"Texto\",\n editor_text_description: \"Empieza a escribir con texto plano.\",\n editor_heading_1: \"Encabezado 1\",\n editor_heading_1_description: \"Encabezado de sección grande.\",\n editor_heading_2: \"Encabezado 2\",\n editor_heading_2_description: \"Encabezado de sección mediano.\",\n editor_heading_3: \"Encabezado 3\",\n editor_heading_3_description: \"Encabezado de sección pequeño.\",\n editor_todo_list: \"Lista de tareas\",\n editor_todo_list_description: \"Sigue tus tareas con una lista de tareas.\",\n editor_bullet_list: \"Lista con viñetas\",\n editor_bullet_list_description: \"Crea una lista simple con viñetas.\",\n editor_numbered_list: \"Lista numerada\",\n editor_numbered_list_description: \"Crea una lista con numeración.\",\n editor_quote: \"Cita\",\n editor_quote_description: \"Captura una cita.\",\n editor_code: \"Código\",\n editor_code_description: \"Captura un fragmento de código.\",\n editor_image: \"Imagen\",\n editor_image_description: \"Sube una imagen desde tu ordenador.\",\n editor_multiple: \"Múltiple\",\n editor_link: \"Enlace\",\n editor_save: \"Guardar\",\n editor_cancel: \"Cancelar\",\n editor_remove_link: \"Eliminar enlace\",\n editor_paste_or_type_link: \"Pega o escribe el enlace\",\n editor_invalid_url: \"Eso no es un enlace: prueba con una dirección completa como example.com\",\n editor_open_in_new_window: \"Abrir en una ventana nueva\",\n editor_bold: \"Negrita\",\n editor_italic: \"Cursiva\",\n editor_underline: \"Subrayado\",\n editor_strikethrough: \"Tachado\",\n editor_autocomplete: \"Autocompletar\",\n editor_autocomplete_description: \"Añade texto basado en el contexto.\",\n\n // ─── Text Search Dialog ─────────────────────────────────────\n text_search_dialog_title: \"Activar búsqueda de texto\",\n text_search_local_not_recommended: \"La búsqueda de texto local no es recomendable para colecciones grandes.\",\n 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.\",\n 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.\",\n 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.\",\n 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.\",\n text_search_enable_for_collection: \"Activar para esta colección\",\n text_search_enable_for_project: \"Activar para el proyecto\",\n text_search_enabled_snackbar: \"Búsqueda de texto local activada\",\n\n settings_heading: \"Ajustes\",\n settings_project_name: \"Nombre del proyecto\",\n settings_default_language: \"Idioma predeterminado\",\n settings_default_language_caption: \"Selecciona el idioma base para este proyecto. Los usuarios pueden modificar esta preferencia en sus ajustes personales.\",\n settings_enable_local_text_search: \"Habilitar búsqueda de texto local\",\n 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.\",\n settings_doc_history_all_collections: \"Historial de documentos habilitado para todas las colecciones\",\n 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.\",\n settings_theme: \"Tema\",\n settings_primary_color: \"Color primario\",\n settings_secondary_color: \"Color secundario\",\n settings_sample_theme_components: \"Componentes de ejemplo del tema\",\n settings_drag_drop_logo: \"Arrastra y suelta tu logotipo aquí\",\n settings_security_rules: \"Reglas de seguridad\",\n 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.\",\n settings_security_rules_add_domain: \"Recuerda añadir el dominio {{domain}} a los dominios permitidos de tu proveedor\",\n 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.\",\n\n // ─── Studio: SQL Editor ─────────────────────────────────────\n studio_sql_executing_query: \"EJECUTANDO CONSULTA...\",\n studio_sql_query_error: \"Error en la consulta\",\n studio_sql_run_query_placeholder: \"Ejecuta una consulta para ver los resultados\",\n studio_sql_visual_execution_plan: \"Plan de ejecución visual\",\n studio_sql_success: \"SUCCESS\",\n studio_sql_no_results: \"La consulta se ejecutó correctamente pero no devolvió resultados.\",\n studio_sql_rows: \"Rows:\",\n studio_sql_time: \"Time:\",\n studio_sql_copy_markdown: \"Copiar como Markdown\",\n studio_sql_export_json: \"Exportar JSON\",\n studio_sql_export_json_typed: \"Exportar JSON con tipos\",\n studio_sql_export_csv: \"Exportar CSV\",\n studio_sql_format_sql: \"Formatear SQL\",\n studio_sql_explain: \"Explain\",\n studio_sql_limit_1000: \"Limit 1000\",\n studio_sql_remove_from_favorites: \"Quitar de favoritos\",\n studio_sql_add_to_favorites: \"Añadir a favoritos\",\n studio_sql_save: \"Save\",\n studio_sql_run: \"Run\",\n studio_sql_cancel_run: \"Cancelar ejecución\",\n studio_sql_run_cancelled: \"Ejecución cancelada.\",\n studio_sql_database: \"Database\",\n studio_sql_role: \"Role\",\n studio_sql_admin: \"(Admin)\",\n studio_sql_select_db: \"Elegir base de datos\",\n studio_sql_query_results: \"Resultados de la consulta\",\n studio_sql_save_snippet: \"Guardar fragmento SQL\",\n studio_sql_snippet_name: \"Nombre del fragmento\",\n studio_sql_snippet_name_placeholder: \"p. ej., Obtener todos los usuarios\",\n studio_sql_snippet_saved_local: \"Se guardará en tu almacenamiento local.\",\n studio_sql_cancel: \"Cancel\",\n studio_sql_dangerous_operation: \"Operación peligrosa detectada\",\n studio_sql_dangerous_operation_body: \"La consulta que vas a ejecutar contiene operaciones potencialmente destructivas (DELETE, DROP, TRUNCATE o UPDATE sin WHERE). ¿Seguro que quieres continuar?\",\n studio_sql_snippet_saved: \"Fragmento «{{name}}» guardado.\",\n studio_sql_markdown_copied: \"¡Resultados copiados como Markdown!\",\n studio_sql_markdown_copy_failed: \"No se pudo copiar el Markdown al portapapeles.\",\n studio_sql_row_updated: \"Fila actualizada correctamente.\",\n studio_sql_cannot_edit_missing_query: \"No se pueden editar las filas: falta la consulta subyacente.\",\n studio_sql_edit_unreadable_query: \"La consola no pudo leer esta consulta, así que no sabe de qué fila viene una celda. Las celdas de este resultado no se pueden editar.\",\n studio_sql_edit_not_a_select: \"Aquí solo se pueden editar las filas de un único SELECT.\",\n studio_sql_edit_duplicate_column: \"El resultado tiene más de una columna llamada \\\"{{column}}\\\". Dale a cada una su propio alias para editarla.\",\n studio_sql_edit_computed_column: \"\\\"{{column}}\\\" no se lee de una columna de tabla (es calculada, un literal o un agregado), así que no hay dónde escribirla de vuelta.\",\n studio_sql_edit_not_a_table: \"\\\"{{column}}\\\" viene de {{table}}, que no es una tabla. Aquí solo se pueden editar filas de una tabla.\",\n studio_sql_edit_inherited_table: \"Otras tablas heredan de {{table}}, así que su clave primaria puede coincidir con una fila en cada una de ellas. Edita la fila en la tabla que la contiene.\",\n studio_sql_edit_no_primary_key: \"{{table}} no tiene clave primaria, así que no se puede volver a encontrar una de sus filas para actualizarla.\",\n studio_sql_edit_key_missing: \"Para editar columnas de {{table}}, selecciona su clave primaria ({{columns}}) con un nombre que ninguna otra columna del resultado tenga.\",\n studio_sql_edit_table_read_twice: \"La consulta lee {{table}} más de una vez, así que la clave de una fila y esta celda pueden venir de filas distintas.\",\n studio_sql_missing_pk: \"A la fila le faltan columnas de clave primaria: {{columns}}. No se puede actualizar con seguridad.\",\n studio_sql_cannot_edit_other_connection: \"Estas filas se leyeron de otra base de datos o con otro rol. Vuelve a ejecutar la consulta para editarlas.\",\n studio_sql_update_failed: \"Error al actualizar: {{message}}\",\n studio_sql_update_no_row: \"No se actualizó ninguna fila: la fila cambió o se eliminó desde que se leyó, o el rol seleccionado no puede actualizarla. Vuelve a ejecutar la consulta para ver lo que está guardado.\",\n studio_sql_ran_as_other_role: \"Estas filas se leyeron como {{ranAs}}, no como {{role}}: el cambio de rol está desactivado en este servidor (DISABLE_DB_ROLE_SWITCHING), así que cada sentencia se ejecuta como el propietario de la conexión.\",\n studio_sql_result_truncated: \"Se muestran las primeras {{shown}} de {{total}} filas: la consola guarda como máximo 10.000 filas, o 32 MB de valores, de un resultado. Acota la consulta, o recórrela por páginas con LIMIT y OFFSET, para ver el resto. Copiar y exportar incluyen solo las filas mostradas.\",\n studio_sql_download_full_csv: \"Descargar el resultado completo como CSV\",\n studio_sql_downloading_full_csv: \"Descargando…\",\n studio_sql_download_full_failed: \"No se pudo descargar el resultado completo: {{message}}\",\n studio_sql_role_switching_disabled: \"El cambio de rol está desactivado en este servidor: cada sentencia se ejecuta como {{role}}, sea cual sea el rol elegido aquí.\",\n studio_sql_execution_not_supported: \"La fuente de datos actual no admite la ejecución de SQL.\",\n studio_sql_error_executing: \"Se produjo un error al ejecutar la consulta.\",\n studio_sql_error_explaining: \"Se produjo un error al explicar la consulta.\",\n studio_sql_explain_single_statement: \"Explain funciona con una sola sentencia a la vez. Selecciona la sentencia que quieres explicar y vuelve a intentarlo.\",\n studio_sql_save_first_to_favorite: \"Guarda el fragmento antes de marcarlo como favorito.\",\n studio_sql_collections_label: \"Collections:\",\n studio_sql_admin_collections_tooltip: \"Tables in this query that are mapped as admin collections\",\n studio_sql_edit_entity: \"Edit {{name}} #{{id}}\",\n studio_sql_sql_not_supported: \"Esta fuente de datos no admite la ejecución de SQL\",\n studio_sql_fetch_error: \"No se pudieron obtener las opciones de conexión: {{message}}\",\n studio_sql_unexpected_format: \"Formato de datos inesperado: {{type}}\",\n studio_sql_no_tables: \"No se encontraron tablas en esta base de datos.\",\n studio_sql_schema_fetch_error: \"No se pudo obtener el esquema: {{message}}\",\n\n // ─── Studio: SQL Editor Sidebar ──────────────────────────────\n studio_sql_sidebar_snippets: \"Snippets\",\n studio_sql_sidebar_history: \"History\",\n studio_sql_sidebar_schema: \"Schema\",\n studio_sql_sidebar_no_snippets: \"No hay fragmentos guardados\",\n studio_sql_sidebar_save_snippet_hint: \"Guarda una consulta para acceder a ella aquí.\",\n studio_sql_sidebar_no_history: \"Sin historial\",\n studio_sql_sidebar_history_hint: \"Las consultas ejecutadas aparecerán aquí.\",\n studio_sql_sidebar_delete_snippet: \"Eliminar fragmento\",\n studio_sql_close_tab: \"Cerrar esta pestaña de consulta\",\n studio_sql_new_tab: \"Nueva pestaña de consulta\",\n\n // ─── Studio: Schema Browser ──────────────────────────────────\n studio_schema_tables: \"Tables\",\n studio_schema_loading: \"Cargando esquema...\",\n studio_schema_no_tables: \"No se encontraron tablas\",\n studio_schema_retry: \"Retry\",\n studio_schema_primary_key: \"Clave primaria\",\n studio_schema_select_all: \"SELECT * FROM\",\n studio_schema_insert_into: \"INSERT INTO\",\n studio_schema_update: \"UPDATE\",\n studio_schema_delete_from: \"DELETE FROM\",\n studio_schema_columns: \"{{count}} columnas\",\n\n // ─── Studio: RLS Editor ──────────────────────────────────────\n studio_rls_title: \"Seguridad a nivel de fila\",\n studio_rls_description: \"Gestiona las políticas RLS de tus tablas\",\n studio_rls_enabled: \"RLS activada\",\n studio_rls_disabled: \"RLS desactivada\",\n studio_rls_no_rls: \"Sin RLS\",\n studio_rls_enable_rls: \"Activar RLS\",\n studio_rls_disable_rls: \"Desactivar RLS\",\n studio_rls_create_policy: \"Crear política\",\n studio_rls_policies: \"Policies\",\n studio_rls_no_policies: \"No hay políticas definidas\",\n studio_rls_no_policies_desc: \"Esta tabla no tiene políticas RLS. El acceso a todas las filas depende del estado de RLS.\",\n studio_rls_add_first_policy: \"Añade tu primera política\",\n studio_rls_force_rls: \"Forzar RLS\",\n studio_rls_force_rls_desc: \"Si se activa, las políticas RLS se aplican también al propietario de la tabla.\",\n studio_rls_enable_force_rls: \"Activar RLS forzada\",\n studio_rls_disable_force_rls: \"Desactivar RLS forzada\",\n studio_rls_edit: \"Edit\",\n studio_rls_edit_generated: \"Rebase genera {{policy}} para todas las colecciones, así que no hay ninguna regla tuya que editar. Añade una política propia en su lugar.\",\n studio_rls_edit_not_declared: \"{{policy}} solo existe en la base de datos, así que no hay ninguna regla en tu código que editar. Impórtala primero al código.\",\n studio_rls_edit_several_operations: \"{{policy}} es una de las políticas en las que se compila una sola regla, una por operación. Edita esa regla en el archivo fuente de la colección.\",\n studio_rls_delete: \"Delete\",\n studio_rls_confirm_delete_title: \"Eliminar política\",\n studio_rls_confirm_delete_body: \"¿Seguro que quieres eliminar esta política? Esta acción no se puede deshacer.\",\n studio_rls_confirm_enable_title: \"Activar la seguridad a nivel de fila\",\n studio_rls_confirm_enable_body: \"Al activar RLS, el acceso a las filas de esta tabla quedará restringido por tus políticas. Asegúrate de tener políticas adecuadas.\",\n studio_rls_confirm_disable_title: \"Desactivar la seguridad a nivel de fila\",\n studio_rls_confirm_disable_body: \"Al desactivar RLS, todas las filas quedarán accesibles para todos los roles. ¿Seguro que quieres continuar?\",\n studio_rls_select_table: \"Selecciona una tabla\",\n studio_rls_no_tables: \"No hay tablas disponibles\",\n studio_rls_error: \"Error al cargar las políticas\",\n studio_rls_retry: \"Retry\",\n studio_rls_loading: \"Cargando políticas...\",\n\n // ─── Studio: Policy Editor ───────────────────────────────────\n studio_policy_edit: \"Editar política\",\n studio_policy_create: \"Crear una política nueva\",\n studio_policy_defining_rules: \"Definiendo reglas de acceso para\",\n studio_policy_cancel: \"Cancel\",\n studio_policy_save: \"Guardar política\",\n studio_policy_template: \"Empezar desde una plantilla (opcional)\",\n studio_policy_select_template: \"Selecciona una plantilla...\",\n studio_policy_name: \"Nombre de la política\",\n studio_policy_name_placeholder: \"Da a tu política un nombre descriptivo\",\n studio_policy_behavior: \"Comportamiento de la política\",\n studio_policy_permissive: \"Permissive\",\n studio_policy_permissive_desc: \"Se combina con «OR»\",\n studio_policy_restrictive: \"Restrictive\",\n studio_policy_restrictive_desc: \"Se combina con «AND»\",\n studio_policy_command: \"Comando de la política\",\n studio_policy_target_roles: \"Roles destinatarios\",\n studio_policy_roles_placeholder: \"Selecciona roles (por defecto, public)\",\n studio_policy_using_expr: \"Expresión USING\",\n studio_policy_using_expr_desc: \"Se aplica a las filas existentes (SELECT, UPDATE, DELETE)\",\n studio_policy_check_expr: \"Expresión WITH CHECK\",\n studio_policy_check_expr_desc: \"Se aplica a las filas nuevas o modificadas (INSERT, UPDATE)\",\n studio_policy_help_title: \"Guía de seguridad a nivel de fila (RLS)\",\n studio_policy_help_intro: \"La seguridad a nivel de fila (RLS) te permite restringir a qué filas puede acceder o qué filas puede modificar cada usuario según su estado de autenticación o sus roles.\",\n studio_policy_help_step1_title: \"1. Selecciona una plantilla\",\n studio_policy_help_step1_desc: \"Si es tu primera vez con RLS, lo más fácil es empezar eligiendo una plantilla predefinida en el desplegable. Configurará la política automáticamente para casos habituales como «los usuarios pueden actualizar sus propias filas».\",\n studio_policy_help_step2_title: \"2. Roles destinatarios\",\n studio_policy_help_step2_desc: \"Elige los roles de base de datos a los que se aplica la política. Toda petición a la API se ejecuta con el mismo rol, haya sesión iniciada o no, así que quién es el llamante va en la expresión USING:\",\n studio_policy_help_role_public: \"Todos los roles, es decir, todas las peticiones. Es lo que usan las plantillas y las políticas propias de Rebase.\",\n studio_policy_help_role_rebase_user: \"El rol con el que se ejecutan las peticiones a la API. Solo difiere de public en las conexiones hechas directamente con otro rol.\",\n studio_policy_help_roles_not_users: \"Los usuarios con sesión iniciada, los visitantes anónimos y los administradores no son roles de base de datos aquí. Elige public y comprueba rebase.uid() o rebase.roles() en la expresión, como hacen las plantillas.\",\n studio_policy_help_step3_title: \"3. Expresión USING\",\n studio_policy_help_step3_desc: \"Una condición SQL que debe evaluarse como verdadera para que las filas existentes sean visibles o actualizables (SELECT, UPDATE, DELETE).\",\n studio_policy_help_step3_example: \"Garantiza que los usuarios solo vean las filas de las que son propietarios.\",\n studio_policy_help_step4_title: \"4. Expresión WITH CHECK\",\n studio_policy_help_step4_desc: \"Una condición SQL que debe evaluarse como verdadera para que se guarden las filas nuevas o modificadas (INSERT, UPDATE).\",\n studio_policy_help_step4_example: \"Suele coincidir con la expresión USING cuando los usuarios solo pueden insertar o editar sus propios datos.\",\n studio_policy_help_auth_vars_title: \"Variables de autenticación de Rebase\",\n studio_policy_help_auth_vars_desc: \"Rebase ofrece funciones auxiliares nativas que puedes usar en tus expresiones:\",\n studio_policy_help_auth_uid: \"Devuelve el ID del usuario actual como texto. Ejemplo:\",\n studio_policy_help_auth_jwt: \"Devuelve la carga útil completa del JWT como JSONB para que puedas comprobar reclamaciones personalizadas. Ejemplo:\",\n studio_policy_help_auth_roles: \"Devuelve los ID de rol del usuario como una cadena separada por comas. Se usa mejor con:\",\n studio_policy_help_docs_cta: \"Para saber más sobre las políticas de Postgres, consulta la documentación oficial.\",\n studio_policy_help_read_docs: \"Leer la documentación\",\n studio_policy_help_got_it: \"¡Entendido!\",\n\n // ─── Studio: UI Actions ──────────────────────────────────────\n studio_add_kanban_column: \"Añadir columna\",\n studio_add_kanban_column_title: \"Añadir columna al Kanban\",\n studio_add_kanban_column_name: \"Nombre de la columna\",\n studio_add_kanban_column_name_placeholder: \"Nombre de la nueva columna\",\n studio_add_kanban_column_add: \"Add\",\n studio_add_kanban_column_cancel: \"Cancel\",\n studio_collection_view_sql: \"Editor SQL\",\n studio_collection_view_admin: \"Vista de administración\",\n studio_editor_collection_tooltip: \"Editar el esquema de la colección\",\n studio_editor_collection_no_permission: \"No tienes permiso para editar esta colección\",\n studio_editor_collection_start_tooltip: \"Copiar la ruta o editar el esquema\",\n studio_editor_collection_start_no_permission: \"No tienes permiso para modificar esta colección\",\n studio_editor_collection_start_copied: \"Copied!\",\n studio_editor_entity_tooltip: \"Editar el esquema de la entidad\",\n studio_editor_entity_no_permission: \"No tienes permiso para editar esta entidad\",\n studio_home_edit_collection: \"Editar colección\",\n studio_home_delete_collection: \"Eliminar colección\",\n studio_home_confirm_delete_title: \"¿Eliminar la colección?\",\n studio_home_confirm_delete_body: \"¿Seguro que quieres eliminar la colección «{{name}}»? Esta acción no se puede deshacer.\",\n studio_kanban_setup: \"Configuración del Kanban\",\n studio_missing_reference: \"Referencia inexistente: {{path}}\",\n studio_missing_reference_create: \"Create\",\n studio_new_collection: \"Colección nueva\",\n studio_new_collection_card: \"Colección nueva\",\n studio_new_collection_no_permission: \"No tienes permisos para crear colecciones\",\n studio_property_add_column: \"Añadir una propiedad nueva\",\n studio_property_add_column_no_permission: \"No tienes permiso para añadir propiedades nuevas\",\n studio_add_kanban_column_desc: \"Añade una opción nueva a la propiedad «{{property}}». Se creará una columna nueva en el tablero Kanban.\",\n studio_add_kanban_column_adding: \"Adding...\",\n studio_add_kanban_column_exists: \"Ya hay una columna \\\"{{label}}\\\" en el tablero.\",\n studio_add_kanban_column_not_enum: \"\\\"{{property}}\\\" no es una propiedad con opciones, así que no se le puede añadir una columna.\",\n studio_collection_view_edit: \"Edit\",\n studio_editor_collection_disabled: \"La edición de colecciones está desactivada\",\n studio_editor_collection_edit: \"Editar colección\",\n studio_editor_entity_save_first: \"Debes guardar el documento antes de cambiar el esquema\",\n studio_editor_entity_edit_schema: \"Editar el esquema de este formulario\",\n studio_editor_collection_start_save_filter: \"Guardar el filtro y el orden por defecto\",\n studio_editor_collection_start_clear_filter: \"Borrar el filtro y el orden por defecto\",\n studio_editor_collection_start_reset_filter: \"Restablecer el filtro y el orden por defecto\",\n studio_editor_collection_start_saved: \"Configuración por defecto guardada\",\n studio_home_duplicate_collection: \"Duplicate\",\n studio_home_delete: \"Delete\",\n studio_home_confirm_delete_no_data: \"Elimina el archivo de la colección y su entrada en index.ts, y hace commit del cambio. La tabla y sus filas permanecen en la base de datos. No se permite mientras otra colección enlace a esta.\",\n studio_home_collection_deleted: \"Colección eliminada\",\n studio_kanban_configure: \"Configurar el Kanban\",\n studio_missing_reference_error: \"No hay ninguna colección para la ruta: {{path}}\",\n studio_new_collection_add: \"Añadir nueva colección\",\n studio_tool_schema: \"Colecciones\",\n studio_js_collections_tab: \"Colecciones\",\n studio_tool_schema_description: \"Define y gestiona tu modelo de datos y los esquemas de tus colecciones\",\n studio_collections_editor_empty: \"Todavía no hay colecciones.\",\n studio_collections_editor_pick: \"Selecciona una colección o crea una nueva para empezar a editar.\",\n studio_collections_editor_read_only: \"Las colecciones no se pueden editar en este servidor.\",\n studio_collections_editor_unsaved: \"Hay cambios sin guardar en esta colección.\",\n\n // ─── Property field labels ──────────────────────────────────\n db_column_type: \"Tipo de columna de base de datos\",\n primary_key_unique_id: \"Clave primaria / ID único\",\n spread_children_as_columns: \"Expandir hijos como columnas\",\n mode: \"Modo\",\n timezone: \"Zona horaria\",\n target_collection: \"Colección destino\",\n\n // ─── Storage property ───────────────────────────────────────\n storage_file_name: \"Nombre del archivo\",\n storage_path: \"Ruta de almacenamiento\",\n storage_max_size: \"Tamaño máximo (en bytes)\",\n storage_resize_mode: \"Modo de redimensionamiento\",\n storage_output_format: \"Formato de salida\",\n storage_max_width: \"Ancho máximo (px)\",\n storage_max_height: \"Alto máximo (px)\",\n storage_quality: \"Calidad (0-100)\",\n storage_file_upload_config: \"Configuración de subida de archivos\",\n storage_image_resize_config: \"Configuración de redimensionamiento de imagen\",\n storage_all_file_types: \"Todos los tipos de archivo permitidos\",\n storage_allowed_file_types: \"Tipos de archivo permitidos\",\n storage_include_bucket_url: \"Incluir URL del bucket (s3://...) en el valor guardado\",\n storage_save_url: \"Guardar URL en lugar de la ruta de almacenamiento\",\n\n // ─── DateTime property ──────────────────────────────────────\n datetime_automatic_value: \"Valor automático\",\n\n // ─── Markdown property ──────────────────────────────────────\n markdown_paste_behavior: \"Comportamiento al pegar\",\n\n // ─── Entity identity bar and inspector ──────────────────────\n entity_saved: \"Guardado\",\n more_actions: \"Más acciones\",\n record_history: \"Historial\",\n inspect_record: \"Inspeccionar registro\",\n inspect: \"Inspeccionar\",\n close_inspector: \"Cerrar el inspector\",\n open_in_live_site: \"Abrir en el sitio publicado\",\n\n // ─── Revision history ───────────────────────────────────────\n history_revert: \"Volver a esta versión\",\n history_revert_title: \"¿Volver a esta versión de los datos?\",\n history_reverted: \"Se volvió a la versión seleccionada\",\n history_revert_error: \"Error al revertir el registro\",\n history_revert_dirty: \"Guarda o descarta tus cambios antes de revertir\",\n history_empty: \"No hay historial disponible\",\n history_empty_description: \"Al guardar un registro se crea una nueva versión y se almacena en el historial.\",\n history_new_entity: \"El historial solo está disponible para registros existentes\",\n history_no_more: \"No hay más historial\",\n\n // ─── Studio: tools, groups and empty states ─────────────────\n // The admin's own three groups, read by `useNavigationGroupLabel` the same\n // way as the Studio ones below — the group *name* is an identifier the\n // ordering and the icons key off, and only the heading is translated.\n studio_group_views: \"Vistas\",\n studio_group_admin: \"Administración\",\n studio_group_settings: \"Ajustes\",\n studio_group_database: \"Base de datos\",\n studio_group_compute: \"Cómputo\",\n studio_group_storage: \"Almacenamiento\",\n studio_group_api: \"API\",\n studio_group_access_control: \"Control de acceso\",\n studio_tool_sql: \"Consola SQL\",\n studio_tool_sql_description: \"Ejecuta consultas SQL\",\n studio_tool_js: \"Consola JS\",\n studio_tool_js_description: \"Ejecuta JavaScript\",\n studio_tool_rls: \"Políticas RLS\",\n studio_tool_rls_description: \"Seguridad a nivel de fila\",\n studio_tool_storage: \"Almacenamiento\",\n studio_tool_storage_description: \"Gestiona los archivos de almacenamiento\",\n studio_tool_cron: \"Tareas cron\",\n studio_tool_cron_description: \"Gestiona las tareas programadas\",\n studio_tool_schema_visualizer: \"Visualizador de esquema\",\n studio_tool_schema_visualizer_description: \"Diagrama de entidades de tus colecciones\",\n studio_tool_branches: \"Ramas\",\n studio_tool_branches_description: \"Crea y gestiona ramas de la base de datos\",\n studio_tool_backups: \"Copias de seguridad\",\n studio_tool_backups_description: \"Descarga copias de seguridad de la base de datos\",\n studio_tool_api: \"Explorador de API\",\n studio_tool_api_description: \"Documentación de API interactiva y pruebas\",\n studio_tool_logs: \"Explorador de registros\",\n studio_tool_logs_description: \"Registros de sistema y consultas en tiempo real\",\n studio_tool_api_keys: \"Claves de API\",\n studio_tool_api_keys_description: \"Crea y gestiona claves de API con alcance\",\n studio_backups_denied_title: \"No puedes listar las copias de seguridad de este proyecto\",\n studio_backups_denied_hint: \"El proyecto está bien. Listar copias de seguridad requiere una conexión de administrador, y la cuenta con la sesión iniciada fue rechazada.\",\n studio_backups_read_failed: \"No se han podido leer las copias de seguridad de este proyecto\",\n studio_backups_downloading: \"Descargando…\",\n studio_backups_roles_file: \"Archivo de roles\",\n studio_backups_roles_file_hint: \"El .globals.sql guardado con esta copia. Recrea los roles de base de datos a los que se refieren los permisos y la seguridad a nivel de fila del volcado, y `rebase db restore` lo lee junto al .dump, así que guarda los dos archivos juntos.\",\n studio_backups_no_roles_file: \"Sin archivo de roles\",\n studio_backups_no_roles_file_hint: \"Esta copia no tiene ningún .globals.sql. Al restaurarla en un Postgres nuevo, se detiene en el primer permiso concedido a un rol de base de datos que allí no existe.\",\n studio_backups_empty: \"Todavía no hay copias de seguridad.\",\n studio_backups_empty_hint: \"Crea una con `rebase db backup` o prográmalas con un archivo cron que exporte createBackupCron.\",\n studio_backups_last_run_failed: \"La última copia de seguridad programada falló ({{when}})\",\n studio_backups_last_run_ok: \"Última copia de seguridad programada: {{when}}\",\n studio_backups_never_ran: \"La copia de seguridad programada aún no se ha ejecutado\",\n studio_backups_next_run: \"Próxima ejecución: {{when}}\",\n studio_backups_schedule_paused: \"Las copias de seguridad programadas están en pausa. Reanuda la tarea {{job}} en Tareas cron.\",\n studio_backups_schedule_off_in_code: \"Las copias de seguridad programadas están desactivadas: la tarea {{job}} está declarada como desactivada en su archivo cron. Con el archivo cron de copias documentado, definir BACKUP_SCHEDULE las activa.\",\n studio_backups_manual_run_ok: \"Última ejecución manual: {{when}}\",\n studio_backups_manual_run_failed: \"La última ejecución manual falló ({{when}})\",\n studio_backups_history_unreadable: \"No se ha podido leer el historial de ejecuciones de la copia de seguridad programada, así que no se sabe si se ha ejecutado. El motivo está en el registro del servidor.\",\n studio_backups_job_refused: \"Las copias de seguridad programadas nunca se ejecutan: el planificador rechazó la tarea {{job}}. Corrígela en su archivo cron.\",\n studio_backups_local_disk_of_this_process: \"Estas son las copias de seguridad del disco de este proceso del servidor. Las copias programadas se ejecutan en otro proceso y escriben en su disco, así que solo aparecen aquí si ambos comparten este directorio. Un destino s3:// o gs:// se lee igual desde cualquier proceso.\",\n studio_backups_unavailable_title: \"Copias de seguridad no disponibles\",\n studio_backups_unavailable_body: \"Este backend no expone la API de copias de seguridad.\",\n studio_cron_denied_title: \"No puedes listar las tareas cron de este proyecto\",\n studio_cron_denied_hint: \"El proyecto está bien. La API de cron es solo para administradores, y la cuenta con la sesión iniciada fue rechazada.\",\n studio_cron_read_failed: \"No se han podido leer las tareas cron de este proyecto\",\n studio_cron_logs_read_failed: \"No se han podido leer las ejecuciones de esta tarea\",\n studio_cron_logs_denied_title: \"No puedes leer las ejecuciones de esta tarea\",\n studio_cron_run_succeeded: \"{{job}} se ha ejecutado correctamente\",\n studio_cron_last_error: \"Último error\",\n studio_cron_no_executions: \"Todavía no hay ejecuciones\",\n studio_cron_manual_run: \"manual\",\n studio_cron_job_enabled: \"Tarea activada\",\n studio_cron_job_paused: \"Tarea en pausa\",\n studio_cron_refresh: \"Actualizar\",\n studio_cron_select_job: \"Selecciona una tarea cron para ver sus detalles\",\n studio_cron_pause_job: \"Pausar tarea\",\n studio_cron_enable_job: \"Activar tarea\",\n studio_cron_run_now: \"Ejecutar ahora\",\n studio_cron_schedule: \"Programación\",\n studio_cron_last_run: \"Última ejecución\",\n studio_cron_next_run: \"Próxima ejecución\",\n studio_cron_paused: \"En pausa\",\n studio_cron_duration: \"Duración\",\n studio_cron_status: \"Estado\",\n studio_cron_total_runs: \"Ejecuciones totales\",\n studio_cron_failures: \"Fallos\",\n studio_cron_execution_history: \"Historial de ejecuciones\",\n studio_cron_refresh_logs: \"Actualizar ejecuciones\",\n studio_cron_run_failed: \"{{job}} se ha ejecutado y ha fallado: {{error}}\",\n studio_cron_job_refused: \"La tarea {{job}} no está programada: el planificador la ha rechazado\",\n studio_cron_files_failed: \"{{count}} archivos cron no se han podido cargar y no están programados. El motivo está en el registro del servidor.\",\n studio_cron_files_failed_one: \"{{count}} archivo cron no se ha podido cargar y no está programado. El motivo está en el registro del servidor.\",\n studio_api_keys_denied_title: \"No puedes listar las claves de API de este proyecto\",\n studio_api_keys_denied_hint: \"El proyecto está bien. Listar las claves de servicio requiere el alcance keys:read, y la cuenta con la sesión iniciada no lo tiene.\",\n studio_api_keys_read_failed: \"No se han podido leer las claves de API de este proyecto\",\n studio_api_keys_empty_title: \"Aún no hay claves de API\",\n studio_api_keys_empty_hint: \"Cree una clave para habilitar la autenticación entre servicios\",\n studio_api_keys_revoke: \"Revocar\",\n studio_api_keys_select_hint: \"Seleccione una clave de API para ver los detalles\",\n studio_api_keys_revoke_confirmation: \"Confirmación de revocación\",\n studio_api_keys_name_label: \"Nombre:\",\n studio_api_keys_access_label: \"Acceso:\",\n studio_api_keys_admin_granted: \"Rol de administrador concedido\",\n studio_api_keys_admin_granted_hint: \"la seguridad a nivel de fila no la limita: puede leer, modificar y eliminar todas las filas a las que llegan sus alcances, y supera las comprobaciones de administrador en funciones y almacenamiento\",\n studio_api_keys_done: \"Listo\",\n studio_api_keys_status_active: \"Activa\",\n studio_api_keys_status_expired: \"Caducada\",\n studio_api_keys_status_revoked: \"Revocada\",\n studio_api_keys_inactive_heading: \"Revocadas / Caducadas\",\n studio_api_keys_stat_status: \"Estado\",\n studio_api_keys_stat_last_used: \"Último uso\",\n studio_api_keys_stat_expires: \"Caduca\",\n studio_api_keys_never: \"Nunca\",\n studio_api_keys_stat_rate_limit: \"Límite de peticiones\",\n studio_api_keys_rate_limit_default: \"Predeterminado (1000/15 min)\",\n studio_api_keys_stat_created_by: \"Creada por\",\n studio_api_keys_copy_failed: \"No se pudo copiar\",\n studio_api_keys_tab_service: \"Claves de servicio\",\n studio_api_keys_tab_personal: \"Mis claves\",\n studio_api_keys_refresh: \"Actualizar\",\n studio_api_keys_new: \"Nueva\",\n studio_api_keys_personal_empty_title: \"No tiene claves personales\",\n studio_api_keys_personal_empty_hint: \"Una clave personal actúa como su cuenta, para scripts y herramientas que ejecuta usted mismo\",\n studio_api_keys_personal_read_failed: \"No se han podido leer sus claves de API\",\n studio_api_keys_personal_denied_title: \"Esta sesión no puede tener claves personales\",\n studio_api_keys_personal_denied_hint: \"Una clave personal actúa como una cuenta con la sesión iniciada. Las claves de API, la clave de servicio y las sesiones de invitado no tienen una cuenta en cuyo nombre actuar.\",\n studio_api_keys_personal_off_title: \"Las claves personales están desactivadas\",\n studio_api_keys_personal_off_body: \"Una clave personal actúa como su propia cuenta y nunca tiene más que usted. Para que las cuentas puedan crearlas, añada esto al bloque auth de la colección de usuarios:\",\n studio_api_keys_kind_service: \"Servicio\",\n studio_api_keys_kind_personal: \"Personal\",\n studio_api_keys_stat_kind: \"Tipo\",\n studio_api_keys_stat_owner: \"Propietario\",\n studio_api_keys_rate_limit_value: \"{{limit}}/15 min\",\n studio_api_keys_scopes: \"Alcances\",\n studio_api_keys_no_scopes: \"Esta clave no tiene ningún alcance\",\n studio_api_keys_scopes_count: \"{{count}} alcances\",\n studio_api_keys_plane_data: \"Datos\",\n studio_api_keys_plane_data_hint: \"Filas, archivos y funciones; la seguridad a nivel de fila sigue decidiendo qué filas\",\n studio_api_keys_plane_admin: \"Administración\",\n studio_api_keys_plane_admin_hint: \"Usuarios, esquema, base de datos, copias de seguridad, cron y registros\",\n studio_api_keys_plane_app: \"Aplicación\",\n studio_api_keys_plane_app_hint: \"Declarados por esta aplicación en auth.scopes\",\n studio_api_keys_target_all_collection: \"Todas las colecciones\",\n studio_api_keys_target_all_bucket: \"Todos los orígenes de almacenamiento\",\n studio_api_keys_target_all_function: \"Todas las funciones\",\n studio_api_keys_target_all_other: \"Cualquier {{kind}}\",\n studio_api_keys_target_some: \"Solo los que elija\",\n studio_api_keys_target_mode: \"Destinos\",\n studio_api_keys_target_pick: \"Elegir…\",\n studio_api_keys_target_typed_placeholder: \"Ids de {{kind}}, separados por comas\",\n studio_api_keys_target_missing: \"Elija al menos un destino para «{{scope}}» o cámbielo a todos.\",\n studio_api_keys_bucket_default: \"Bucket predeterminado\",\n studio_api_keys_roles: \"Roles de RLS\",\n studio_api_keys_roles_rows_hint: \"Qué filas puede leer, modificar y eliminar la clave\",\n studio_api_keys_roles_service_only: \"Se ejecuta solo como service. La seguridad a nivel de fila no le concede nada salvo que una política nombre ese rol.\",\n studio_api_keys_roles_service_plus: \"Se ejecuta como service más estos roles; se aplica toda política de seguridad a nivel de fila que nombre uno de ellos.\",\n studio_api_keys_admin_bypasses_rls: \"Se ejecuta como admin: la seguridad a nivel de fila no la limita, así que puede leer, modificar y eliminar todas las filas a las que llegan sus alcances, y supera las comprobaciones de administrador en las funciones personalizadas y el almacenamiento. Sus alcances siguen decidiendo a qué endpoints puede llamar.\",\n studio_api_keys_admin_chip_tooltip: \"Se ejecuta con el rol admin: la seguridad a nivel de fila no limita sus lecturas, escrituras ni eliminaciones\",\n studio_api_keys_personal_roles: \"Se ejecuta como su propietario, con los roles que este tenga en cada uso. Nunca conserva un alcance que su propietario haya perdido.\",\n studio_api_keys_revoke_title: \"¿Revocar «{{name}}»?\",\n studio_api_keys_revoke_body: \"Las peticiones autenticadas con esta clave dejarán de funcionar de inmediato. No se puede deshacer.\",\n studio_api_keys_revoked: \"Clave de API revocada\",\n studio_api_keys_created_title: \"Clave de API creada\",\n studio_api_keys_copy_now: \"Copie la clave ahora: no se volverá a mostrar\",\n studio_api_keys_copy_now_hint: \"Es la única vez que se muestra la clave completa. Guárdela en un lugar seguro.\",\n studio_api_keys_copied: \"Clave de API copiada al portapapeles\",\n studio_api_keys_create_title: \"Crear clave de servicio\",\n studio_api_keys_create_personal_title: \"Crear clave personal\",\n studio_api_keys_create_intro: \"Una credencial para scripts, tareas cron y agentes. Actúa como la identidad de servicio del proyecto, no como una persona, y solo puede usar los alcances que conceda aquí.\",\n studio_api_keys_create_personal_intro: \"Una credencial para scripts y herramientas que ejecuta usted mismo. Actúa como su cuenta y nunca puede hacer más que usted.\",\n studio_api_keys_field_name: \"Nombre\",\n studio_api_keys_field_name_placeholder: \"p. ej., Pipeline de analítica\",\n studio_api_keys_section_scopes_hint: \"A qué endpoints puede llamar la clave\",\n studio_api_keys_scopes_read_failed: \"No se han podido leer los alcances que ofrece este backend\",\n studio_api_keys_scopes_offered_note: \"Solo se ofrecen los alcances que tiene su cuenta. La gestión de claves (keys:read, keys:write) nunca puede ir en una clave.\",\n studio_api_keys_roles_explainer: \"Los alcances deciden a qué endpoints puede llamar la clave; los roles deciden qué filas puede leer, modificar y eliminar. Toda clave de servicio se ejecuta como service, más los roles que añada aquí. Déjelo vacío salvo que una política de seguridad a nivel de fila nombre un rol que la clave necesite.\",\n studio_api_keys_roles_other: \"Otros roles\",\n studio_api_keys_roles_other_placeholder: \"Nombres de rol separados por comas\",\n studio_api_keys_roles_unavailable: \"No se han podido listar los roles del proyecto; escriba los nombres de rol.\",\n studio_api_keys_roles_admin_warning: \"Con admin, la seguridad a nivel de fila no limita la clave: puede leer, modificar y eliminar todas las filas a las que llegan sus alcances, y supera las comprobaciones de administrador en las funciones personalizadas y el almacenamiento. Sus alcances siguen decidiendo a qué endpoints puede llamar.\",\n studio_api_keys_section_limits: \"Límites\",\n studio_api_keys_expiry_7d: \"En 7 días\",\n studio_api_keys_expiry_30d: \"En 30 días\",\n studio_api_keys_expiry_90d: \"En 90 días\",\n studio_api_keys_expiry_1y: \"En 1 año\",\n studio_api_keys_rate_limit_unit: \"por 15 min\",\n studio_api_keys_rate_limit_hint: \"Déjelo vacío para usar el valor predeterminado del servidor: 1000 peticiones por ventana de 15 minutos.\",\n studio_api_keys_rate_limit_scope: \"El límite cuenta las peticiones de datos, archivos y funciones de la clave por HTTP, el socket en tiempo real y MCP. Las operaciones de administración no tienen límite de peticiones.\",\n studio_api_keys_summary_title: \"Esta clave podrá\",\n studio_api_keys_summary_empty: \"Nada todavía: elija al menos un alcance.\",\n studio_api_keys_summary_roles: \"La seguridad a nivel de fila la trata como {{roles}}\",\n studio_api_keys_block_name: \"Primero ponga un nombre a la clave\",\n studio_api_keys_block_scopes: \"Elija al menos un alcance\",\n studio_api_keys_block_targets: \"Termine de elegir los destinos\",\n studio_api_keys_creating: \"Creando…\",\n studio_api_keys_create: \"Crear clave\",\n studio_api_keys_unsupported: \"Este cliente no puede crear claves de API.\",\n studio_api_keys_error_invalid_scopes: \"Algunos alcances no son válidos\",\n studio_api_keys_error_scope_exceeds_creator: \"Una clave no puede tener más que su cuenta\",\n studio_api_keys_error_role_exceeds_creator: \"Una clave no puede ejecutarse con un rol que usted no tiene\",\n studio_api_keys_error_unknown_scope_target: \"Un destino no existe en este backend\",\n studio_api_keys_error_key_management_scope: \"La gestión de claves no puede ir en una clave\",\n studio_api_keys_error_generic: \"No se ha creado la clave\",\n studio_scope_data_read_label: \"Leer datos\",\n studio_scope_data_read_description: \"Leer filas de las colecciones, a través de la seguridad a nivel de fila de quien llama.\",\n studio_scope_data_write_label: \"Crear y actualizar datos\",\n studio_scope_data_write_description: \"Crear y actualizar filas de las colecciones, a través de la seguridad a nivel de fila de quien llama.\",\n studio_scope_data_delete_label: \"Eliminar datos\",\n studio_scope_data_delete_description: \"Eliminar filas de las colecciones, a través de la seguridad a nivel de fila de quien llama.\",\n studio_scope_storage_read_label: \"Leer archivos\",\n studio_scope_storage_read_description: \"Listar y descargar los archivos almacenados.\",\n studio_scope_storage_write_label: \"Subir archivos\",\n studio_scope_storage_write_description: \"Subir archivos y crear carpetas.\",\n studio_scope_storage_delete_label: \"Eliminar archivos\",\n studio_scope_storage_delete_description: \"Eliminar los archivos almacenados.\",\n studio_scope_functions_invoke_label: \"Llamar a funciones\",\n studio_scope_functions_invoke_description: \"Llamar a las funciones personalizadas del backend. Una función puede hacer todo lo que haga su código.\",\n studio_scope_users_read_label: \"Ver usuarios\",\n studio_scope_users_read_description: \"Listar las cuentas de usuario y sus roles.\",\n studio_scope_users_write_label: \"Gestionar usuarios\",\n studio_scope_users_write_description: \"Crear, editar y eliminar cuentas, restablecer contraseñas y segundos factores, y asignar roles hasta los del propio titular.\",\n studio_scope_schema_read_label: \"Ver el esquema\",\n studio_scope_schema_read_description: \"Leer el esquema de colecciones, planificar cambios de esquema y ejecutar la auditoría de RLS.\",\n studio_scope_schema_write_label: \"Cambiar el esquema\",\n studio_scope_schema_write_description: \"Aplicar cambios de esquema: edita los archivos de colecciones y modifica la base de datos.\",\n studio_scope_database_read_label: \"Inspeccionar la base de datos\",\n studio_scope_database_read_description: \"Listar bases de datos, tablas, roles de Postgres y ramas.\",\n studio_scope_database_write_label: \"Ejecutar SQL\",\n studio_scope_database_write_description: \"Ejecutar SQL como propietario de la base de datos, fuera de la seguridad a nivel de fila, y crear o eliminar ramas.\",\n studio_scope_backups_read_label: \"Descargar copias de seguridad\",\n studio_scope_backups_read_description: \"Listar y descargar copias de seguridad de la base de datos: todas las filas, fuera de la seguridad a nivel de fila.\",\n studio_scope_cron_read_label: \"Ver tareas cron\",\n studio_scope_cron_read_description: \"Listar las tareas cron y leer su historial de ejecuciones.\",\n studio_scope_cron_write_label: \"Ejecutar tareas cron\",\n studio_scope_cron_write_description: \"Lanzar tareas cron y activarlas o desactivarlas.\",\n studio_scope_logs_read_label: \"Leer los registros del servidor\",\n studio_scope_logs_read_description: \"Leer los registros de peticiones y de la aplicación del servidor.\",\n studio_scope_keys_read_label: \"Ver claves de servicio\",\n studio_scope_keys_read_description: \"Listar las claves de servicio del proyecto. Nunca se puede conceder a una clave.\",\n studio_scope_keys_write_label: \"Gestionar claves de servicio\",\n studio_scope_keys_write_description: \"Crear, cambiar y revocar las claves de servicio del proyecto. Nunca se puede conceder a una clave.\",\n studio_branches_denied_title: \"No puedes listar las ramas de este proyecto\",\n studio_branches_denied_hint: \"El proyecto está bien. El uso de ramas va por la conexión de administrador, y la cuenta con la sesión iniciada fue rechazada.\",\n studio_branches_read_failed: \"No se han podido leer las ramas de este proyecto\",\n studio_schema_no_collections: \"No hay colecciones declaradas\",\n studio_schema_no_collections_body: \"Todavía no hay nada que dibujar. Añade una colección en config/collections/, o abre «Editar colecciones» para añadir una aquí.\",\n studio_schema_introspect_hint: \"Contra una base de datos que ya tiene tablas, rebase schema introspect escribe los archivos de colección por ti.\",\n studio_schema_visualizer_source: \"Dibujado a partir de tus colecciones: tablas, columnas, tipos y relaciones tal como las declaran. Solo los indicadores de RLS se leen de la base de datos.\",\n studio_schema_laying_out: \"Organizando el diagrama…\",\n studio_schema_neighbourhood: \"Mostrando {{shown}} de {{total}} tablas: {{table}} y las tablas a su alrededor. Elige otra en la lista para moverte.\",\n studio_schema_neighbourhood_depth_1: \"A 1 relación\",\n studio_schema_neighbourhood_depth_2: \"A 2 relaciones\",\n\n\n // ─── Studio: RLS editor confirmations ───────────────────────\n studio_rls_enable_confirm_title: \"¿Activar la seguridad a nivel de fila?\",\n studio_rls_enable_confirm_body: \"Hasta que una política lo permita, ninguna fila de {{table}} será legible. Postgres deniega por defecto.\",\n studio_rls_disable_confirm_title: \"¿Desactivar la seguridad a nivel de fila?\",\n studio_rls_disable_confirm_body: \"Todas las políticas de {{table}} dejan de aplicarse. Quien pueda alcanzar la tabla podrá leer y escribir todas las filas.\",\n studio_rls_drop_policy_title: \"¿Eliminar esta política?\",\n studio_rls_drop_policy_body: \"{{policy}} se elimina de {{table}} en la base de datos. No se escribe nada en tu código, así que un despliegue puede restaurarla.\",\n studio_rls_unapplied: \"Sin aplicar\",\n studio_rls_unapplied_tooltip: \"Declarada en tu código, todavía no en la base de datos. Rebase la aplica la próxima vez que arranque el servidor o se ejecute `rebase db push`; si después sigue faltando, el log del servidor explica por qué.\",\n studio_rls_drift: \"Difiere del código\",\n studio_rls_drift_tooltip: \"En la base de datos, {{fields}} difieren de lo que el proyecto declara para esta política. La versión declarada vuelve la próxima vez que arranque el servidor o se ejecute `rebase db push`.\",\n studio_rls_reapplied_on_start: \"Rebase gestiona las políticas de {{table}}. Cada vez que arranca el servidor, y en cada `rebase db push`, vuelve a activar la seguridad a nivel de fila en esta tabla y vuelve a crear cada política que el proyecto declara para ella. Un cambio hecho aquí a una de esas políticas, o al interruptor de RLS, dura hasta entonces. Una política que añadas con un nombre propio se conserva.\",\n studio_rls_disable_reapplied: \"Rebase gestiona {{table}}, así que la seguridad a nivel de fila se vuelve a activar la próxima vez que arranque el servidor o se ejecute `rebase db push`.\",\n studio_rls_nothing_changed: \"No ha cambiado nada, así que no se ha guardado nada.\",\n\n\n // ─── Studio: empty states that name a remedy ────────────────\n studio_branches_unavailable_title: \"Las ramas de base de datos no están disponibles\",\n studio_branches_unavailable_body: \"Las ramas necesitan un backend Postgres con una conexión de administrador. Define ADMIN_CONNECTION_STRING en el entorno del backend.\",\n studio_backups_not_configured_title: \"Las copias de seguridad no están configuradas\",\n studio_backups_not_configured_body: \"Define BACKUP_DESTINATION como una ruta local o una URL s3:// o gs://, y crea una copia con `rebase db backup` o un cron programado.\",\n studio_cron_empty_title: \"No hay tareas cron registradas\",\n studio_cron_empty_body: \"Añade un archivo en backend/crons/ que exporte por defecto una CronJobDefinition.\",\n studio_read_the_docs: \"Consulta la documentación\",\n\n\n // ─── Studio: storage browser ────────────────────────────────\n studio_storage_root: \"Raíz\",\n studio_storage_root_folder: \"raíz\",\n studio_storage_loading: \"Cargando…\",\n studio_storage_denied_title: \"Las reglas de almacenamiento de este proyecto han rechazado este listado\",\n studio_storage_denied_hint: \"El proyecto está bien. Su hook storageAuthorize decide quién puede leer qué claves, y ha rechazado esta ruta para la cuenta con la sesión iniciada; normalmente porque un listado debe indicar un prefijo que la regla reconozca en lugar de la raíz del bucket.\",\n studio_storage_read_failed: \"No se ha podido leer el almacenamiento de este proyecto\",\n studio_storage_empty: \"Esta carpeta está vacía\",\n studio_storage_new_folder: \"Nueva carpeta\",\n studio_storage_upload_files: \"Subir archivos\",\n studio_storage_upload: \"Subir\",\n studio_storage_upload_count: \"Subir ({{count}})\",\n studio_storage_uploading: \"Subiendo…\",\n studio_storage_upload_failed: \"Error al subir\",\n studio_storage_upload_dialog_title: \"Subir archivos\",\n studio_storage_upload_to: \"a\",\n studio_storage_drop_or_browse: \"Suelta los archivos aquí o haz clic para explorar\",\n studio_storage_any_file_type: \"Se admite cualquier tipo de archivo\",\n studio_storage_selected_files: \"Archivos seleccionados ({{count}})\",\n studio_storage_drop_to_upload: \"Suelta los archivos para subirlos\",\n studio_storage_files_uploaded: \"{{count}} archivos subidos correctamente\",\n studio_storage_files_uploaded_one: \"{{count}} archivo subido correctamente\",\n studio_storage_cancel: \"Cancelar\",\n studio_storage_create: \"Crear\",\n studio_storage_download: \"Descargar\",\n studio_storage_delete: \"Eliminar\",\n studio_storage_deselect: \"Deseleccionar\",\n studio_storage_refresh: \"Actualizar\",\n studio_storage_go_up: \"Subir un nivel\",\n studio_storage_grid_view: \"Vista de cuadrícula\",\n studio_storage_list_view: \"Vista de lista\",\n studio_storage_default_source: \"Predeterminado\",\n studio_storage_name: \"Nombre\",\n studio_storage_type: \"Tipo\",\n studio_storage_type_unknown: \"Desconocido\",\n studio_storage_size: \"Tamaño\",\n studio_storage_extension: \"Extensión\",\n studio_storage_path: \"Ruta\",\n studio_storage_url: \"URL\",\n studio_storage_copy_url: \"Copiar URL\",\n studio_storage_url_copied: \"¡Copiado!\",\n studio_storage_url_temporary: \"Enlace temporal: cualquiera que lo tenga puede abrir este archivo durante un máximo de {{minutes}} min. Descargar y Copiar URL generan uno nuevo.\",\n studio_storage_url_public: \"Enlace público: cualquiera puede abrir este archivo y el enlace no caduca.\",\n studio_storage_folder: \"Carpeta\",\n studio_storage_folders: \"Carpetas\",\n studio_storage_files_heading: \"Archivos ({{count}})\",\n studio_storage_file_count: \"{{count}} archivos\",\n studio_storage_file_count_one: \"{{count}} archivo\",\n studio_storage_folder_count: \"{{count}} carpetas\",\n studio_storage_folder_count_one: \"{{count}} carpeta\",\n studio_storage_selected_count: \"{{count}} seleccionados\",\n studio_storage_selected_count_one: \"{{count}} seleccionado\",\n studio_storage_items_selected: \"{{count}} elementos seleccionados\",\n studio_storage_items_selected_one: \"{{count}} elemento seleccionado\",\n studio_storage_selected_label: \"Seleccionado:\",\n studio_storage_no_preview: \"Vista previa no disponible\",\n studio_storage_file_info: \"Información del archivo\",\n studio_storage_delete_file_title: \"Eliminar archivo\",\n studio_storage_delete_file_question: \"¿Eliminar archivo?\",\n studio_storage_delete_file_body: \"¿Seguro que quieres eliminar «{{name}}»? Esta acción no se puede deshacer.\",\n studio_storage_delete_confirmation_title: \"Confirmar eliminación\",\n studio_storage_delete_question: \"¿Eliminar?\",\n studio_storage_delete_items_question: \"¿Eliminar {{count}} elementos?\",\n studio_storage_delete_items_question_one: \"¿Eliminar {{count}} elemento?\",\n studio_storage_delete_folder_question: \"¿Eliminar la carpeta «{{name}}»?\",\n studio_storage_delete_selection_body: \"Se eliminarán de forma permanente todos los archivos y carpetas seleccionados, incluido su contenido. Esta acción no se puede deshacer.\",\n studio_storage_delete_folder_body: \"Se eliminará de forma permanente la carpeta y todo su contenido. Esta acción no se puede deshacer.\",\n studio_storage_file_deleted: \"«{{name}}» eliminado\",\n studio_storage_folder_deleted: \"Carpeta «{{name}}» eliminada\",\n studio_storage_items_deleted: \"{{count}} elementos eliminados\",\n studio_storage_items_deleted_one: \"{{count}} elemento eliminado\",\n studio_storage_delete_incomplete: \"{{count}} elementos siguen ahí después de eliminarlos: {{names}}\",\n studio_storage_delete_incomplete_one: \"«{{names}}» sigue ahí después de eliminarlo\",\n studio_storage_replace_title: \"Reemplazar archivos\",\n studio_storage_replace_question: \"¿Reemplazar {{count}} archivos?\",\n studio_storage_replace_question_one: \"¿Reemplazar {{count}} archivo?\",\n studio_storage_replace_body: \"{{names}} ya están en esta carpeta. Al subirlos se reemplazan y los archivos actuales se pierden.\",\n studio_storage_replace_body_one: \"«{{names}}» ya está en esta carpeta. Al subirlo se reemplaza y el archivo actual se pierde.\",\n studio_storage_replace: \"Reemplazar\",\n studio_storage_new_folder_title: \"Nueva carpeta\",\n studio_storage_folder_name: \"Nombre de la carpeta\",\n studio_storage_folder_name_placeholder: \"Introduce el nombre de la carpeta\",\n studio_storage_created_in: \"Se creará en\",\n studio_storage_folder_name_has_slash: \"El nombre de la carpeta no puede contener barras\",\n studio_storage_folder_exists: \"La carpeta «{{name}}» ya existe\",\n studio_storage_folder_created: \"Carpeta «{{name}}» creada\",\n studio_storage_create_folder_failed: \"No se ha podido crear la carpeta\",\n\n // ─── Insights plugin ─────────────────────────────────────────\n insights_period_last_days: \"Últimos {{count}} días\",\n insights_period_last_days_one: \"Último día\",\n insights_previous_period_value: \"{{count}} días anteriores: {{value}}\",\n insights_previous_period_value_one: \"Día anterior: {{value}}\",\n insights_change_up: \"Subida: {{change}}\",\n insights_change_down: \"Bajada: {{change}}\",\n insights_change_none: \"Sin cambios\",\n\n // ─── Icon button names ───────────────────────────────────────\n add_to_favourites: \"Añadir a favoritos\",\n remove_from_favourites: \"Quitar de favoritos\",\n change_value_type: \"Cambiar tipo\",\n refresh: \"Actualizar\",\n create_branch: \"Crear rama\",\n new_tab: \"Nueva pestaña\",\n close_tab: \"Cerrar pestaña\",\n help: \"Ayuda\",\n copy_table_name: \"Copiar nombre de la tabla\",\n copy_column_name: \"Copiar nombre de la columna\",\n generate_sql_templates: \"Generar plantillas SQL\",\n select_row: \"Seleccionar {{id}}\",\n select: \"Seleccionar\",\n open_view: \"Abrir vista\"\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"es-DJCi9Za4.js","names":[],"sources":["../src/locales/es.ts"],"sourcesContent":["import { RebaseTranslations } from \"@rebasepro/cms-types\";\n\n/**\n * Spanish baseline translations for @rebasepro/app.\n *\n * This is the single source of truth for all default UI strings in Spanish.\n * Override any key via the `translations` prop on Rebase entry-point components.\n *\n * @group Core\n */\nexport const es: RebaseTranslations = {\n // ─── Form actions ────────────────────────────────────────────\n save: \"Guardar\",\n create: \"Crear\",\n create_copy: \"Crear copia\",\n save_and_close: \"Guardar y cerrar\",\n create_copy_and_close: \"Crear copia y cerrar\",\n create_and_close: \"Crear y cerrar\",\n discard: \"Descartar\",\n clear: \"Limpiar\",\n cancel: \"Cancelar\",\n\n // ─── Entity actions ──────────────────────────────────────────\n edit: \"Editar\",\n copy: \"Copiar\",\n delete: \"Eliminar\",\n delete_not_allowed: \"Has seleccionado al menos una entidad que no puedes eliminar\",\n edit_entity: \"Editar\",\n back_to_detail: \"Volver a los detalles\",\n\n // ─── Delete dialog ───────────────────────────────────────────\n delete_confirmation_title: \"¿Eliminar?\",\n delete_confirmation_body: \"Esto eliminará la entidad. ¿Estás seguro?\",\n delete_multiple_confirmation_body: \"Esto eliminará las entidades seleccionadas. ¿Estás seguro?\",\n\n // ─── Unsaved-changes dialog ───────────────────────────────────\n unsaved_changes_title: \"Cambios sin guardar\",\n unsaved_changes_body: \"Tienes cambios sin guardar. ¿Quieres descartarlos?\",\n discard_changes: \"Descartar cambios\",\n keep_editing: \"Seguir editando\",\n clear_form: \"¿Vaciar formulario?\",\n discard_changes_confirmation: \"Todos los cambios no guardados se perderán. Esta acción no se puede deshacer.\",\n clear_form_confirmation: \"Todos los valores introducidos se borrarán. Esta acción no se puede deshacer.\",\n\n // ─── Collection table / toolbar ──────────────────────────────\n search: \"Buscar\",\n find_by_id: \"Buscar por ID\",\n find_entity_by_id: \"Buscar entidad por ID\",\n filter: \"Filtrar\",\n filters: \"Filtros\",\n records_in_view: \"Registros en esta vista\",\n clear_filter: \"Borrar filtro\",\n clear_filter_sort: \"Borrar filtro/orden\",\n clear_sort: \"Borrar orden\",\n sort: \"Ordenar\",\n sort_by: \"Ordenar por\",\n sort_then_by: \"Luego por\",\n sort_ascending: \"Ordenar ascendente\",\n sort_descending: \"Ordenar descendente\",\n sort_remove: \"Quitar orden\",\n sort_move_up: \"Dar más importancia a esta clave\",\n sort_move_down: \"Dar menos importancia a esta clave\",\n sort_remove_key: \"Quitar esta clave de orden\",\n sort_key_position: \"Clave de orden {{position}}\",\n sort_shift_click_hint: \"Mayús+clic para añadir una columna bajo el orden actual\",\n save_entity_before_subcollections: \"Guarda este registro antes de añadir registros relacionados.\",\n clear_all: \"Borrar todo\",\n no_items: \"Sin elementos\",\n no_entries_found: \"No se encontraron entradas\",\n all_entries_loaded: \"Todas las {{count}} entradas cargadas\",\n error_loading_data_message: \"Error al cargar los datos: {{message}}\",\n clear_search: \"Borrar búsqueda\",\n open_time_picker: \"Abrir selector de hora\",\n relative_just_now: \"justo ahora\",\n relative_in_a_moment: \"en un momento\",\n relative_minutes_ago: \"hace {{count}} min\",\n relative_in_minutes: \"en {{count}} min\",\n relative_hours_ago: \"hace {{count}} h\",\n relative_in_hours: \"en {{count}} h\",\n relative_days_ago: \"hace {{count}} d\",\n relative_in_days: \"en {{count}} d\",\n create_your_first_entry: \"Crea tu primera entrada\",\n no_results_filter_sort: \"No hay resultados con el filtro/orden aplicado\",\n no_results_filter: \"No hay resultados con los filtros aplicados\",\n no_results_search: \"No se encontraron resultados para \\\"{{search}}\\\"\",\n add: \"Añadir\",\n remove: \"Quitar\",\n multiple_entities: \"Múltiples entidades\",\n unsaved_changes: \"Tienes cambios sin guardar en esta colección {{collectionName}}.\",\n so_empty: \"Tan vacío...\",\n no_results: \"No hay resultados con el filtro/orden aplicado\",\n refresh_data: \"Actualizar datos\",\n dark_mode: \"Oscuro\",\n light_mode: \"Claro\",\n system_mode: \"Sistema\",\n join_newsletter: \"Únete a la newsletter, sin spam\",\n ok: \"Aceptar\",\n save_collection_config: \"Guardar la estructura de la colección\",\n search_for_more_icons: \"Buscar más iconos…\",\n ai_modified: \"Modificado por IA\",\n size_label: \"Tamaño\",\n group_by: \"Agrupar por\",\n initialize_kanban_order: \"Inicializar el orden para Kanban\",\n copy_id: \"Copiar ID\",\n add_specific: \"Añadir {{name}}\",\n add_named: \"Añadir \\\"{{name}}\\\"\",\n select_specific: \"Seleccionar {{name}}\",\n select_from: \"Seleccionar de {{name}}\",\n done: \"Hecho\",\n log_out: \"Cerrar sesión\",\n column_cannot_be_edited: \"Esta columna no se puede editar directamente\",\n close: \"Cerrar\",\n hide_list: \"Ocultar lista\",\n show_list: \"Mostrar lista\",\n unsaved_local_changes: \"Cambios locales sin guardar\",\n 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.\",\n preview_changes: \"Previsualizar cambios\",\n apply_changes: \"Aplicar cambios\",\n discard_local_changes: \"Descartar cambios locales\",\n preview_local_changes: \"Previsualizar cambios locales\",\n preview_local_changes_description: \"Estos son los cambios locales que se aplicarán al formulario.\",\n type: \"Tipo\",\n string: \"cadena\",\n number: \"número\",\n boolean: \"booleano\",\n date: \"fecha\",\n map: \"mapa\",\n array: \"lista\",\n arrays_of_arrays_not_supported: \"Las listas de listas no están soportadas.\",\n data_type_not_supported: \"Tipo de datos {{dataType}} no soportado aún\",\n passkey_error_unsupported: \"Tu dispositivo o navegador no soporta passkeys.\",\n\n // ─── Entity form feedback ─────────────────────────────────────\n saved_correctly: \"Guardado correctamente\",\n error_before_saving: \"Error al preparar los datos\",\n error_after_saving: \"Error en el proceso posterior al guardado\",\n error_saving_entity: \"Error al guardar la entidad\",\n error_record_changed_elsewhere: \"Este registro ha cambiado desde que lo abriste. Tus cambios se conservan: revisa los campos marcados como actualizados en otro lugar y vuelve a guardar.\",\n entity_does_not_exist: \"Esta entidad no existe en la base de datos\",\n form_modified: \"Este formulario ha sido modificado\",\n form_in_sync: \"El formulario actual está sincronizado con la base de datos\",\n fix_errors_before_saving: \"Corrija los errores resaltados antes de guardar\",\n form_predating_rule_violations: \"Algunos campos que no ha cambiado no cumplen sus reglas actuales. No impiden guardar:\",\n\n admin: \"Admin\",\n home: \"Inicio\",\n this_form_has_errors: \"Este formulario tiene errores\",\n error_loading_navigation: \"Error cargando la navegación\",\n error_loading_auth: \"Error cargando la autenticación\",\n this_form_has_been_modified: \"Este formulario ha sido modificado\",\n current_form_in_sync: \"El formulario actual está sincronizado con la base de datos\",\n open_in_console: \"Abrir en consola\",\n collection_does_not_exist: \"La colección especificada no existe. Revisa la consola\",\n unexpected_value: \"Valor inesperado\",\n unexpected_value_click_to_edit: \"Valor inesperado. Haz clic para editar\",\n unexpected_reference_value: \"Valor de referencia inesperado. Haz clic para editar\",\n copy_url_to_clipboard: \"Copiar URL al portapapeles\",\n open_image_in_new_tab: \"Abrir imagen en una nueva pestaña\",\n reference_not_set: \"Referencia no establecida\",\n reference_does_not_exist: \"La referencia no existe\",\n entity_not_found: \"Entidad no encontrada\",\n entity_not_found_body: \"Este registro no existe, o puede estar oculto para ti por la seguridad a nivel de fila.\",\n collection_not_found: \"Colección no encontrada\",\n collection_not_found_body: \"No hay nada registrado para \\\"{{path}}\\\".\",\n collection_not_found_hint: \"La URL nombra una colección que el panel no conoce. Puede que se haya renombrado o quitado del array de colecciones, o que el slug no coincida con la ruta.\",\n back_to_collection: \"Volver a {{name}}\",\n file_not_found: \"Archivo no encontrado\",\n unsaved_changes_in_entity: \"Tienes cambios sin guardar en esta entidad.\",\n delete_this_role: \"Eliminar este rol\",\n no_roles_yet: \"Aún no tienes roles.\",\n create_default_roles: \"Crear roles por defecto\",\n delete_role_confirmation: \"¿Estás seguro de que quieres eliminar este rol?\",\n delete_this_user: \"Eliminar este usuario\",\n no_users_yet: \"Aún no hay usuarios\",\n add_logged_user_as_admin: \"Añadir al usuario autenticado como administrador\",\n add_current_user_as_admin: \"Añadir usuario actual como administrador\",\n create_default_roles_and_add_admin: \"Crear roles por defecto y añadir usuario actual como administrador\",\n delete_user_confirmation: \"¿Estás seguro de que quieres eliminar a este usuario?\",\n create_your_users_and_roles: \"Crea tus usuarios y roles\",\n no_users_or_roles_defined: \"No tienes usuarios ni roles. Puedes crear los roles por defecto y añadirte a ti mismo como administrador.\",\n save_before_changing_schema: \"Debes guardar el documento antes de cambiar el esquema\",\n edit_schema_for_this_form: \"Editar esquema para este formulario\",\n no_permissions_to_edit_collection: \"No tienes permisos para editar esta colección\",\n browser_does_not_support_audio: \"Tu navegador no soporta el elemento de audio.\",\n user_not_found: \"Usuario no encontrado: {{value}}\",\n\n // ─── Collection view actions ──────────────────────────────────\n delete_selected: \"Eliminar\",\n cannot_delete_selected: \"Has seleccionado al menos una entidad que no puedes eliminar\",\n\n // ─── Array / field containers ─────────────────────────────────\n add_entry: \"Añadir\",\n add_on_top: \"Añadir arriba\",\n add_below: \"Añadir debajo\",\n add_to_field: \"Añadir a {{fieldName}}\",\n value: \"Valor\",\n key: \"Clave\",\n drag_drop_multiple: \"Arrastra y suelta algunos archivos aquí, o haz clic para seleccionar archivos. Arrastra para reordenar.\",\n drag_drop_single: \"Arrastra y suelta un archivo aquí, o haz clic para seleccionar uno\",\n\n // ─── Navigation / scaffold ────────────────────────────────────\n open_menu: \"Abrir menú\",\n close_drawer: \"Cerrar panel\",\n navigation_drawer: \"Panel de navegación\",\n collapse: \"Contraer\",\n expand: \"Expandir\",\n change_language: \"Cambiar idioma\",\n toggle_theme: \"Cambiar tema\",\n user_menu: \"Menú de usuario\",\n resize_sidebar: \"Cambiar el tamaño de la barra lateral\",\n resize_editor: \"Cambiar el tamaño del editor\",\n resize_list: \"Cambiar el tamaño de la lista\",\n panel_mode: \"Modo del panel\",\n\n // ─── Error states ─────────────────────────────────────────────\n error: \"Error\",\n error_loading_data: \"No se pudieron cargar los datos\",\n error_check_server_logs: \"Consulta los registros del servidor para más detalles.\",\n error_technical_details: \"Detalles técnicos\",\n error_uploading_file: \"Error al subir archivo\",\n error_deleting: \"Error al eliminar\",\n error_before_delete: \"Error antes de eliminar\",\n error_updating_asset: \"Error al actualizar recurso\",\n error_deleting_asset: \"Error al eliminar recurso\",\n error_firestore_index: \"Se requiere un índice de Firestore para esta consulta.\",\n realtime_connection_lost_title: \"Actualizaciones en directo en pausa\",\n realtime_connection_lost_body: \"Se ha perdido la conexión con el servidor, así que lo que ves puede estar desactualizado. Se actualizará en cuanto vuelva la conexión.\",\n create_index: \"Crear índice\",\n value_is_not_reference: \"El valor no es una referencia.\",\n click_to_edit: \"Haz clic para editar\",\n data_is_not_array_of_references: \"Los datos no son un array de referencias\",\n\n // ─── Misc ─────────────────────────────────────────────────────\n loading: \"Cargando\",\n local_changes_applied: \"Cambios locales aplicados al formulario\",\n local_changes_discarded: \"Cambios locales descartados\",\n are_you_sure_leave: \"¿Estás seguro de que quieres salir de esta página?\",\n see_console_details: \"Consulta la consola para más detalles.\",\n drop_here_create_group: \"Suelta aquí para crear un nuevo grupo\",\n filter_for_null_values: \"Filtrar por valores nulos\",\n value_updated_elsewhere: \"Este valor ha sido actualizado en otro lugar\",\n entity_deleted_elsewhere: \"Este registro se eliminó en otro lugar. Lo que ves aquí no se ha guardado; guárdalo como un registro nuevo para conservarlo.\",\n save_as_new: \"Guardar como nuevo\",\n add_property: \"Añadir propiedad\",\n edit_name: \"Editar {{name}}\",\n this_entity_not_exist: \"Esta entidad no existe en la base de datos\",\n internal_error: \"ERROR Interno\",\n\n // ─── Rename group dialog ──────────────────────────────────────\n rename_group: \"Renombrar grupo\",\n group_name_label: \"Nombre del grupo\",\n group_name_empty_error: \"El nombre del grupo no puede estar vacío.\",\n group_name_exists_error: \"Este nombre de grupo ya existe.\",\n\n // ─── Search ───────────────────────────────────────────────────\n search_collections: \"Buscar colecciones\",\n\n // ─── Navigation groups ────────────────────────────────────────\n views_group: \"Vistas\",\n\n // ─── Entity Edit View ─────────────────────────────────────────\n youd_need_to_save_before_additional_collections: \"Guarda este registro antes de añadir registros relacionados.\",\n\n // ─── Not Found Page ───────────────────────────────────────────\n page_not_found: \"Página no encontrada\",\n page_not_found_body: \"Esta página no existe o podrías no tener acceso a ella\",\n back_to_home: \"Volver al inicio\",\n\n // ─── Collection Editor ─────────────────────────────────────────\n default_collection_view: \"Vista por defecto de la colección\",\n table_view: \"Tabla\",\n cards_view: \"Tarjetas\",\n kanban_view: \"Kanban\",\n choose_how_entities_displayed_default: \"Elige cómo se deben mostrar por defecto las entidades\",\n\n document_view: \"Vista de documento\",\n side_panel: \"Panel lateral\",\n full_screen: \"Pantalla completa\",\n should_documents_opened_full_screen: \"¿Quieres que los documentos se abran en pantalla completa o en un panel lateral?\",\n\n select_custom_view: \"Seleccionar vista personalizada\",\n no_custom_views_defined: \"No hay vistas personalizadas definidas. Define tus vistas en los ajustes de personalización, antes de usar este diálogo.\",\n\n select_custom_action: \"Seleccionar acción personalizada\",\n no_custom_actions_defined: \"No hay acciones personalizadas definidas. Define tus acciones en los ajustes de personalización, antes de usar este diálogo.\",\n\n no_collections_found: \"No se encontraron colecciones\",\n 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.\",\n create_first_collection: \"Crea tu primera colección\",\n define_collections_programmatically: \"También puedes definir colecciones programáticamente.\",\n edit_collection: \"Editar colección\",\n no_permissions_edit_collection: \"No tienes permisos para editar esta colección\",\n no_permissions_create_collection: \"No tienes permisos para crear colecciones\",\n create_collection: \"Crear colección\",\n update_collection: \"Actualizar colección\",\n\n new_collection: \"Nueva colección\",\n add_new_collection: \"Añadir nueva colección\",\n collection_with_name: \"Colección {{name}}\",\n change_icon: \"Cambiar icono\",\n is_subcollection_of: \"Esta es una subcolección de\",\n name: \"Nombre\",\n collection_name_description: \"Nombre de esta colección (usualmente un nombre en plural, ej. 'Productos')\",\n path: \"Ruta\",\n relative_path_to_parent: \"Ruta relativa al nivel superior (no es necesario incluir la ruta padre)\",\n path_in_database: \"La ruta donde está almacenada esta colección en la base de datos\",\n singular_name: \"Nombre en singular\",\n singular_name_description: \"Opcionalmente define un nombre en singular para tus entidades\",\n description: \"Descripción\",\n description_of_collection: \"Descripción de la colección, puedes usar markdown\",\n collection_id: \"ID de la Colección\",\n collection_id_description: \"Este ID identifica a esta colección. Típicamente es el mismo que la ruta.\",\n collection_group: \"Grupo de colección\",\n 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.\",\n advanced_settings: \"Ajustes avanzados\",\n doc_history_global: \"Historial de revisiones de documentos habilitado si está activado globalmente\",\n doc_history_enabled: \"Historial de revisiones de documentos HABILITADO\",\n doc_history_not_enabled: \"Historial de revisiones de documentos NO habilitado\",\n 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.\",\n document_id_generation: \"Generación de IDs de documentos\",\n code_defined: \"Definido por código\",\n users_must_define_id: \"Los usuarios deben definir un ID\",\n users_can_define_id: \"Los usuarios pueden definir un ID, pero no es obligatorio\",\n doc_id_auto_generated: \"El ID del documento se genera automáticamente\",\n config_doc_id_generation: \"Configura cómo se generan los IDs de los documentos al crear nuevas entidades.\",\n enable_text_search: \"Habilitar búsqueda de texto para esta colección\",\n 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.\",\n database_id: \"ID de la base de datos\",\n default_text: \"(por defecto)\",\n\n custom_actions: \"Acciones personalizadas\",\n more_info: \"Más información\",\n define_custom_actions_cli: \"Define tus propias acciones personalizadas subiéndolas con la CLI.\",\n action_defined_in_code: \"Esta acción está definida en el código con la clave\",\n add_custom_entity_action: \"Añadir acción personalizada de entidad\",\n remove_this_action: \"¿Eliminar esta acción?\",\n remove_action_warning: \"Esto no eliminará ningún dato, sólo se retirará del panel de administración\",\n\n subcollections_of: \"Subcolecciones de\",\n add_subcollection: \"Añadir subcolección\",\n custom_views: \"Vistas personalizadas\",\n define_custom_views_cli: \"Define tus propias vistas personalizadas subiéndolas con la CLI.\",\n view_defined_in_code: \"Esta vista se define en el código con la clave\",\n add_custom_entity_view: \"Añadir vista de entidad personalizada\",\n delete_this_subcollection: \"¿Eliminar esta subcolección?\",\n remove_collection_warning: \"Esto no eliminará ningún dato, sólo la colección en el panel de administración\",\n remove_this_view: \"¿Eliminar esta vista?\",\n remove_view_warning: \"Esto no eliminará ningún dato, sólo la vista en el panel de administración\",\n\n no_collection_selected: \"Ninguna colección seleccionada\",\n code_for_collection: \"Código para\",\n use_config_define_json: \"Usa esta configuración para definir la colección en formato JSON.\",\n 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 administración.\",\n copied: \"Copiado\",\n\n property_cant_be_edited: \"Esta propiedad no se puede editar\",\n property_not_editable_description: \"Puede que no tengas permisos para editarla o que esté definida en código y no se pueda modificar.\",\n delete_this_property: \"¿Eliminar esta propiedad?\",\n delete_property_warning: \"Esto no eliminará datos, sólo modificará la configuración de la colección.\",\n error_must_specify_id: \"Debes especificar un id para el campo\",\n error_id_format: \"El id sólo puede contener letras, números y guiones bajos (_), y no puede empezar con un número\",\n error_id_already_exists: \"Ya existe otro campo con este ID\",\n error_must_specify_title: \"Debes especificar un título para el campo\",\n custom_or_other: \"Personalizado/Otro\",\n select_property_widget: \"Selecciona un widget de propiedad\",\n error_changing_data_type: \"Este widget utiliza un tipo de dato diferente al seleccionado inicialmente. Esto puede generar errores con los datos existentes.\",\n required: \"Requerido\",\n\n enum_form_dialog: \"Diálogo de formulario Enum\",\n imported_data_preview: \"Vista previa de datos importados\",\n entities_with_same_id_overwritten: \"Las entidades con el mismo id se sobrescribirán\",\n collection_editor: \"Editor de colecciones\",\n properties_in_this_group: \"Propiedades en este grupo\",\n data_property_mapping: \"Mapeo de propiedades\",\n property_edit_view: \"Vista de edición de propiedad\",\n all_of_these: \"Todos estos\",\n any_of_these: \"Cualquiera de estos\",\n\n only_admins_edit_roles: \"Sólo los administradores pueden editar roles\",\n error_user_not_found: \"Usuario no encontrado\",\n all_roles: \"Todos los roles\",\n role: \"Rol\",\n name_of_this_role: \"Nombre del rol\",\n id_of_this_role: \"ID del rol\",\n create_entities: \"Crear entidades\",\n read_entities: \"Leer entidades\",\n update_entities: \"Actualizar entidades\",\n delete_entities: \"Eliminar entidades\",\n all_collections: \"Todas las colecciones\",\n create_entities_in_collections: \"Crear entidades en colecciones\",\n access_all_data_in_every_collection: \"Acceder a todos los datos en cada colección\",\n update_data_in_any_collection: \"Actualizar datos en cualquier colección\",\n delete_data_in_any_collection: \"Eliminar datos en cualquier colección\",\n allow_all_permissions_in_this_collections: \"Permitir todos los permisos en estas colecciones\",\n all: \"Todo\",\n customise_permissions_description: \"Puedes personalizar los permisos de los usuarios para este rol en cada colección\",\n create_collections: \"Crear colecciones\",\n yes: \"Sí\",\n no: \"No\",\n can_user_create_collections: \"¿Puede el usuario crear colecciones?\",\n edit_collections: \"Editar colecciones\",\n only_own_collections: \"Sólo las propias\",\n own: \"Propias\",\n can_user_edit_collections: \"¿Puede el usuario editar colecciones?\",\n delete_collections: \"Eliminar colecciones\",\n can_user_delete_collections: \"¿Puede el usuario eliminar colecciones?\",\n error_saving_role: \"Hubo un error al guardar este rol\",\n create_role: \"Crear rol\",\n update: \"Actualizar\",\n\n only_admins_change_roles: \"Sólo los administradores pueden cambiar roles\",\n must_be_at_least_one_admin: \"Tiene que haber al menos un administrador\",\n logged_user_not_found: \"Usuario autenticado no encontrado\",\n user: \"Usuario\",\n user_id: \"ID del usuario\",\n name_of_this_user: \"Nombre de este usuario\",\n email_of_this_user: \"Correo electrónico de este usuario\",\n roles: \"Roles\",\n create_user: \"Crear usuario\",\n\n users: \"Usuarios\",\n add_user: \"Añadir usuario\",\n add_role: \"Añadir rol\",\n is_admin: \"Es Administrador\",\n default_permissions: \"Permisos predeterminados\",\n created_on: \"Creado en\",\n email: \"Email\",\n id: \"ID\",\n read: \"Leer\",\n\n column_in_file: \"Columna en el archivo\",\n map_to_property: \"Mapear a Propiedad\",\n default_values: \"Valores por defecto\",\n default_values_description: \"Puedes seleccionar un valor por defecto para columnas no mapeadas o valores en blanco:\",\n property: \"Propiedad\",\n default_value: \"Valor predeterminado\",\n autogenerate_id: \"Autogenerar ID\",\n id_column_description: \"Columna que se utilizará como ID de cada documento\",\n do_not_set_value: \"No asignar valor\",\n set_value_to_true: \"Asignar valor verdadero (true)\",\n set_value_to_false: \"Asignar valor falso (false)\",\n drag_and_drop_file: \"Arrastra y suelta un archivo aquí, o haz clic para subirlo\",\n error_saving_data: \"Error al guardar los datos\",\n retry: \"Reintentar\",\n saving_data: \"Guardando datos\",\n entities_saved: \"entidades guardadas\",\n do_not_close_tab: \"No cierres esta pestaña o se interrumpirá la importación\",\n import: \"Importar\",\n import_data: \"Importar datos\",\n upload_file_description: \"Sube un archivo CSV, Excel o JSON y mapéalo a tu esquema actual\",\n back: \"Atrás\",\n next: \"Siguiente\",\n save_data: \"Guardar datos\",\n use_column_as_id: \"Usar esta columna como ID\",\n do_not_import_property: \"No importar esta propiedad\",\n import_problems_title: \"Valores que no se pueden importar: {{count}}\",\n import_problems_description: \"Estas celdas no se pueden convertir al tipo del campo al que están asignadas, así que quedarán vacías. Vuelve atrás para asignar la columna a un campo de texto, o corrige el archivo y súbelo de nuevo.\",\n import_problems_column: \"{{column}} → {{property}} ({{type}}): {{count}} sin importar\",\n import_problems_example: \"Fila {{row}}: «{{value}}», {{reason}}\",\n import_problems_more: \"…y {{count}} más\",\n import_problem_not_a_number: \"no es un número\",\n import_problem_number_leading_zero: \"como número perdería el cero inicial\",\n import_problem_number_too_precise: \"tiene más dígitos de los que un número guarda con exactitud\",\n import_problem_not_a_boolean: \"no es sí ni no\",\n import_problem_not_a_date: \"no es una fecha\",\n import_problem_ambiguous_date: \"podría ser día/mes o mes/día\",\n import_problem_not_a_vector: \"no es una lista de números\",\n import_problem_not_a_map: \"no es un mapa (se esperaba el JSON de un objeto)\",\n import_problem_not_a_geopoint: \"no es un geopunto (se esperaba {\\\"latitude\\\": …, \\\"longitude\\\": …})\",\n entities_will_be_overwritten: \"Las entidades con el mismo ID se sobrescribirán\",\n data_imported_successfully: \"Datos importados correctamente\",\n export: \"Exportar\",\n export_data: \"Exportar datos\",\n download_table_csv: \"Descargar el contenido de esta tabla como CSV\",\n csv: \"CSV\",\n json: \"JSON\",\n dates_as_timestamps: \"Fechas como marcas de tiempo (timestamps)\",\n dates_as_strings: \"Fechas como cadenas (strings)\",\n flatten_arrays: \"Aplanar arrays\",\n download: \"Descargar\",\n large_number_of_documents: \"Esta colección posee un gran número de documentos ({{count}}).\",\n too_many_documents_to_export: \"Esta colección tiene más documentos ({{count}}) de los que el navegador puede exportar en un solo archivo (límite {{limit}}). Fíltrala antes de exportar.\",\n include_undefined_values: \"Incluir valores omitidos (undefined)\",\n submit: \"Enviar\",\n\n no_filterable_properties: \"No hay propiedades filtrables disponibles\",\n apply_filters: \"Aplicar filtros\",\n\n // ─── Filter Presets ──────────────────────────────────────────\n filter_presets: \"Preajustes\",\n filter_preset_apply: \"Aplicar preajuste\",\n filter_preset_active: \"Activo: {{label}}\",\n\n list: \"Lista\",\n table_view_mode: \"Tabla\",\n cards: \"Tarjetas\",\n board: \"Tablero\",\n 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.\",\n kanban_view_not_available: \"La vista Kanban no está disponible\",\n 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.\",\n no_enum_values_configured: \"No hay opciones (enum) configuradas para la propiedad \\\"{{property}}\\\"\",\n items_need_backfill: \"Existen elementos sin valores de ordenación. Inicialízalos para habilitar la reorganización con arrastrar y soltar.\",\n 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.\",\n initialize: \"Inicializar\",\n confirm_multiple_delete: \"¿Confirmar eliminación múltiple?\",\n delete_entity_confirm_title: \"¿Confirmas que quieres borrar el elemento '{{entityName}}'?\",\n add_existing: \"Añadir existente\",\n unlink_entity_confirm_title: \"¿Quitar este/a {{entityName}} de este registro?\",\n unlink_entity_confirm_body: \"Seguirá en {{collectionName}} y disponible para otros registros.\",\n confirm_multiple_unlink: \"¿quitarlos de este registro?\",\n remove_from_record: \"Quitar de este registro\",\n removed_from_record: \"Quitado de este registro\",\n no_filter: \"Sin filtro\",\n is_true: \"es verdadero\",\n is_false: \"es falso\",\n error_uploading_file_size: \"Error al subir el archivo: supera los {{maxSize}} bytes\",\n error_uploading_file_type: \"Error al subir el archivo: el tipo de archivo no es compatible\",\n drag_drop_files: \"Arrastra archivos aquí o haz clic para editarlos\",\n drag_drop_file: \"Arrastra un archivo aquí o haz clic para editarlo\",\n multiple_deleted: \"Múltiples eliminados\",\n some_entities_deleted: \"Algunas entidades han sido eliminadas, pero no todas\",\n error_deleting_entities: \"Error al eliminar entidades\",\n delete_rows_failed: \"{{failed}} de {{total}} sin eliminar. {{reason}}\",\n deleted: \"eliminado\",\n selection_options: \"Opciones de selección\",\n selection_menu_all_loaded: \"Todo en esta página\",\n selection_menu_all_matching: \"Los {{total}} {{collection}}\",\n selection_menu_none: \"Ninguno\",\n selection_select_all_loaded: \"Seleccionar las filas cargadas\",\n selection_deselect_all: \"Deseleccionar todo\",\n selection_reading_rows: \"Leyendo filas… {{loaded}} de {{total}}\",\n selection_reading_rows_unknown: \"Leyendo filas… {{loaded}} hasta ahora\",\n selection_deleting_progress: \"Eliminados {{completed}} de {{total}}\",\n confirm_delete_selection: \"¿Eliminar {{total}} {{collection}}?\",\n confirm_delete_selection_unknown: \"¿Eliminar todas las filas que coinciden con el filtro actual?\",\n confirm_delete_selection_body: \"Esta acción no se puede deshacer. Cada fila se elimina por separado, así que puede tardar un rato.\",\n\n export_selection_count: \"Descargar las {{total}} filas seleccionadas en {{format}}\",\n export_selection_all_matching: \"Descargar todos los {{collection}} que coinciden con el filtro actual\",\n\n select_reference: \"Seleccionar referencia\",\n select_references: \"Seleccionar referencias\",\n account_settings: \"Configuración de la cuenta\",\n profile: \"Profile\",\n security: \"Seguridad\",\n sessions: \"Sesiones\",\n change_password: \"Cambiar Contraseña\",\n current_password: \"Contraseña Actual\",\n new_password: \"Nueva Contraseña\",\n confirm_password: \"Confirmar Nueva Contraseña\",\n password_changed: \"Contraseña cambiada. Se cerró la sesión en tus otros dispositivos.\",\n passwords_dont_match: \"Las contraseñas no coinciden\",\n password_too_short: \"La contraseña debe tener al menos 8 caracteres\",\n password_change_not_available: \"El cambio de contraseña no está disponible para cuentas que usan proveedores de inicio de sesión externos.\",\n changing_password: \"Cambiando...\",\n display_name: \"Nombre visible\",\n photo_url: \"URL de la foto\",\n save_profile: \"Guardar perfil\",\n saving: \"Saving...\",\n no_active_sessions: \"No se encontraron sesiones activas.\",\n revoking: \"Revoking...\",\n revoke_all_sessions: \"Revocar todas las sesiones\",\n unknown_device: \"Dispositivo desconocido\",\n unknown_address: \"Desconocida\",\n session_details: \"IP: {{ip}} • Creada: {{created}}\",\n revoke_session: \"Revocar sesión\",\n current: \"Current\",\n role_id: \"ID del rol\",\n role_name: \"Nombre del rol\",\n add_reference: \"Añadir referencia\",\n add_reference_to: \"Añadir referencia a {{name}}\",\n\n /** RolesView — table & permissions */\n role_deleted_successfully: \"Rol eliminado correctamente\",\n error_deleting_role: \"Error al eliminar el rol\",\n collection_permissions: \"Permisos de la colección\",\n collection: \"Collection\",\n no_collections_configured: \"No hay colecciones configuradas\",\n no_security_rules_defined: \"No hay reglas de seguridad definidas: todas las operaciones están sin restricciones\",\n no_rules: \"sin reglas\",\n\n /** UsersView — snackbar */\n bootstrap_admin_success: \"¡Ya eres administrador! Actualizando...\",\n failed_to_bootstrap_admin: \"No se pudo crear el administrador inicial\",\n user_deleted_successfully: \"Usuario eliminado correctamente\",\n error_deleting_user: \"Error al eliminar el usuario\",\n user_created_successfully: \"Usuario creado correctamente\",\n invitation_sent: \"Se ha enviado un correo de invitación a {{email}}. Puede usar el enlace para establecer su contraseña.\",\n invitation_sent_title: \"Invitación enviada\",\n temporary_password: \"Contraseña temporal\",\n temporary_password_description: \"El correo no está configurado. Comparte esta contraseña temporal con el usuario de forma segura. No se volverá a mostrar.\",\n temporary_password_email_failed_description: \"No se pudo entregar el correo. Comparte esta contraseña temporal con el usuario de forma segura. No se volverá a mostrar.\",\n copy_password: \"Copiar contraseña\",\n password_copied: \"Contraseña copiada al portapapeles\",\n\n /** UsersView — pagination & search */\n search_users: \"Buscar usuarios\",\n created: \"Creado\",\n actions: \"Acciones\",\n no_users_found: \"No se encontraron usuarios\",\n reset_password: \"Restablecer contraseña\",\n reset_password_success: \"Contraseña restablecida correctamente\",\n reset_password_confirmation: \"¿Seguro que quieres restablecer la contraseña de este usuario?\",\n reset_password_send_email: \"Enviar un correo para restablecer la contraseña\",\n reset_password_set_manually: \"Establecer una contraseña manualmente\",\n reset_password_set_manually_description: \"La contraseña se actualiza de inmediato y no se envía ningún correo. Compártela con el usuario de forma segura.\",\n\n /** Permission-denied empty states */\n no_permission_to_view_users: \"No tienes permisos para ver los usuarios\",\n no_permission_to_view_roles: \"No tienes permisos para ver los roles\",\n no_permission_description: \"Contacta a un administrador si necesitas acceso a esta sección.\",\n error_resetting_password: \"Error al restablecer la contraseña\",\n\n /** Editor table-bubble */\n add_row_before: \"Insertar fila antes\",\n add_row_after: \"Insertar fila después\",\n delete_row: \"Eliminar fila\",\n add_column_before: \"Insertar columna antes\",\n add_column_after: \"Insertar columna después\",\n delete_column: \"Eliminar columna\",\n delete_table: \"Eliminar tabla\",\n\n /** Editor image-bubble */\n alt_text: \"Texto alternativo\",\n title: \"Title\",\n\n /** MapFieldBinding */\n a_property_of_this_map_has_error: \"Una propiedad de este mapa contiene un error\",\n\n /** AI Collection Generator Popover */\n generate_collection_with_ai: \"Generar colección con IA\",\n modify_collection_with_ai: \"Modificar colección con IA\",\n describe_collection_to_create: \"Describe la colección que quieres crear.\",\n describe_changes_to_make: \"Describe los cambios que quieres hacer en esta colección.\",\n ai_placeholder_create: \"p. ej., Crear una colección de productos con nombre, precio, descripción y categoría...\",\n ai_placeholder_modify: \"p. ej., Agregar un campo de imagen en miniatura con almacenamiento, hacer el precio obligatorio...\",\n ai_assist: \"Asistente IA\",\n generating: \"Generando...\",\n\n /** Recently extracted strings for collection editor */\n this_is_subcollection_of: \"Esta es una subcolección de\",\n use_existing_paths_database: \"Usa una de las rutas existentes en tu base de datos:\",\n describe_collection_ai: \"Describe tu colección a la IA:\",\n generate_with_ai: \"Generar con IA\",\n create_from_json_config: \"Crear desde configuración JSON:\",\n paste_json_config: \"Pegar configuración JSON\",\n create_collection_from_file_formats: \"Crear una colección desde un archivo (csv, json, xls, xslx...)\",\n select_template: \"Seleccionar una plantilla:\",\n products: \"Productos\",\n collection_products_subtitle: \"Una colección de productos con imágenes, precios y existencias\",\n collection_users_subtitle: \"Una colección de usuarios con correos electrónicos, nombres y roles\",\n blog_posts: \"Entradas de blog\",\n collection_blog_posts_subtitle: \"Una colección de artículos con imágenes, autores y contenido complejo\",\n pages: \"Páginas\",\n collection_pages_subtitle: \"Una colección de páginas con imágenes, autores y contenido complejo\",\n continue_from_scratch: \"Continuar desde cero\",\n\n /** Admin views config */\n admin_users: \"Usuarios del panel de administración\",\n roles_menu: \"Roles\",\n project_settings: \"Ajustes del proyecto\",\n\n by_signing_in_you_agree_to_our: \"Al iniciar sesión aceptas nuestros\",\n terms_and_conditions: \"Términos y Condiciones\",\n and_our: \"y nuestra\",\n privacy_policy: \"Política de Privacidad\",\n email_password: \"Email/Contraseña\",\n sign_in_with_google: \"Iniciar sesión con Google\",\n\n // --- Auth error messages ---\n auth_user_not_found: \"Usuario no encontrado\",\n auth_wrong_password: \"Contraseña incorrecta. Por favor, inténtalo de nuevo.\",\n auth_user_disabled: \"Usuario deshabilitado. Por favor, contacta con soporte.\",\n auth_account_exists_with_different_credential: \"Ya existe una cuenta con este correo electrónico. Inicia sesión como lo hiciste la última vez.\",\n auth_account_exists_sign_in_with_password: \"Ya existe una cuenta con este correo electrónico. Inicia sesión con tu correo electrónico y contraseña.\",\n auth_email_already_in_use: \"El correo electrónico ya está en uso\",\n auth_google_permissions_required: \"Necesitas conceder permisos adicionales para gestionar tus proyectos de Google Cloud\",\n auth_invalid_email_password: \"Por favor introduce tanto el correo electrónico como la contraseña\",\n auth_enter_email_first: \"Por favor introduce tu correo electrónico primero\",\n auth_password_reset_sent: \"Correo electrónico de restablecimiento de contraseña enviado\",\n auth_sign_in_account: \"Inicia sesión en tu cuenta\",\n auth_create_new_account: \"Crea una cuenta nueva\",\n auth_password: \"Contraseña\",\n auth_reset_password: \"Restablecer contraseña\",\n auth_new_user: \"¿Usuario nuevo?\",\n auth_have_account: \"¿Tienes una cuenta?\",\n auth_sign_in: \"Iniciar Sesión\",\n auth_sign_up: \"Regístrate\",\n auth_new_password_title: \"Establece una nueva contraseña\",\n auth_new_password_subtitle: \"Elige la contraseña con la que iniciarás sesión a partir de ahora.\",\n auth_password_requirements: \"La contraseña debe tener al menos 8 caracteres, con mayúsculas, minúsculas y un número\",\n auth_set_password: \"Establecer contraseña\",\n auth_password_changed_title: \"Contraseña cambiada\",\n auth_password_changed_body: \"Inicia sesión con tu nueva contraseña.\",\n auth_continue_to_sign_in: \"Continuar al inicio de sesión\",\n auth_link_invalid_or_expired: \"Este enlace no es válido o ha caducado. Solicita uno nuevo desde la pantalla de inicio de sesión.\",\n auth_password_reset_unavailable: \"El restablecimiento de contraseña no está disponible en este backend.\",\n auth_verifying_email: \"Confirmando tu dirección de correo…\",\n auth_email_verified_title: \"Correo confirmado\",\n auth_email_verified_body: \"Tu dirección de correo está confirmada. Ya puedes iniciar sesión.\",\n auth_email_verification_failed_title: \"Correo no confirmado\",\n auth_email_verification_unavailable: \"La verificación de correo no está disponible en este backend.\",\n auth_verify_email_proof_title: \"Confirma que es tu cuenta\",\n auth_verify_email_proof_body: \"Esta cuenta tiene una contraseña. Escríbela para conservarla e iniciar sesión. Si nunca creaste una, puede que otra persona haya registrado tu dirección: confírmala sin la contraseña y la suya se eliminará.\",\n auth_verify_email_password_label: \"La contraseña que elegiste\",\n auth_verify_email_with_password: \"Confirmar e iniciar sesión\",\n auth_verify_email_without_password: \"No creé ninguna contraseña\",\n auth_verify_email_wrong_password: \"Esa no es la contraseña de esta cuenta.\",\n auth_email_verified_password_removed_body: \"Tu dirección de correo está confirmada. Esta cuenta tenía una contraseña creada antes de confirmar la dirección, así que se eliminó. Inicia sesión con un enlace o crea una nueva con «¿Olvidaste tu contraseña?».\",\n auth_confirm_email_sent_title: \"Revisa tu bandeja de entrada\",\n auth_confirm_email_sent_body: \"Te enviamos un enlace a tu dirección de correo. Síguelo para confirmar tu dirección y luego inicia sesión.\",\n auth_email_not_confirmed: \"Primero confirma tu dirección de correo. Te enviamos un enlace nuevo.\",\n auth_mfa_title: \"Verificación en dos pasos\",\n auth_mfa_subtitle: \"Introduce el código de tu aplicación de autenticación o uno de tus códigos de recuperación.\",\n auth_mfa_factor_label: \"Verificar con\",\n auth_mfa_factor_totp: \"Aplicación de autenticación\",\n auth_mfa_code_label: \"Código de verificación\",\n auth_mfa_verify: \"Verificar\",\n auth_mfa_code_invalid: \"Ese código no es correcto. Prueba el código actual de tu aplicación de autenticación o un código de recuperación.\",\n auth_mfa_challenge_exhausted: \"Demasiados códigos incorrectos. Introduce un código nuevo de tu aplicación de autenticación para volver a intentarlo.\",\n auth_mfa_expired: \"Este inicio de sesión ha caducado. Vuelve a iniciar sesión para continuar.\",\n auth_mfa_sign_in_again: \"Volver a iniciar sesión\",\n email_address: \"Dirección de correo\",\n email_change_description: \"Enviamos un enlace a la nueva dirección. Tu cuenta pasa a usarla cuando se abre el enlace.\",\n email_change_button: \"Cambiar correo\",\n email_change_pending: \"Enviamos un enlace a {{email}}. Tu dirección de correo cambia cuando se abre.\",\n email_change_taken: \"Otra cuenta ya usa esa dirección.\",\n email_change_undeliverable: \"Ningún correo puede llegar a esa dirección.\",\n email_change_unchanged: \"Esa ya es tu dirección de correo.\",\n email_change_needs_second_factor: \"Vuelve a iniciar sesión con tu segundo factor antes de cambiar tu dirección de correo.\",\n auth_confirming_email_change: \"Cambiando tu dirección de correo…\",\n auth_email_change_confirmed_title: \"Dirección de correo cambiada\",\n auth_email_change_confirmed_body: \"Tu cuenta ahora usa {{email}}.\",\n auth_email_change_providers_removed: \"Se quitó el inicio de sesión con {{providers}}, porque estaba vinculado a tu dirección anterior.\",\n auth_email_change_failed_title: \"La dirección de correo no se cambió\",\n auth_email_change_continue: \"Continuar\",\n auth_email_change_unavailable: \"Cambiar la dirección de correo no está disponible en este backend.\",\n auth_signing_in_with_link: \"Iniciando tu sesión…\",\n auth_magic_link_failed_title: \"Enlace de inicio de sesión no aceptado\",\n auth_magic_link_unavailable: \"Los enlaces de inicio de sesión no están disponibles en este backend.\",\n reset_mfa_title: \"Restablecer la verificación en dos pasos\",\n reset_mfa_description: \"Quita las aplicaciones de autenticación y los códigos de recuperación de este usuario y cierra todas sus sesiones. Podrá iniciar sesión solo con su contraseña y volver a configurar la verificación en dos pasos.\",\n reset_mfa_confirm: \"Restablecer\",\n reset_mfa_success: \"Verificación en dos pasos restablecida\",\n account_access_title: \"Acceso a la cuenta\",\n account_access_action: \"Desactivar o activar la cuenta\",\n account_disabled_label: \"Cuenta desactivada\",\n account_disabled_description: \"Una cuenta desactivada no puede iniciar sesión, y todas sus sesiones y tokens dejan de funcionar al instante. Sus datos se conservan; vuelve a activarla para devolverle el acceso.\",\n account_disabled_success: \"Cuenta desactivada\",\n account_enabled_success: \"Cuenta activada\",\n\n\n auto_setup_collections_button: \"Configurar colecciones automáticamente\",\n auto_setup_collections_title: \"¿Configurar colecciones automáticamente?\",\n auto_setup_collections_desc: \"Esto creará automáticamente la configuración de las colecciones que <b>NO</b> estén mapeadas\",\n this_can_take_a_minute: \"Esto puede tardar un minuto o dos\",\n no_collections_found_to_setup: \"No se encontraron colecciones para configurar\",\n collections_have_been_setup: \"¡Tus colecciones han sido configuradas!\",\n error_setting_up_collections: \"Error al configurar colecciones\",\n\n // --- Home Suggestions ---\n\n admin_panel_ready_bring_data: \"Tu panel de administración está listo. Traigamos tus datos.\",\n admin_panel_ready_get_started: \"Tu panel de administración está listo. Así es como puedes empezar.\",\n auto_detect_collections: \"Autodetectar colecciones\",\n auto_detect_collections_desc: \"Deja que la IA escanee tu base de datos y genere esquemas de colección automáticamente.\",\n create_a_collection: \"Crear una colección\",\n create_collection_desc: \"Define manualmente tu primera colección desde cero usando el editor visual.\",\n read_the_docs: \"Consulta la documentación\",\n read_the_docs_desc: \"Aprende cómo personalizar campos, vistas, acciones y más.\",\n explore_docs: \"Explorar la documentación\",\n want_to_customize_with_code: \"¿Quieres personalizar con código? Ejecuta\",\n to_scaffold_a_local_project: \"para crear un proyecto local.\",\n\n // ─── Collection Editor — Validation ──────────────────────────\n validation: \"Validación\",\n unique: \"Único\",\n required_message: \"Mensaje de campo obligatorio\",\n required_tooltip: \"No podrás guardar esta entidad si este valor no está establecido\",\n unique_tooltip: \"No puede haber múltiples entidades con el mismo valor\",\n lowercase: \"Minúsculas\",\n uppercase: \"Mayúsculas\",\n trim: \"Recortar espacios\",\n exact_length: \"Longitud exacta\",\n min_length: \"Longitud mínima\",\n max_length: \"Longitud máxima\",\n varchar_narrowing_warning: \"Al guardar, esta columna {{columnType}} se reduce a {{max}} caracteres. rebase db push pregunta antes de reducir una columna, y el cambio falla mientras haya un valor guardado más largo.\",\n matches_regex: \"Coincide con regex\",\n not_valid_regexp: \"No es una expresión regular válida\",\n regex_helper: \"ej. /^\\\\d+$/ solo para dígitos\",\n min_value: \"Valor mínimo\",\n max_value: \"Valor máximo\",\n less_than: \"Menor que\",\n more_than: \"Mayor que\",\n positive_value: \"Valor positivo\",\n negative_value: \"Valor negativo\",\n integer_value: \"Valor entero\",\n\n // ─── Collection Editor — Property Edit ───────────────────────\n invalid_regular_expression: \"Expresión regular no válida\",\n must_specify_target_collection: \"Debes especificar una colección de destino para el campo\",\n need_specify_repeat_field: \"Debes especificar un campo de repetición\",\n need_specify_block_properties: \"Debes especificar las propiedades de este bloque\",\n incomplete_condition: \"Condición incompleta - por favor selecciona un campo\",\n field_name: \"Nombre del campo\",\n\n // ─── Collection Editor — Display & Config ────────────────────\n kanban_column_property: \"Propiedad de columna Kanban\",\n select_a_property: \"Seleccionar una propiedad\",\n 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.\",\n no_enum_string_properties: \"No se encontraron propiedades de tipo string con enum. Agrega una propiedad string con enumValues para usar la vista Kanban.\",\n kanban_column_description: \"Selecciona una propiedad de tipo string con valores enum para agrupar entidades en columnas\",\n create_property: \"+ Crear propiedad \\\"{{property}}\\\"\",\n order_property: \"Propiedad de orden\",\n 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.\",\n no_number_properties: \"No se encontraron propiedades numéricas. Agrega una propiedad numérica para habilitar el ordenamiento.\",\n order_property_description: \"Selecciona una propiedad numérica para mantener el orden de los elementos\",\n display_settings: \"Configuración de visualización\",\n default_row_size: \"Tamaño de fila predeterminado\",\n side_dialog_width: \"Ancho del diálogo lateral\",\n side_dialog_width_description: \"Opcionalmente define el ancho (en píxeles) del diálogo lateral de entidades. El valor predeterminado es 768px\",\n inline_editing_enabled: \"Los datos se pueden editar directamente en la vista de tabla\",\n inline_editing_disabled: \"Los datos solo se pueden editar en la vista de formulario\",\n inline_editing_description: \"Permitir editar datos directamente en la vista de tabla, sin abrir la vista de formulario.\",\n include_json_view: \"Incluir vista JSON\",\n no_json_view: \"No incluir vista JSON\",\n json_view_description: \"Incluir la representación JSON del documento.\",\n not_found_suffix: \"no encontrado\",\n\n // ─── Editor ─────────────────────────────────────────────────\n editor_text: \"Texto\",\n editor_text_description: \"Empieza a escribir con texto plano.\",\n editor_heading_1: \"Encabezado 1\",\n editor_heading_1_description: \"Encabezado de sección grande.\",\n editor_heading_2: \"Encabezado 2\",\n editor_heading_2_description: \"Encabezado de sección mediano.\",\n editor_heading_3: \"Encabezado 3\",\n editor_heading_3_description: \"Encabezado de sección pequeño.\",\n editor_todo_list: \"Lista de tareas\",\n editor_todo_list_description: \"Sigue tus tareas con una lista de tareas.\",\n editor_bullet_list: \"Lista con viñetas\",\n editor_bullet_list_description: \"Crea una lista simple con viñetas.\",\n editor_numbered_list: \"Lista numerada\",\n editor_numbered_list_description: \"Crea una lista con numeración.\",\n editor_quote: \"Cita\",\n editor_quote_description: \"Captura una cita.\",\n editor_code: \"Código\",\n editor_code_description: \"Captura un fragmento de código.\",\n editor_image: \"Imagen\",\n editor_image_description: \"Sube una imagen desde tu ordenador.\",\n editor_multiple: \"Múltiple\",\n editor_link: \"Enlace\",\n editor_save: \"Guardar\",\n editor_cancel: \"Cancelar\",\n editor_remove_link: \"Eliminar enlace\",\n editor_paste_or_type_link: \"Pega o escribe el enlace\",\n editor_invalid_url: \"Eso no es un enlace: prueba con una dirección completa como example.com\",\n editor_open_in_new_window: \"Abrir en una ventana nueva\",\n editor_bold: \"Negrita\",\n editor_italic: \"Cursiva\",\n editor_underline: \"Subrayado\",\n editor_strikethrough: \"Tachado\",\n editor_autocomplete: \"Autocompletar\",\n editor_autocomplete_description: \"Añade texto basado en el contexto.\",\n\n // ─── Text Search Dialog ─────────────────────────────────────\n text_search_dialog_title: \"Activar búsqueda de texto\",\n text_search_local_not_recommended: \"La búsqueda de texto local no es recomendable para colecciones grandes.\",\n 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.\",\n 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.\",\n 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.\",\n 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.\",\n text_search_enable_for_collection: \"Activar para esta colección\",\n text_search_enable_for_project: \"Activar para el proyecto\",\n text_search_enabled_snackbar: \"Búsqueda de texto local activada\",\n\n settings_heading: \"Ajustes\",\n settings_project_name: \"Nombre del proyecto\",\n settings_default_language: \"Idioma predeterminado\",\n settings_default_language_caption: \"Selecciona el idioma base para este proyecto. Los usuarios pueden modificar esta preferencia en sus ajustes personales.\",\n settings_enable_local_text_search: \"Habilitar búsqueda de texto local\",\n 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.\",\n settings_doc_history_all_collections: \"Historial de documentos habilitado para todas las colecciones\",\n 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.\",\n settings_theme: \"Tema\",\n settings_primary_color: \"Color primario\",\n settings_secondary_color: \"Color secundario\",\n settings_sample_theme_components: \"Componentes de ejemplo del tema\",\n settings_drag_drop_logo: \"Arrastra y suelta tu logotipo aquí\",\n settings_security_rules: \"Reglas de seguridad\",\n 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.\",\n settings_security_rules_add_domain: \"Recuerda añadir el dominio {{domain}} a los dominios permitidos de tu proveedor\",\n 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.\",\n\n // ─── Studio: SQL Editor ─────────────────────────────────────\n studio_sql_executing_query: \"EJECUTANDO CONSULTA...\",\n studio_sql_query_error: \"Error en la consulta\",\n studio_sql_run_query_placeholder: \"Ejecuta una consulta para ver los resultados\",\n studio_sql_visual_execution_plan: \"Plan de ejecución visual\",\n studio_sql_success: \"SUCCESS\",\n studio_sql_no_results: \"La consulta se ejecutó correctamente pero no devolvió resultados.\",\n studio_sql_rows: \"Rows:\",\n studio_sql_time: \"Time:\",\n studio_sql_copy_markdown: \"Copiar como Markdown\",\n studio_sql_export_json: \"Exportar JSON\",\n studio_sql_export_json_typed: \"Exportar JSON con tipos\",\n studio_sql_export_csv: \"Exportar CSV\",\n studio_sql_format_sql: \"Formatear SQL\",\n studio_sql_explain: \"Explain\",\n studio_sql_limit_1000: \"Limit 1000\",\n studio_sql_remove_from_favorites: \"Quitar de favoritos\",\n studio_sql_add_to_favorites: \"Añadir a favoritos\",\n studio_sql_save: \"Save\",\n studio_sql_run: \"Run\",\n studio_sql_cancel_run: \"Cancelar ejecución\",\n studio_sql_run_cancelled: \"Ejecución cancelada.\",\n studio_sql_database: \"Database\",\n studio_sql_role: \"Role\",\n studio_sql_admin: \"(Admin)\",\n studio_sql_select_db: \"Elegir base de datos\",\n studio_sql_query_results: \"Resultados de la consulta\",\n studio_sql_save_snippet: \"Guardar fragmento SQL\",\n studio_sql_snippet_name: \"Nombre del fragmento\",\n studio_sql_snippet_name_placeholder: \"p. ej., Obtener todos los usuarios\",\n studio_sql_snippet_saved_local: \"Se guardará en tu almacenamiento local.\",\n studio_sql_cancel: \"Cancel\",\n studio_sql_dangerous_operation: \"Operación peligrosa detectada\",\n studio_sql_dangerous_operation_body: \"La consulta que vas a ejecutar contiene operaciones potencialmente destructivas (DELETE, DROP, TRUNCATE o UPDATE sin WHERE). ¿Seguro que quieres continuar?\",\n studio_sql_snippet_saved: \"Fragmento «{{name}}» guardado.\",\n studio_sql_markdown_copied: \"¡Resultados copiados como Markdown!\",\n studio_sql_markdown_copy_failed: \"No se pudo copiar el Markdown al portapapeles.\",\n studio_sql_row_updated: \"Fila actualizada correctamente.\",\n studio_sql_cannot_edit_missing_query: \"No se pueden editar las filas: falta la consulta subyacente.\",\n studio_sql_edit_unreadable_query: \"La consola no pudo leer esta consulta, así que no sabe de qué fila viene una celda. Las celdas de este resultado no se pueden editar.\",\n studio_sql_edit_not_a_select: \"Aquí solo se pueden editar las filas de un único SELECT.\",\n studio_sql_edit_duplicate_column: \"El resultado tiene más de una columna llamada \\\"{{column}}\\\". Dale a cada una su propio alias para editarla.\",\n studio_sql_edit_computed_column: \"\\\"{{column}}\\\" no se lee de una columna de tabla (es calculada, un literal o un agregado), así que no hay dónde escribirla de vuelta.\",\n studio_sql_edit_not_a_table: \"\\\"{{column}}\\\" viene de {{table}}, que no es una tabla. Aquí solo se pueden editar filas de una tabla.\",\n studio_sql_edit_inherited_table: \"Otras tablas heredan de {{table}}, así que su clave primaria puede coincidir con una fila en cada una de ellas. Edita la fila en la tabla que la contiene.\",\n studio_sql_edit_no_primary_key: \"{{table}} no tiene clave primaria, así que no se puede volver a encontrar una de sus filas para actualizarla.\",\n studio_sql_edit_key_missing: \"Para editar columnas de {{table}}, selecciona su clave primaria ({{columns}}) con un nombre que ninguna otra columna del resultado tenga.\",\n studio_sql_edit_table_read_twice: \"La consulta lee {{table}} más de una vez, así que la clave de una fila y esta celda pueden venir de filas distintas.\",\n studio_sql_missing_pk: \"A la fila le faltan columnas de clave primaria: {{columns}}. No se puede actualizar con seguridad.\",\n studio_sql_cannot_edit_other_connection: \"Estas filas se leyeron de otra base de datos o con otro rol. Vuelve a ejecutar la consulta para editarlas.\",\n studio_sql_update_failed: \"Error al actualizar: {{message}}\",\n studio_sql_update_no_row: \"No se actualizó ninguna fila: la fila cambió o se eliminó desde que se leyó, o el rol seleccionado no puede actualizarla. Vuelve a ejecutar la consulta para ver lo que está guardado.\",\n studio_sql_ran_as_other_role: \"Estas filas se leyeron como {{ranAs}}, no como {{role}}: el cambio de rol está desactivado en este servidor (DISABLE_DB_ROLE_SWITCHING), así que cada sentencia se ejecuta como el propietario de la conexión.\",\n studio_sql_result_truncated: \"Se muestran las primeras {{shown}} de {{total}} filas: la consola guarda como máximo 10.000 filas, o 32 MB de valores, de un resultado. Acota la consulta, o recórrela por páginas con LIMIT y OFFSET, para ver el resto. Copiar y exportar incluyen solo las filas mostradas.\",\n studio_sql_download_full_csv: \"Descargar el resultado completo como CSV\",\n studio_sql_downloading_full_csv: \"Descargando…\",\n studio_sql_download_full_failed: \"No se pudo descargar el resultado completo: {{message}}\",\n studio_sql_role_switching_disabled: \"El cambio de rol está desactivado en este servidor: cada sentencia se ejecuta como {{role}}, sea cual sea el rol elegido aquí.\",\n studio_sql_execution_not_supported: \"La fuente de datos actual no admite la ejecución de SQL.\",\n studio_sql_error_executing: \"Se produjo un error al ejecutar la consulta.\",\n studio_sql_error_explaining: \"Se produjo un error al explicar la consulta.\",\n studio_sql_explain_single_statement: \"Explain funciona con una sola sentencia a la vez. Selecciona la sentencia que quieres explicar y vuelve a intentarlo.\",\n studio_sql_save_first_to_favorite: \"Guarda el fragmento antes de marcarlo como favorito.\",\n studio_sql_collections_label: \"Collections:\",\n studio_sql_admin_collections_tooltip: \"Tables in this query that are mapped as admin collections\",\n studio_sql_edit_entity: \"Edit {{name}} #{{id}}\",\n studio_sql_sql_not_supported: \"Esta fuente de datos no admite la ejecución de SQL\",\n studio_sql_fetch_error: \"No se pudieron obtener las opciones de conexión: {{message}}\",\n studio_sql_unexpected_format: \"Formato de datos inesperado: {{type}}\",\n studio_sql_no_tables: \"No se encontraron tablas en esta base de datos.\",\n studio_sql_schema_fetch_error: \"No se pudo obtener el esquema: {{message}}\",\n\n // ─── Studio: SQL Editor Sidebar ──────────────────────────────\n studio_sql_sidebar_snippets: \"Snippets\",\n studio_sql_sidebar_history: \"History\",\n studio_sql_sidebar_schema: \"Schema\",\n studio_sql_sidebar_no_snippets: \"No hay fragmentos guardados\",\n studio_sql_sidebar_save_snippet_hint: \"Guarda una consulta para acceder a ella aquí.\",\n studio_sql_sidebar_no_history: \"Sin historial\",\n studio_sql_sidebar_history_hint: \"Las consultas ejecutadas aparecerán aquí.\",\n studio_sql_sidebar_delete_snippet: \"Eliminar fragmento\",\n studio_sql_close_tab: \"Cerrar esta pestaña de consulta\",\n studio_sql_new_tab: \"Nueva pestaña de consulta\",\n\n // ─── Studio: Schema Browser ──────────────────────────────────\n studio_schema_tables: \"Tables\",\n studio_schema_loading: \"Cargando esquema...\",\n studio_schema_no_tables: \"No se encontraron tablas\",\n studio_schema_retry: \"Retry\",\n studio_schema_primary_key: \"Clave primaria\",\n studio_schema_select_all: \"SELECT * FROM\",\n studio_schema_insert_into: \"INSERT INTO\",\n studio_schema_update: \"UPDATE\",\n studio_schema_delete_from: \"DELETE FROM\",\n studio_schema_columns: \"{{count}} columnas\",\n\n // ─── Studio: RLS Editor ──────────────────────────────────────\n studio_rls_title: \"Seguridad a nivel de fila\",\n studio_rls_description: \"Gestiona las políticas RLS de tus tablas\",\n studio_rls_enabled: \"RLS activada\",\n studio_rls_disabled: \"RLS desactivada\",\n studio_rls_no_rls: \"Sin RLS\",\n studio_rls_enable_rls: \"Activar RLS\",\n studio_rls_disable_rls: \"Desactivar RLS\",\n studio_rls_create_policy: \"Crear política\",\n studio_rls_policies: \"Policies\",\n studio_rls_no_policies: \"No hay políticas definidas\",\n studio_rls_no_policies_desc: \"Esta tabla no tiene políticas RLS. El acceso a todas las filas depende del estado de RLS.\",\n studio_rls_add_first_policy: \"Añade tu primera política\",\n studio_rls_force_rls: \"Forzar RLS\",\n studio_rls_force_rls_desc: \"Si se activa, las políticas RLS se aplican también al propietario de la tabla.\",\n studio_rls_enable_force_rls: \"Activar RLS forzada\",\n studio_rls_disable_force_rls: \"Desactivar RLS forzada\",\n studio_rls_edit: \"Edit\",\n studio_rls_edit_generated: \"Rebase genera {{policy}} para todas las colecciones, así que no hay ninguna regla tuya que editar. Añade una política propia en su lugar.\",\n studio_rls_edit_not_declared: \"{{policy}} solo existe en la base de datos, así que no hay ninguna regla en tu código que editar. Impórtala primero al código.\",\n studio_rls_edit_several_operations: \"{{policy}} es una de las políticas en las que se compila una sola regla, una por operación. Edita esa regla en el archivo fuente de la colección.\",\n studio_rls_delete: \"Delete\",\n studio_rls_confirm_delete_title: \"Eliminar política\",\n studio_rls_confirm_delete_body: \"¿Seguro que quieres eliminar esta política? Esta acción no se puede deshacer.\",\n studio_rls_confirm_enable_title: \"Activar la seguridad a nivel de fila\",\n studio_rls_confirm_enable_body: \"Al activar RLS, el acceso a las filas de esta tabla quedará restringido por tus políticas. Asegúrate de tener políticas adecuadas.\",\n studio_rls_confirm_disable_title: \"Desactivar la seguridad a nivel de fila\",\n studio_rls_confirm_disable_body: \"Al desactivar RLS, todas las filas quedarán accesibles para todos los roles. ¿Seguro que quieres continuar?\",\n studio_rls_select_table: \"Selecciona una tabla\",\n studio_rls_no_tables: \"No hay tablas disponibles\",\n studio_rls_error: \"Error al cargar las políticas\",\n studio_rls_retry: \"Retry\",\n studio_rls_loading: \"Cargando políticas...\",\n\n // ─── Studio: Policy Editor ───────────────────────────────────\n studio_policy_edit: \"Editar política\",\n studio_policy_create: \"Crear una política nueva\",\n studio_policy_defining_rules: \"Definiendo reglas de acceso para\",\n studio_policy_cancel: \"Cancel\",\n studio_policy_save: \"Guardar política\",\n studio_policy_template: \"Empezar desde una plantilla (opcional)\",\n studio_policy_select_template: \"Selecciona una plantilla...\",\n studio_policy_name: \"Nombre de la política\",\n studio_policy_name_placeholder: \"Da a tu política un nombre descriptivo\",\n studio_policy_behavior: \"Comportamiento de la política\",\n studio_policy_permissive: \"Permissive\",\n studio_policy_permissive_desc: \"Se combina con «OR»\",\n studio_policy_restrictive: \"Restrictive\",\n studio_policy_restrictive_desc: \"Se combina con «AND»\",\n studio_policy_command: \"Comando de la política\",\n studio_policy_target_roles: \"Roles destinatarios\",\n studio_policy_roles_placeholder: \"Selecciona roles (por defecto, public)\",\n studio_policy_using_expr: \"Expresión USING\",\n studio_policy_using_expr_desc: \"Se aplica a las filas existentes (SELECT, UPDATE, DELETE)\",\n studio_policy_check_expr: \"Expresión WITH CHECK\",\n studio_policy_check_expr_desc: \"Se aplica a las filas nuevas o modificadas (INSERT, UPDATE)\",\n studio_policy_help_title: \"Guía de seguridad a nivel de fila (RLS)\",\n studio_policy_help_intro: \"La seguridad a nivel de fila (RLS) te permite restringir a qué filas puede acceder o qué filas puede modificar cada usuario según su estado de autenticación o sus roles.\",\n studio_policy_help_step1_title: \"1. Selecciona una plantilla\",\n studio_policy_help_step1_desc: \"Si es tu primera vez con RLS, lo más fácil es empezar eligiendo una plantilla predefinida en el desplegable. Configurará la política automáticamente para casos habituales como «los usuarios pueden actualizar sus propias filas».\",\n studio_policy_help_step2_title: \"2. Roles destinatarios\",\n studio_policy_help_step2_desc: \"Elige los roles de base de datos a los que se aplica la política. Toda petición a la API se ejecuta con el mismo rol, haya sesión iniciada o no, así que quién es el llamante va en la expresión USING:\",\n studio_policy_help_role_public: \"Todos los roles, es decir, todas las peticiones. Es lo que usan las plantillas y las políticas propias de Rebase.\",\n studio_policy_help_role_rebase_user: \"El rol con el que se ejecutan las peticiones a la API. Solo difiere de public en las conexiones hechas directamente con otro rol.\",\n studio_policy_help_roles_not_users: \"Los usuarios con sesión iniciada, los visitantes anónimos y los administradores no son roles de base de datos aquí. Elige public y comprueba rebase.uid() o rebase.roles() en la expresión, como hacen las plantillas.\",\n studio_policy_help_step3_title: \"3. Expresión USING\",\n studio_policy_help_step3_desc: \"Una condición SQL que debe evaluarse como verdadera para que las filas existentes sean visibles o actualizables (SELECT, UPDATE, DELETE).\",\n studio_policy_help_step3_example: \"Garantiza que los usuarios solo vean las filas de las que son propietarios.\",\n studio_policy_help_step4_title: \"4. Expresión WITH CHECK\",\n studio_policy_help_step4_desc: \"Una condición SQL que debe evaluarse como verdadera para que se guarden las filas nuevas o modificadas (INSERT, UPDATE).\",\n studio_policy_help_step4_example: \"Suele coincidir con la expresión USING cuando los usuarios solo pueden insertar o editar sus propios datos.\",\n studio_policy_help_example: \"Ejemplo:\",\n studio_policy_help_auth_vars_title: \"Variables de autenticación de Rebase\",\n studio_policy_help_auth_vars_desc: \"Rebase ofrece funciones auxiliares nativas que puedes usar en tus expresiones:\",\n studio_policy_help_auth_uid: \"Devuelve el ID del usuario actual como texto. Ejemplo:\",\n studio_policy_help_auth_jwt: \"Devuelve la carga útil completa del JWT como JSONB para que puedas comprobar reclamaciones personalizadas. Ejemplo:\",\n studio_policy_help_auth_roles: \"Devuelve los ID de rol del usuario como una cadena separada por comas. Se usa mejor con:\",\n studio_policy_help_docs_cta: \"Para saber más sobre las políticas de Postgres, consulta la documentación oficial.\",\n studio_policy_help_read_docs: \"Leer la documentación\",\n studio_policy_help_got_it: \"¡Entendido!\",\n\n // ─── Studio: UI Actions ──────────────────────────────────────\n studio_add_kanban_column: \"Añadir columna\",\n studio_add_kanban_column_title: \"Añadir columna al Kanban\",\n studio_add_kanban_column_name: \"Nombre de la columna\",\n studio_add_kanban_column_name_placeholder: \"Nombre de la nueva columna\",\n studio_add_kanban_column_add: \"Add\",\n studio_add_kanban_column_cancel: \"Cancel\",\n studio_collection_view_sql: \"Editor SQL\",\n studio_collection_view_admin: \"Vista de administración\",\n studio_editor_collection_tooltip: \"Editar el esquema de la colección\",\n studio_editor_collection_no_permission: \"No tienes permiso para editar esta colección\",\n studio_editor_collection_start_tooltip: \"Copiar la ruta o editar el esquema\",\n studio_editor_collection_start_no_permission: \"No tienes permiso para modificar esta colección\",\n studio_editor_collection_start_copied: \"Copied!\",\n studio_editor_entity_tooltip: \"Editar el esquema de la entidad\",\n studio_editor_entity_no_permission: \"No tienes permiso para editar esta entidad\",\n studio_home_edit_collection: \"Editar colección\",\n studio_home_delete_collection: \"Eliminar colección\",\n studio_home_confirm_delete_title: \"¿Eliminar la colección?\",\n studio_home_confirm_delete_body: \"¿Seguro que quieres eliminar la colección «{{name}}»? Esta acción no se puede deshacer.\",\n studio_kanban_setup: \"Configuración del Kanban\",\n studio_missing_reference: \"Referencia inexistente: {{path}}\",\n studio_missing_reference_create: \"Create\",\n studio_new_collection: \"Colección nueva\",\n studio_new_collection_card: \"Colección nueva\",\n studio_new_collection_no_permission: \"No tienes permisos para crear colecciones\",\n studio_property_add_column: \"Añadir una propiedad nueva\",\n studio_property_add_column_no_permission: \"No tienes permiso para añadir propiedades nuevas\",\n studio_add_kanban_column_desc: \"Añade una opción nueva a la propiedad «{{property}}». Se creará una columna nueva en el tablero Kanban.\",\n studio_add_kanban_column_adding: \"Adding...\",\n studio_add_kanban_column_exists: \"Ya hay una columna \\\"{{label}}\\\" en el tablero.\",\n studio_add_kanban_column_not_enum: \"\\\"{{property}}\\\" no es una propiedad con opciones, así que no se le puede añadir una columna.\",\n studio_collection_view_edit: \"Edit\",\n studio_editor_collection_disabled: \"La edición de colecciones está desactivada\",\n studio_editor_collection_edit: \"Editar colección\",\n studio_editor_entity_save_first: \"Debes guardar el documento antes de cambiar el esquema\",\n studio_editor_entity_edit_schema: \"Editar el esquema de este formulario\",\n studio_editor_collection_start_save_filter: \"Guardar el filtro y el orden por defecto\",\n studio_editor_collection_start_clear_filter: \"Borrar el filtro y el orden por defecto\",\n studio_editor_collection_start_reset_filter: \"Restablecer el filtro y el orden por defecto\",\n studio_editor_collection_start_saved: \"Configuración por defecto guardada\",\n studio_home_duplicate_collection: \"Duplicate\",\n studio_home_delete: \"Delete\",\n studio_home_confirm_delete_no_data: \"Elimina el archivo de la colección y su entrada en index.ts, y hace commit del cambio. La tabla y sus filas permanecen en la base de datos. No se permite mientras otra colección enlace a esta.\",\n studio_home_collection_deleted: \"Colección eliminada\",\n studio_kanban_configure: \"Configurar el Kanban\",\n studio_missing_reference_error: \"No hay ninguna colección para la ruta: {{path}}\",\n studio_new_collection_add: \"Añadir nueva colección\",\n studio_tool_schema: \"Colecciones\",\n studio_js_collections_tab: \"Colecciones\",\n studio_tool_schema_description: \"Define y gestiona tu modelo de datos y los esquemas de tus colecciones\",\n studio_collections_editor_empty: \"Todavía no hay colecciones.\",\n studio_collections_editor_pick: \"Selecciona una colección o crea una nueva para empezar a editar.\",\n studio_collections_editor_read_only: \"Las colecciones no se pueden editar en este servidor.\",\n studio_collections_editor_unsaved: \"Hay cambios sin guardar en esta colección.\",\n\n // ─── Schema change dialog ────────────────────────────────\n schema_change_title_review: \"Revisar el cambio de esquema\",\n schema_change_title_applied: \"Cambio de esquema aplicado\",\n schema_change_title_committed: \"Se hizo commit del cambio de esquema\",\n schema_change_verdict_safe_title: \"Listo para aplicar\",\n schema_change_verdict_safe_body: \"Cada cambio de aquí se puede hacer sobre la base de datos en ejecución.\",\n schema_change_verdict_diverges_title: \"Esto dejaría la base de datos desfasada\",\n schema_change_verdict_diverges_body: \"El cambio se puede escribir, pero la base de datos no acabará coincidiendo con él. Los detalles de abajo indican qué parte, y qué haría falta para poder aplicarlo.\",\n schema_change_verdict_migration_title: \"Esto necesita una migración\",\n schema_change_verdict_migration_body: \"Parte de esto no se puede hacer en una base de datos en ejecución: elimina o reescribe algo, y eso corresponde a una migración que alguien haya leído.\",\n schema_change_commit_only_title: \"Listo para hacer commit\",\n schema_change_commit_only_body: \"Ahora no se ejecuta nada en la base de datos. Cada cambio de abajo indica qué hace y cuándo surte efecto.\",\n schema_change_commit_only_body_no_changes: \"Esto cambia lo que declara tu proyecto. No se ejecuta nada en la base de datos: no hay ningún cambio de esquema que hacer.\",\n schema_change_chip_safe: \"seguro\",\n schema_change_chip_diverges: \"diverge\",\n schema_change_chip_migration: \"requiere migración\",\n schema_change_follow_up_one: \"Una cosa que hacer después\",\n schema_change_follow_up: \"Para hacer después\",\n schema_change_withheld_one: \"Una restricción no se aplicará\",\n schema_change_withheld_many: \"{{count}} restricciones no se aplicarán\",\n schema_change_db_not_changed: \"La base de datos no se modificó\",\n schema_change_db_maybe_changed: \"Es posible que la base de datos se haya modificado en parte\",\n schema_change_statements_partial: \"Se ejecutaron {{ran}} de {{total}} sentencias y luego una falló\",\n schema_change_commit_holds: \"El commit está en {{branch}} de todos modos, así que lo que no se ejecutó se aplicará en el próximo arranque.\",\n schema_change_committed: \"Commit hecho\",\n schema_change_committed_on: \"{{sha}} en {{branch}}\",\n schema_change_plan_failed: \"No se pudo planificar el cambio\",\n schema_change_planning: \"Calculando qué haría este cambio…\",\n schema_change_source_only_changes: \"Nada de esto cambia la forma de tus datos. Solo cambia el código fuente de la colección, y se hace commit de él.\",\n schema_change_source_only_title: \"Editar solo el código fuente: hacer commit de la colección y dejar la base de datos\",\n schema_change_preview_only: \"Puedes previsualizar este cambio, pero no aplicarlo\",\n schema_change_statements: \"Sentencias que se ejecutarán\",\n schema_change_files: \"Archivos de los que se hará commit\",\n schema_change_message: \"Mensaje del commit\",\n schema_change_edit_source_only: \"Editar solo el código fuente\",\n schema_change_committing: \"Haciendo commit…\",\n schema_change_applying: \"Aplicando…\",\n schema_change_commit: \"Hacer commit\",\n schema_change_commit_and_apply: \"Hacer commit y aplicar\",\n\n // ─── API explorer ────────────────────────────────────────\n studio_api_explorer_spec_refused_title: \"Esta sesión no puede leer la especificación de la API\",\n studio_api_explorer_spec_failed_title: \"No se pudo cargar la especificación de la API\",\n studio_api_explorer_spec_refused_body: \"Se rechazó el acceso de la consola a la API de este proyecto. Normalmente significa que la sesión ha caducado (vuelve a iniciar sesión) o que el acceso de la consola se ha desactivado para este proyecto en Ajustes.\",\n studio_api_explorer_spec_failed_body: \"El proyecto respondió, pero no con una especificación que este explorador pueda leer. Su API no se ve afectada; solo esta página.\",\n\n // ─── Property field labels ──────────────────────────────────\n db_column_type: \"Tipo de columna de base de datos\",\n primary_key_unique_id: \"Clave primaria / ID único\",\n spread_children_as_columns: \"Expandir hijos como columnas\",\n mode: \"Modo\",\n timezone: \"Zona horaria\",\n target_collection: \"Colección destino\",\n\n // ─── Column type and primary key selects ─────────────────\n column_type_default: \"Predeterminado ({{type}})\",\n column_type_uuid_forced: \"uuid (impuesto por la clave primaria)\",\n column_type_varchar: \"varchar (longitud variable)\",\n column_type_text: \"text (ilimitado)\",\n column_type_char: \"char (longitud fija)\",\n column_type_timestamp: \"timestamp (con zona horaria)\",\n column_type_caption_string: \"Opcional: otro tipo de columna en la base de datos para este campo de texto.\",\n column_type_caption_number: \"Opcional: otro tipo de columna en la base de datos para este campo numérico.\",\n column_type_caption_date: \"Opcional: otro tipo de columna en la base de datos para este campo de fecha.\",\n primary_key_manual: \"Sí (entrada manual)\",\n primary_key_generated_string: \"Sí (UUID/cadena generada automáticamente)\",\n primary_key_identity: \"Sí (autoincremento/identity)\",\n primary_key_increment: \"Sí (incremento)\",\n primary_key_strategy: \"Sí ({{strategy}})\",\n primary_key_caption: \"Definir como clave primaria y configurar cómo se generan los ID.\",\n\n // ─── Storage property ───────────────────────────────────────\n storage_file_name: \"Nombre del archivo\",\n storage_path: \"Ruta de almacenamiento\",\n storage_max_size: \"Tamaño máximo (en bytes)\",\n storage_resize_mode: \"Modo de redimensionamiento\",\n storage_output_format: \"Formato de salida\",\n storage_max_width: \"Ancho máximo (px)\",\n storage_max_height: \"Alto máximo (px)\",\n storage_quality: \"Calidad (0-100)\",\n storage_file_upload_config: \"Configuración de subida de archivos\",\n storage_image_resize_config: \"Configuración de redimensionamiento de imagen\",\n storage_all_file_types: \"Todos los tipos de archivo permitidos\",\n storage_allowed_file_types: \"Tipos de archivo permitidos\",\n storage_include_bucket_url: \"Incluir URL del bucket (s3://...) en el valor guardado\",\n storage_save_url: \"Guardar URL en lugar de la ruta de almacenamiento\",\n\n // ─── DateTime property ──────────────────────────────────────\n datetime_automatic_value: \"Valor automático\",\n\n // ─── Date property selects ───────────────────────────────\n datetime_mode_date_time: \"Fecha/hora\",\n datetime_mode_date: \"Fecha\",\n datetime_auto_value_none: \"Ninguno\",\n datetime_auto_value_on_create: \"Al crear\",\n datetime_auto_value_on_update: \"En cada actualización\",\n datetime_auto_value_caption: \"Actualiza este campo automáticamente al crear o actualizar el registro\",\n datetime_timezone_local: \"Zona horaria local\",\n datetime_timezone_caption: \"Zona horaria para mostrar e introducir fechas. Los valores siempre se guardan en UTC.\",\n\n // ─── Markdown property ──────────────────────────────────────\n markdown_paste_behavior: \"Comportamiento al pegar\",\n\n // ─── Entity identity bar and inspector ──────────────────────\n entity_saved: \"Guardado\",\n more_actions: \"Más acciones\",\n record_history: \"Historial\",\n inspect_record: \"Inspeccionar registro\",\n inspect: \"Inspeccionar\",\n close_inspector: \"Cerrar el inspector\",\n open_in_live_site: \"Abrir en el sitio publicado\",\n\n // ─── Revision history ───────────────────────────────────────\n history_revert: \"Volver a esta versión\",\n history_revert_title: \"¿Volver a esta versión de los datos?\",\n history_reverted: \"Se volvió a la versión seleccionada\",\n history_revert_error: \"Error al revertir el registro\",\n history_revert_dirty: \"Guarda o descarta tus cambios antes de revertir\",\n history_empty: \"No hay historial disponible\",\n history_empty_description: \"Al guardar un registro se crea una nueva versión y se almacena en el historial.\",\n history_new_entity: \"El historial solo está disponible para registros existentes\",\n history_no_more: \"No hay más historial\",\n\n // ─── Studio: tools, groups and empty states ─────────────────\n // The admin's own three groups, read by `useNavigationGroupLabel` the same\n // way as the Studio ones below — the group *name* is an identifier the\n // ordering and the icons key off, and only the heading is translated.\n studio_group_views: \"Vistas\",\n studio_group_admin: \"Administración\",\n studio_group_settings: \"Ajustes\",\n studio_group_database: \"Base de datos\",\n studio_group_compute: \"Cómputo\",\n studio_group_storage: \"Almacenamiento\",\n studio_group_api: \"API\",\n studio_group_access_control: \"Control de acceso\",\n studio_tool_sql: \"Consola SQL\",\n studio_tool_sql_description: \"Ejecuta consultas SQL\",\n studio_tool_js: \"Consola JS\",\n studio_tool_js_description: \"Ejecuta JavaScript\",\n studio_tool_rls: \"Políticas RLS\",\n studio_tool_rls_description: \"Seguridad a nivel de fila\",\n studio_tool_storage: \"Almacenamiento\",\n studio_tool_storage_description: \"Gestiona los archivos de almacenamiento\",\n studio_tool_cron: \"Tareas cron\",\n studio_tool_cron_description: \"Gestiona las tareas programadas\",\n studio_tool_schema_visualizer: \"Visualizador de esquema\",\n studio_tool_schema_visualizer_description: \"Diagrama de entidades de tus colecciones\",\n studio_tool_branches: \"Ramas\",\n studio_tool_branches_description: \"Crea y gestiona ramas de la base de datos\",\n studio_tool_backups: \"Copias de seguridad\",\n studio_tool_backups_description: \"Descarga copias de seguridad de la base de datos\",\n studio_tool_api: \"Explorador de API\",\n studio_tool_api_description: \"Documentación de API interactiva y pruebas\",\n studio_tool_logs: \"Explorador de registros\",\n studio_tool_logs_description: \"Registros de sistema y consultas en tiempo real\",\n studio_tool_api_keys: \"Claves de API\",\n studio_tool_api_keys_description: \"Crea y gestiona claves de API con alcance\",\n studio_backups_denied_title: \"No puedes listar las copias de seguridad de este proyecto\",\n studio_backups_denied_hint: \"El proyecto está bien. Listar copias de seguridad requiere una conexión de administrador, y la cuenta con la sesión iniciada fue rechazada.\",\n studio_backups_read_failed: \"No se han podido leer las copias de seguridad de este proyecto\",\n studio_backups_downloading: \"Descargando…\",\n studio_backups_roles_file: \"Archivo de roles\",\n studio_backups_roles_file_hint: \"El .globals.sql guardado con esta copia. Recrea los roles de base de datos a los que se refieren los permisos y la seguridad a nivel de fila del volcado, y `rebase db restore` lo lee junto al .dump, así que guarda los dos archivos juntos.\",\n studio_backups_no_roles_file: \"Sin archivo de roles\",\n studio_backups_no_roles_file_hint: \"Esta copia no tiene ningún .globals.sql. Al restaurarla en un Postgres nuevo, se detiene en el primer permiso concedido a un rol de base de datos que allí no existe.\",\n studio_backups_empty: \"Todavía no hay copias de seguridad.\",\n studio_backups_empty_hint: \"Crea una con `rebase db backup` o prográmalas con un archivo cron que exporte createBackupCron.\",\n studio_backups_last_run_failed: \"La última copia de seguridad programada falló ({{when}})\",\n studio_backups_last_run_ok: \"Última copia de seguridad programada: {{when}}\",\n studio_backups_never_ran: \"La copia de seguridad programada aún no se ha ejecutado\",\n studio_backups_next_run: \"Próxima ejecución: {{when}}\",\n studio_backups_schedule_paused: \"Las copias de seguridad programadas están en pausa. Reanuda la tarea {{job}} en Tareas cron.\",\n studio_backups_schedule_off_in_code: \"Las copias de seguridad programadas están desactivadas: la tarea {{job}} está declarada como desactivada en su archivo cron. Con el archivo cron de copias documentado, definir BACKUP_SCHEDULE las activa.\",\n studio_backups_manual_run_ok: \"Última ejecución manual: {{when}}\",\n studio_backups_manual_run_failed: \"La última ejecución manual falló ({{when}})\",\n studio_backups_history_unreadable: \"No se ha podido leer el historial de ejecuciones de la copia de seguridad programada, así que no se sabe si se ha ejecutado. El motivo está en el registro del servidor.\",\n studio_backups_job_refused: \"Las copias de seguridad programadas nunca se ejecutan: el planificador rechazó la tarea {{job}}. Corrígela en su archivo cron.\",\n studio_backups_local_disk_of_this_process: \"Estas son las copias de seguridad del disco de este proceso del servidor. Las copias programadas se ejecutan en otro proceso y escriben en su disco, así que solo aparecen aquí si ambos comparten este directorio. Un destino s3:// o gs:// se lee igual desde cualquier proceso.\",\n studio_backups_unavailable_title: \"Copias de seguridad no disponibles\",\n studio_backups_unavailable_body: \"Este backend no expone la API de copias de seguridad.\",\n studio_cron_denied_title: \"No puedes listar las tareas cron de este proyecto\",\n studio_cron_denied_hint: \"El proyecto está bien. La API de cron es solo para administradores, y la cuenta con la sesión iniciada fue rechazada.\",\n studio_cron_read_failed: \"No se han podido leer las tareas cron de este proyecto\",\n studio_cron_logs_read_failed: \"No se han podido leer las ejecuciones de esta tarea\",\n studio_cron_logs_denied_title: \"No puedes leer las ejecuciones de esta tarea\",\n studio_cron_run_succeeded: \"{{job}} se ha ejecutado correctamente\",\n studio_cron_last_error: \"Último error\",\n studio_cron_no_executions: \"Todavía no hay ejecuciones\",\n studio_cron_manual_run: \"manual\",\n studio_cron_job_enabled: \"Tarea activada\",\n studio_cron_job_paused: \"Tarea en pausa\",\n studio_cron_refresh: \"Actualizar\",\n studio_cron_select_job: \"Selecciona una tarea cron para ver sus detalles\",\n studio_cron_pause_job: \"Pausar tarea\",\n studio_cron_enable_job: \"Activar tarea\",\n studio_cron_run_now: \"Ejecutar ahora\",\n studio_cron_schedule: \"Programación\",\n studio_cron_last_run: \"Última ejecución\",\n studio_cron_next_run: \"Próxima ejecución\",\n studio_cron_paused: \"En pausa\",\n studio_cron_duration: \"Duración\",\n studio_cron_status: \"Estado\",\n studio_cron_total_runs: \"Ejecuciones totales\",\n studio_cron_failures: \"Fallos\",\n studio_cron_execution_history: \"Historial de ejecuciones\",\n studio_cron_refresh_logs: \"Actualizar ejecuciones\",\n studio_cron_run_failed: \"{{job}} se ha ejecutado y ha fallado: {{error}}\",\n studio_cron_job_refused: \"La tarea {{job}} no está programada: el planificador la ha rechazado\",\n studio_cron_files_failed: \"{{count}} archivos cron no se han podido cargar y no están programados. El motivo está en el registro del servidor.\",\n studio_cron_files_failed_one: \"{{count}} archivo cron no se ha podido cargar y no está programado. El motivo está en el registro del servidor.\",\n studio_api_keys_denied_title: \"No puedes listar las claves de API de este proyecto\",\n studio_api_keys_denied_hint: \"El proyecto está bien. Listar las claves de servicio requiere el alcance keys:read, y la cuenta con la sesión iniciada no lo tiene.\",\n studio_api_keys_read_failed: \"No se han podido leer las claves de API de este proyecto\",\n studio_api_keys_empty_title: \"Aún no hay claves de API\",\n studio_api_keys_empty_hint: \"Cree una clave para habilitar la autenticación entre servicios\",\n studio_api_keys_revoke: \"Revocar\",\n studio_api_keys_select_hint: \"Seleccione una clave de API para ver los detalles\",\n studio_api_keys_revoke_confirmation: \"Confirmación de revocación\",\n studio_api_keys_name_label: \"Nombre:\",\n studio_api_keys_access_label: \"Acceso:\",\n studio_api_keys_admin_granted: \"Rol de administrador concedido\",\n studio_api_keys_admin_granted_hint: \"la seguridad a nivel de fila no la limita: puede leer, modificar y eliminar todas las filas a las que llegan sus alcances, y supera las comprobaciones de administrador en funciones y almacenamiento\",\n studio_api_keys_done: \"Listo\",\n studio_api_keys_status_active: \"Activa\",\n studio_api_keys_status_expired: \"Caducada\",\n studio_api_keys_status_revoked: \"Revocada\",\n studio_api_keys_inactive_heading: \"Revocadas / Caducadas\",\n studio_api_keys_stat_status: \"Estado\",\n studio_api_keys_stat_last_used: \"Último uso\",\n studio_api_keys_stat_expires: \"Caduca\",\n studio_api_keys_never: \"Nunca\",\n studio_api_keys_stat_rate_limit: \"Límite de peticiones\",\n studio_api_keys_rate_limit_default: \"Predeterminado (1000/15 min)\",\n studio_api_keys_stat_created_by: \"Creada por\",\n studio_api_keys_copy_failed: \"No se pudo copiar\",\n studio_api_keys_tab_service: \"Claves de servicio\",\n studio_api_keys_tab_personal: \"Mis claves\",\n studio_api_keys_refresh: \"Actualizar\",\n studio_api_keys_new: \"Nueva\",\n studio_api_keys_personal_empty_title: \"No tiene claves personales\",\n studio_api_keys_personal_empty_hint: \"Una clave personal actúa como su cuenta, para scripts y herramientas que ejecuta usted mismo\",\n studio_api_keys_personal_read_failed: \"No se han podido leer sus claves de API\",\n studio_api_keys_personal_denied_title: \"Esta sesión no puede tener claves personales\",\n studio_api_keys_personal_denied_hint: \"Una clave personal actúa como una cuenta con la sesión iniciada. Las claves de API, la clave de servicio y las sesiones de invitado no tienen una cuenta en cuyo nombre actuar.\",\n studio_api_keys_personal_off_title: \"Las claves personales están desactivadas\",\n studio_api_keys_personal_off_body: \"Una clave personal actúa como su propia cuenta y nunca tiene más que usted. Para que las cuentas puedan crearlas, añada esto al bloque auth de la colección de usuarios:\",\n studio_api_keys_kind_service: \"Servicio\",\n studio_api_keys_kind_personal: \"Personal\",\n studio_api_keys_stat_kind: \"Tipo\",\n studio_api_keys_stat_owner: \"Propietario\",\n studio_api_keys_rate_limit_value: \"{{limit}}/15 min\",\n studio_api_keys_scopes: \"Alcances\",\n studio_api_keys_no_scopes: \"Esta clave no tiene ningún alcance\",\n studio_api_keys_scopes_count: \"{{count}} alcances\",\n studio_api_keys_plane_data: \"Datos\",\n studio_api_keys_plane_data_hint: \"Filas, archivos y funciones; la seguridad a nivel de fila sigue decidiendo qué filas\",\n studio_api_keys_plane_admin: \"Administración\",\n studio_api_keys_plane_admin_hint: \"Usuarios, esquema, base de datos, copias de seguridad, cron y registros\",\n studio_api_keys_plane_app: \"Aplicación\",\n studio_api_keys_plane_app_hint: \"Declarados por esta aplicación en auth.scopes\",\n studio_api_keys_target_all_collection: \"Todas las colecciones\",\n studio_api_keys_target_all_bucket: \"Todos los orígenes de almacenamiento\",\n studio_api_keys_target_all_function: \"Todas las funciones\",\n studio_api_keys_target_all_other: \"Cualquier {{kind}}\",\n studio_api_keys_target_some: \"Solo los que elija\",\n studio_api_keys_target_mode: \"Destinos\",\n studio_api_keys_target_pick: \"Elegir…\",\n studio_api_keys_target_typed_placeholder: \"Ids de {{kind}}, separados por comas\",\n studio_api_keys_target_missing: \"Elija al menos un destino para «{{scope}}» o cámbielo a todos.\",\n studio_api_keys_bucket_default: \"Bucket predeterminado\",\n studio_api_keys_roles: \"Roles de RLS\",\n studio_api_keys_roles_rows_hint: \"Qué filas puede leer, modificar y eliminar la clave\",\n studio_api_keys_roles_service_only: \"Se ejecuta solo como service. La seguridad a nivel de fila no le concede nada salvo que una política nombre ese rol.\",\n studio_api_keys_roles_service_plus: \"Se ejecuta como service más estos roles; se aplica toda política de seguridad a nivel de fila que nombre uno de ellos.\",\n studio_api_keys_admin_bypasses_rls: \"Se ejecuta como admin: la seguridad a nivel de fila no la limita, así que puede leer, modificar y eliminar todas las filas a las que llegan sus alcances, y supera las comprobaciones de administrador en las funciones personalizadas y el almacenamiento. Sus alcances siguen decidiendo a qué endpoints puede llamar.\",\n studio_api_keys_admin_chip_tooltip: \"Se ejecuta con el rol admin: la seguridad a nivel de fila no limita sus lecturas, escrituras ni eliminaciones\",\n studio_api_keys_personal_roles: \"Se ejecuta como su propietario, con los roles que este tenga en cada uso. Nunca conserva un alcance que su propietario haya perdido.\",\n studio_api_keys_revoke_title: \"¿Revocar «{{name}}»?\",\n studio_api_keys_revoke_body: \"Las peticiones autenticadas con esta clave dejarán de funcionar de inmediato. No se puede deshacer.\",\n studio_api_keys_revoked: \"Clave de API revocada\",\n studio_api_keys_created_title: \"Clave de API creada\",\n studio_api_keys_copy_now: \"Copie la clave ahora: no se volverá a mostrar\",\n studio_api_keys_copy_now_hint: \"Es la única vez que se muestra la clave completa. Guárdela en un lugar seguro.\",\n studio_api_keys_copied: \"Clave de API copiada al portapapeles\",\n studio_api_keys_create_title: \"Crear clave de servicio\",\n studio_api_keys_create_personal_title: \"Crear clave personal\",\n studio_api_keys_create_intro: \"Una credencial para scripts, tareas cron y agentes. Actúa como la identidad de servicio del proyecto, no como una persona, y solo puede usar los alcances que conceda aquí.\",\n studio_api_keys_create_personal_intro: \"Una credencial para scripts y herramientas que ejecuta usted mismo. Actúa como su cuenta y nunca puede hacer más que usted.\",\n studio_api_keys_field_name: \"Nombre\",\n studio_api_keys_field_name_placeholder: \"p. ej., Pipeline de analítica\",\n studio_api_keys_section_scopes_hint: \"A qué endpoints puede llamar la clave\",\n studio_api_keys_scopes_read_failed: \"No se han podido leer los alcances que ofrece este backend\",\n studio_api_keys_scopes_offered_note: \"Solo se ofrecen los alcances que tiene su cuenta. La gestión de claves (keys:read, keys:write) nunca puede ir en una clave.\",\n studio_api_keys_roles_explainer: \"Los alcances deciden a qué endpoints puede llamar la clave; los roles deciden qué filas puede leer, modificar y eliminar. Toda clave de servicio se ejecuta como service, más los roles que añada aquí. Déjelo vacío salvo que una política de seguridad a nivel de fila nombre un rol que la clave necesite.\",\n studio_api_keys_roles_other: \"Otros roles\",\n studio_api_keys_roles_other_placeholder: \"Nombres de rol separados por comas\",\n studio_api_keys_roles_unavailable: \"No se han podido listar los roles del proyecto; escriba los nombres de rol.\",\n studio_api_keys_roles_admin_warning: \"Con admin, la seguridad a nivel de fila no limita la clave: puede leer, modificar y eliminar todas las filas a las que llegan sus alcances, y supera las comprobaciones de administrador en las funciones personalizadas y el almacenamiento. Sus alcances siguen decidiendo a qué endpoints puede llamar.\",\n studio_api_keys_section_limits: \"Límites\",\n studio_api_keys_expiry_7d: \"En 7 días\",\n studio_api_keys_expiry_30d: \"En 30 días\",\n studio_api_keys_expiry_90d: \"En 90 días\",\n studio_api_keys_expiry_1y: \"En 1 año\",\n studio_api_keys_rate_limit_unit: \"por 15 min\",\n studio_api_keys_rate_limit_hint: \"Déjelo vacío para usar el valor predeterminado del servidor: 1000 peticiones por ventana de 15 minutos.\",\n studio_api_keys_rate_limit_scope: \"El límite cuenta las peticiones de datos, archivos y funciones de la clave por HTTP, el socket en tiempo real y MCP. Las operaciones de administración no tienen límite de peticiones.\",\n studio_api_keys_summary_title: \"Esta clave podrá\",\n studio_api_keys_summary_empty: \"Nada todavía: elija al menos un alcance.\",\n studio_api_keys_summary_roles: \"La seguridad a nivel de fila la trata como {{roles}}\",\n studio_api_keys_block_name: \"Primero ponga un nombre a la clave\",\n studio_api_keys_block_scopes: \"Elija al menos un alcance\",\n studio_api_keys_block_targets: \"Termine de elegir los destinos\",\n studio_api_keys_creating: \"Creando…\",\n studio_api_keys_create: \"Crear clave\",\n studio_api_keys_unsupported: \"Este cliente no puede crear claves de API.\",\n studio_api_keys_error_invalid_scopes: \"Algunos alcances no son válidos\",\n studio_api_keys_error_scope_exceeds_creator: \"Una clave no puede tener más que su cuenta\",\n studio_api_keys_error_role_exceeds_creator: \"Una clave no puede ejecutarse con un rol que usted no tiene\",\n studio_api_keys_error_unknown_scope_target: \"Un destino no existe en este backend\",\n studio_api_keys_error_key_management_scope: \"La gestión de claves no puede ir en una clave\",\n studio_api_keys_error_generic: \"No se ha creado la clave\",\n studio_scope_data_read_label: \"Leer datos\",\n studio_scope_data_read_description: \"Leer filas de las colecciones, a través de la seguridad a nivel de fila de quien llama.\",\n studio_scope_data_write_label: \"Crear y actualizar datos\",\n studio_scope_data_write_description: \"Crear y actualizar filas de las colecciones, a través de la seguridad a nivel de fila de quien llama.\",\n studio_scope_data_delete_label: \"Eliminar datos\",\n studio_scope_data_delete_description: \"Eliminar filas de las colecciones, a través de la seguridad a nivel de fila de quien llama.\",\n studio_scope_storage_read_label: \"Leer archivos\",\n studio_scope_storage_read_description: \"Listar y descargar los archivos almacenados.\",\n studio_scope_storage_write_label: \"Subir archivos\",\n studio_scope_storage_write_description: \"Subir archivos y crear carpetas.\",\n studio_scope_storage_delete_label: \"Eliminar archivos\",\n studio_scope_storage_delete_description: \"Eliminar los archivos almacenados.\",\n studio_scope_functions_invoke_label: \"Llamar a funciones\",\n studio_scope_functions_invoke_description: \"Llamar a las funciones personalizadas del backend. Una función puede hacer todo lo que haga su código.\",\n studio_scope_users_read_label: \"Ver usuarios\",\n studio_scope_users_read_description: \"Listar las cuentas de usuario y sus roles.\",\n studio_scope_users_write_label: \"Gestionar usuarios\",\n studio_scope_users_write_description: \"Crear, editar y eliminar cuentas, restablecer contraseñas y segundos factores, y asignar roles hasta los del propio titular.\",\n studio_scope_schema_read_label: \"Ver el esquema\",\n studio_scope_schema_read_description: \"Leer el esquema de colecciones, planificar cambios de esquema y ejecutar la auditoría de RLS.\",\n studio_scope_schema_write_label: \"Cambiar el esquema\",\n studio_scope_schema_write_description: \"Aplicar cambios de esquema: edita los archivos de colecciones y modifica la base de datos.\",\n studio_scope_database_read_label: \"Inspeccionar la base de datos\",\n studio_scope_database_read_description: \"Listar bases de datos, tablas, roles de Postgres y ramas.\",\n studio_scope_database_write_label: \"Ejecutar SQL\",\n studio_scope_database_write_description: \"Ejecutar SQL como propietario de la base de datos, fuera de la seguridad a nivel de fila, y crear o eliminar ramas.\",\n studio_scope_backups_read_label: \"Descargar copias de seguridad\",\n studio_scope_backups_read_description: \"Listar y descargar copias de seguridad de la base de datos: todas las filas, fuera de la seguridad a nivel de fila.\",\n studio_scope_cron_read_label: \"Ver tareas cron\",\n studio_scope_cron_read_description: \"Listar las tareas cron y leer su historial de ejecuciones.\",\n studio_scope_cron_write_label: \"Ejecutar tareas cron\",\n studio_scope_cron_write_description: \"Lanzar tareas cron y activarlas o desactivarlas.\",\n studio_scope_logs_read_label: \"Leer los registros del servidor\",\n studio_scope_logs_read_description: \"Leer los registros de peticiones y de la aplicación del servidor.\",\n studio_scope_keys_read_label: \"Ver claves de servicio\",\n studio_scope_keys_read_description: \"Listar las claves de servicio del proyecto. Nunca se puede conceder a una clave.\",\n studio_scope_keys_write_label: \"Gestionar claves de servicio\",\n studio_scope_keys_write_description: \"Crear, cambiar y revocar las claves de servicio del proyecto. Nunca se puede conceder a una clave.\",\n studio_branches_denied_title: \"No puedes listar las ramas de este proyecto\",\n studio_branches_denied_hint: \"El proyecto está bien. El uso de ramas va por la conexión de administrador, y la cuenta con la sesión iniciada fue rechazada.\",\n studio_branches_read_failed: \"No se han podido leer las ramas de este proyecto\",\n studio_schema_no_collections: \"No hay colecciones declaradas\",\n studio_schema_no_collections_body: \"Todavía no hay nada que dibujar. Añade una colección en config/collections/, o abre «Editar colecciones» para añadir una aquí.\",\n studio_schema_introspect_hint: \"Contra una base de datos que ya tiene tablas, rebase schema introspect escribe los archivos de colección por ti.\",\n studio_schema_visualizer_source: \"Dibujado a partir de tus colecciones: tablas, columnas, tipos y relaciones tal como las declaran. Solo los indicadores de RLS se leen de la base de datos.\",\n studio_schema_laying_out: \"Organizando el diagrama…\",\n studio_schema_neighbourhood: \"Mostrando {{shown}} de {{total}} tablas: {{table}} y las tablas a su alrededor. Elige otra en la lista para moverte.\",\n studio_schema_neighbourhood_depth_1: \"A 1 relación\",\n studio_schema_neighbourhood_depth_2: \"A 2 relaciones\",\n\n\n // ─── Studio: RLS editor confirmations ───────────────────────\n studio_rls_enable_confirm_title: \"¿Activar la seguridad a nivel de fila?\",\n studio_rls_enable_confirm_body: \"Hasta que una política lo permita, ninguna fila de {{table}} será legible. Postgres deniega por defecto.\",\n studio_rls_disable_confirm_title: \"¿Desactivar la seguridad a nivel de fila?\",\n studio_rls_disable_confirm_body: \"Todas las políticas de {{table}} dejan de aplicarse. Quien pueda alcanzar la tabla podrá leer y escribir todas las filas.\",\n studio_rls_drop_policy_title: \"¿Eliminar esta política?\",\n studio_rls_drop_policy_body: \"{{policy}} se elimina de {{table}} en la base de datos. No se escribe nada en tu código, así que un despliegue puede restaurarla.\",\n studio_rls_unapplied: \"Sin aplicar\",\n studio_rls_unapplied_tooltip: \"Declarada en tu código, todavía no en la base de datos. Rebase la aplica la próxima vez que arranque el servidor o se ejecute `rebase db push`; si después sigue faltando, el log del servidor explica por qué.\",\n studio_rls_drift: \"Difiere del código\",\n studio_rls_drift_tooltip: \"En la base de datos, {{fields}} difieren de lo que el proyecto declara para esta política. La versión declarada vuelve la próxima vez que arranque el servidor o se ejecute `rebase db push`.\",\n studio_rls_reapplied_on_start: \"Rebase gestiona las políticas de {{table}}. Cada vez que arranca el servidor, y en cada `rebase db push`, vuelve a activar la seguridad a nivel de fila en esta tabla y vuelve a crear cada política que el proyecto declara para ella. Un cambio hecho aquí a una de esas políticas, o al interruptor de RLS, dura hasta entonces. Una política que añadas con un nombre propio se conserva.\",\n studio_rls_disable_reapplied: \"Rebase gestiona {{table}}, así que la seguridad a nivel de fila se vuelve a activar la próxima vez que arranque el servidor o se ejecute `rebase db push`.\",\n studio_rls_nothing_changed: \"No ha cambiado nada, así que no se ha guardado nada.\",\n\n\n // ─── Studio: empty states that name a remedy ────────────────\n studio_branches_unavailable_title: \"Las ramas de base de datos no están disponibles\",\n studio_branches_unavailable_body: \"Las ramas necesitan un backend Postgres con una conexión de administrador. Define ADMIN_CONNECTION_STRING en el entorno del backend.\",\n studio_backups_not_configured_title: \"Las copias de seguridad no están configuradas\",\n studio_backups_not_configured_body: \"Define BACKUP_DESTINATION como una ruta local o una URL s3:// o gs://, y crea una copia con `rebase db backup` o un cron programado.\",\n studio_cron_empty_title: \"No hay tareas cron registradas\",\n studio_cron_empty_body: \"Añade un archivo en backend/crons/ que exporte por defecto una CronJobDefinition.\",\n studio_read_the_docs: \"Consulta la documentación\",\n\n\n // ─── Studio: storage browser ────────────────────────────────\n studio_storage_root: \"Raíz\",\n studio_storage_root_folder: \"raíz\",\n studio_storage_loading: \"Cargando…\",\n studio_storage_denied_title: \"Las reglas de almacenamiento de este proyecto han rechazado este listado\",\n studio_storage_denied_hint: \"El proyecto está bien. Su hook storageAuthorize decide quién puede leer qué claves, y ha rechazado esta ruta para la cuenta con la sesión iniciada; normalmente porque un listado debe indicar un prefijo que la regla reconozca en lugar de la raíz del bucket.\",\n studio_storage_read_failed: \"No se ha podido leer el almacenamiento de este proyecto\",\n studio_storage_empty: \"Esta carpeta está vacía\",\n studio_storage_new_folder: \"Nueva carpeta\",\n studio_storage_upload_files: \"Subir archivos\",\n studio_storage_upload: \"Subir\",\n studio_storage_upload_count: \"Subir ({{count}})\",\n studio_storage_uploading: \"Subiendo…\",\n studio_storage_upload_failed: \"Error al subir\",\n studio_storage_upload_dialog_title: \"Subir archivos\",\n studio_storage_upload_to: \"a\",\n studio_storage_drop_or_browse: \"Suelta los archivos aquí o haz clic para explorar\",\n studio_storage_any_file_type: \"Se admite cualquier tipo de archivo\",\n studio_storage_selected_files: \"Archivos seleccionados ({{count}})\",\n studio_storage_drop_to_upload: \"Suelta los archivos para subirlos\",\n studio_storage_files_uploaded: \"{{count}} archivos subidos correctamente\",\n studio_storage_files_uploaded_one: \"{{count}} archivo subido correctamente\",\n studio_storage_cancel: \"Cancelar\",\n studio_storage_create: \"Crear\",\n studio_storage_download: \"Descargar\",\n studio_storage_delete: \"Eliminar\",\n studio_storage_deselect: \"Deseleccionar\",\n studio_storage_refresh: \"Actualizar\",\n studio_storage_go_up: \"Subir un nivel\",\n studio_storage_grid_view: \"Vista de cuadrícula\",\n studio_storage_list_view: \"Vista de lista\",\n studio_storage_default_source: \"Predeterminado\",\n studio_storage_name: \"Nombre\",\n studio_storage_type: \"Tipo\",\n studio_storage_type_unknown: \"Desconocido\",\n studio_storage_size: \"Tamaño\",\n studio_storage_extension: \"Extensión\",\n studio_storage_path: \"Ruta\",\n studio_storage_url: \"URL\",\n studio_storage_copy_url: \"Copiar URL\",\n studio_storage_url_copied: \"¡Copiado!\",\n studio_storage_url_temporary: \"Enlace temporal: cualquiera que lo tenga puede abrir este archivo durante un máximo de {{minutes}} min. Descargar y Copiar URL generan uno nuevo.\",\n studio_storage_url_public: \"Enlace público: cualquiera puede abrir este archivo y el enlace no caduca.\",\n studio_storage_folder: \"Carpeta\",\n studio_storage_folders: \"Carpetas\",\n studio_storage_files_heading: \"Archivos ({{count}})\",\n studio_storage_file_count: \"{{count}} archivos\",\n studio_storage_file_count_one: \"{{count}} archivo\",\n studio_storage_folder_count: \"{{count}} carpetas\",\n studio_storage_folder_count_one: \"{{count}} carpeta\",\n studio_storage_selected_count: \"{{count}} seleccionados\",\n studio_storage_selected_count_one: \"{{count}} seleccionado\",\n studio_storage_items_selected: \"{{count}} elementos seleccionados\",\n studio_storage_items_selected_one: \"{{count}} elemento seleccionado\",\n studio_storage_selected_label: \"Seleccionado:\",\n studio_storage_no_preview: \"Vista previa no disponible\",\n studio_storage_file_info: \"Información del archivo\",\n studio_storage_delete_file_title: \"Eliminar archivo\",\n studio_storage_delete_file_question: \"¿Eliminar archivo?\",\n studio_storage_delete_file_body: \"¿Seguro que quieres eliminar «{{name}}»? Esta acción no se puede deshacer.\",\n studio_storage_delete_confirmation_title: \"Confirmar eliminación\",\n studio_storage_delete_question: \"¿Eliminar?\",\n studio_storage_delete_items_question: \"¿Eliminar {{count}} elementos?\",\n studio_storage_delete_items_question_one: \"¿Eliminar {{count}} elemento?\",\n studio_storage_delete_folder_question: \"¿Eliminar la carpeta «{{name}}»?\",\n studio_storage_delete_selection_body: \"Se eliminarán de forma permanente todos los archivos y carpetas seleccionados, incluido su contenido. Esta acción no se puede deshacer.\",\n studio_storage_delete_folder_body: \"Se eliminará de forma permanente la carpeta y todo su contenido. Esta acción no se puede deshacer.\",\n studio_storage_file_deleted: \"«{{name}}» eliminado\",\n studio_storage_folder_deleted: \"Carpeta «{{name}}» eliminada\",\n studio_storage_items_deleted: \"{{count}} elementos eliminados\",\n studio_storage_items_deleted_one: \"{{count}} elemento eliminado\",\n studio_storage_delete_incomplete: \"{{count}} elementos siguen ahí después de eliminarlos: {{names}}\",\n studio_storage_delete_incomplete_one: \"«{{names}}» sigue ahí después de eliminarlo\",\n studio_storage_replace_title: \"Reemplazar archivos\",\n studio_storage_replace_question: \"¿Reemplazar {{count}} archivos?\",\n studio_storage_replace_question_one: \"¿Reemplazar {{count}} archivo?\",\n studio_storage_replace_body: \"{{names}} ya están en esta carpeta. Al subirlos se reemplazan y los archivos actuales se pierden.\",\n studio_storage_replace_body_one: \"«{{names}}» ya está en esta carpeta. Al subirlo se reemplaza y el archivo actual se pierde.\",\n studio_storage_replace: \"Reemplazar\",\n studio_storage_new_folder_title: \"Nueva carpeta\",\n studio_storage_folder_name: \"Nombre de la carpeta\",\n studio_storage_folder_name_placeholder: \"Introduce el nombre de la carpeta\",\n studio_storage_created_in: \"Se creará en\",\n studio_storage_folder_name_has_slash: \"El nombre de la carpeta no puede contener barras\",\n studio_storage_folder_exists: \"La carpeta «{{name}}» ya existe\",\n studio_storage_folder_created: \"Carpeta «{{name}}» creada\",\n studio_storage_create_folder_failed: \"No se ha podido crear la carpeta\",\n\n // ─── Insights plugin ─────────────────────────────────────────\n insights_period_last_days: \"Últimos {{count}} días\",\n insights_period_last_days_one: \"Último día\",\n insights_previous_period_value: \"{{count}} días anteriores: {{value}}\",\n insights_previous_period_value_one: \"Día anterior: {{value}}\",\n insights_change_up: \"Subida: {{change}}\",\n insights_change_down: \"Bajada: {{change}}\",\n insights_change_none: \"Sin cambios\",\n\n // ─── Icon button names ───────────────────────────────────────\n add_to_favourites: \"Añadir a favoritos\",\n remove_from_favourites: \"Quitar de favoritos\",\n change_value_type: \"Cambiar tipo\",\n refresh: \"Actualizar\",\n create_branch: \"Crear rama\",\n new_tab: \"Nueva pestaña\",\n close_tab: \"Cerrar pestaña\",\n help: \"Ayuda\",\n copy_table_name: \"Copiar nombre de la tabla\",\n copy_column_name: \"Copiar nombre de la columna\",\n generate_sql_templates: \"Generar plantillas SQL\",\n select_row: \"Seleccionar {{id}}\",\n relation_open_record: \"Abrir {{label}}\",\n select: \"Seleccionar\",\n open_view: \"Abrir vista\"\n};\n"],"mappings":"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"}