diff --git a/config/locales/views/account_sharings/es.yml b/config/locales/views/account_sharings/es.yml
new file mode 100644
index 000000000..c05fe3015
--- /dev/null
+++ b/config/locales/views/account_sharings/es.yml
@@ -0,0 +1,29 @@
+---
+es:
+ account_sharings:
+ show:
+ title: Compartir cuenta
+ subtitle: Controla quién puede ver esta cuenta e interactuar con ella
+ member: Miembro
+ permission: Permiso
+ shared: Compartida
+ no_members: No hay otros miembros en tu %{moniker} con quienes compartir
+ permissions:
+ full_control: Control total
+ full_control_description: Puede ver, editar y gestionar transacciones
+ read_write: Puede anotar
+ read_write_description: Puede categorizar, etiquetar y añadir notas
+ read_only: Solo lectura
+ read_only_description: Solo puede ver los datos de la cuenta
+ save: Guardar ajustes de uso compartido
+ owner_label: "Propietario: %{name}"
+ shared_with_count:
+ one: Compartida con 1 miembro
+ other: "Compartida con %{count} miembros"
+ include_in_finances: Incluir en mis presupuestos e informes
+ exclude_from_finances: Excluir de mis presupuestos e informes
+ finance_toggle_description: Tener en cuenta esta cuenta en tu patrimonio neto, presupuestos e informes
+ update:
+ success: Ajustes de uso compartido actualizados
+ not_owner: Solo el propietario de la cuenta puede gestionar el uso compartido
+ finance_toggle_success: Preferencia de inclusión financiera actualizada
diff --git a/config/locales/views/account_statements/es.yml b/config/locales/views/account_statements/es.yml
new file mode 100644
index 000000000..3486f844d
--- /dev/null
+++ b/config/locales/views/account_statements/es.yml
@@ -0,0 +1,116 @@
+---
+es:
+ account_statements:
+ account_tab:
+ coverage_title: Cobertura de extractos
+ coverage_description: Meses históricos respaldados por extractos subidos y comprobaciones de saldo.
+ coverage_range: "%{start} - %{end}"
+ empty: Aún no hay extractos vinculados a esta cuenta.
+ open_inbox: Bandeja de entrada
+ statements_title: Extractos
+ year_label: Año de cobertura
+ balance:
+ unknown: Desconocido
+ coverage:
+ status:
+ ambiguous: Ambiguo
+ covered: Cubierto
+ duplicate: Duplicado
+ mismatched: No coincide
+ missing: Faltante
+ not_expected: No esperado
+ create:
+ duplicates:
+ one: Se omitió 1 extracto duplicado.
+ other: "Se omitieron %{count} extractos duplicados."
+ invalid_file_type: Sube un extracto en PDF, CSV o XLSX que no supere el límite de tamaño.
+ no_files: Selecciona al menos un archivo de extracto.
+ success:
+ one: 1 extracto subido.
+ other: "%{count} extractos subidos."
+ destroy:
+ failure: No se pudo eliminar el extracto.
+ success: Extracto eliminado.
+ form:
+ account_upload: Subir extracto
+ files_hint: PDF, CSV o XLSX. Máximo %{max_size} MB por archivo.
+ files_label: Archivos de extracto
+ inbox_upload: Subir
+ index:
+ account_label: Cuenta
+ confidence: "Coincidencia del %{confidence}"
+ empty_linked: Aún no hay extractos vinculados.
+ empty_unmatched: La bandeja de entrada de extractos está vacía.
+ leave_unmatched: Dejar sin asignar
+ linked_title: Extractos vinculados
+ no_suggestion: Sin sugerencia
+ storage_used: Almacenamiento usado
+ title: Bóveda de extractos
+ unmatched_title: Bandeja de entrada sin asignar
+ upload_description: Sube extractos a la bandeja de entrada o elige una cuenta para vincularlos de inmediato.
+ upload_title: Subir extractos
+ link:
+ no_account: Elige una cuenta antes de vincular este extracto.
+ success: Extracto vinculado a %{account}.
+ period:
+ unknown: Periodo desconocido
+ reconciliation:
+ checks:
+ closing_balance: Saldo de cierre
+ opening_balance: Saldo de apertura
+ period_movement: Movimiento del periodo
+ unknown_check: Comprobación desconocida
+ matched: Coincide
+ mismatched: No coincide
+ unavailable: Sin comprobar
+ reject:
+ success: Coincidencia de extracto rechazada.
+ show:
+ account_label: Cuenta
+ account_last4_hint: Últimos cuatro dígitos de la cuenta
+ account_name_hint: Pista del nombre de la cuenta
+ closing_balance: Saldo de cierre
+ currency: Moneda
+ delete: Eliminar
+ difference: Diferencia
+ download: Descargar
+ institution_name_hint: Pista de la entidad
+ ledger_amount: Registro de Sure
+ linked_to: Vinculado a %{account}.
+ linking_title: Vínculo de cuenta
+ link_suggestion: Sugerencia de vínculo
+ metadata_title: Metadatos del extracto
+ no_suggestion: Aún no hay sugerencia de cuenta.
+ opening_balance: Saldo de apertura
+ period_end_on: Fin del periodo
+ period_start_on: Inicio del periodo
+ reconciliation_title: Conciliación
+ reconciliation_unavailable: Añade un periodo de extracto y un saldo de apertura o cierre, y asegúrate de que Sure tenga historial de saldos para esas fechas.
+ reject: Rechazar
+ save: Guardar extracto
+ statement_amount: Extracto
+ suggested_account: La cuenta sugerida es %{account} (confianza del %{confidence}).
+ title: Extracto
+ unlink: Desvincular
+ unmatched_account: Bandeja de entrada sin asignar
+ unknown_value: Desconocido
+ status:
+ linked: Vinculado
+ rejected: Rechazado
+ unmatched: Sin asignar
+ table:
+ account: Cuenta
+ actions: Acciones
+ download: Descargar
+ file: Archivo
+ link_suggestion: Sugerencia de vínculo
+ period: Periodo
+ reconciliation: Conciliación
+ reject: Rechazar sugerencia
+ suggestion: Sugerencia
+ unlink: Desvincular
+ view: Ver
+ unlink:
+ success: Extracto devuelto a la bandeja de entrada sin asignar.
+ update:
+ success: Extracto actualizado.
diff --git a/config/locales/views/binance_items/es.yml b/config/locales/views/binance_items/es.yml
new file mode 100644
index 000000000..2b83aa0bd
--- /dev/null
+++ b/config/locales/views/binance_items/es.yml
@@ -0,0 +1,75 @@
+---
+es:
+ binance_items:
+ create:
+ default_name: Binance
+ success: ¡Conexión con Binance establecida con éxito! Tu cuenta se está sincronizando.
+ update:
+ success: Configuración de Binance actualizada correctamente.
+ destroy:
+ success: Conexión de Binance programada para su eliminación.
+ setup_accounts:
+ title: Importar cuenta de Binance
+ subtitle: Selecciona qué carteras quieres seguir
+ instructions: Selecciona las carteras de Binance que quieres importar. Solo se muestran las carteras con saldos.
+ no_accounts: Se han importado todas las cuentas.
+ accounts_count:
+ one: "%{count} cuenta disponible"
+ other: "%{count} cuentas disponibles"
+ select_all: Seleccionar todas
+ import_selected: Importar seleccionadas
+ cancel: Cancelar
+ creating: Importando...
+ complete_account_setup:
+ success:
+ one: "Se ha importado %{count} cuenta"
+ other: "Se han importado %{count} cuentas"
+ none_selected: No se ha seleccionado ninguna cuenta
+ no_accounts: No hay cuentas para importar
+ binance_item:
+ provider_name: Binance
+ syncing: Sincronizando...
+ reconnect: Es necesario actualizar las credenciales
+ deletion_in_progress: Eliminando...
+ sync_status:
+ no_accounts: No se han encontrado cuentas
+ all_synced:
+ one: "%{count} cuenta sincronizada"
+ other: "%{count} cuentas sincronizadas"
+ partial_sync: "%{linked_count} sincronizadas, %{unlinked_count} necesitan configuración"
+ status: "Sincronizado hace %{timestamp}"
+ status_with_summary: "Sincronizado hace %{timestamp} - %{summary}"
+ status_never: Nunca sincronizado
+ update_credentials: Actualizar credenciales
+ delete: Eliminar
+ no_accounts_title: No se han encontrado cuentas
+ no_accounts_message: Tu cartera de Binance aparecerá aquí después de la sincronización.
+ setup_needed: Cuenta lista para importar
+ setup_description: Selecciona qué carteras de Binance quieres seguir.
+ setup_action: Importar cuenta
+ import_accounts_menu: Importar cuenta
+ stale_rate_warning: "El saldo es aproximado: el tipo de cambio exacto para %{date} no estaba disponible. Se actualizará en la próxima sincronización."
+ select_existing_account:
+ title: Vincular cuenta de Binance
+ no_accounts_found: No se han encontrado cuentas de Binance.
+ wait_for_sync: Espera a que Binance termine de sincronizar
+ check_provider_health: Comprueba que tus credenciales de la API de Binance sean válidas
+ currently_linked_to: "Actualmente vinculada a: %{account_name}"
+ link: Vincular
+ cancel: Cancelar
+ link_existing_account:
+ success: Vinculado correctamente a la cuenta de Binance
+ errors:
+ only_manual: Solo las cuentas manuales pueden vincularse a Binance
+ invalid_binance_account: Cuenta de Binance no válida
+ binance_item:
+ syncer:
+ checking_credentials: Comprobando credenciales...
+ credentials_invalid: Credenciales de la API no válidas. Comprueba tu clave de API y tu secreto.
+ importing_accounts: Importando cuentas desde Binance...
+ checking_configuration: Comprobando la configuración de la cuenta...
+ accounts_need_setup:
+ one: "%{count} cuenta necesita configuración"
+ other: "%{count} cuentas necesitan configuración"
+ processing_accounts: Procesando los datos de la cuenta...
+ calculating_balances: Calculando saldos...
diff --git a/config/locales/views/brex_items/es.yml b/config/locales/views/brex_items/es.yml
new file mode 100644
index 000000000..f2f3949a2
--- /dev/null
+++ b/config/locales/views/brex_items/es.yml
@@ -0,0 +1,277 @@
+---
+es:
+ brex_items:
+ default_connection_name: Conexión de Brex
+ account_metadata:
+ provider: Brex
+ separator: " • "
+ kinds:
+ cash: Efectivo
+ card: Tarjeta
+ statuses:
+ ACTIVE: Activa
+ active: Activa
+ CLOSED: Cerrada
+ closed: Cerrada
+ frozen: Congelada
+ FROZEN: Congelada
+ create:
+ success: Conexión de Brex creada correctamente
+ default_card_name: Tarjeta Brex
+ default_cash_name: "Brex Cash %{id}"
+ destroy:
+ success: Conexión de Brex eliminada
+ index:
+ title: Conexiones de Brex
+ institution_summary:
+ none: No hay entidades conectadas
+ one: "%{name}"
+ count:
+ one: "%{count} entidad"
+ other: "%{count} entidades"
+ sync_status:
+ no_accounts: No se han encontrado cuentas
+ all_synced:
+ one: "%{count} cuenta sincronizada"
+ other: "%{count} cuentas sincronizadas"
+ partial_setup: "%{synced} sincronizadas, %{pending} necesitan configuración"
+ api_error:
+ common_issues: "Problemas habituales:"
+ expired_credentials: Genera un nuevo token de API en Brex.
+ expired_credentials_label: "Credenciales caducadas:"
+ heading: No se puede conectar con Brex
+ invalid_token: Comprueba tu token de API en los Ajustes del proveedor.
+ invalid_token_label: "Token de API no válido:"
+ network: Comprueba tu conexión a internet.
+ network_label: "Problema de red:"
+ permissions: Asegúrate de que tu token tenga los ámbitos de solo lectura necesarios para cuentas y transacciones.
+ permissions_label: "Permisos insuficientes:"
+ service: Es posible que la API de Brex no esté disponible temporalmente.
+ service_label: "Servicio caído:"
+ settings_link: Comprobar los Ajustes del proveedor
+ title: Error de conexión con Brex
+ errors:
+ unexpected_error: Se ha producido un error inesperado. Inténtalo de nuevo más tarde.
+ entries:
+ default_name: Transacción de Brex
+ loading:
+ loading_message: Cargando cuentas de Brex...
+ loading_title: Cargando
+ link_accounts:
+ all_already_linked:
+ one: "La cuenta seleccionada (%{names}) ya está vinculada"
+ other: "Las %{count} cuentas seleccionadas ya están vinculadas: %{names}"
+ api_error: "Error de la API: %{message}"
+ invalid_account_names:
+ one: "No se puede vincular una cuenta con el nombre en blanco"
+ other: "No se pueden vincular %{count} cuentas con los nombres en blanco"
+ invalid_account_type: Tipo de cuenta de Brex no admitido
+ link_failed: No se pudieron vincular las cuentas
+ no_accounts_selected: Selecciona al menos una cuenta
+ no_api_token: No se ha encontrado el token de API de Brex. Configúralo en los Ajustes del proveedor.
+ partial_invalid: "Se vincularon %{created_count} cuenta(s) correctamente, %{already_linked_count} cuenta(s) ya estaban vinculadas, %{invalid_count} cuenta(s) tenían nombres no válidos"
+ partial_success: "Se vincularon %{created_count} cuenta(s) correctamente. %{already_linked_count} cuenta(s) ya estaban vinculadas: %{already_linked_names}"
+ select_connection: Elige una conexión de Brex antes de vincular cuentas.
+ success:
+ one: "Se ha vinculado %{count} cuenta correctamente"
+ other: "Se han vinculado %{count} cuentas correctamente"
+ brex_item:
+ accounts_need_setup: Las cuentas necesitan configuración
+ delete: Eliminar conexión
+ deletion_in_progress: eliminación en curso...
+ error: Error
+ no_accounts_description: Esta conexión aún no tiene cuentas vinculadas.
+ no_accounts_title: Sin cuentas
+ setup_action: Configurar nuevas cuentas
+ setup_description: "%{linked} de %{total} cuentas vinculadas. Elige los tipos de cuenta para tus cuentas de Brex recién importadas."
+ setup_needed: Nuevas cuentas listas para configurar
+ status: "Sincronizado hace %{timestamp}"
+ status_never: Nunca sincronizado
+ status_with_summary: "Sincronizado hace %{timestamp} - %{summary}"
+ syncing: Sincronizando...
+ total: Total
+ unlinked: Sin vincular
+ provider_panel:
+ accounts_link: Cuentas
+ add_connection: Añadir conexión de Brex
+ base_url_label: URL base (opcional)
+ base_url_placeholder: https://api.brex.com
+ configured_html: "Configurado y listo para usar. Visita la pestaña %{accounts_link} para gestionar y configurar las cuentas."
+ connection_name_label: Nombre de la conexión
+ connection_name_placeholder: Cuenta corriente de empresa
+ default_connection_name: Conexión de Brex
+ disconnect_label: "Desconectar %{name}"
+ disconnect_confirm: "¿Desconectar %{name}?"
+ encryption_warning:
+ title: El cifrado de la base de datos no está configurado
+ message: Configura las claves de cifrado de Active Record antes de añadir tokens de Brex en producción. Sin claves de cifrado, Sure almacena las credenciales y las instantáneas del proveedor Brex en texto plano, como ocurre con otros registros de proveedores.
+ instructions:
+ copy_token_html: "Copia el token y añádelo abajo como una conexión con nombre. Sure almacena el token únicamente para sincronizar esta familia."
+ create_token: "Crea un token de API con estos ámbitos de solo lectura: accounts.cash.readonly, accounts.card.readonly, transactions.cash.readonly, transactions.card.readonly"
+ open_tokens: Ve a los ajustes de tokens de desarrollador/API de Brex de la empresa que quieres conectar
+ sign_in_html: "Visita %{link} e inicia sesión en la cuenta que quieres conectar"
+ keep_token_placeholder: Déjalo en blanco para conservar el token actual
+ not_configured: No configurado
+ sandbox_note_html: "Usa una conexión con nombre distinta para cada empresa/token de API de Brex que quieras sincronizar. Deja la URL base en blanco para producción. El entorno de staging está limitado a pruebas aprobadas por Brex y no funciona con tokens de clientes."
+ setup_accounts: Configurar cuentas
+ setup_title: "Instrucciones de configuración:"
+ sync: Sincronizar
+ token_label: Token
+ token_placeholder: Pega el token aquí
+ update_connection: Actualizar conexión
+ provider_connection:
+ default_description: Conectar a tu cuenta de Brex
+ default_name: Brex
+ description: "Conectar mediante %{name}"
+ name: "Brex - %{name}"
+ select_accounts:
+ accounts_selected: cuentas seleccionadas
+ api_error: "Error de la API: %{message}"
+ cancel: Cancelar
+ configure_name_in_brex: "No se puede importar: configura el nombre de la cuenta en Brex"
+ description: Selecciona las cuentas que quieres vincular a tu cuenta de %{product_name}.
+ link_accounts: Vincular cuentas seleccionadas
+ no_accounts_found: No se han encontrado cuentas. Comprueba la configuración de tu token de API.
+ no_api_token: No se ha encontrado el token de API de Brex. Configúralo en los Ajustes del proveedor.
+ no_credentials_configured: Configura primero tu token de API de Brex en los Ajustes del proveedor.
+ no_name_placeholder: "(Sin nombre)"
+ select_connection: Elige una conexión de Brex en los Ajustes del proveedor.
+ title: Seleccionar cuentas de Brex
+ unexpected_error: Se ha producido un error inesperado. Inténtalo de nuevo más tarde.
+ select_existing_account:
+ account_already_linked: Esta cuenta ya está vinculada a un proveedor
+ all_accounts_already_linked: Todas las cuentas de Brex ya están vinculadas
+ api_error: "Error de la API: %{message}"
+ cancel: Cancelar
+ configure_name_in_brex: "No se puede importar: configura el nombre de la cuenta en Brex"
+ description: Selecciona una cuenta de Brex para vincularla a esta cuenta. Las transacciones se sincronizarán y se eliminarán los duplicados automáticamente.
+ link_account: Vincular cuenta
+ no_account_specified: No se ha especificado ninguna cuenta
+ no_accounts_found: No se han encontrado cuentas de Brex. Comprueba la configuración de tu token de API.
+ no_api_token: No se ha encontrado el token de API de Brex. Configúralo en los Ajustes del proveedor.
+ no_credentials_configured: Configura primero tu token de API de Brex en los Ajustes del proveedor.
+ no_name_placeholder: "(Sin nombre)"
+ select_connection: Elige una conexión de Brex en los Ajustes del proveedor.
+ title: "Vincular %{account_name} con Brex"
+ unexpected_error: Se ha producido un error inesperado. Inténtalo de nuevo más tarde.
+ setup_required:
+ description: Antes de poder vincular cuentas de Brex, debes configurar tu token de API de Brex.
+ heading: Token de API no configurado
+ settings_link: Ir a los Ajustes del proveedor
+ setup_steps: "Pasos de configuración:"
+ steps:
+ enter_token: Introduce tu token de API de Brex
+ find_section_html: "Busca la sección Brex"
+ open_settings_html: "Ve a Ajustes > Proveedores"
+ return_to_link: Vuelve aquí para vincular tus cuentas
+ title: Configuración de Brex necesaria
+ subtype_select:
+ placeholder:
+ subtype: Selecciona el subtipo
+ type: Selecciona el tipo
+ link_existing_account:
+ account_already_linked: Esta cuenta ya está vinculada a un proveedor
+ api_error: "Error de la API: %{message}"
+ invalid_account_name: No se puede vincular una cuenta con el nombre en blanco
+ missing_parameters: Faltan parámetros obligatorios
+ no_account_specified: No se ha especificado ninguna cuenta
+ no_api_token: No se ha encontrado el token de API de Brex. Configúralo en los Ajustes del proveedor.
+ provider_account_already_linked: Esta cuenta de Brex ya está vinculada a otra cuenta
+ provider_account_not_found: No se ha encontrado la cuenta de Brex
+ select_connection: Elige una conexión de Brex antes de vincular cuentas.
+ success: "%{account_name} vinculada correctamente con Brex"
+ setup_accounts:
+ account_type_label: "Tipo de cuenta:"
+ all_accounts_linked: "Todas tus cuentas de Brex ya se han configurado."
+ api_error: "Error de la API: %{message}"
+ fetch_failed: "No se pudieron obtener las cuentas"
+ no_accounts_to_setup: "No hay cuentas para configurar"
+ no_api_token: No se ha encontrado el token de API de Brex. Configúralo en los Ajustes del proveedor.
+ account_types:
+ skip: Omitir esta cuenta
+ depository: Cuenta corriente o de ahorros
+ credit_card: Tarjeta de crédito
+ investment: Cuenta de inversión
+ loan: Préstamo o hipoteca
+ other_asset: Otro activo
+ subtype_labels:
+ depository: "Subtipo de cuenta:"
+ credit_card: ""
+ investment: "Tipo de inversión:"
+ loan: "Tipo de préstamo:"
+ other_asset: ""
+ subtype_messages:
+ credit_card: "Las tarjetas de crédito se configurarán automáticamente como cuentas de tarjeta de crédito."
+ other_asset: "No se necesitan opciones adicionales para Otros activos."
+ subtypes:
+ depository:
+ checking: Cuenta corriente
+ savings: Cuenta de ahorros
+ hsa: Cuenta de ahorro para la salud
+ cd: Certificado de depósito
+ money_market: Cuenta del mercado monetario
+ investment:
+ brokerage: Cuenta de bróker
+ pension: Pensión
+ retirement: Jubilación
+ "401k": "401(k)"
+ roth_401k: "Roth 401(k)"
+ "403b": "403(b)"
+ tsp: Thrift Savings Plan
+ "529_plan": "Plan 529"
+ hsa: Cuenta de ahorro para la salud
+ mutual_fund: Fondo de inversión
+ ira: IRA tradicional
+ roth_ira: Roth IRA
+ angel: Inversión ángel
+ loan:
+ mortgage: Hipoteca
+ student: Préstamo estudiantil
+ auto: Préstamo para automóvil
+ other: Otro préstamo
+ balance: Saldo
+ cancel: Cancelar
+ choose_account_type: "Elige el tipo de cuenta correcto para cada cuenta de Brex:"
+ create_accounts: Crear cuentas
+ creating_accounts: Creando cuentas...
+ historical_data_range: "Rango de datos históricos:"
+ subtitle: Elige los tipos de cuenta correctos para tus cuentas importadas
+ sync_start_date_help: Selecciona hasta qué fecha quieres sincronizar el historial de transacciones. Hay un máximo de 3 años de historial disponible.
+ sync_start_date_label: "Empezar a sincronizar transacciones desde:"
+ title: Configura tus cuentas de Brex
+ complete_account_setup:
+ all_skipped: "Se omitieron todas las cuentas. No se ha creado ninguna cuenta."
+ creation_failed: "No se pudieron crear las cuentas: %{error}"
+ creation_failed_count: "No se pudieron crear %{count} cuenta(s)."
+ no_accounts: "No hay cuentas para configurar."
+ partial_skipped: "Se crearon %{created_count} cuenta(s) correctamente; se omitieron %{skipped_count} cuenta(s)."
+ partial_success: "Se crearon %{created_count} cuenta(s) correctamente, pero %{failed_count} cuenta(s) fallaron."
+ success: "Se han creado %{count} cuenta(s) correctamente."
+ unexpected_error: Se ha producido un error inesperado.
+ sync:
+ success: Sincronización iniciada
+ syncer:
+ account_processing_failed:
+ one: "%{count} cuenta de Brex falló durante el procesamiento."
+ other: "%{count} cuentas de Brex fallaron durante el procesamiento."
+ account_sync_failed:
+ one: "No se pudo programar la sincronización de %{count} cuenta de Brex."
+ other: "No se pudo programar la sincronización de %{count} cuentas de Brex."
+ accounts_need_setup:
+ one: "%{count} cuenta necesita configuración..."
+ other: "%{count} cuentas necesitan configuración..."
+ accounts_failed:
+ one: "No se pudo importar %{count} cuenta de Brex."
+ other: "No se pudieron importar %{count} cuentas de Brex."
+ calculating_balances: Calculando saldos...
+ checking_account_configuration: Comprobando la configuración de la cuenta...
+ credentials_invalid: Token de API de Brex no válido o permisos de cuenta insuficientes
+ failed: La sincronización ha fallado. Inténtalo de nuevo o ponte en contacto con el soporte.
+ import_failed: La importación de Brex ha fallado.
+ importing_accounts: Importando cuentas desde Brex...
+ processing_transactions: Procesando transacciones...
+ transactions_failed:
+ one: "%{count} cuenta de Brex tuvo fallos al importar transacciones."
+ other: "%{count} cuentas de Brex tuvieron fallos al importar transacciones."
+ update:
+ success: Conexión de Brex actualizada
diff --git a/config/locales/views/ibkr_items/es.yml b/config/locales/views/ibkr_items/es.yml
new file mode 100644
index 000000000..857d308fb
--- /dev/null
+++ b/config/locales/views/ibkr_items/es.yml
@@ -0,0 +1,92 @@
+---
+es:
+ providers:
+ ibkr:
+ name: Interactive Brokers
+ connection_description: Conecta un informe del Flex Web Service de Interactive Brokers
+ institution_name: Interactive Brokers
+ ibkr_items:
+ defaults:
+ name: Interactive Brokers
+ ibkr_item:
+ deletion_in_progress: Eliminación en curso
+ flex_web_service: Flex Web Service
+ syncing: Sincronizando
+ requires_update: Las credenciales requieren atención
+ error: Error
+ synced: Sincronizado hace %{time}. %{summary}.
+ never_synced: Nunca sincronizado.
+ setup_accounts: Configurar cuentas
+ delete: Eliminar
+ accounts_need_setup: Las cuentas necesitan configuración
+ accounts_need_setup_description: Algunas cuentas de IBKR deben vincularse a cuentas de Sure.
+ no_accounts_discovered: Aún no se han detectado cuentas de IBKR.
+ no_accounts_discovered_description: Ejecuta una sincronización después de configurar tu consulta Flex para detectar cuentas.
+ setup_accounts:
+ page_title: Configurar cuentas de Interactive Brokers
+ dialog_title: Configura tus cuentas de Interactive Brokers
+ subtitle: Selecciona qué cuentas de bróker de IBKR quieres vincular.
+ info_box:
+ title: Importación mediante consulta Flex de IBKR
+ items:
+ item_1: Posiciones con precios y cantidades actuales
+ item_2: Coste base por posición
+ item_3: Operaciones, dividendos, comisiones y depósitos o retiradas de efectivo
+ warning: La actividad histórica se limita al periodo del informe de la consulta Flex
+ status:
+ fetching_accounts: Obteniendo cuentas de Interactive Brokers...
+ no_accounts_found_title: No se han encontrado cuentas.
+ no_accounts_found_description: Sure no pudo encontrar ninguna cuenta de IBKR en el último informe Flex.
+ available_accounts:
+ title: Cuentas disponibles
+ account_type_investment: Inversión
+ account_summary: "%{account_type} • Saldo: %{balance}"
+ account_id: "ID de cuenta: %{account_id}"
+ link_existing:
+ description: O vincula una cuenta de IBKR detectada a una cuenta de inversión manual existente.
+ manual_account_option: "%{name} (%{balance})"
+ select_prompt: Selecciona una cuenta...
+ linked_accounts:
+ title: Ya vinculadas
+ linked_to_html: "Vinculada a: %{account}"
+ buttons:
+ refresh: Actualizar
+ cancel: Cancelar
+ back_to_settings: Volver a Ajustes
+ create_selected_accounts: Crear cuentas seleccionadas
+ link: Vincular
+ done: Hecho
+ sync_status:
+ no_accounts: Aún no se han detectado cuentas de IBKR
+ all_linked:
+ one: 1 cuenta vinculada
+ other: "%{count} cuentas vinculadas"
+ partial: "%{linked} vinculadas, %{unlinked} necesitan configuración"
+ select_existing_account:
+ title: Vincular cuenta de Interactive Brokers
+ no_accounts_available: Aún no hay cuentas de Interactive Brokers sin vincular disponibles.
+ run_sync_hint: "Ejecuta una sincronización desde Ajustes > Proveedores después de actualizar tu consulta Flex."
+ wait_for_sync: Espera a que termine la sincronización de detección de cuentas.
+ balance: Saldo
+ link: Vincular
+ cancel: Cancelar
+ create:
+ success: Interactive Brokers configurado correctamente.
+ update:
+ success: Configuración de Interactive Brokers actualizada correctamente.
+ destroy:
+ success: Conexión de Interactive Brokers programada para su eliminación.
+ select_accounts:
+ not_configured: Interactive Brokers no está configurado.
+ link_existing_account:
+ not_found: No se ha encontrado la cuenta o la configuración de Interactive Brokers.
+ only_manual_investment: Solo las cuentas de inversión manuales pueden vincularse a Interactive Brokers.
+ already_linked: Esta cuenta de Interactive Brokers ya está vinculada.
+ success: Vinculado correctamente a la cuenta de Interactive Brokers.
+ failed: No se pudo vincular la cuenta de Interactive Brokers.
+ complete_account_setup:
+ success:
+ one: Se ha creado %{count} cuenta de Interactive Brokers correctamente.
+ other: Se han creado %{count} cuentas de Interactive Brokers correctamente.
+ none_selected: No se ha seleccionado ninguna cuenta.
+ none_created: No se ha creado ninguna cuenta.
diff --git a/config/locales/views/kraken_items/es.yml b/config/locales/views/kraken_items/es.yml
new file mode 100644
index 000000000..26a3eaaf8
--- /dev/null
+++ b/config/locales/views/kraken_items/es.yml
@@ -0,0 +1,85 @@
+---
+es:
+ kraken_items:
+ provider_connection:
+ default_name: Kraken
+ default_description: Vincular a una cuenta de la plataforma de intercambio Kraken
+ name: "Kraken - %{name}"
+ description: "Vincular a %{name}"
+ create:
+ default_name: Kraken
+ success: Conexión con Kraken establecida con éxito. Tu cuenta de la plataforma se está sincronizando.
+ update:
+ success: Conexión de Kraken actualizada correctamente.
+ destroy:
+ success: Conexión de Kraken programada para su eliminación.
+ select_accounts:
+ select_connection: Elige una conexión de Kraken en los Ajustes del proveedor.
+ no_credentials_configured: Añade las credenciales de la API de Kraken antes de configurar las cuentas.
+ link_accounts:
+ select_connection: Elige una conexión de Kraken antes de vincular cuentas.
+ select_existing_account:
+ title: Vincular cuenta de Kraken
+ no_accounts_found: No se han encontrado cuentas de Kraken.
+ wait_for_sync: Espera a que Kraken termine de sincronizar.
+ check_provider_health: Comprueba que tus credenciales de la API de Kraken sean válidas.
+ link: Vincular
+ cancel: Cancelar
+ link_existing_account:
+ success: Vinculado correctamente a la cuenta de Kraken
+ select_connection: Elige una conexión de Kraken antes de vincular cuentas.
+ errors:
+ only_manual: Solo las cuentas manuales de plataforma de criptomonedas sin un vínculo de proveedor existente pueden vincularse a Kraken
+ invalid_kraken_account: Cuenta de Kraken no válida
+ kraken_account_already_linked: Esta cuenta de Kraken ya está vinculada
+ setup_accounts:
+ title: Importar cuenta de Kraken
+ subtitle: Selecciona la cuenta de la plataforma que quieres seguir
+ instructions: Kraken importa una única cuenta combinada de plataforma de criptomonedas para esta conexión, con solo posiciones y ejecuciones de operaciones al contado.
+ no_accounts: Se han importado todas las cuentas de Kraken.
+ accounts_count:
+ one: "%{count} cuenta disponible"
+ other: "%{count} cuentas disponibles"
+ select_all: Seleccionar todas
+ import_selected: Importar seleccionadas
+ cancel: Cancelar
+ creating: Importando...
+ complete_account_setup:
+ success:
+ one: "Se ha importado %{count} cuenta"
+ other: "Se han importado %{count} cuentas"
+ none_selected: No se ha seleccionado ninguna cuenta
+ no_accounts: No hay cuentas para importar
+ kraken_item:
+ provider_name: Kraken
+ syncing: Sincronizando...
+ reconnect: Es necesario actualizar las credenciales
+ deletion_in_progress: Eliminando...
+ sync_status:
+ no_accounts: No se han encontrado cuentas
+ all_synced:
+ one: "%{count} cuenta sincronizada"
+ other: "%{count} cuentas sincronizadas"
+ partial_sync: "%{linked_count} sincronizadas, %{unlinked_count} necesitan configuración"
+ status: "Sincronizado hace %{timestamp}"
+ status_with_summary: "Sincronizado hace %{timestamp} - %{summary}"
+ status_never: Nunca sincronizado
+ delete: Eliminar
+ no_accounts_title: No se han encontrado cuentas
+ no_accounts_message: Tu cuenta de la plataforma Kraken aparecerá aquí después de la sincronización.
+ setup_needed: Cuenta lista para importar
+ setup_description: Importa esta conexión de Kraken como una cuenta de plataforma de criptomonedas.
+ setup_action: Importar cuenta
+ import_accounts_menu: Importar cuenta
+ stale_rate_warning: "El saldo es aproximado porque el tipo de cambio exacto para %{date} no estaba disponible. Se actualizará en la próxima sincronización."
+ kraken_item:
+ syncer:
+ checking_credentials: Comprobando credenciales...
+ credentials_invalid: Credenciales de la API de Kraken no válidas. Comprueba tu clave de API y tu secreto.
+ importing_accounts: Importando cuentas desde Kraken...
+ checking_configuration: Comprobando la configuración de la cuenta...
+ accounts_need_setup:
+ one: "%{count} cuenta necesita configuración"
+ other: "%{count} cuentas necesitan configuración"
+ processing_accounts: Procesando los datos de la cuenta...
+ calculating_balances: Calculando saldos...
diff --git a/config/locales/views/messages/es.yml b/config/locales/views/messages/es.yml
new file mode 100644
index 000000000..b5d1a4924
--- /dev/null
+++ b/config/locales/views/messages/es.yml
@@ -0,0 +1,6 @@
+---
+es:
+ messages:
+ chat_form:
+ placeholder: "Pregunta lo que quieras ..."
+ disclaimer: "Las respuestas de la IA son solo informativas. ¡No constituyen asesoramiento financiero!"
diff --git a/config/locales/views/pending_duplicate_merges/es.yml b/config/locales/views/pending_duplicate_merges/es.yml
new file mode 100644
index 000000000..d85917824
--- /dev/null
+++ b/config/locales/views/pending_duplicate_merges/es.yml
@@ -0,0 +1,21 @@
+---
+es:
+ pending_duplicate_merges:
+ create:
+ no_posted_selected: Selecciona una transacción contabilizada con la que fusionar
+ invalid_transaction: Transacción seleccionada para fusionar no válida
+ merge_success: Transacción pendiente fusionada con la transacción contabilizada
+ merge_failed: No se pudieron fusionar las transacciones
+ set_transaction:
+ pending_only: Esta función solo está disponible para transacciones pendientes
+ new:
+ title: Fusionar con transacción contabilizada
+ warning_title: Fusión manual de duplicados
+ warning_description: Usa esto para fusionar manualmente una transacción pendiente con su versión contabilizada. Se eliminará la transacción pendiente y se conservará únicamente la contabilizada.
+ pending_transaction: Transacción pendiente
+ select_posted: Selecciona la transacción contabilizada con la que fusionar
+ showing_range: "Mostrando %{start} - %{end}"
+ previous: "← 10 anteriores"
+ next: "10 siguientes →"
+ no_candidates: No se han encontrado transacciones contabilizadas en esta cuenta.
+ submit_button: Fusionar transacciones
diff --git a/config/locales/views/sophtron_items/es.yml b/config/locales/views/sophtron_items/es.yml
new file mode 100644
index 000000000..f1567857d
--- /dev/null
+++ b/config/locales/views/sophtron_items/es.yml
@@ -0,0 +1,313 @@
+---
+es:
+ sophtron_items:
+ defaults:
+ name: Conexión de Sophtron
+ new:
+ title: Conectar Sophtron
+ user_id: ID de usuario
+ user_id_placeholder: pega tu ID de usuario de Sophtron
+ access_key: Clave de acceso
+ access_key_placeholder: pega tu clave de acceso de Sophtron
+ connect: Conectar
+ cancel: Cancelar
+ create:
+ success: Conexión de Sophtron creada correctamente
+ destroy:
+ success: Conexión de Sophtron eliminada
+ update:
+ success: ¡Conexión de Sophtron actualizada correctamente! Tus cuentas se están reconectando.
+ errors:
+ blank_user_id: Introduce un ID de usuario de Sophtron.
+ invalid_user_id: ID de usuario no válido. Comprueba que has copiado el ID de usuario completo de Sophtron.
+ user_id_compromised: El ID de usuario puede estar comprometido, caducado o ya usado. Crea uno nuevo.
+ blank_access_key: Introduce una clave de acceso de Sophtron.
+ invalid_access_key: Clave de acceso no válida. Comprueba que has copiado la clave de acceso completa de Sophtron.
+ access_key_compromised: La clave de acceso puede estar comprometida, caducada o ya usada. Crea una nueva.
+ update_failed: "No se pudo actualizar la conexión: %{message}"
+ unexpected: Se ha producido un error inesperado. Inténtalo de nuevo o ponte en contacto con el soporte.
+ edit:
+ user_id:
+ label: "ID de usuario de Sophtron:"
+ placeholder: "Pega aquí tu ID de usuario de Sophtron..."
+ help_text: "El ID de usuario debe ser una cadena larga que empieza por letras y números"
+ access_key:
+ label: "Clave de acceso de Sophtron:"
+ placeholder: "Pega aquí tu clave de acceso de Sophtron..."
+ help_text: "La clave de acceso debe ser una cadena larga que empieza por letras y números"
+ index:
+ title: Conexiones de Sophtron
+ loading:
+ loading_message: Cargando cuentas de Sophtron...
+ loading_title: Cargando
+ link_accounts:
+ all_already_linked:
+ one: "La cuenta seleccionada (%{names}) ya está vinculada"
+ other: "Las %{count} cuentas seleccionadas ya están vinculadas: %{names}"
+ api_error: "Error de conexión con la API"
+ invalid_account_names:
+ one: "No se puede vincular una cuenta con el nombre en blanco"
+ other: "No se pueden vincular %{count} cuentas con los nombres en blanco"
+ link_failed: No se pudieron vincular las cuentas
+ no_accounts_selected: Selecciona al menos una cuenta
+ partial_invalid: "Se vincularon %{created_count} cuenta(s) correctamente, %{already_linked_count} ya estaban vinculadas, %{invalid_count} cuenta(s) tenían nombres no válidos"
+ partial_success: "Se vincularon %{created_count} cuenta(s) correctamente. %{already_linked_count} cuenta(s) ya estaban vinculadas: %{already_linked_names}"
+ success:
+ one: "Se ha vinculado %{count} cuenta correctamente"
+ other: "Se han vinculado %{count} cuentas correctamente"
+ no_credentials_configured: "Configura primero tu ID de usuario y tu clave de acceso de la API de Sophtron en los Ajustes del proveedor."
+ no_accounts_found: No se han encontrado cuentas. Comprueba la configuración de tu clave de API.
+ no_access_key: La clave de acceso de Sophtron no está configurada. Configúrala en los Ajustes.
+ no_user_id: El ID de usuario de Sophtron no está configurado. Configúralo en los Ajustes.
+ no_institution_connected: Conecta primero una entidad bancaria con Sophtron.
+ connect:
+ cancel: Cancelar
+ captcha: Captcha
+ connect: Conectar
+ institution_search_label: Entidad
+ institution_search_placeholder: Buscar por nombre del banco
+ no_institutions: No se han encontrado entidades coincidentes.
+ password: Contraseña
+ search: Buscar
+ search_too_short: Introduce al menos dos caracteres para buscar.
+ title: Conectar entidad de Sophtron
+ username: Nombre de usuario
+ connect_institution:
+ api_error: "La conexión con Sophtron ha fallado: %{message}"
+ missing_parameters: Selecciona una entidad e introduce las credenciales de acceso de tu banco.
+ connection_status:
+ api_error: "Error de conexión con la API: %{message}"
+ attempt: "Intento %{attempt} de %{max}"
+ check_again: Volver a comprobar
+ failed: Sophtron no pudo completar esta conexión con la entidad.
+ failed_timeout: Sophtron agotó el tiempo de espera mientras la entidad completaba el acceso.
+ timeout: Sophtron no terminó de conectarse en el tiempo previsto. Puedes volver a comprobarlo o intentar reconectar más tarde.
+ title: Conectando con Sophtron
+ waiting: Sophtron todavía se está conectando con tu entidad.
+ mfa:
+ captcha: Texto del captcha
+ captcha_alt: Captcha de Sophtron
+ phone_confirmed: He confirmado por teléfono
+ submit: Enviar
+ title: Verificación de Sophtron
+ token: Código de verificación
+ submit_mfa:
+ api_error: "La verificación ha fallado: %{message}"
+ invalid_security_answers: Faltan las respuestas de seguridad o son demasiado largas.
+ unknown_challenge: Paso de verificación de Sophtron desconocido.
+ sophtron_item:
+ accounts_need_setup: Las cuentas necesitan configuración
+ automatic_sync: Usar sincronización automática
+ delete: Eliminar conexión
+ deletion_in_progress: eliminación en curso...
+ error: Error
+ no_accounts_description: Esta conexión aún no tiene cuentas vinculadas.
+ no_accounts_title: Sin cuentas
+ manual_sync: Sincronización manual
+ manual_sync_action: Requerir sincronización manual
+ manual_sync_action_for: "Requerir sincronización manual para %{institution}"
+ automatic_sync_for: "Usar sincronización automática para %{institution}"
+ setup_action: Configurar nuevas cuentas
+ setup_description: "%{linked} de %{total} cuentas vinculadas. Elige los tipos de cuenta para tus cuentas de Sophtron recién importadas."
+ setup_needed: Nuevas cuentas listas para configurar
+ status: "Sincronizado hace %{timestamp}"
+ status_never: Nunca sincronizado
+ status_with_summary: "Sincronizado hace %{timestamp} • %{summary}"
+ sync_now: Sincronizar ahora
+ syncing: Sincronizando...
+ total: Total
+ unlinked: Sin vincular
+ preload_accounts:
+ preload_accounts: precargar cuentas
+ api_error: "Error de conexión con la API"
+ unexpected_error: "Se ha producido un error inesperado"
+ no_credentials_configured: "Configura primero tu ID de usuario y tu clave de acceso de la API de Sophtron en los Ajustes del proveedor."
+ no_accounts_found: No se han encontrado cuentas. Comprueba la configuración de tu clave de API.
+ no_access_key: La clave de acceso de Sophtron no está configurada. Configúrala en los Ajustes.
+ no_user_id: El ID de usuario de Sophtron no está configurado. Configúralo en los Ajustes.
+ select_accounts:
+ accounts_selected: cuentas seleccionadas
+ api_error: "Error de conexión con la API"
+ unexpected_error: "Se ha producido un error inesperado"
+ cancel: Cancelar
+ configure_name_in_sophtron: "No se puede importar: configura el nombre de la cuenta en Sophtron"
+ description: Selecciona las cuentas que quieres vincular a tu cuenta de %{product_name}.
+ link_accounts: Vincular cuentas seleccionadas
+ no_accounts_found: No se han encontrado cuentas. Comprueba la configuración de tu clave de API.
+ no_access_key: La clave de acceso de Sophtron no está configurada. Configúrala en los Ajustes.
+ no_user_id: El ID de usuario de Sophtron no está configurado. Configúralo en los Ajustes.
+ no_credentials_configured: "Configura primero tu ID de usuario y tu clave de acceso de la API de Sophtron en los Ajustes del proveedor."
+ no_institution_connected: Conecta primero una entidad bancaria con Sophtron.
+ no_name_placeholder: "(Sin nombre)"
+ title: Seleccionar cuentas de Sophtron
+ select_existing_account:
+ account_already_linked: Esta cuenta ya está vinculada a un proveedor
+ all_accounts_already_linked: Todas las cuentas de Sophtron ya están vinculadas
+ api_error: "Error de conexión con la API"
+ cancel: Cancelar
+ configure_name_in_sophtron: "No se puede importar: configura el nombre de la cuenta en Sophtron"
+ description: Selecciona una cuenta de Sophtron para vincularla a esta cuenta. Las transacciones se sincronizarán y se eliminarán los duplicados automáticamente.
+ link_account: Vincular cuenta
+ no_account_specified: No se ha especificado ninguna cuenta
+ no_accounts_found: No se han encontrado cuentas de Sophtron. Comprueba la configuración de tu clave de API.
+ no_access_key: La clave de acceso de Sophtron no está configurada. Configúrala en los Ajustes.
+ no_user_id: El ID de usuario de Sophtron no está configurado. Configúralo en los Ajustes.
+ no_institution_connected: Conecta primero una entidad bancaria con Sophtron.
+ no_name_placeholder: "(Sin nombre)"
+ title: "Vincular %{account_name} con Sophtron"
+ unexpected_error: "Se ha producido un error inesperado"
+ link_existing_account:
+ account_already_linked: Esta cuenta ya está vinculada a un proveedor
+ api_error: "Error de conexión con la API"
+ unexpected_error: "Se ha producido un error inesperado"
+ invalid_account_name: No se puede vincular una cuenta con el nombre en blanco
+ sophtron_account_already_linked: Esta cuenta de Sophtron ya está vinculada a otra cuenta
+ sophtron_account_not_found: No se ha encontrado la cuenta de Sophtron
+ missing_parameters: Faltan parámetros obligatorios
+ no_institution_connected: Conecta primero una entidad bancaria con Sophtron.
+ success: "%{account_name} vinculada correctamente con Sophtron"
+ setup_accounts:
+ account_type_label: "Tipo de cuenta:"
+ all_accounts_linked: "Todas tus cuentas de Sophtron ya se han configurado."
+ api_error: "Error de conexión con la API"
+ unexpected_error: "Se ha producido un error inesperado"
+ fetch_failed: "No se pudieron obtener las cuentas"
+ no_accounts_to_setup: "No hay cuentas para configurar"
+ no_access_key: "La clave de acceso de Sophtron no está configurada. Comprueba los ajustes de tu conexión."
+ no_user_id: "El ID de usuario de Sophtron no está configurado. Comprueba los ajustes de tu conexión."
+ no_institution_connected: "La entidad de Sophtron aún no está conectada."
+ account_types:
+ skip: Omitir esta cuenta
+ depository: Cuenta corriente o de ahorros
+ credit_card: Tarjeta de crédito
+ investment: Cuenta de inversión
+ loan: Préstamo o hipoteca
+ other_asset: Otro activo
+ subtype_labels:
+ depository: "Subtipo de cuenta:"
+ credit_card: ""
+ investment: "Tipo de inversión:"
+ loan: "Tipo de préstamo:"
+ other_asset: ""
+ subtype_messages:
+ credit_card: "Las tarjetas de crédito se configurarán automáticamente como cuentas de tarjeta de crédito."
+ other_asset: "No se necesitan opciones adicionales para Otros activos."
+ balance: Saldo
+ cancel: Cancelar
+ choose_account_type: "Elige el tipo de cuenta correcto para cada cuenta de Sophtron:"
+ create_accounts: Crear cuentas
+ creating_accounts: Creando cuentas...
+ historical_data_range: "Rango de datos históricos:"
+ subtitle: Elige los tipos de cuenta correctos para tus cuentas importadas
+ sync_start_date_help: Selecciona hasta qué fecha quieres sincronizar el historial de transacciones. Hay un máximo de 3 años de historial disponible.
+ sync_start_date_label: "Empezar a sincronizar transacciones desde:"
+ title: Configura tus cuentas de Sophtron
+ complete_account_setup:
+ all_skipped: "Se omitieron todas las cuentas. No se ha creado ninguna cuenta."
+ creation_failed: "No se pudieron crear las cuentas"
+ api_error: "Error de conexión con la API"
+ unexpected_error: "Se ha producido un error inesperado"
+ no_accounts: "No hay cuentas para configurar."
+ success: "Se han creado %{count} cuenta(s) correctamente."
+ sync:
+ already_running: Ya hay una sincronización manual de Sophtron en curso.
+ api_error: "La sincronización manual de Sophtron ha fallado: %{message}"
+ failed: La sincronización manual de Sophtron ha fallado
+ no_linked_accounts: Esta entidad de Sophtron no tiene cuentas vinculadas para sincronizar.
+ processing_failed: La sincronización manual de Sophtron no pudo procesar las transacciones actualizadas.
+ success: Sincronización iniciada
+ toggle_manual_sync:
+ success_disabled: La entidad de Sophtron se sincronizará automáticamente.
+ success_enabled: La entidad de Sophtron ahora requiere sincronización manual.
+ manual_sync_complete:
+ close: Cerrar
+ description: Los saldos de las cuentas terminarán de actualizarse en segundo plano.
+ message: Las transacciones se descargaron tras la verificación de Sophtron.
+ title: Sincronización de Sophtron iniciada
+ sophtron_setup_required:
+ title: Configuración de Sophtron necesaria
+ message: >
+ Para completar la configuración de tu conexión de Sophtron, ve a la página de Ajustes del proveedor y sigue las instrucciones para autorizar y configurar tu conexión de Sophtron.
+ go_to_provider_settings: Ir a los Ajustes del proveedor
+ heading: "ID de usuario y clave de acceso no configurados"
+ description: "Antes de poder vincular cuentas de Sophtron, debes configurar tu ID de usuario y tu clave de acceso de Sophtron."
+ setup_steps_title: "Pasos de configuración:"
+ step_1_html: "Ve a Ajustes → Proveedores de sincronización bancaria"
+ step_2_html: "Busca la sección Sophtron"
+ step_3_html: "Introduce tu ID de usuario y tu clave de acceso de Sophtron"
+ step_4: "Vuelve aquí para vincular tus cuentas"
+ api_error:
+ title: "Error de conexión con Sophtron"
+ unable_to_connect: "No se puede conectar con Sophtron"
+ institution_unable_to_connect: "No se puede conectar con la entidad"
+ common_issues_title: "Problemas habituales:"
+ incorrect_user_id: "ID de usuario incorrecto: Verifica tu ID de usuario en los Ajustes del proveedor"
+ invalid_access_key: "Clave de acceso no válida: Comprueba tu clave de acceso en los Ajustes del proveedor"
+ expired_credentials: "Credenciales caducadas: Genera un nuevo ID de usuario y una nueva clave de acceso en Sophtron"
+ network_issue: "Problema de red: Comprueba tu conexión a internet"
+ service_down: "Servicio no disponible: La API de Sophtron puede estar temporalmente no disponible"
+ bad_credentials: "Credenciales bancarias: Comprueba que el nombre de usuario y la contraseña sean correctos"
+ verification_code: "Código de verificación: Asegúrate de introducir el código más reciente antes de que caduque"
+ institution_timeout: "Tiempo de espera de la entidad agotado: La página de acceso del banco no terminó a tiempo"
+ unsupported_mfa: "Compatibilidad con MFA: Es posible que Sophtron no admita el flujo de verificación actual de esta entidad"
+ check_provider_settings: "Comprobar los Ajustes del proveedor"
+ try_again: "Volver a intentar la conexión"
+ select_option: "Seleccionar %{type}"
+ subtype: "subtipo"
+ type: "tipo"
+ sophtron_panel:
+ setup_instructions_title: "Instrucciones de configuración:"
+ setup_instructions:
+ step_1_html: 'Visita Sophtron para obtener tus credenciales de API'
+ step_2: "Copia tu ID de usuario y tu clave de acceso desde los ajustes de tu cuenta de Sophtron"
+ step_3: "Pega las credenciales abajo y haz clic en Guardar; Sure creará o reutilizará tu ID de cliente de Sophtron automáticamente"
+ field_descriptions_title: "Descripciones de los campos:"
+ field_descriptions:
+ user_id_html: "ID de usuario: Tu credencial de ID de usuario de Sophtron"
+ access_key_html: "Clave de acceso: Tu credencial de clave de acceso de Sophtron"
+ base_url_html: "URL base: La URL del endpoint de la API de Sophtron, normalmente https://api.sophtron.com/api"
+ fields:
+ user_id:
+ label: "ID de usuario"
+ placeholder_new: "Pega tu ID de usuario de Sophtron"
+ placeholder_edit: "••••••••"
+ access_key:
+ label: "Clave de acceso"
+ placeholder_new: "Pega tu clave de acceso de Sophtron"
+ placeholder_edit: "••••••••"
+ base_url:
+ label: "URL base"
+ placeholder: "https://api.sophtron.com/api"
+ save: "Guardar configuración"
+ update: "Actualizar configuración"
+ syncer:
+ manual_sync_required: "Para esta entidad se requiere una sincronización manual de Sophtron; esas cuentas se omiten durante la sincronización automática."
+ importing_accounts: "Importando cuentas desde Sophtron..."
+ checking_account_configuration: "Comprobando la configuración de la cuenta..."
+ accounts_need_setup: "%{count} cuenta(s) necesitan configuración"
+ processing_transactions: "Procesando transacciones de las cuentas vinculadas..."
+ calculating_balances: "Calculando saldos de las cuentas vinculadas..."
+ sophtron_entry:
+ processor:
+ unknown_transaction: "Transacción desconocida"
+ render_connection_timeout:
+ timeout: "Se ha agotado el tiempo de conexión. Inténtalo de nuevo."
+ redirect_after_account_link:
+ invalid_account_names:
+ one: "No se puede vincular %{count} cuenta con el nombre en blanco"
+ other: "No se pueden vincular %{count} cuentas con los nombres en blanco"
+ partial_invalid: "Se vincularon %{created_count} cuenta(s). %{already_linked_count} ya estaban vinculadas, %{invalid_count} tenían nombres no válidos."
+ partial_success: "Se vincularon %{created_count} cuenta(s). %{already_linked_count} cuenta(s) ya estaban vinculadas."
+ success:
+ one: "Se ha vinculado %{count} cuenta correctamente."
+ other: "Se han vinculado %{count} cuentas correctamente."
+ all_already_linked:
+ one: "La cuenta seleccionada ya está vinculada"
+ other: "Las %{count} cuentas seleccionadas ya están vinculadas"
+ link_failed: "No se pudieron vincular las cuentas"
+ start_manual_sync:
+ already_running: "Ya hay una sincronización en curso."
+ no_linked_accounts: "No hay cuentas vinculadas disponibles para sincronizar."
+ api_error: "Error de la API: %{message}"
+ start_manual_sync_for_account:
+ failed: "No se pudo sincronizar la cuenta"
diff --git a/config/locales/views/splits/es.yml b/config/locales/views/splits/es.yml
new file mode 100644
index 000000000..dc378a8c5
--- /dev/null
+++ b/config/locales/views/splits/es.yml
@@ -0,0 +1,47 @@
+---
+es:
+ splits:
+ new:
+ title: Dividir transacción
+ description: Divide esta transacción en varias entradas con categorías e importes diferentes.
+ submit: Dividir transacción
+ cancel: Cancelar
+ add_row: Añadir división
+ remove_row: Eliminar
+ remaining: Restante
+ amounts_must_match: Los importes de las divisiones deben sumar el importe original de la transacción.
+ name_label: Nombre
+ name_placeholder: Nombre de la división
+ amount_label: Importe
+ category_label: Categoría
+ uncategorized: "(sin categoría)"
+ original_name: "Nombre:"
+ original_date: "Fecha:"
+ original_amount: "Importe"
+ split_number: "División n.º %{number}"
+ create:
+ success: Transacción dividida correctamente
+ not_splittable: Esta transacción no se puede dividir.
+ destroy:
+ success: División de la transacción deshecha correctamente
+ show:
+ title: Entradas divididas
+ description: Esta transacción se ha dividido en las siguientes entradas.
+ button_title: Dividir transacción
+ button_description: Divide esta transacción en varias entradas con categorías e importes diferentes.
+ button: Dividir
+ unsplit_title: Deshacer división
+ unsplit_button: Deshacer división
+ unsplit_confirm: Esto eliminará todas las entradas divididas y restaurará la transacción original.
+ edit:
+ title: Editar división
+ description: Modifica las entradas divididas de esta transacción.
+ submit: Actualizar división
+ not_split: Esta transacción no está dividida.
+ update:
+ success: División actualizada correctamente
+ child:
+ title: Parte de una división
+ description: Esta entrada forma parte de una transacción dividida.
+ edit_split: Editar división
+ unsplit: Deshacer división